СОДЕРЖАНИЕ ►
Радиоуправляемая лодка Ардуино с пультом ДУ своими руками. Для изготовления данного проекта потребуется небольшой список деталей, который вы сможете найти в данной статье. Радиоуправляемая лодка на Ардуино изготавливается из подручных материалов, поэтому, больших вложений не потребуется. Схема и подробная технология изготовления лодки размещена на этой странице далее.

Лодка на Ардуино с пультом ДУ может передвигаться по воде за счет винта, соединенном с электродвигателем. Экструдированный пенополистирол (пеноплэкс) имеет пористую ячеистую структуру, благодаря которой, материал достаточно прочный, но при этом пеноплэкс легче воды и не тонет. Кроме того, лодка способна поворачивать, благодаря килю, соединенному с сервоприводом рычагом.
Радиоуправляемая лодка на Ардуино своими руками
Для этого проекта потребуется:
- плата Arduino Uno;
- ИК приемник;
- любой пульт ДУ;
- один сервопривод;
- электродвигатель 5В;
- аккумулятор на 12В;
- один транзистор;
- кусок пеноплекса;
- кусок проволоки;
- фанера толщиной 2-3 мм;
- стержень от шариковой ручки;
- канцелярские скрепки;
- клей, термопистолет;
- провода и изолента.
Электрическая схема лодки с ИК управлением

В нашем проекте используется старый электродвигатель на 3,5 Вольта, поэтому мы его включаем через транзистор, используя выход 3,3V на плате Arduino UNO. Включение цепи с микромоторчиком происходит после подачи тока на среднюю ножку транзистора (база) с Pin11. Чтобы написать скетч (он очень простой) посмотрите пример кода для проекта на Ардуино «Управление светильником с пульта ДУ»
Инструкция по изготовлению лодки с пультом
Проверку работы ИК-приемника и servo Arduino лучше проводить с отключенным электромоторчиком, поскольку он будет создавать сильные вибрации при работе. На этом этапе тестирования проекта следует лишь оценить подвижность киля и отцентровать рычаг привода на сервомоторе. Необходимо сделать так, чтобы при нажатии кнопки «вперед» или «стоп» на пульте, киль вставал по центру.
1. Изготовление корпуса лодки из пеноплекса

Размеры и форма лодки могут быть абсолютно разными — все зависит лишь от фантазии. Что касается прорезей, то они должны соответствовать размерам деталей. На трафарете (слева-направо) размечены прорези для: платы Ардуино UNO, сервомотора, привода киля и микромоторчика. Учтите, что привод от сервомотора к килю должен свободно ходить в прорези, для этого надо точно рассчитать радиус.
2. Изготовление деталей для привода и управления

Киль можно изготовить из любого материала — пластик, дерево и т.д. Стержень от ручки, прикрепленный к килю служит осью, на котором он поворачивается. Скрепка на киле обеспечивает подвижное соединение киля и рычага сервомотора из проволоки. Размер и конструкция привода сервомотора будет зависеть от конструкции лодки. Винт изготавливается из стержня шариковой ручки и куска пластиковой баночки.

3. Сборка лодки на Ардуино с управлением

В этом проекте мы обошлись без использования макетной платы. Если вспомнить схему подключения ИК приемника к Ардуино, то она очень проста (слева-направо): A0 — GND — 5V и не требует расходов на приобретение макетной платы. Транзистор мы использовали в этой схеме для включения советского электромоторчика от 3,3 V.

Транзистор размещен на пинах 12, 11 и 10. На Pin11 (средняя ножка транзистора — это база) мы подаем напряжение для включения электродвигателя. Pin12 и Pin10 в скетче не используются, поэтому служат нам эмиттером и коллектором. К Pin12 подключен выход 3,3 V, а к Pin10 подключен электромоторчик (красный плюсовой провод).
4. Крепление привода винта на валу двигателя

Винт для судна изготавливается из любой пластиковой баночки или корпуса с небольшим закруглением, например, баночка от витаминок или корпус от клея-карандаша. Для начала необходимо вырезать из пластика винт в форме восьмерки, а затем выпрямить противоположные края винта, используя высокую температуру для размягчения пластика. Смотрите фото винта для лодки Ардуино выше.
Скетч для лодки на Ардуино с ИК пультом
#include <IRremote.h> // библиотека для IR-приемника #include <Servo.h> // библиотека для сервомотора // Замените коды команд от пульта ДУ на свои значения #define forward 16736925 #define left 16769565 #define right 16754775 #define turm_left 16712445 #define turm_right 16711935 #define stope 16755285 Servo servo; // присваиваем имя сервомотору int RECV_PIN = A0; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); // подключаем монитор, чтобы узнать коды кнопок пульта irrecv.enableIRIn(); pinMode(11, OUTPUT); pinMode(13, OUTPUT); pinMode(A0, INPUT); servo.attach (7); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value); // выводим на монитор порта коды с пульта ДУ if (results.value == left) { servo.write(60); digitalWrite(11, HIGH); } if (results.value == right) { servo.write(120); digitalWrite(11, HIGH); } if (results.value == turm_left) { servo.write(10); digitalWrite(11, HIGH); } if (results.value == turm_right) { servo.write(170); digitalWrite(11, HIGH); } if (results.value == forward) { servo.write(90); digitalWrite(11, HIGH); } if (results.value == stope) { servo.write(90); digitalWrite(11, LOW); } irrecv.resume(); // Ждем следующий сигнал от пульта } }
В случае успешного тестирования ИК-управления сервомотором, можно приступать к испытанию проекта на Ардуино для начинающих в реальных условиях. Но перед этим обязательно позаботьтесь о защите электрических схем и микроконтроллера от возможных брызг воды и влаги. Для этого можно использовать пищевую пленку (пленка свободно пропустит ИК сигнал от пульта дистанционного управления).










Ребят а дайте пожалуйста скейч!
Скетч предоставлен. Осталось только поменять коды кнопок от пульта.
при смене кода кнопки выдает ошибку
Напишите исходную строчку в скетче и то, как вы меняете код кнопки. Какую ошибку выдает Arduino IDE?
Какой транзистор вы используете? Какой лучше взять? Моторчик работает от 1,5 v ток кушает 33 мА. Он подойдет?
Использовали в лодке биполярный pnp транзистор 2N222. Какой вам лучше выбрать — смотрите по характеристикам (может даже и не понадобится транзистор). У нас был моторчик на 5v, от цифровых портов Arduino Uno он отказывался работать, поэтому пришлось использовать порт питания 5V и управлять транзистором.
Я попробую и скажу. Тема очень интересная. Будем развивать её…
#define forward FFFFFFF — строчка в какой я сменил код
exit status 1 ‘FFFFFFF’ was not declared in this scope — это выдает при проверке кода
Откуда вы взяли FFFFFFF? Делайте так — про #define забудьте, можете эти строчки вообще удалить из скетча. Вставляйте коды прямо в void loop.
Вместо константы forward: if (results.value == forward) …
Ставите свой код в кавычках: if (results.value == ‘FFFFFFF’) …
Спасибо большое, я новичок в программировании Ардуино
Скажите хоть, скетч больше не выдает ошибку? Лодка работает?
Скетч робит, но сервопривод что-то все равно не слушается, и подскажите какой код под какую кнопку типа влево вправо назад вперед?
Нажимаете на нужную кнопку, код с кнопки увидите на мониторе порта при этом. Затем этот код вставляете в нужную команду в начале скетча для лодки. Например,
#define forward 111111111— цифры заменяете своимиРазобрался, надо другой мотор поискать ну или транзистор
А можно схему сборки электрической лодки по точнее
Схема сборки лодки на Ардуино довольно подробная