Радиоприемник на RDA5807, Arduino Nano и … DeepSeek

Практически все функциональные возможности микросхемы RDA5807M реализованы в примерах ардуиновских библиотек Radio от Matthias Hertel и PU2CLR_RDA5807 от Ricardo Lima Caratti. Обе ищутся и устанавливаются в IDE.

Меня интересовала в основном реализация RDS, но не устраивало большое количество кнопок управления (не менее 4-х), так как в основном я ориентировался на управление энкодером. Просмотрев все примеры, я обратился к поиску радиоприемников, ориентируясь только на те модули, которые были у меня: модуль RDA5807M c кварцем, OLED SSD1306 128х64 синий с желтой верхней полосой, энкодер TZT и Arduino Nano (далее МК). Варианты с дополнительными кнопками, как в примерах библиотек, не рассматривались. В результате я остановился на двух вариантах. Первый.

Схемы подключения модулей приемника и дисплея стандартные — это шина I2C, организованная на выводах А4 и А5 МК; D2, D3, D4 для энкодера. Для написания кода я использовал в основном DeepSeek (далее просто чат-бот). Grok и YandexGPT применялясь от случая к случаю, об этом ниже. Выбор был основан в основном на доступности без бальных танцев из-за блокировок. Правда, совсем без танцев не обошлось, а решилось совсем просто. Ну, вы поняли, о чем речь.

Описал первое задание и боты взялись за дело. Конечно, с первого раза ничего путного не получилось и со второго тоже. Дело пошло лучше, когда я стал использовать диалоги, подбрасывая в диалог сообщения об ошибках компиляции. В результате получил более-менее работающий код, но с одним недостатком. На дисплей не выводилась кириллица. Чат-боты печатают очередную итерацию, но становится только хуже. В какой-то момент Arduino IDE написала мне, что для шрифтов не хватает памяти МК. Тут я понял, что надо остановиться — дело зашло в тупик.

Читать далее
2