В данной статье мы рассмотрим создание на основе платы Arduino и двух джойстиков пульта дистанционного управления (RC controller), который будет работать на частоте 2,4 ГГц.
Данный пульт дистанционного управления (ДУ) автор проекта в дальнейшем планирует использовать для управления квадрокоптером (дроном), но также его можно использовать для управления любыми другими механизмами, в которых необходимо перемещение управляемого элемента в двух плоскостях.
Рассматриваемый пульт ДУ состоит из двух джойстиков, один из которых используется для указания направления перемещения (дрона), а второй – для движения (дрона) вверх или вниз. Более подробно о подключении джойстика к плате Arduino можно прочитать в этой статье.
Необходимые компоненты
- Плата Arduino Nano (купить на AliExpress).
- Джойстик – 2 шт. (купить на AliExpress).
- Радиочастотный модуль nRF24L01 (купить на AliExpress).
- Соединительные провода «мама — мама».
- Винты.
- Батарейка 9V.
Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158
Сборка пульта дистанционного управления
При конструировании данного пульта ДУ автор проекта был вдохновлен внешним видом джойстика для игровой приставки PS4.
Конечно, у автора получился пульт с виду «попроще» чем джойстик от PS4 и кнопок он имеет поменьше, но, тем не менее, он работает. Первый дизайн пульта ДУ:
Со второй попытки автор проекта решил придать внешний вид своему творению, который сделает его более похожим на хороший игровой контроллер:
Порядок сборки пульта ДУ
Первым делом необходимо напечатать компоненты пульта ДУ на 3D принтере: основную часть, отсек для батарейки и отсек для платы Arduino Nano.
Скачать STL файлы для печати этих компонентов на 3D принтере можно по следующим ссылкам:
После того как вы напечатаете отсек для Arduino и отсек для батарейки, поместите в отсек для Arduino радиочастотный модуль NRF24l01, а затем саму плату Arduino как показано на следующих рисунках.
Затем необходимо скрепить все напечатанные компоненты проекта между собой. Автор проекта для этого использовал винты M3x20. Вначале прикрепите с помощью винтов к основной части отсек для Arduino, а затем прикрепите отсек для батарейки.
Схема проекта
Схема пульта дистанционного управления на основе платы Arduino представлена на следующем рисунке.
Исходный код программы (скетча)
Вначале кода программы мы подключаем заголовочные файлы необходимых нам библиотек – SPI.h, Mirf.h, nRF24L01.h и MirfHardwareSpiDriver.h.
Далее, в функции void setup мы инициализируем необходимые контакты и переменные. Затем в функции void loop() мы считываем значения с джойстиков и передаем их по радиоканалу с помощью модуля NRF24l01.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include <SPI.h> #include <Mirf.h> #include <nRF24L01.h> #include <MirfHardwareSpiDriver.h> void setup() { Serial.begin(9600); Mirf.cePin = 3; Mirf.csnPin = 4; Mirf.spi = &MirfHardwareSpi; Mirf.init(); Mirf.channel = 1; Mirf.payload = sizeof(int) * 5; Mirf.config(); Mirf.setTADDR((byte *) "dron1"); } void loop() { int valeurs[4]; valeurs[0] = analogRead(0); valeurs[1] = analogRead(1); valeurs[2] = analogRead(2); valeurs[3] = analogRead(3); Mirf.send((byte *) &valeurs); if(Mirf.isSending()){ Serial.println("Values are sent"); } delay(50); } |
3 ответа к “Пульт дистанционного управления дроном на Arduino”
Здравствуйте, а как присоединить плату с антенной, нарисуйте пожалуйста
Добрый день. Нужно просто купить радиочастотный модуль nRF24L01 в комплекте с внешней антенной, и у него на плате уже будет закреплен разъем для подключения этой внешней антенны
А я сделал такой пульт
https://youtu.be/QrHISwxhxGw