Еще одно FM радио на RDA5807 под управлением Ардуино
На эту тему было много толковых публикаций, однако я сделал все по-своему, вдобавок создал трехмерную модель корпуса с практичным и оригинальным дизайном. В результате получился вполне законченный проект, достаточно простой для повторения начинающим любителем электроники. Счастливый владелец 3D принтера сможет похвастаться красивой самоделкой, способной конкурировать с фабричной продукцией.
Хочешь разорить друга — подари ему фотоаппарат. Хочешь заставить раскошелиться радиолюбителя — подкинь ему ссылку на китайский модуль RDA5807.
Крохотный квадратик размером около сантиметра и ценой около двадцати рублей. На удивление, внутри вполне приличный цифровой радиоприемник с автопоиском радиостанций и умеющий читать RDS.
Скажу честно: обольщаться на дешевизну модуля RDA5807 не стоит, чтоб запустить эту прелесть, нужно все остальное: ардуинка, усилитель с динамиками, и маленький дисплейчик для большой красоты. Вместо батареек просится аккумулятор, значит добавляем в проект контроллер заряда от USB. Скетч можно отладить на макетной плате, но для готового устройства нужен приличный корпус. Внешнее оформление — вопрос очень творческий, но к нам на помощь приходит технология 3D печати.
Стараемся сделать все максимально просто и дешево. Ардуинку берем такую:
дисплей — вот такой:
питание от аккумулятора 18650, а для него такой вот контроллер заряда.
Усилитель низкой частоты — стандартный элемент для очень многих проектов, а потому имеем в запасе вот такие самодельные модули.
Полная электрическая схема получается вот такой.
Вместо дефицитной советской микросхемы К174УН14 применяем доступную TDA2003. Диод D1 нужен, чтобы при максимальном заряде аккумулятора напряжение на модуле приемника оставалось ниже четырех вольт. Надо заметить, RDA5807 не перегорает даже от пяти вольт, но на повышенном напряжении либо вообще не работает, либо ловит всякий шум вместо радиостанций. Для него четыре вольта — уже многовато, по очень хорошему надо бы питать через кренку на 3.3 вольта.
При напряжении ниже трех вольт устройство перестает реагировать на кнопки, поскольку затыкается ардуинка. Но даже при 2.5 вольт RDA5807 стойко держит прежнюю частоту и качество приема не ухудшается.
Если подключить аккумулятор к контроллеру заряда напрямую, то при выключенном USB зарядник превращается в нагрузку, вытягивая из аккумулятора ток примерно в 2 микроампера. Много это или мало — не знаю, но сам факт просто возмутительный. В качестве решения ставим герконовое реле K1, которое при подключении USB замыкает контакты K1.1.
Релюшка самодельная, изготавливается путем намотки в навал эмалированного провода диаметром не более 0,1 мм непосредственно на корпус геркона. Чем больше провода удастся намотать, и чем тоньше он будет — тем меньше будет потребляемый ток. Намотать слишком много, так, чтобы не хватало пяти вольт для срабатывания, адекватный человек не сможет, здравый смысл заставит вовремя остановиться.
Как китайцы крепят контроллер заряда, — не знаю. Могу предложить припереть винтиками с боков.
Чтоб было видно индикацию, пришлось заменить планарный светодиод на обыкновенный. Можно было бы сделать световод из толстой рыболовной лески или прозрачного прутка для 3D принтера, но ничего, сойдет и так.
Теперь пишем скетч, библиотеки берем стандартные SSD1306Ascii для дисплея и RDA5807M для радио.
Оказалось, в строке RDS есть хитрости. Там три блока: текущее время, имя радиостанции и собственно сама информационная строка. Я так и не понял, то ли в библиотеке кривой парсер, то ли радиостанция как то не так транслирует текущее время. Вразумительные цифры там появляются далеко не всегда. В результате первый блок был отброшен. А если читать саму строку, выясняется, что там ничего нет, кроме телефонов рекламной службы. Пришлось оставить только имя радиостанции, никакой другой пользы из строки RDS извлечь не удалось. Кроме названия радио, дисплей показывает силу сигнала, заряд аккумулятора и рабочую частоту.
Планировал делать память для рабочих частот, но лень матушка меня остановила. Не захотел я делать много кнопок, оставил всего две: одну для запуска автопоиска, другую для регулировки громкости. С одной кнопки поиск идет по кругу, потому иногда для выбора нужной станции приходится пробегать весь диапазон. К счастью, у нас не слишком много передатчиков, чтобы такой серфинг сильно напрягал.
Регулировка громкости происходит так: при первом нажатии уровень сбрасывается на самый минимум, и далее при каждом последующем нажатии увеличивается на одну ступень. Если возникает пауза более двух секунд — очередное нажатие считается первым. Таким образом, за все про все две кнопки.
Два динамика, смотрящие в противоположные стороны и включенные противофазно, орут как надо: на самом первом уровне громкости вполне нормально слушать. Если немного добавить — услышат даже соседи.
Как люди жили без 3D принтера я помню, но это была не жизнь, а кошмарный сон. В наши дни корпус можно просто распечатать. Разве что, его надо сперва нарисовать. Но это намного проще, чем разворачивать полномасштабные слесарные работы. Могу поделиться своими моделями, замечу только, что они рассчитаны для динамиков 3-ГДШ-8. Все материалы проекта выложены на GitHub.
Я не маркетолог, но не мог не заметить, насколько мощно модуль RDA5807 стимулирует продажи.
Все происходит за счет цепочки расходов, каждый из которых кажется сущей мелочью. Ардуинка за 120 руб, но только если доставка Super Economy. Иными словами, посылка не отслеживаемая и срок может растянуться на три месяца Хочешь получить трек номер и получить быстрее — заплати побольше. Дисплейчик — тоже 120 рублей — и снова Super Economy. Контроллер заряда совсем дешевый, но продается только пачками, еще сто рублей. Самое дорогое — аккумулятор, разброс цен широкий, но неизбежно более двухсот рублей. Усилитель можно купить готовым модулем, а можно собирать из компонентов самому. В любом случае меньше сотни не получается. Не забываем про динамики — их два, значит дважды по сто рублей.
В моем случае корпус получился очень дешевым. На печать ушло около 40 метров прутка ABS, это на самом деле не так много. Трудно рассчитать, сколько это в деньгах, но явно пустяки. А если решать проблему корпуса как-то иначе, он превратится в самую дорогую деталь, в смысле расходов, и в смысле головной боли.
У радиолюбителя многие компоненты давно лежат в запасе, а потому кажется, будто достались даром. Но если непреклонно складывать все подряд, общая стоимость проекта приближается к тысяче. Готовый китайский приемник, вполне симпатичный, можно купить за пятьсот рублей, другое дело, что информационный повод с этого никакой. Вот почему мы чертим схемы и пишем скетчи. Иначе неинтересно.