Расскажу о простом и недорогом способе обеспечить радиосвязь с моделью/роботом.
Года два назад я познакомился с модулями беспроводной связи nrf24l01.
Года два назад я познакомился с модулями беспроводной связи nrf24l01.
Есть альтернативы данному модулю - A7105, либо вообще esp8266. Но так получилось, что первыми мне в руки попались именно nrf. Возможности модуля можно посмотреть в интернете, но реально удалось добиться следующего: радиообмен в пределах комнаты, пакет в пределах 16 байт, не меньше 10мсек на одну передачу.
После некоторой возни удалось запустить пару модулей на двух ардуинах. Модуль оказался довольно капризным, перепробовал все известные рекомендации из инета и разные библиотеки (отсюда) однако, при соблюдении некоторых рекомендаций и использовании библиотеки Mirf модули заработали. Рекомендации оказались простые - ставить конденсатор на питание и искать незанятый радиоканал. Лучше всего показали себя "электролиты" на 2 мкФ.
Mirf, кстати, завел модули "из коробки", без правок и танцев с бубном.
Следующим этапом был порт библиотеки под stm32, там уже удалось развернуться, применить прерывание от модуля и избавиться от такой неприятной вещи, как поллинг во время передачи пакета.
Собственно, вскоре возникла идея об использовании модуля в качестве дополнительного модема для передачи управляющих команд и снятия телеметрии. Особенно после того, как был найден модуль nrf24 + PA + LnA со встроенным усилителем.
На просторах инета обещают дальность до 1000 метров, проверить реальную дальность пока не представлялось возможным - все еще впереди. 100 метров держит уверенно в обе стороны.
Что использовалось - в связи с неумением делать печатки и их распаивать использовал ардуину и макетки. Ардуина - Uno, благо их везде полно и возможностей платы вполне хватает для использования, как самостоятельного устройства, так и в качестве терминала для программы на ПК. Вот пример (nrf.ino) для работы с модулем в режиме терминала. Подключение описано в заголовке скетча.
Ради интереса быстренько сделал 4-х канальный пульт управления, из 2 джойстиков, модуля и ардуины. Это был опытный образец, поэтому внешним видом не заморачивался. Скетч тут (pult.ino).
В качестве приемника - другой модуль и макетка на stm.
На выходах приемника - обычные PWM каналы и телеметрия обратно.
В общем, можно использовать дополнительный канал связи, причем без боязни конфликтов с радиоаппаратурой 2,4G. Главное - задрать повыше номер канала и работать в режиме "запрос-ответ". А, учитывая то, что модуль работает в пакетном режиме, не требуется руками сделать за процессом передачи/приема пакета. Таким образом, можно передать любое количество данных (в разумных пределах)
После некоторой возни удалось запустить пару модулей на двух ардуинах. Модуль оказался довольно капризным, перепробовал все известные рекомендации из инета и разные библиотеки (отсюда) однако, при соблюдении некоторых рекомендаций и использовании библиотеки Mirf модули заработали. Рекомендации оказались простые - ставить конденсатор на питание и искать незанятый радиоканал. Лучше всего показали себя "электролиты" на 2 мкФ.
Mirf, кстати, завел модули "из коробки", без правок и танцев с бубном.
Следующим этапом был порт библиотеки под stm32, там уже удалось развернуться, применить прерывание от модуля и избавиться от такой неприятной вещи, как поллинг во время передачи пакета.
Собственно, вскоре возникла идея об использовании модуля в качестве дополнительного модема для передачи управляющих команд и снятия телеметрии. Особенно после того, как был найден модуль nrf24 + PA + LnA со встроенным усилителем.
На просторах инета обещают дальность до 1000 метров, проверить реальную дальность пока не представлялось возможным - все еще впереди. 100 метров держит уверенно в обе стороны.
Что использовалось - в связи с неумением делать печатки и их распаивать использовал ардуину и макетки. Ардуина - Uno, благо их везде полно и возможностей платы вполне хватает для использования, как самостоятельного устройства, так и в качестве терминала для программы на ПК. Вот пример (nrf.ino) для работы с модулем в режиме терминала. Подключение описано в заголовке скетча.
Ради интереса быстренько сделал 4-х канальный пульт управления, из 2 джойстиков, модуля и ардуины. Это был опытный образец, поэтому внешним видом не заморачивался. Скетч тут (pult.ino).
В качестве приемника - другой модуль и макетка на stm.
На выходах приемника - обычные PWM каналы и телеметрия обратно.
В общем, можно использовать дополнительный канал связи, причем без боязни конфликтов с радиоаппаратурой 2,4G. Главное - задрать повыше номер канала и работать в режиме "запрос-ответ". А, учитывая то, что модуль работает в пакетном режиме, не требуется руками сделать за процессом передачи/приема пакета. Таким образом, можно передать любое количество данных (в разумных пределах)
Частота поступления данных на приемник скажем в 40 Гц нормальная будет для управления квадракоптером, или мало ?
P.S. заводской аппаратуры нету и не держал в руках, как там приемник с передатчиком определяются на каком канале общаться? Кажется это "биндинг" называется?
Я, когда планировал делать аппу, разделил каналы по степени важности и разделил пакет на подпакеты, т.к. смысла постоянно передавать одно и то же значение нет.
В следующей статье постараюсь подробно описать процесс разработки на stm32 на примере создания простейшей аппы, с фотками, скринами и кодом.
Тоже думал о пульте для алулы на два канала, но как микшировать так и не разобрался!
В принципе, там все просто - настраивается таймер на 4 PWM выхода и задаются начальные значения пульсов в 1 мс из 50 (1 мс из 2 мс для режима fast pwm для blheli). После этого при приходе пакета выбираются данные и суются в таймер.
думаю халявный, малогабаритный передатчик и приемник для близких ратояний заинтересует публику!
Предлагаю продвинутым программистам составить простой вариант кода для модельных кружков! Хотя бы на 4 канала!
Сам делал попытки создать подобное. Но пока на 2 канала. Имеются проблемы с питанием NRF модуля (есть вероятность потери сигнала), но в этот момент приемник продолжает держать сервы в запомнившемся положении. А если не серва а движок то модель улетит и не поймаешь. А если в толпу влететь.......! А для планера впринципе неплохо. И если разобраться с миксами то можно делать слоперы и подобное, типа алулы. Близко, низко и недорого! для кружков то что надо!