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

Соберем радиоуправление на основе Arduino Uno и радиомодуля MX-05v. Этот модуль работает на частоте 443 МГц, что позволяет использовать его под водой (волны в диапазоне 2.4 ГГц не проникают под воду). Потом поставим его на модель Радиоуправляемой Подводной Лодки.

Радиомодуль MX-05V + MX-FS-03V подкупает своей низкой ценой — около 60 рублей за пару. Заявленной дальности связи 20-200 метров хватает для небольших моделей машин или лодок.

Сделаем одноканальную аппаратуду. Для этого нам понадобятся:

  • 2 платы Ардуино для приемника и передатчика
  • комплект радиомодуля MX-05V + MX-FS-03V
  • переменный резистор или джойстик для передатчика
  • рулевая машинка (серва) для приемника

Суть работы программы заключается в следующем:

  • считываем значение с переменного резистора (число от 0 до 1023)
  • переводим это число в 2 байта (16 бит, т.к. 1023 занимает 10 бит и не поместится в один байт)
  • передаем по радио-каналу
  • приемник принимает 2 байта по радио каналу
  • переводит их обратно в число от 0 до 1023
  • передает команду серво-машинке

Принцип работы Arduino доступно описан на разных веб-ресурсах. Мне понравился бесплатный обучающий онлайн курс «Строим роботов и другие устройства на Arduino». Рекомендую.

Загружаем текс программы (скетч) для передатчика и приемников. Кстати, программы надо хранить в разных папках, иначе во время компиляции они будут сливаться в один файл и конфликтовать из-за дублирования функций setup и loop . Как подключить сторонние библиотеки к Arduino описано например тут.

Передатчик

Приемник

И в итоге — ничего не работает! Почему?

Питание

Радиомодуль MX-05V очень простой, из-за этого он очень восприимчив к внешним помехам. И даже такой маленький мотор как в серво-машинке способен нарушить его работу. Для того, чтобы минимизировать влияние электромотора (это касается только колекторных моторов), нужно разделить питание силовой части от приемника. При этом «минус» у них должен быть общий. Итоговая схема подключения приемника выглядит так.

Результат

Данные радиомодуль слишком восприимчив к помехам, и управлять летательной техникой на нем нельзя. Но для игрушечной машинки или лодки вполне подойдет.

Разделочная доска из фанеры.

Светильник, корпус напечатанный на 3D принтере

Давно я уже не делал радио управляемые модели . Решил оживить свой старый проект: Радиоуправлениена Arduino + NRF24L01 + гироскоп GY-521 MPU-6050. Но не просто оживить. Но и доработать. Так как у меня есть 3D принтер . Раму для машины решил напечатать новую. Так же с кодом решил немного поработать. За это время знаний стало больше и на старые проекты уже смотрю совсем по другому. Но обо всем по порядку.

И так напечатал раму для Ардуино машинки . Фото уже выкладывал в группе в ВК. Вот что получилось:

Исходники для печати можете скачать тут.

Установил электронику: Arduino UNO, драйвер L298n, два мотор-редуктора с колесами и конечно же радио модуль nrf24l01.

Все комплектующие лучше покупать в Китае. Например на сайте aliexpress. Потратите в 2 раза меньше. И доставка у недорогих товаров бесплатная или очень маленькая. А если купить у одного проводка. То можно сэкономить на доставке . Для этого берем 1 товар с платной доставкой. А остальные с бесплатной. И вам все положат в одну посылку и ВСЕ отправят платной доставкой. Вот такой небольшой ЛайфХак.

Установить переключатель, который будет включать машинку некуда. Поэтому пришлось приколхозить вот такой кусочек фанеры и установить туда переключатель. В дальнейшем его покрашу, или перенесу переключатель.

Установил 2 бокса под аккумуляторы 18650. Соединил их последовательно и подключил к драйверу L298n. Так как у драйвера есть понижающий стабилизатор на 5 вольт. С соответствующих разъемов мы берм 5в и подключаем Arduino UNO. Но тут есть минус. Нужно следить, чтобы аккумуляторы не пере разрядились. Иначе они выйдут из строя. Остальная часть схемы ни чем не отличается от предыдущего проекта.

Пульт управления берем из предыдущего проекта. Схема подключения пульта управления на Arduino + NRF24L01 + гироскоп GY-521 MPU-6050 . Выглядит вот так.

Скетч тоже без изменений.

Пульт планирую переделывать. Тем более он выглядит не очень красиво.

И ребенок у меня его модернизировал. Проводки пере подключал. Я конечно все восстановил. Но работает немного не так как раньше. Смотрите в видео всем отличие.

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

Переделал код для машинки. В предыдущей версии жаловались, что при включении крутиться одно колесо. Исправил. Проблема была вот в этом куске кода.

При отсутствии связи данные параметры были равны 0. А ноль по коду мы приводим к -100. Вращаем колесо в обратную сторону. Вот от сюда и проблема.

В итоге получилась вот такая машинка на Arduino радио модуле nrf24l01 с пультом управления. Который управляет машиной при наклоне пульта. Не нужно нажимать на кнопки.

Для передатчика понадобятся:

1 x Arduino NANO/UNO/ProMini
1 x Плата защиты BMS для трех Li-ion банок
1 x разъем 5,5 x 2,1 мм
1 x повышающий DC/DC преобразователь XL6009
1 x небольшой понижающий преобразователь LM2596 (о нем скажу отдельно)
3 x 18650 :
2 x джойстики JH-D202X (продаются на али)
2 x тумблер
1 x i2c OLED-экран 0,96 дюйма 128X64
1 x радио модуль NRF24l01 с усилителем и антенной
9 x тактовая кнопка 6 * 6 * 5 мм
Резисторы выводные (смотри схему)

Для приемника понадобятся:

1 х Arduino NANO/UNO/Pro Mini
1 х радио модуль NRF24l01
1 х AMS1117 3,3 В стабилизатор напряжения
30 х PLS гребенки
1 х макетная плата
1 х 10 мкФ конденсатор

Кнопки соединяются между собой резисторами, таким образом по сути выходит небольшая резистивная клавиатура, что позволяет использовать всего один вывод платы ардуино. К потенциометрам джойстиков припаиваются провода, крайние выводы идут на землю и 5 В, средний на соответствующий вывод Arduino. У меня в планах повторить эту схему, уже немного поэкспериментировал и могу сказать, что в коде заложена функция автоматического инвертирования каналов по необходимости, однако я пока не понял, как схема определяет эту самую необходимость. Это я к тому, что так-то инвертирование канала по сути производиться перепаиванием крайних выводов местами. Такие джойстики, на момент написания статьи, продаются на али по цене примерно 7 долларов за штуку, много это или мало решать Вам. Вместо них можно использовать модули джойстиков для ардуино или джойстики от игровых манипуляторов.

По сути джойстик работает как делитель, отклоняя ручку мы меняем напряжение на среднем выводе потенциометра, и в зависимости от этого напряжения ардуино определяет отклонение.
[center] [/center]
Так же подключаются и тумблеры. Тумблеры нужны двухпозиционные, так как канал дискретный и имеет только два значения — 0 или 1, в зависимости от того, к чему притягивается вывод ардуино — к земле или питанию 5 В. При чем обязательно двухпозиционный, если оставить вывод "висеть в воздухе", что было бы при использовании трех позиционного, контроллер не понимает что происходит и значение рандомно скачет то 0, то 1 (по моим опытам). Дополнительные потенциометры можете не ставить, на данный момент они не задействованы. А можете поставить и мониторить страницу источника, возможно автор со временем выложит обновленную прошивку.

Оцените статью
Topsamoe.ru
Добавить комментарий