Простая система передачи звука амплитудной модуляцией ультразвука состоит из передатчика и приёмника. В передатчике Arduino Pro Micro эмулирует звуковую карту с интерфейсом USB и формирует два сигнала: на выходе 5 — звуковой сигнал, который затем очищается от ШИМа RC-фильтром, а на выходе 9 — несущую частоту в 40 кГц. Оба сигнала поступают на однотранзисторный каскад, параллельно нагрузочному резистору которого подключён ультразвуковой преобразователь от дальномера.
В приёмнике такой же ультразвуковой преобразователь превращает акустический сигнал обратно в электрический, далее всё сделано так же, как в радиоприёмнике прямого усиления: УВЧ, детектор и предварительный УНЧ. Усилителем мощности служит стандартный модуль PAM8403.
Чтобы реализовать эмуляцию звуковой карты с интерфейсом USB, потребовалась библиотека LuFA, поэтому вместо Arduino IDE пришлось применить avr-gcc. Для заливки прошивки (лежит здесь) необходимо аппаратно сбросить Arduino, отчего оно на несколько секунд перейдёт в режим USB-загрузчика. За это время надо успеть начать заливку при помощи avrdude.
Для наладки устройства нужно сначала при помощи осциллографа убедиться в отсутствии перемодуляции и ограничения:
Устранив и то и другое уменьшением громкости и подбором резисторов в передатчике, нужно подключить осциллограф к выходу УВЧ приёмника, а в передатчике настроить частоту ШИМ (программно) в диапазоне от 38 до 42 кГц, чтобы она совпала с резонансной частотой преобразователей. Автор рекомендует поэкспериментировать с введением в приёмник системы АРУ, аналогичной применяемой в обычных АМ-радиоприёмниках.
Так всё работает после наладки:
Запрограммировать Arduino обычным способом можно, возложив на прошивку только генерацию несущей, а обойтись вообще без него — реализовав 40-килогерцовый генератор аппаратно. На модулятор при этом можно подавать сразу аудиосигнал, а RC-фильтр становится ненужным.
Автор: Tormoz Edison