Турельная установка с беспроводным управлением (стреляет шариками для бластеров Nerf)


Это проект по созданию вращающейся на 360 градусов турели для стрельбы мягкими шариками на базе Arduino, с полным беспроводным управлением с помощью джойстика, а также камерой и гарнитурой для обзора от первого лица.
Работу турели можно посмотреть на обзорном видео.

Инструменты и материалы:
-250 x 250 мм основание из дерева;
-600 x 300 мм фанеры 6 мм;
-Arduino Uno;
-Arduino Nano;
-LiPo аккумулятор 7,4 В, 3800 мАч;
-2x бесщеточных двигателя 1980KV;
-2 контроллера мотора ESC;
-2 модуля Wi-Fi 2,4 ГГц + экран;
-Совместимый джойстик (мастер использует Logitech Wingman);
-Повышающий преобразователь напряжения;
-Реле 5V Arduino;
-Упорный подшипник с внешним диаметром 47 мм;
-2 осевых подшипника с внешним диаметром 26 мм;
-Алюминиевый стержень 10 мм;
-Сантехническая труба 25 мм + тройник;
-Комплект пластиковых колес с наружным диаметром 70 мм;
-Сервопривод MG996R на 360 градусов (вращение);
-Сервопривод MG946R (наклон);
-Сервопривод DS329HV (для запуска триггера);
-2 нагнетательных вентилятора DF5015SM 12 В;
-Камера FPV с гарнитурой;
-3D-принтер;
-Лазерный резак;
-Паяльные принадлежности;

Шаг первый: принцип работы
Механизм, который эта турель использует для стрельбы шариками, — это вращающиеся в противоположные стороны два колеса. Когда мяч проталкивается между этими колесами, он ускоряется и вылетает вперед. Нужно обратить особое внимание на то, чтобы расстояние между колесами было точно по диаметру шарика, в данном случае 20 мм.

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

Для прицеливания башни весь пусковой механизм и ствол установлены на раме, позволяющей ей наклоняться вверх и вниз. Поворотная платформа позволяет ей поворачиваться на 360 градусов.

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

Шаг второй: сборка — основная рама
Детали рамы изготавливаются из фанеры методом лазерной резки.
Некоторые детали должны были быть толще, поэтому для изготовления деталей толщиной 12 мм использовались два слоя. В конструкцию также были добавлены прорези и выступы для повышения прочности и облегчения совмещения деталей. Для крепления деталей использовался клей ПВА.

Для лазерной резки нужны детали:
По 2 шт. каждой из вертикальных стоек для изготовления вертикальных опорных кронштейнов толщиной 12 мм (2 левых и 2 правых)
Одна круглая деталь
Четыре треугольных скобы
После изготовления деталей нужно вставить упорные подшипники в прорези и закрепить эпоксидной смолой.




Все детали для лазерной резки и для 3D-печати можно скачать ниже.
Turret laser cut 2.1.DXF
Blower Mount.STL
Camera Mount.STL
Motor Holders.STL
Pipe Mounting Bracket.STL
Tilt Servo Mount.STL
360 Servo Mount.STL
Eagle Badge.STL
Pipe Ball Forcer.STL

Шаг третий: основание
Турели нужно тяжелое и прочное основание. Мастер сделал квадратную основу 250 мм из двух слоев 18-миллиметровой фанеры.
По центру верхней части просверлил пять отверстий диаметром 3,5 мм. Все отверстия находятся в пределах внутреннего круга диаметром 30 мм. Центральное отверстие сквозное.

В нижнем слое фанеры сверлится отверстие большого диаметра, примерно 30мм. Это сделано для того, чтобы позже можно было прикрепить вал сервопривода.
В 4 отверстия устанавливаются алюминиевые стержни диаметром 3 мм и длиной примерно 27 мм.




Шаг четвертый: сервопривод поворотного стола и Ардуино
Прикрепите сервопривод к креплению с помощью гаек и болтов M3.
Поместите поворотный стол на опорные подшипники и выровняйте.

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




Установите Arduino на переднюю часть поворотного стола (сторона с самыми короткими ножками для сервомонтажа), используя стойки и болты M3. Просверлите отверстия диаметром 3,5 мм для болтов, чтобы закрепить стойки с помощью гаек на нижней стороне.

Чтобы предотвратить подъем поворотного стола, нужно вкрутить шток M3 с резьбой в лицевую панель сервопривода. После ввинчивания в лицевую панель добавьте стопорные гайки и ввинчивайте стержень, пока они не соединят две части.

Шаг пятый: ствол
Ствол и магазин были сделаны из пластиковой трубы. Для ствола нужно отрезать 170 мм для ствола, а для магазина 250 мм.
Кроме того, нужно будет сделать две прорези на переднем конце ствола. Это нужно, чтобы колеса при вращении могли проходить через них. Прорези должны начинаться в 20 мм от передней части ствола и быть длиной 70 мм и шириной около 25 мм. Центр паза должен быть на одной линии с центром ствола и симметричен слева и справа.

Также нужно сделать прорези в локтевом суставе и подающей трубке. Ствол должен быть направлен вперед над Arduino. Соедините детали, как показано, и поместите их между вертикальными рычагами рамы и обратите внимание на сторону локтевого сустава, которая указывает на сетку из шести прорезей в вертикальных рычагах. На противоположной стороне нужно вырезать прорези. Прорезь шириной 10 мм на 25 мм вниз в отводе тройника.

Шаг шестой: вал ствола
Теперь ствол нужно закрепить.
Отрежьте 26 мм алюминиевый стержень диаметром 10 мм и длиной 40 мм. На длине 40 мм нужно просверлить два крепежных отверстия.
Удерживая узел ствола на месте, направив его над Arduino, установить более короткий вал через подшипник в напечатанное на 3D-принтере крепление.

Установить более длинную трубку в другую сторону и отметить в напечатанной детали, где находится отверстие в стержне. Просверлить деталь, установить болт в отверстие.



Шаг седьмой: сервопривод наклона
Дальше нужно прикрутить лицевую панель сервопривода к переходному кольцу, напечатанному на 3D-принтере. В то же время нужно оставить пространство между винтами, чтобы просверлить отверстие. Принцип такой же как и на предыдущем шаге.
Дальше устанавливаем лицевую панель обратно на вал сервопривода, вставляем сервопривод в напечатанное на 3D-принтере крепление и закрепляем гайками и болтами.




Теперь устанавливаем весь сервомеханизм на турель.


Шаг восьмой: вентиляторы
Переходим к вентиляторам.
Вставьте нагнетательные вентиляторы в напечатанное на 3D-принтере крепление так, чтобы задняя часть каждого вентилятора была обращена к задней части другого, а их сопло выровнялись друг над другом. Закрепляем вентиляторы эпоксидкой. Устанавливаем этот узел в задний конец тройника.


Шаг девятый: крепление мотора стартового колеса
Устанавливаем узел колеса на ствол, совместив прорези.


Дальше прикручиваем двигатели и надеваем на их оси колеса.


Шаг десятый: камера, сервопривод, аккумулятор
Вставляем модуль камеры в держатель 3D-печатного модуля, затем приклеиваем его к верхней передней части крепления колеса запуска.


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



На фанеру наклеивает полоски «липучки», затем крепит узел к основанию. К этой липучки будет крепится аккумулятор.




Шаг одиннадцатый: схема турели
Электрическая часть турели состоит из двух основных цепей — одна для башни, а другая для джойстика — они обмениваются данными друг с другом по беспроводной сети с помощью модуля RF24L01.
Вся схема турели питается от LiPo аккумуляторной батареи 7,4 В 3800 мАч, обычно используемой для радиоуправляемых машин или дронов.
Напряжение 7,4 В от аккумулятора подается непосредственно на:
Ардуино
Сервопривод вращения
Повышающий преобразователь напряжения
Регуляторы
Напряжение 7,4 В увеличивается до 12 В для питания вентиляторов.
7,4 В понижается до 5 В с помощью Arduino для питания:
Реле
Модуля WiFi
Напряжение 7,4 В понижается до 5 В с помощью схемы ESC для питания:
Камеры FPV
Сервопривода наклона
Сервопривода запуска
Использование регуляторов скорости для питания сервоприводов и камеры необходимо, поскольку они могут обрабатывать гораздо более высокий выходной ток (2 А) по сравнению с использованием Arduino, который может обрабатывать максимум около 0,5 А.

Начинаем с того, что приклеиваем преобразователь повышения напряжения перед держателем батареи с помощью термоклея. Затем припаиваем провода ввода / вывода к плате.
Подключаем повышающий преобразователь к разъемам батареи 7,4 В и регулируем напряжение на 12В.




Устанавливаем беспроводной модуль. Подключение следующее:
5 В — Arduino 5 В
GND — Arduino GND
CE — Arduino D8
CSN — Arduino D10
SCK — Arduino D13
MISO — Arduino D12
MOSI — Arduino D11




Устанавливает реле. Через него будет идти питание на вентиляторы.
Провод + 12В идет от нагнетательного вентилятора к К4 на реле. Затем он выходит и подключается к + IN повышающего преобразователя напряжения.
5 В — Arduino 5 В
GND — Arduino GND
IN4 — Arduino D2




У Arduino есть только 1 вывод на 5 В, но в данной сборке от него питается 2 компонента (беспроводной модуль и реле).
Чтобы подключить больше компонентов, мастер сделал небольшую коммутационную плату, которая просто вставляется в слоты 5V и GND на Arduino.


Вентиляторы подключает к реле параллельно.


Приклеиваем горячим клеем ESC к боковой стороне турели. Устанавливаем разъемы подключаем двигатели.






Чтобы упростить подключение к ESC, мастер сделал еще одну коммутационную плату. Платы две, одна для сервопривода наклона и подключается (помимо питания) к D9, вторая сервопривод стрельбы и подключается к D7.





Питание от аккумулятора подается на перфорированную плату, а затем на клеммную колодку. Через них распределяется на остальную электронику.






Сигнальный провод сервопривода вращения подключается к D4 Ардуино.


Подключаем провода питания от ESC к разъему питания камеры FPV.
Используемая камера может потреблять от 2,9 до 5,5 В, поэтому ее можно использовать для питания с помощью ESC BEC.




Шаг двенадцатый: схема джойстика
Вторая цепь предназначена для управления джойстиком. Он питается от USB и использует Arduino Nano в работе. Большая часть работы здесь — это просто перемонтировать существующий контроллер (чем проще контроллер, тем лучше) и убедиться, что все работает.
Мастер использует Logitech Wingman модель 3001, так как в нем всего лишь 2 кнопки и 3 потенциометра.
Основное подключение следующее:
nRF24L01 подключается к D9, D10, D11, D12, D13
2 потенциометра к A0 и A1
2 кнопки к D3 и D5
2 светодиода индикации состояния (беспроводное соединение и включение вентиляторов) к D7 и D8

Потенциометры нужно проверить на работоспособность. Затем подключить согласно схемы потенциометры и кнопки.


Подключает беспроводной модуль:
Контакты nRF24L01 подключаются к Arduino следующим образом:
Модуль — Ардуино
5 В — 5 В
GND — GND-
CE — — D9
CSN — — D10
SCK — — D13
MISO — — D12
MOSI — — D11
Подключает светодиоды и остальные детали схемы.







Шаг тринадцатый: код Arduino Uno
ESC управляется с помощью ШИМ через библиотеку Servo.h.
Адрес для связи с Arduino Nano устанавливается как «RxAAA» и устанавливается как переменная только для чтения.
Данные передаются в виде единого массива, который содержит 4 значения — угол наклона сервопривода, направление вращения сервопривода, состояние срабатывания и скорость ESC. Затем он передается в Arduino Nano, который считывает массив и использует каждое значение для соответствующей функции. Ниже приведен фрагмент кода:
 Показать / Скрыть текст//a single array that holds 4 values which will be read from the incoming Nano signal //This is more efficient and robust than trying to send 4 seperate values, instead a single message is recieved int message[4]; //each variable name is self-identifying to the turret angle_val = message[0]; rotation_val = message[1]; escSpeed = message[2]; firing_state = message[3];
Мастер использует самую низкую скорость передачи данных 250 кбит / с, чтобы получить максимально возможный диапазон. NRF24L01 имеет 6 каналов, которые можно использовать для одновременной передачи или приема данных.
 Показать / Скрыть текст//this starts radio transmission and utilises the RF24 module<br>radio.begin(); //the lowest data transfer rate provides greater connection range //since a single array is being received, this rate is suitable as the more important factor is the wireless range radio.setDataRate( RF24_250KBPS ); //the nRF24L01 has 6 pipes that it can transmit or receive data to at a time //this command opens the first data pipe for reading at the address we defined earlier radio.openReadingPipe(0, address); //Since the UNO is only receiving data, it must start listening for any values coming through the aforementioned ReadingPipe radio.startListening();
Весь код с комментариями можно скачать ниже.
UNO_CODE.ino

Шаг четырнадцатый: код Arduino Nano
Код Nano работает очень похоже на код Uno, за исключением того, что вместо того, чтобы слушать команды, Nano отправляет данные как передатчик.
Основные моменты здесь — настроить потенциометры, чтобы они соответствовали значениям, которые отправляются на сервоприводы. Основная функция, используемая здесь, — это фрагмент, где снимаются аналоговые показания потенциометра (в данном случае они находятся между 390 и 600), а затем они преобразуются в значения сервопривода (от 105 до 160). Ниже показан фрагмент кода:
 Показать / Скрыть текст////////////////TURRET TILT POT READING//////////////////<br> //reading the potentiometer values from the analog pin, this is between 0 and 1023 angle_val = analogRead(angle_pot); //since the potentiometer is mechanically fixed in the joystick, it only travels between 390 and 600 //in order to write a suitable value to the servo, the potentiometer value is mapped accordingly //this keeps all the functionality of the potentiometer code within the Nano making reprogramming and adapting of the input controls later easier angle_val = map(angle_val, 390, 600, 105, 160);
Полностью код с комментариями можно скачать ниже.
NANO_CODE.ino

Шаг пятнадцатый: настройки Arduino ESC
На прилагаемых изображениях можно посмотреть как установить диапазон дроссельной заслонки. Режим работы должен быть переключен на «ONE», чтобы обеспечить простое управление ESC через Arduino.
Используйте кнопку сбоку от ESC, чтобы перепрограммировать его в правильный режим.
При запуске будет слышен набор звуковых сигналов, а затем звуковой сигнал запуска, который указывает, что ESC откалиброван и готов к использованию.




Теперь нужно подключить гарнитуру FPV к камере.

Осталось протестировать турель.



Источник (Source)

Источник: usamodelkina.ru

Добавить комментарий