Передатчик RC с использованием радиомодуля NRF24L01 и Arduino

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino0

Из этой статьи мы с вами узнаем, как самостоятельно сделать пульт управления для радиоуправляемых моделей.
Конкретно этот пульт мастер сделал для управления квадрокоптером.
Для его изготовления он использовал следующие
Инструменты и материалы:
-Микроконтроллер ATMega328P (с загрузчиком);
-Радиомодуль NRF24 с антеннами;
-Два аналоговых джойстика;
-Потенциометр 10К — 2 шт;
-Переключатели SPDT — 3 шт;
-FT232RL USB-модуль UART для программирования микросхемы ATMega328;
-16 МГц резонатор;
-Две платы адаптера 3,3 В для модуля NRF24;
-Макетная плата;
-Соединительные провода;
-3D-принтер;
-Крепеж;
-Отвертка;
-Паяльные принадлежности;

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino1

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino2

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino3

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino4

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino5

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino6

Шаг первый: об устройстве
Исследовав тему радиоуправляемых устройств, мастер сделал следующие выводы:
Любая радиоуправляемая система в основном состоит из двух основных компонентов, а именно, передатчика и приемника.
Передатчик — это то, что пользователь/оператор держит в руке и, перемещая ручки / джойстики, управляет устройством. Он «передает» данные, состоящие из положения джойстиков, переключателей, ручек и т. д., на приемник.
Приемник устанавливается на радиоуправляемой модели, принимает сигнал от передатчика, обрабатывает его и передает на исполняемое устройство (сервоприводы, моторы и т.д.).
В данной статье мастер собирает только передатчик на базе радиомодуля NRF24. Данные радиомодули продаются отдельно, а также совместно с антенной и/или усилителем.

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino7

Шаг второй: проектирование платы
Форму печатной платы мастер спроектировал под форму пульта управления. Затем заказал изготовление платы на соответствующем сервисе. Файлы Gerber можно скачать здесь.
Наиболее важными и необходимыми элементами управления являются газ, рыскание, крен и тангаж. Эти параметры управляются двумя 2-осевыми джойстиками. Дополнительно мастер добавил два потенциометра 10k, которым могут быть назначены другие полезные элементы управления, такие как триммер дроссельной заслонки, триммер шага и т.д.
Два переключателя используются для цифровых входов, которые затем можно использовать для переключения между различными режимами полета. Данных элементов управления достаточно для любителей, только осваивающих модели на радиоуправлении.
Arduino является «мозгом» данного контроллера. Можно использовать практически любую плату из линейки Arduino. Мастер решил использовать микроконтроллер ATMega328P, который устанавливается прямо на плате.
Сначала он начертил контур формы контроллера в Fusion 360. Далее убедился, что он удобно будет лежать в руке и все элементы управления легко доступны. Затем импортировал ее как файл DWG в программу Altium Designer и сделал трассировку.
Наконец, он разработал «пустую» плату/накладку. Т.е. эта накладка имеет такую же форму, как и плата, но не имеет трассировки, а на лицевой ее стороне нанесен понравившийся мастеру рисунок.
Такую плату/накладку можно так же заказать на соответствующем сервисе.
На плате предусмотрен разъем для программирования микроконтроллера с помощью платы RS232 FTDI. Чтобы иметь возможность запрограммировать его с помощью Arduino IDE, загрузчик должен быть записан на него перед пайкой на печатную плату.
Важная часть этого проекта — правильно запитать модуль NRF24. Модуль работает от 3,3 В и при его включении или при передаче данных могут возникнуть скачки напряжения. Для сглаживания скачков к шинам питания подтягиваются соответствующие конденсаторы. При тестировании схемы была использована плата адаптера питания AMS1117 3,3 В, специально созданная для модулей NRF24.
Для питания схемы мастер использует две LiPo батареи.
Схему платы можно скачать ниже.
RC_Transmitter_Schematic.pdf

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino8

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino9

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino10

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino11

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino12

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino13

Шаг третий: 3D-печать
Корпус контроллера мастер напечатал на 3D-принтере. При его проектировании он использовал тот же контур, который использовал при создании печатной платы. Корпус делится на две части. Батарея будет размещена между нижней платой и корпусом. Для крепления он использовал резьбовые вставки и винты.
Детали печатались с помощью 3D — принтера Creality Ender 3 серой нитью PLA.
Файлы STL можно скачать ниже.
TopBody.stl
BottomBody.stl

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino14

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino15

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino16

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino17

Шаг четвертый: код
После сборки устройства нужно подключить программатор RS232L FTDI к порту и загрузить предоставленный ниже код.
NRF24_Transmitter.ino
Единственная разница между данным кодом и кодом Electronoob — это распиновка. Мастер подключил входы к другим контактам. Это единственное изменение, которое нужно сделать перед загрузкой кода.

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino18

Шаг пятый: тестирование
Чтобы протестировать передатчик, он сделал приемник на макетной плате, используя другую плату Arduino (Uno) и несколько сервоприводов, подключенных для тестирования каждого канала. Соединения модуля NRF24 точно такие же, как у передатчика. Подключаются сервоприводы следующим образом:
VCC — 5 В
GND — GND
SIG — D2 / 3/4/5/6/7
Тестовый код для приемника можно скачать ниже.

Передатчик RC с использованием радиомодуля NRF24L01 и Arduino19

 Показать / Скрыть текст/* Receiver code for the Arduino Radio control with PWM output
*
* THIS ONLY WORKS WITH ATMEGA328p registers!!!!
* It gives a nice PWM output on pins D2, D3, D4, D5, D6 and D7. Still working on it…
*
* Install the NRF24 library to your IDE
* Import the servo library as well
* Upload this code to the Arduino UNO
* Connect a NRF24 module to it:

Module // Arduino UNO

GND -> GND
Vcc -> 3.3V
CE -> D9
CSN -> D10
CLK -> D13
MOSI -> D11
MISO -> D12

This code receive 6 channels and create a PWM output for each one on D2, D3, D4, D5, D6 and D7
Please, like share and subscribe : https://www.youtube.com/c/ELECTRONOOBS
*/
Если все сделано правильно, то можно управлять сервоприводами с помощью джойстиков на контроллере. Следующим шагом будет изготовление самого дрона и управление им с помощью этого контроллера.
Все готово. На видео можно посмотреть процесс изготовления и тестирования платы.

Источник

Если вам понравилась статья, поделитесь ей в соц.сетях !