Оглавление:

FM-радио с RDS (радиотекст), базой для управления и зарядки BT: 5 шагов
FM-радио с RDS (радиотекст), базой для управления и зарядки BT: 5 шагов

Видео: FM-радио с RDS (радиотекст), базой для управления и зарядки BT: 5 шагов

Видео: FM-радио с RDS (радиотекст), базой для управления и зарядки BT: 5 шагов
Видео: "Скрытые послания" в FM-сигнале или как работает RDS. 2024, Ноябрь
Anonim
FM-радио с RDS (радиотекст), управлением и зарядной базой BT
FM-радио с RDS (радиотекст), управлением и зарядной базой BT
FM-радио с RDS (радиотекст), управлением и зарядной базой BT
FM-радио с RDS (радиотекст), управлением и зарядной базой BT

Bonjour, Это мои вторые "Instructables". Поскольку я люблю делать не очень полезные вещи, вот мой последний проект:

Это FM-радио с радиотекстом и зарядной базой, за которым можно следить через Bluetooth и приложение для Android.

Поэтому я представлю вам часть Arduino, часть Radio Text, а затем часть изобретателя MIT App (это единственный способ, которым я достаточно опытен для создания и Android-приложения)

При напряжении питания 10; 8 В с источником переменного тока и 9,6 В с батареей максимальная мощность составляет 2 x 1,5 / 1,25 Вт (среднеквадратичное значение), что достаточно широко.

Среднеквадратичная мощность (среднеквадратичное значение) - это реальная мощность, не похожая на другие большие числа, которые продаются как музыка в ваттах, пиковая мощность или что-то еще)

Я думаю, что 1,5 Вт RMS можно продать как 8 Вт в некоторых магазинах !!!!!!

Сначала необходимые компоненты:

Основная плата:

1x Arduino Nano

1x FM-радиомодуль SI4703 от Sparkfun или аналог (питание 5 В и 3,3 В I2C с 3-полюсным разъемом, который можно использовать в качестве антенны)

1x HC-06 Bluetooth-модуль (предупреждение, что новая версия программного обеспечения 3.0 имеет совершенно разные команды (я добавил несколько комментариев в код).

1x 4-канальный сдвигатель уровня 3,3 5 В

1x MC7805 5v преобразователь постоянного тока

1x 2200 мкФ 25 В конденсатор

2x 1N5404 3 диода усилителя

2x 2N2222 транзистора

1x резистор 1 кОм

1x 47 Ом резистор

2 резистора 3,3 кОм (для подтягивания шины I2C)

3 резистора 330 Ом (для светодиодов)

2 резистора по 6,8 кОм

1x резистор 3,9 кОм

Передняя панель

1x 20X4 LCD шина I2C

10 резисторов по 680 Ом

1x красный светодиод (зеленого у меня больше не было !!) для блока питания

1x желтый светодиод для режима работы от батареи

1x синий светодиод для подключения BT

4x переключателя (ON) -OFF- (ON) (как у электромобиля-стеклоподъемника)

2 кнопки

1x переключатель ВКЛ / ВЫКЛ

Другие компоненты для радио:

2x 100 Вт 10 см 8 Ом HP

1x 1 м выдвижная антенна (около 75 см - хорошая длина для FM в Европе и США)

1x телефонный штекер, который я использовал для контактов для зарядной базы

1x 1N5404, диод 3 А (на контакте батареи, чтобы избежать дыма в случае беспорядка с землей или контактом 12 В)

1x 2X20 Вт усилитель мощности (подойдет любой стереоусилитель до 12 В) на основе TDA2020, купленного за 4 евро

1x 8XAA аккумуляторный соединитель (минимум 9,6 В)

Фанера толщиной 10 и 4 мм для коробки.

База для зарядки:

1x 12V 3Amp Блок питания

1x маленький 3-х разрядный / 3-х проводный вольтметр

3 контакта (на телефонной вилке)

1x 1N5404, диод 3 А (на контакте 12 В)

2 рычажных переключателя (для включения источника переменного тока, когда радиостанция находится на зарядной базе)

1x переключатель ВКЛ / ВЫКЛ (для отключения зарядной базы при необходимости)

Фанера толщиной 10 и 4 мм для основания.

Всего, включая фанеру, не более 70 €.

Шаг 1: Радиочасть 4703

Во-первых, модификация:

Модуль должен использовать кабель гарнитуры в качестве антенны, в моем проекте это бесполезно, поэтому сначала нам нужно будет внести небольшую модификацию, чтобы подключить и внешнюю антенну.

В этом модуле 3-полюсное заземление разъема подключено не напрямую к земле, а через индуктивность (для остановки частот FM) и конденсатор для подключения частот FM к антенному входу SI4703.

Таким образом, лучший способ - напрямую подключить антенну к заземляющему контакту разъема и припаять два кабеля для аудиовыхода.

Изображение
Изображение

Чтобы предотвратить любые шумы в аудио (особенно от Bluetooth), я поместил FM-модуль в небольшую пластиковую коробку, экранированную медной лентой, подключенной к земле.

Изображение
Изображение

Протокол RDS / Radio Text:

Во-первых, я хочу поблагодарить Натана Зайдла, поскольку меня полностью вдохновила его программа "TEST_FM" от июня 2011 года.

И, по договоренности, я буду очень рад заплатить ему пиво, если на днях он заблудится в моей маленькой деревушке в глухой части Бретани !!

Я использовал много его программ, так как я не хотел использовать существующие библиотеки, которые слишком велики для скудного пространства памяти Nano, а также потому, что всегда лучше углубиться в возможности компонента, погрузившись непосредственно в регистры

Основная модификация, которую я сделал, - это опрос RDS

Я воспользовался возможностью вызвать прерывание на выводе GPI02, установив бит RDSIEN и значение GPIO2 на 01

Это вызовет прерывание на контакте 3 нано

Это предотвращает опрос регистра RDS, поскольку он запускает программу радиотекста только тогда, когда группа радиотекста из 4 символов доступна без ошибок (режим без подробностей)

Чтобы получить полный радиотекст, мы должны собрать не более 16 блоков по 4 символа (регистры RDSC / RDSB группы 2A или 2B). Я вложил в программу много информации, чтобы объяснить, что я сделал.

Вот описание регистров данных для радиотекста (RDSSA / RDSC)

Изображение
Изображение

в регистре RDSSB (блок 2)

Значение 4 в A3 / 0 указывает (текстовая группа)

B0 обозначает текст A (64 символа) или B (32 символа) (никогда не видел, чтобы текст B использовался ………..)

PT0 до PT4 - это индекс группы из 4 символов (от 0 до 15).

PT5 следует использовать как текстовый индикатор A / B (что означает «это новый текст»), но он не всегда используется таким образом в зависимости от радиостанции, поэтому его нельзя использовать для текстовой радиопрограммы.

4 символа радиотекста в RDSSC и RDSSD (блок 3 и 4)

Советую прочитать очень интересный документ по протоколу RDS в SI4703 => AN243 от Silicon labs

Я также сбрасываю бит SKMODE в регистре POWERCFG (см. Техническое описание SI4703), чтобы оставаться в диапазоне частот при поиске каналов.

Чтение даташетов очень поможет понять код и все обработки регистров.

Шаг 2: Зарядная база

Зарядная база
Зарядная база
Зарядная база
Зарядная база
Зарядная база
Зарядная база

Не особо много чего добавить

Картинки могут говорить лучше.

Только что добавил диод 1N5404 на контакт 12 вольт

1) во избежание проблем в случае касания контактом батареи контакта 12 вольт при установке магнитолы на базу (но этого не произошло)

2) понизить уровень напряжения до 10,8 В (на материнской плате также есть диод), так как MC7805 может немного нагреться при переходе с 12 В на 5 В с током 1 А (я прикрутил железку в качестве радиатора). 7805)

Я добавил небольшой вольтметр 3х7 сегментов для индикации заряда батареи.

Это устройство имеет 3 провода для снижения потребления (более 1 Мегаом на измерительном проводе), что позволяет держать радиостанцию в выключенном состоянии в течение длительного времени, не разряжая аккумулятор.

Изображение
Изображение

2 рычажных переключателя используются для отключения питания переменного тока, когда радиостанция отключена от базы (чтобы избежать попадания 12 В на контакты)

Изображение
Изображение

Коробка сделана из фанеры (перед росписью на картинке) Представляю, как сделать красивую коробку, ведь моя не очень сексуальная !!!!!

Я был очень удивлен, но зарядная база работает нормально, и я никогда не курил, когда садил на нее радиостанцию ………….

Шаг 3: Коробка

Коробка
Коробка
Коробка
Коробка
Коробка
Коробка
Коробка
Коробка

Думаю, каждый должен делать то, что хочет, следуя своим артистическим способностям !!!!!

Во всяком случае, я вскоре объясню, как я мог построить что-то, что ужасно похоже на набор инструментов.

Спереди и сзади вырезаны 4 мм фанера 15х45 см.

верх и низ - фанера 10 мм 15х45 см.

Боковые стороны и 2 внутренние перегородки (2 2 места для HP и комплектующие в средней) из фанеры 10 мм 13x13 см.

На передней панели я сделал 2 отверстия x10 см для HP и квадратное отверстие 14x14, чтобы вставить органическое стекло 15x15 2 мм, которое я покрасил в черный цвет (добавив после покраски прозрачную наклейку с печатью, но она не так читаема из-за черного цвет сзади)

Сверху проделал 2 дырочки:

один для потенциометра усилителя мощности (для регулировки уровня при необходимости), а также в качестве тепловой мощности

другой для антенны

на задней панели проделал 2 дырочки:

Один для USB-разъема (подключается непосредственно к nano)

Один 16 мм для воздушного охлаждения (14 мм отверстие потенциометра усилителя мощности соответствует верхней выходной мощности воздушного охлаждения)

ручка изготовлена из медной трубки диаметром 12 мм, окрашенной в черный цвет

Все компоненты на картинке выше находятся в центральном отсеке (позже мне пришлось поместить батареи в левый отсек HP, потому что он был слишком близко к модулю HC06 BT в основном отсеке)

Вот и все

Конечно должно быть что-то более сексуальное !!!!!

Шаг 4: Часть Arduino (схемы и код)

Я постарался разместить как можно больше информации в комментариях к программе.

Дополнительная информация

Процедура Decode_TXT используется как процедурой Bluetooth, так и процедурой переключения.

некоторые ключевые слова используются обеими процедурами

v + => для увеличения громкости

v- => опускать

f + => для увеличения частоты шага 100 кГц

f- => уменьшить

su + => искать вверх

sd - => искать вниз

prefu => увеличить предварительно выбранный номер канала

prefd => уменьшение

hello => отправлено приложением Android во время подключения Bluetooth, код отправляет обратно статус радио

пока => отправляется приложением, когда BT отключается

pow => отправлено по радио в приложение в режиме питания (на зарядной базе)

bat => в режиме работы от батареи

lb => отправляется, когда уровень заряда батареи слишком низкий (около 8 вольт)

Связь по Bluetooth обеспечивается контуром управления:

Каждый раз, когда FM-радио отправляет информацию, запускается таймер, ожидающий ответа "ОК" от приложения для Android.

в случае 3 ошибок (истекло время таймера) связь по BT прерывается Радио. (это также сокращает ссылку на стороне Android)

С другой стороны

Когда приложение отправляет команду, оно ждет ответа от радио, чтобы отправить другую команду.

Процедура get_RT запускается при установке флага RDS (после прерывания на выводе 3)

вот код (ссылка на GITHUB)

Схемы:

Основная плата FM-радио (на самом деле SI4703 находится отдельно в экранированном корпусе):

Изображение
Изображение

Передняя панель:

Изображение
Изображение

Зарядная база:

Изображение
Изображение

Ссылки на файлы Fritzing:

Основная плата FR RADIO

Передняя панель

База для зарядки

Шаг 5. Приложение для Android

Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android

Сделано с изобретателем APP

вот ссылки на GitHub

Радио FM aia

Android APK

В приложении используются 2 таймера:

1) для связи по bluetooth (100 мс)

2) для мигания светодиода батареи при нагрузке около 8 В (1000 мс)

Впервые вам придется выполнить сопряжение модуля HC06 со своим смартфоном или планшетом.

Я использую TinyDB для сохранения BT-адреса модуля HC06, при первом подключении кнопка BT-адреса будет включена, и вам нужно будет выбрать HC06 в списке (со своей стороны, я переименовал модуль HC06 в FM_RADIO)

В приложении я не всегда использовал проценты для размера элемента, поэтому в зависимости от смартфона могут возникнуть такие проблемы.

У меня Galaxy Note 3, так что экран довольно большой ……..

Итак, я хорошо провел время, открывая для себя этот маленький, но очень эффективный SI4703.

И получил много удовольствия от написания этих инструкций

До моего следующего проекта

До свидания!!!

Рекомендуемые: