Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Игрушки

Радиоуправлениe на модулях ZETA

Автор: Сергей Безруков (aka Ser60) и Jennifer Vang, sergeilb60@mail.ru
Опубликовано 31.10.2016.
Создано при помощи КотоРед.

Судя по форуму на нашем сайте, на протяжении ряда лет тема радиоуправления вызывает неугасимый интерес у сообщества. Я рассказал об этом моей студентке Jenni, в результате чего и было принято решение опубликовать здесь её проект.

Целью проекта было изготовление радио-управляемой колёсной модели. Jenni выбрала 2-моторную 3-колёсную платформу [1], позволяющую легко, в плане механики, огранизовать её движение в обоих направлениях и повороты путём вращения приводов колёс в разные стороны. Таким образом, мы определились в списке следующих пяти команд радио-управления: вперёд, назад, вправо, влево, и стоп. Jenni хотела ещё предусмотреть режим автоматического обхода препятствий моделью, для чего на шасси были установлены инфракрасные светодиоды и приёмники. Однако, из-за недостатка времени во время семестра эта опция осталась нереализованной. Собранная модель показана справа.

 

Первое, с чего начинают в подобных проектах – это выбор радиотракта. Причём в целях упрощения дизайна и сокращения сроков разработки многие сегодня используют промышленные радио-модули. Одни из лучших известных мне радио-модулей для суб-гигагерцового диапазона основаны на чипах производства Silicon Labs и Texas Instruments. У меня здесь имеются статьи по работе с этими чипами [2]. К сожалению, модули на основе чипов этих фирм выпускаются только сторонними производителями, в число которых входит известная китайская фирма HopeRF. Каково-же было наше удивление, когда мы обнаружили модули семейства ZETA английской фирмы RF Solutions, основанные на чипах трансиверов Si4455 семейства EZRadio® компании Silicon Labs. Что ещё более удивительно – оказалось, что об этих модулях не знал даже мой контакт с фирмы. Поскольку нам эти модули были проще и быстрее доступны через DigiKey чем китайские, мы остановились на них.

Передатчик

Работать с модулем ZETA в режиме передатчика очень просто. По подаче питания в него следует загрузить конфигурацию чипа. Мы использовали следующие параметры модема: частота 915 MHz, модуляция 2-FSK с девиацией 30 KHz, скорость передачи 2.4 Kbps, длины преамбулы и синхрослова по 4 байта, длина CRC - 2 байта. Отмечу, что подобные модули выпускаются фирмой и для диапазонов 433 и 868 MHz. Модуль общается с МК по интерфейсу SPI. В качестве МК использовалась NXP модель семейства Kinetis архитектуры ARM Cortex-M0+. На выводах PTA3, PTA4, и PTB1 – PTB5 задействованы внутренние подтягивающие резисторы.

Для отсылки данных следует сформировать пакет, загрузить его в FIFO трансивера и подать в чип команду передачи. При этом обработчик пакетов внутри чипа автоматически добавит к данным преамбулу, синхрослово, а также вычислит и добавит байты CRC для проверки на ошибки передачи на приёмном конце. По окончании передачи пакета трансивер, согласно конфигурации, перейдёт в режим сна с суб-микроамперным потреблением. Проще не бывает, см. подробнее в [2]. Длина передаваемого пакета данных 4 байта. Первый байт – это длина информационной части пакета, второй и третий байты – ID передатчика и приёмника (у нас 0xAA и 0xBB, соответственно). Наконец, последний байт – это код команды модели: 1=вперёд, 2=влево, 3=назад, 4=вправо, 5=стоп. Кнопки для подачи этих команд подключены, соответственно, к выводам 12, 11, 13, 4, и 3 МК.

Для наших целей по нажатии любой из кнопок соответствующая команда передаётся только один раз. Для повторной передачи команды кнопку следует отпустить и заново нажать. При одновременном нажатии нескольких кнопок передаётся лишь одна команда, соответствующая последней нажатой кнопке в порядке сканирования, указанном выше. Факт нажатия остальных кнопок при этом игнорируется. Для реализации этого функционала МК пробуждается каждые 30 мс и выполняет алгоритм подавления дребезга кнопок. Кнопка считается только что нажатой, если это её новое состояние подтвердилось на протяжении двух последовательных периодов сканирования. Таким образом, при выбранных параметрах тракта, минимальный период передачи пакетов составляет 60 мс, в то время как сама передача пакета модулем занимает около 46 мс. На протяжении этого времени токопотребление передатчика модуля составляет порядка 22 мА при мощности +13 dBm (20 mW). МК тактируется от внутреннего генератора частотой 8 MHz и работает в режиме VLPR (Very Low-Power Run) с потреблением около 300 мкА. В режиме сна с работаюшим генератором, что необходимо для автономной работы модуля SPI, между обработкой нажатия кнопок его токопотребление снижается до 200 мкА. В целом, при подаче команд с периодом 1 сек среднее токопотребление всего передатчика не превышает 2 мА. Передатчик смонтирован на односторонней плате размером 74×43 мм, файл для Eagle которой находится в приложении. В качестве антенны использован отрезок одножильного провода диаметром 1мм и длиной 82 мм, что соответствует 1/4 длины волны для частоты 915 MHz. Питание передатчика производится от двух батарей типоразмера ААA. Размеры платы соответствуют имеющемуся в распоряжении пластиковому корпусу. В правой части платы установлен выключатель питания ползункового типа (на схеме не показан).

 

Приёмник

Схема приёмника выполнена на таком-же модуле, как и передатчик. Как я уже упоминал, для работы схемы только в режиме радиоуправления из неё можно исключить IR-приёмники IR1 и IR2 с сопутствующими элементами, а также транзистор Q1 с подключёнными к нему светодиодами. Эти элементы остались в проекте незадействованными. Однако затвор транзистора Q1 подключён к выводу одного из формирователей ШИМ в МК, благодаря чему легко может быть сформирован сигнал частотой, соответствующей рабочей частоте IR-приёмников.

В отличии от передатчика, соединение пина 5 модуля с МК в данном случае существенно. Прерывание по падающему уровню сигнала на этом пине, которое, согласно конфигурации приёмника, происходит после принятия им пакета данных, пробуждает МК из сна для проверки пакета и выполнения принятой команды. Проверка принятого пакета в программе сводится к проверке совпадения ID передатчика и приёмника с 0xAA и 0xBB, соответственно. Проверка CRC пакета производится радио-модулем автоматически.

Управление моторами модели осуществляется с помощью драйвера IC3. На его выводы 9 и 16 подаётся сигнал ШИМ, генерируемый МК на каналах 0 и 1 таймера TPM0. Частота ШИМ около 976 Hz при 12-битном разрешении. Скважность обоих каналов ШИМ установлена постоянной и равной 50%. Однако, в программе имеется возможность независимой установки скважности и тем самым компенсации разброса характеристик моторов при движении модели по прямой. При получении команды СТОП, а также сразу по включении приёмника, генерация ШИМ не производится. Управление направлением вращения моторов осуществляется логическими уровнями сигналов на выводах 10 и 15 драйвера IC3. Применение драйвера с выходным каскадом на КМОП транзисторах предотвращает его нагрев.

Детали приёмника смонтированы на односторонней печатной плате размером 61×39 мм. В качестве антенны также использован отрезок одножильного провода длиной 82 мм. Питание схемы производится от четырёх элементов типоразмера АА, коммутируемых ползунковым выключателем в левом нижнем углу платы. Потребление схемы в режиме СТОП около 12 мА при постоянно работающим на приём модуле. Батарея и моторы подключены к плате через клемники с винтами на её обратной стороне. Этим достигается удобство переустановки платы в случае необходимости на другое шасси без паяльника. Конфигурация радио-модулей произведена в системе WDS, доступной с вебсайта фирмы Silicon Labs. Загрузка кода в МК в приёмнике и передатчике осуществляется через разъёмы SV1 на схеме. Программы отлажены в среде Keil µVision, их исходные коды прилагаются.

Тест на максимальную дальность работы управления не производился потому, что после где-то 100м модель уже плохо различима на местности невооружённым глазом. При таком удалении от передатчика система работала устойчиво, ложных команд не наблюдалось. Принимая во внимание данные тестов в [2], следует ожидать надёжную работоспособность системы на расстоянии в несколько сотен метров.

Литература

1. 152984 DIY 2 Gear Motor Smart Car Chassis Kit
2. Радиомодули для беспроводной передачи данных. Часть 2.

 

 

 


Файлы:
Файлы проекта


Все вопросы в Форум.


ID: 2396

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

19 4 4