Датчик движения для допплерографии
Про допплерографию можно почитать тут:
https://www.mri-kholin.ru/vozmozhnosti-dopplerografii.html
Датчик движения фиксирует… физическое движение… и возвращает информацию о нём в виде какого-то электрического напряжения на своём выходе, которое надо считывать и как-то интерпретировать.
Эффект Доплера это про отражение волн от движущихся (приближающихся или удаляющихся) предметов. Волны могут быть звуковыми или электрическими. Если они от чего-то отражаются, то ведут себя при этом одинаково.
При допплерографии используется ультразвук, но поскольку все волны одинаковые по своему поведению, сгодится описание и радио-допплеровского датчика:
https://iarduino.ru/shop/Sensory-Datchiki/doplerovskiy-datchik-dvizheniya-rcwl-0516.html
Передатчик излучает радиоволну на определённой частоте.
Если в зоне действия датчика нет объектов способных отражать радиоволны, то приёмник ничего не примет и датчик не сработает.
Если в зоне действия датчика имеются неподвижные объекты способные отражать радиоволны, то приёмник примет радиоволну передатчика, отражённую от этих объектов, но частота принятой радиоволны будет равна частоте сигнала передатчика и датчик не сработает.
Если в зоне действия датчика имеется объект способный отражать радиоволны, который приближается к датчику (движется), то приёмник примет отражённую от объекта радиоволну, частота которой будет выше чем у сигнала передатчика и датчик сработает.
Если в зоне действия датчика имеется объект способный отражать радиоволны, который удаляется от датчика (движется), то приёмник примет отражённую от объекта радиоволну, частота которой будет ниже чем у сигнала передатчика и датчик сработает.
… С датчиком всё хорошо – при приближении объекта он примет волну с какой-то частотой. А вот дальше, конкретная железка делает плохо:
Когда датчик срабатывает, на его выходе «OUT» устанавливается уровень логической «1». Датчик снабжен триггером, который удерживает уровень логической «1» на выходе «OUT» в течении 2 сек ±30%, после прекращения движения.
..,. Это он, молодец такой, пытается передать мне цифровую информацию, которая мне вовсе не нужна. Я не хочу знать, есть ли движение, я хочу знать более подробную информацию. Хотя бы потому что если сигал будет проникать внутрь и отражаться там дальше ещё от чего-то, то получится сложение волн (которое и будет содержать информацию о том. что внутри).
Это про ультразвуковой датчик:
https://www.youtube.com/watch?v=ush9uw5hueM
Вместо радиопередатчика радиоволн у него «кряколка» с очень высокой звуковой частотой, а вместо радиоприемника – «ухо» (диктофон, т.е датчик, переводящий звук во всё то же электрическое напряжение). Точнее ответных звуков там может быть несколько, вроде как эхо в горах или ответы нескольких людей одновременно.
Про звуковой датчик тут:
https://iarduino.ru/shop/Sensory-Datchiki/ultrazvukovogo-datchika-hc-sr04-rasstoyaniya-dvizheniya.html
Он рассчитан на измерения расстояния, что мне тоже не нужно. И со стороны библиотеки с этим ничего сделать нельзя. Он посылает сигал, но возвращает не волну с диктофона, а уже преобразованное значение – расстояние:
https://wiki.iarduino.ru/page/ultrazvukovoy-datchik-izmereniya-rasstoyaniya-hc-sr04/#h3_3
Но сам-то диктофон у него есть. А значит можно и с него напрямую сигнал снимать в виде той самой исходной получаемой волны.
Это всё фантазии, конечно. И чистота ультразвука у этого датчика 40 кГц, а для сканирования сосудов надо 4-8 МГц. Но чего нет сегодня, то с достаточной вероятностью появится завтра. Направление явно бурно развивается. Так что и такое, скорее всего, скоро на коленке собрать можно будет.
Сейчас микроконтроллером называется процессор для меленьких устройств, немного похожих на компьютер целиком. У них обычно есть хоть какое-то устройство ввода информации в виде кнопок. И устройство вывода в виде хоть маленького, но экрана. И сами они автономно делают что-то конкретное.
В старо-давние времена контроллерами называли то, что управляло подключенным к компьютеру устройством. Для монитора это называлось иначе, но он хорошо подходит для примера. Рисование линии на экране – это изменение цвета каких-то точек. И положение этих точек но по теореме Пифагора определяется, потому что это было бы слишком долго. Там есть специальный алгоритм. Тоже самое для кругов и прочего. Игрушки хоть как-то претендующие на реалистичность картинки требуют ещё большего. Там и линий недостаточно. Можно конечно и процессор заставить рассчитывать цвет точек для градиентной заливки каких-нибудь теней, но это не только много, но и тяжело. Там утомительные математические расчеты.
Вся эта работа передавалась тому самому контроллеру устройства. Ему, грубо говоря, сообщались координаты линии, а он что-то внутри себя вычислял и передавал на прицепленный к нему монитор. Точнее, это и сейчас так работает))).
Принимаемая датчиком Доплера волна будет сложной волной из хаотически прыгающих горок и ям. Информация в ней есть, но её ещё надо вытащить из принятого сигнала, т.е выделить те самые отдельные волны от разных поверхностей в глубине (которые все отразились и пришли вместе, образовав общую «кашу» - «кучу»).
Для вытаскивания волн разных частот из их общей кучи с давних времён используются ряды Фурье:
http://akostina76.ucoz.ru/blog/2017-02-22-3882
Проблема только в том, что в программу его засунуть легко, а вот сделать микросхему, которая что-то подобное делает, очень сложно. Скорее всего, поэтому все эти датчики только расстояния измеряют.
Но если подключить к датчику программируемый микроконтроллер и использовать его как контроллер устройства, то можно всю это работу переложить на него и уже с него брать итоговую информацию о скоростях всего, от чего сигнал в глубине отразился.
|