Giter VIP home page Giter VIP logo

ultrasonic-stethoscope's People

Contributors

tandav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

mfkiwl

ultrasonic-stethoscope's Issues

Rudshel ADC

Todo

  • make console app, where data prints by timer not by ReadKey()
  • fork KernelChip program (GUI) and make it work w/ new adc

Tips / btw

  • put dll into /bin/Debug/ Хз, пока не разобрался с этим дерьмом. Если из других папок - то не подключается. Даже если из /bin/Debug/, то выдаст ошибку, но работать будет
  • timer.enabled = true is the same thing as timer.Start(). Use second option for certainity. more info
  • do not confuse Timer and Stopwatch

частота дискретизации != количество точек по x-axis на графике

NB

Короче подстраивай n_mic и k - чтобы получить что нужно турику

  • протестить всегда ли 1600 на windows-pc. Мб это - какие-то ограничения virtual machine (parallels)
  • Also see naudio 1600 - Google Search

e.ButesRecorded = 1600 всегда.
e.Buffer.Length = 1600 всегда.
Мб каждые 10ms

byte[] buffer = ...; // e.Buffer
for(int n = 0; n < buffer.Length; n+=2)
{
   short sample = BitConverter.ToInt16(buffer, n);
}

В этой статье вроде Wavebuffer самый крутой

Короче потом эту оптимизацию сделать. Сейчас похуй пока BitConverter юзать

Но вот что тогда дает частота дискретизации

For a given sample rate, bit depth, and channel count, PCM audio always has the same bitrate (calculated by multiplying those three values together). If you want to reduce the bitrate, you must change one of those three (lowering the sample rate is probably the best option unless you can go from stereo to mono).

Частота дискретизации должна быть больше и отрисовывать скользящее среднее. Отрисовывать по дехе точке ну там 512 допустим

просачиваются данные с одного сенсора на другой

WTF

походу там аля остаточное напряжение на ADC остается после прошлого сенсора, даже если на него уже перезаписал.

dt=100ms, -> 16000 Bytes/s * 8 = 128000 Bytes / s

To Do

    • засечь dt между двумя вызовами DataAvailable(). В среднем dt = 100ms

На выходные работка

  • 3 графика - 2 с термодатчиков (каждый отдельно) и один c микрофона
  • скользящее среднее добавить
  • все-таки наверное через таймер-тик делать, потому что несколько графиков будет.

C# sound visualisation

Useful Links

mb fake
16 bits = 2 bytes (diveded by 8)

http://stackoverflow.com/questions/13248500/microphone-buffer-in-naudio-c-sharp

типа по 2 байта как-то походу они аля 2 байта инфы - следующие 2байта инфы.

Done

implementing moving average (aka running mean)

Короче, суть такая, что сохраняю все значения, сколько их получилось из running_mean при заданном running_mean_window_size. Это или list, в который аппендятся значения и в конце timerTick() обнуляются. (len(list) == 0). Или array, который заранее инициализируется и его длина тоже просчитывается вручную или по формуле заранее.

Важное замечание: количество значений при скользящем среднем равно исходному количеству значений. (buffer_size)

Отрисовка этого дерьма на экране - это вообще другая сущность. Создается другой array/queue/list, в который "просеиваются" значения из листа значений. Можно фулл отрисовывать сколько есть, можно через 1/через 2 итд, короче чтобы комп не тормозил и нужная детализация была.

add dll to repo

Now you can't just simply download and run project. Need to change .gitattributes and .gitignore

Maybe TODO

  • Make Rudshel ADC data visualisation boilerplate as separate repo?

UX improvements

  • Create a loop with timeout that tries to connect to arduino. (to prevent could not open serial port error)
  • Fix thread issue, which forces you to reboot arduino after each run of the app.
  • Print length of recorded signal in seconds
  • change rudshel project name

Form UI Elements

TODO

  • make checkbox - show original values / show values from moving average
  • moving_average_window_size - (add ability to input from Form)
  • draw accuracy (add ability to input from Form) (how many points from buffer should be drawn)
  • buffer size
  • x-axis zoom

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.