Радиоуправление на ардуино своими руками

Добавил пользователь Валентин П.
Обновлено: 09.09.2024

Всем добрый день! Решил сделать радиоуправление (для машинки) на Arduino Pro Mini (Mega168). Принцип такой: передатчик (Pro Mini Mega168) передает 1 байт в котором первые 4 бита - напрвление движения и управление поворотами. В подробности не буду вдаваться - прикреплю скетчи передатчика и приемника - там все расписано. Схема управления в машинке простая:

2 аккумулятора 18650 - от них понижалка LM2596 на 5 вольт - все это питает Ардуинку + серву(повороты) + H-мост моторчика. От LM2596 идет еще понижалка 1117 на 3.3 вольта для питания радиомодуля nrf24l01+.

Схема работает отлично без каких-либо проблем. НО! Надо сделать радиоуправляемой другую машинку. И тут пришлось "изголяться". Машинка типа "Баги", внутреннего пространства почти нет, по этому пришлось вместо 2-х аккумуляторов 18650 ставить один аккумулятор cga103450 (плоский и меньше чем 18650) + повышалку MT3608 на 5 вольт для работы схемы. Еще дно изменение: вместо радиомодуля nrf24l01+ поставил китайскую копию SE8R01. Схема (щелкните для увеличения):

Фото схемы внутри машинки (ногами не пинайте, это пока тестовая сборка) :

На первом фото виднеется слева повышалка, потом идет серва, ардуина и радиомодуль. На втором фото в отсеке для батареек расположился H-мост и аккумулятор.

Если отключить моторчик от H-моста то подобных зависаний нет, но если вместо моторчика поставить хоть какую-то нагрузку (светодиод) то история опять повторяется. Получается что вся беда в H-мосте (когда к нему хоть что-то подключено). Но почему - не понятно. Платку моста снял с машинки. Платка раньше работала без проблем. В чем может быть причина? Из-за чего такой глюк может быть?

Соберем радиоуправление на основе 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
  • передает команду серво-машинке

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

Передатчик

Приемник

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

Питание

Результат

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

СБОРКА СИСТЕМЫ
ПРИСТУПАЕМ К МОНТАЖУ

РАДИОУПРАВЛЕНИЕ НА ARDUINO™

В ДАННОЙ СТАТЬЕ И В ВИДЕО МЫ РАЗБЕРЕМ СБОРКУ ПЕРЕДАТЧИКА НА ARDUINO™ ИСПОЛЬЗУЯ РАДИО МОДУЛЬ NRF24L01+PA+LNA (Nordic Radio Frequency 2.4G) ПРИДЕРЖИВАЙТЕСЬ КАЖДОГО ШАГА И У ВАС ВСЁ ПОЛУЧИТСЯ!

ПЕРЕДАТЧИК

каждый шаг Согласно схемы

РАДИОУПРАВЛЕНИЕ НА ARDUINO, RC ардуино, аппаратура на ардуино nrf2401+, кораблик для рыбалки своими руками, кораблик для прикормки, радиоуправление, аппаратура на arduino nrf2401+, радиоуправление на ардуино, arduino nrf2401+, RC модель своими руками, РС ардуино, РС на ардуино, РУ на ардуино, РС модель своими руками, Модуль nrf2401+pa+lna, аппаратура радиоуправления на nrf2401+, аппаратура на nrf2401,

РАДИОУПРАВЛЕНИЕ НА ARDUINO, RC ардуино, аппаратура на ардуино nrf2401+, кораблик для рыбалки своими руками, кораблик для прикормки, радиоуправление, аппаратура на arduino nrf2401+, радиоуправление на ардуино, arduino nrf2401+, RC модель своими руками, РС ардуино, РС на ардуино, РУ на ардуино, РС модель своими руками, Модуль nrf2401+pa+lna, аппаратура радиоуправления на nrf2401+, аппаратура на nrf2401,

РАДИОУПРАВЛЕНИЕ НА ARDUINO, RC ардуино, аппаратура на ардуино nrf2401+, кораблик для рыбалки своими руками, кораблик для прикормки, радиоуправление, аппаратура на arduino nrf2401+, радиоуправление на ардуино, arduino nrf2401+, RC модель своими руками, РС ардуино, РС на ардуино, РУ на ардуино, РС модель своими руками, Модуль nrf2401+pa+lna, аппаратура радиоуправления на nrf2401+, аппаратура на nrf2401,

РАДИОУПРАВЛЕНИЕ НА ARDUINO, RC ардуино, аппаратура на ардуино nrf2401+, кораблик для рыбалки своими руками, кораблик для прикормки, радиоуправление, аппаратура на arduino nrf2401+, радиоуправление на ардуино, arduino nrf2401+, RC модель своими руками, РС ардуино, РС на ардуино, РУ на ардуино, РС модель своими руками, Модуль nrf2401+pa+lna, аппаратура радиоуправления на nrf2401+, аппаратура на nrf2401,

РАДИОУПРАВЛЕНИЕ НА ARDUINO, RC ардуино, аппаратура на ардуино nrf2401+, кораблик для рыбалки своими руками, кораблик для прикормки, радиоуправление, аппаратура на arduino nrf2401+, радиоуправление на ардуино, arduino nrf2401+, RC модель своими руками, РС ардуино, РС на ардуино, РУ на ардуино, РС модель своими руками, Модуль nrf2401+pa+lna, аппаратура радиоуправления на nrf2401+, аппаратура на nrf2401,

РАДИОУПРАВЛЕНИЕ НА ARDUINO™

В ДАННОЙ СТАТЬЕ И В ВИДЕО МЫ РАЗБЕРЕМ СБОРКУ ПРИЕМНИКА НА ARDUINO™ ИСПОЛЬЗУЯ РАДИО МОДУЛЬ NRF24L01+PA+LNA (Nordic Radio Frequency 2.4G) ПРИДЕРЖИВАЙТЕСЬ КАЖДОГО ШАГА И У ВАС ВСЁ ПОЛУЧИТСЯ!


Всем привет! Это моя первая статья. Хочу рассказать о разработке, сборке и испытании самодельной аппаратуры радиоуправления* из электрических копмонентов с Aliexpress. Давно об этом думал, т.к. её можно будет сделать (программно) намного умнее покупных заводских, да ещё и с 32 каналами!
*в этой статье я представлю авиамодельную (самолёт, планер, коптер и др.) аппаратуру

byte bt( int pin) < //тип данных возвращаемого значения byte
pinMode (pin, INPUT_PULLUP );
boolean bt_state = ! digitalRead (pin);
if (bt_state == 1) return 1;
> else return 0;
>
>

Для простого зажигания зелёного светодиода написал эту функцию:

void ledon() pinMode (3, OUTPUT ); //устанавливаем пин 3 как выход
digitalWrite (3, HIGH ); //зажигаем
delay (150); //ждём
digitalWrite (3, LOW ); //гасим
delay (200); //ждём
>

byte toservo( int potpin, int low, int high, int range) int lowr = (180 - range) / 2;
int highr = 180 - ((180 - range) / 2);
return map ( analogRead (potpin), low, high, lowr, highr);
>

Для регулировки яркости всяческой подсветки и иллюминации написана функция toaw(), которая принимает в параметрах пин потенциометра, с которого надо считывать сигнал. Возвращает значения типа byte в диапазоне 0-255. Далее на приёмнике активируется функция analogWrite(), которая создаёт ШИМ на заданном пине.

byte toaw( int potpin2) return map ( analogRead (potpin2), 0, 1023, 0, 255);
>

Настал черёд приёмника. В его коде ничего примечательного нет, кроме функции биндинга. Если тумблер 4 находится наверху (причём передатчик включен заранее) и включается приёмник, приходит сигнал состояния тумблера 4 и запускается функция биндинга:

boolean motor_flag = 0; //флаг биндинга регуля, по умолчанию опущен

void bind()<
//функция ничего не принимает и ничего не возвращает
servo_0. writeMicroseconds (2300);
delay (3000);
servo_0. writeMicroseconds (800);
delay (5000);
motor_flag = 1; //поднимаем флаг
>

Прошивки лежат в архиве на Гугл Диске.
Распиновка (чё куда подключать) для версии прошивки 1.1 в виде таблицы лежит здесь.

О дальности сигнала есть видео у AlexGyver’a (включайте видео на 13 минут 29 секунд, именно в этом месте начинается "тест"):

Выражаю благодарность в содействии созданию этого устройства:

Родным за терпение,

Александру Майорову (AlexGyver’у) за предоставленные в описаниях к видео скетчи,

Ивану Хмелевскому за то, что выслушивал, когда я ему поведывал о каждом новом этапе создания аппы.

Читайте также: