Простая система передачи звука амплитудной модуляцией ультразвука состоит из передатчика и приёмника. В передатчике Arduino Pro Micro эмулирует звуковую карту с интерфейсом USB и формирует два сигнала: на выходе 5 — звуковой сигнал, который затем очищается от ШИМа RC-фильтром, а на выходе 9 — несущую частоту в 40 кГц. Оба сигнала поступают на однотранзисторный каскад, параллельно нагрузочному резистору которого подключён ультразвуковой преобразователь от дальномера.


В приёмнике такой же ультразвуковой преобразователь превращает акустический сигнал обратно в электрический, далее всё сделано так же, как в радиоприёмнике прямого усиления: УВЧ, детектор и предварительный УНЧ. Усилителем мощности служит стандартный модуль PAM8403.



Чтобы реализовать эмуляцию звуковой карты с интерфейсом USB, потребовалась библиотека LuFA, поэтому вместо Arduino IDE пришлось применить avr-gcc. Для заливки прошивки (лежит здесь) необходимо аппаратно сбросить Arduino, отчего оно на несколько секунд перейдёт в режим USB-загрузчика. За это время надо успеть начать заливку при помощи avrdude.

Для наладки устройства нужно сначала при помощи осциллографа убедиться в отсутствии перемодуляции и ограничения:



Устранив и то и другое уменьшением громкости и подбором резисторов в передатчике, нужно подключить осциллограф к выходу УВЧ приёмника, а в передатчике настроить частоту ШИМ (программно) в диапазоне от 38 до 42 кГц, чтобы она совпала с резонансной частотой преобразователей. Автор рекомендует поэкспериментировать с введением в приёмник системы АРУ, аналогичной применяемой в обычных АМ-радиоприёмниках.

Так всё работает после наладки:


Запрограммировать Arduino обычным способом можно, возложив на прошивку только генерацию несущей, а обойтись вообще без него — реализовав 40-килогерцовый генератор аппаратно. На модулятор при этом можно подавать сразу аудиосигнал, а RC-фильтр становится ненужным.

Комментарии (23)


  1. REPISOT
    28.04.2019 16:22
    +1

    Схема уровня «бог». Бог издевательства над над схемотехникой. Особенно символ какой-то непонятной ардуины. Что к чему подключать — а кому это важно. Там же есть ардуина.
    Перерисовать схему? А зачем — я жпереводчик. Раз-раз — статья готова.


    1. tormozedison Автор
      28.04.2019 16:38

      А теперь?


  1. ZEvS_Poisk
    28.04.2019 17:58
    +3

    В схеме приемника во втором транзисторе, база без смещения и развязана конденсатором. Такой транзистор, даже если и будет работать, то с адскими искажениями.
    В первом транзисторе, смещение 1 МОм, это тоже многовато, я бы 75 кОм поставил бы.


    1. tormozedison Автор
      28.04.2019 17:59

      Ага, без смещения, странно, что вообще работает, но на видео работает же как-то.


      1. ZEvS_Poisk
        28.04.2019 18:32
        +1

        Я полагаю, что если задать правильный режим транзистору, то будет работать намного лучше. Громче и качественнее. Сейчас, наверняка, воспроизводятся только положительные полуволны. Отрицательные срезаются, таким образом имеется множество четных гармоник. Я думаю, что через видео не так заметно качество.
        Кроме того, интересна полоса передаваемых частот, несущая 40 кГц, а вот какая полоса?
        4кГц? или 5кГц? Но вот качество аналогичное 8кГц и 8 Бит…


        1. mactep3230
          29.04.2019 10:02
          +1

          Отрицательные полуволны все больше запирают транзистор. Утечка через базу не очень большая, непонятно как это вообще может работать


      1. apple01
        28.04.2019 18:46
        +1

        Индийская схемотехника, «как-то работает» :)


    1. mva_vovan
      29.04.2019 10:26
      +1

      Зато диод в «детекторе» всегда открыт))) Схема и работает то благодаря ошибке со смещением второго транзистора — ему приходится быть амплитудным детектором того ада, что к нему приходит.


  1. bugdesigner
    28.04.2019 21:01
    +2

    Я про прямой синтез надеялся почитать…


    1. tormozedison Автор
      29.04.2019 06:31

      Это когда звук получается от биений двух ультразвуковых колебаний, и приёмник не нужен?


      1. bugdesigner
        29.04.2019 06:46
        +1

        Нет, я про DSP. Берем табличный синус, умножаем на передаваемый сигнал и выводим в ЦАП. ЦАП можно типа R-2R соорудить.


  1. Fox_exe
    29.04.2019 00:22
    +1

    Я немого не понял — А как реализована сама «USB-Звуковая»?
    Судя по фотке — там типичная Atmega 328p и на USB порту висит FT232 (Или его китайский аналог), которая является USB-UART преобразователем…

    Используется какойто древний драйвер для COM-звуковой?


    1. tormozedison Автор
      29.04.2019 06:28

      Там ардуиновская прошивка выкинута, написана новая на avr-gcc с применением библиотеки LuFA. Значит, ресурсов и на звуковуху хватило.


      1. Fox_exe
        29.04.2019 10:37
        +1

        Я не про ресурсы, а про то, как эта ардуинка в системе определяется?
        Еслиб её через 3.5mm-jack подключили — то всё понятно (Это не звуковуха, по сути).
        Но в тексте прямо написано — через USB. Значит девайс определяется USB звуковухой.
        Но как это возможно, если у Atmega328 нет аппаратного USB, а тот, что распаян на плате — подключен к FT232 (USB-UART/COM), который уже цепляется к Атмеге через UART_0…


        1. geisha
          29.04.2019 11:50
          +1

          Ответили — 32U4. Собственно, то, что это Arduino Pro micro в самом тексте написано.


    1. ugsm
      29.04.2019 06:52
      +1

      в Pro Micro стоит ATMega32U4


  1. GennPen
    29.04.2019 00:33
    +1

    А зачем в этой системе нужна Ардуина?
    По сути тут она работает только как звуковая карта, которую можно выкинуть и добавить простейший генератор несущей, например на том же 555 таймере.


  1. Gryphon88
    29.04.2019 02:42
    +1

    А можно для совсем тёмных — зачем с практической точки зрения передавать звук ультразвуком?


    1. apple01
      29.04.2019 06:24
      +1

      Возможно для подводной связи, поскольку ультразвук хорошо в воде распространяется.


      1. tormozedison Автор
        29.04.2019 06:32

        Это тоже, но здесь — в чистом виде «because I can» и «just for fun». Вроде физического опыта.


  1. dlinyj
    29.04.2019 11:50
    +1

    Идея зачётная.

    реализовав 40-килогерцовый генератор аппаратно.


    Но почему дорогая ардуино, вместо 555 таймера?


    1. tormozedison Автор
      29.04.2019 12:02

      У 555 ещё и частота не зависит от напряжения питания безо всяких кварцев. А здесь это важно, надо настроить на резонансную частоту преобразователей, и чтобы потом частота генератора не уплывала.


  1. Krysnik
    29.04.2019 14:25
    +1

    Вспоминается, такая тема была в журнале Юный техник, в разделе «патент не выдавать». Тогда там эту идею сильно пропесочили.