- Что это?
- Балансировка
- Балластная цистерна
- Герметизация
- Изготовление и установка дейдвудных и гельмпортовых труб
- Изготовление моторамы
- Изготовление рулей для модели
- Инструкция по изготовлению лодки с пультом
- История создания
- Исходный код
- Как собрать?
- Катер на arduino с радиоуправлением своими руками
- Компоновка
- Настройка управления
- Подготовка и сборка корпуса
- Радиоуправление для прикормочного карпового кораблика с автопилотом. sc-a2. arduino. своими руками. вторая версия
- Радиоуправляемая лодка на ардуино своими руками
- Радиоуправляемый катер на arduino
- Скетч для лодки на ардуино с ик пультом
- Соединение электромоторов с гребными валами
- Теория
- Установки рулевой машинки и электроники
- Электрическая схема лодки с ик управлением
Что это?
Прогуливаясь в городских парках, часто можно встретить людей, которые с радостью и интересом бросают корм в воду и наблюдают как утки ныряют за ним. Вы также можете поучаствовать в этом забавном процессе, собрав катер, управляемый с мобильного устройства, который плавает по воде и по сигналу кормит уток всякими вкусняшками, тем самым привлекая и удивляя прохожих.
Балансировка
Объем надводной части должен быть меньше объема цистерны
Он может быть любой массы, лишь бы общая оставалась 2.8 кг. Поэтому надводные элементы делают из меди или тонких пластиков.
Балансировка осуществлуяется в 2 положениях:
- Надводное – Двигая/добавляя грузы и приклеивая пенопласт в подводную часть, добиваемся нулевого дифферента. Важно на этом этапе крепить пенопласт только ниже ватерлинии.
Погруженное – добавляем пенопласт выше ватерлинии и добиваемся горизонта.
Балластная цистерна
Обычно это самая сложная часть подводной лодки. Но мы сделаем ее просто – воспользуемся микронасосом. Точнее перистальтическим микронасосом – он сам держит давление и не требует дополнительных клапанов. Сам насос способен развивать давление в 1 атмосферу, это значит он сможет прокачать цистерну на глубине до 10 метров. Управляется насос так же как обычным электромотором – регулятор хода или серва с микро-переключателями.
Есть вариант наполнять резиновый шарик, но он может лопнуть. Воспользуемся шприцом на 150 мл, называется шприц-Жане. Насос сам двигает поршень. Позже можно повесить датчики и контролировать объем поступившей воды.
Оригинальная силиконовая трубка в насосе 2.54мм, поменял на 46мм. В итоге пропускная способность увеличилась в 1.5 раза. Мотор расчитан на 6 вольт, подаю 12. Мотор немного нагревается, но не критично. Итоговая скорость 100мл за 20 сек.
Герметизация
Следующий этап — установка водонепроницаемых переборок в корпус. Это нужно для того чтобы обеспечить радиоуправляемому катеру плавучесть при попадании воды внутрь. Для небольшой модели это особенно критично, так как даже малое количество воды может привести к ее затоплению и возможно потере.
Затоплен один отсек.
Затоплено два отсека.
Затоплено три отсека.
Как видно на фото, даже при затоплении трех отсеков, часть радиоуправляемого катера осталась на плаву. Из этого следует, что и в такой ситуации возможно спасти модель. Таким образом, она получилась разбитой на четыре отсека: носовой,
второй – отсек электроники,
третий – моторный
и кормовой
с рулевой машинкой и приводами рулей. Но что бы не допускать попадания воды внутрь, необходимо, заранее, хорошо герметизировать корпус. Для обеспечения герметизации внутреннего объема, путем заклейки корпуса оракалом, к бортам приклеим бортик из полистирола. Для получения доступа к отсеку электроники, после приклейки носовой части палубы, в переборке делается люк, поднимающийся вверх. А для возможности съемки гребных валов в ней делаются отверстия, которые потом будут заклеиваться оракалом.
Нам нужно обеспечить герметичность 3 элементов:
- прочный корпус
- вал двигателя
- тяги управления рулей
Изготовление и установка дейдвудных и гельмпортовых труб
Следующий этап подготовка к изготовлению дейдвудных и гельмпортовых труб. Для этого на токарном станке выточил втулки. Для гребных валов и баллеров рулей буду использовать пруток диаметром 2мм. Внутренний диаметр втулок дейдвудных труб нужно выдерживать строго по диаметру гребных валов.
Процесс изготовления гельмпортовых труб такой же, а здесь фото хорошие и на них все видно. В куски трубок вставляем втулки и хорошо запаеваем их.
Теперь нужно вклеить дейдвудные трубы в корпус радиоуправляемого катера. Для этого сначала размечаем на нем места под трубы и кронштейны гребных валов. Делаем прорези и устанавливаем без клея дейдвудные трубы. Для облегчения монтажа можно сделать приспособление, как показано на фото, например, из куска корпуса дискеты.
Выставляем нужный угол гребных валов и приклеиваем к корпусу приспособление. Теперь необходимо сделать кронштейны гребных валов. На токарном станке точим латунные втулки, здесь внутренний диаметр можно сделать чуть больше. Если при изготовлении дейдвудных и гельмпортовых труб внутренний диаметр выдерживался строго 2мм, под имеющиеся валы, то в кронштейнах можно сделать 2,1мм.
Так как выставить все три точки, на которые упирается гребной вал, на одной линии практически не возможно. А если будет хоть небольшой перекос, то гребной вал будет вращаться туго, что поведет к потере мощности моторов, возрастанию тока в цепи и лишнему расходу аккумулятора. На радиоуправляемой модели катера, небольшого размера, расход аккумулятора это очень важный параметр.
Так как место и вес батареи ограничены, и мы не сможем разместить аккумулятор большой емкости. В каждой втулке, шлицовкой, делаем пазы-пропилы и туда припаиваем латунные полоски, получая V кронштейна, согласно чертежу. Можно использовать как шаблоны пластиковые детали модели. В части, которая будет вклеиваться в корпус делам несколько разрезов, чтобы потом деталь было легче загибать и приклеивать эпоксидной смолой к текстолитовым площадкам.
Теперь делаем в корпусе модели прорези под кронштейны и ставим их не вклеивая. Проверяем легкость кручения валов, если они вращаются очень легко сначала наживляем небольшим количеством циакрина дейдвудные трубы и опять проверяем легкость вращения валов. Если все в порядке, можно окончательно приклеить дейдвудные трубы.
После затвердивания циакрина можно убрать приспособление. Теперь нужно вклеить кронштейны гребных валов. В принципе, некоторые коллеги вклеивают их в корпус и затем проливают жидко разведенным в клее полистиролом. Но после одной неудачной модели, возможно из-за качества пластика корпуса, где после высыхания этого состава детали сдвигались и зажимали гребные валы, неоднократная переклейка не помогла, этот узел я стал делать вот по такой схеме.
Возможно это увеличивает временные затраты, зато после вклейки, точно ни что и ни куда не сдвинется от деформации. В небольших кусках стеклотекстолита прорезаются пазы под кронштейны и сверлятся по периметру отверстия диаметром примерно 2,5мм. Затем эти пластины устанавливаются внутрь корпуса так, чтобы их прорези совпали с прорезями в корпусе.
После размечаются и высверливаются отверстия в корпусе катера, так чтобы они совпали с отверстиями в пластине. Теперь из кусков литника точатся детали, наподобие гвоздей. Их малый диаметр должен совпадать с диаметром отверстий, которые, насверлены в пластине и в корпусе. Этими деталями, вклеивая их модельным клеем, закрепляем пластины с внутренней стороны корпуса катера.
Данная операция нужна для того чтобы иметь возможность приклеить кронштейны гребных валов к корпусу эпоксидной смолой. В процессе отвердевания эпоксидной смолы имеется возможность контролировать положение кронштейнов и при необходимости корректировать его. Так же после полимеризации смолы не произойдет деформации пластикового корпуса и смещения кронштейнов.
Теперь можно зашпаклевать места установки дейдвудных труб и пластин под кронштейны. Для этого я использую двухкомпанентную автомобильную шпатлевку BODY SOFT.
Автомобильная шпатлевка BODY SOFT застывает довольно быстро, уже через несколько часов можно обработать корпус. Я такие вещи делаю на ночь, чтобы к следующему вечеру все точно отвердело.
Изготовление моторамы
Следующий этап — изготовление моторамы и установка на ней электромоторов. Коллекторные электродвигатели я купил в нашем магазине «Хобби», по всей видимости они китайского производства. Установить их тип не представляется возможным, могу только сказать, что на ценнике было написано напряжение питание 3-12V.
По типоразмеру что-то подобное используется в CD-ROMах. Кстати, выбор двигателей очень ответственный момент при постройке радиоуправляемой модели катера. Нужно стараться подобрать электромоторы таким образом, чтобы при планируемом Вами напряжении питания и минимальном потребляемом токе они обеспечивали достаточный крутящий момент.
На данном этапе также можно произвести компоновку модели. В корпусе расположить массо-габаритные макеты электромоторов, регулятора хода, приемника, рулевых машинок и батареи питания. Эту операцию можно проводить в ванной. Нужно добиться того, чтобы модель располагалась в воде как можно ближе к ватерлинии.
Так же надо избегать кренов и дифферентов. При этом, не забыть о доступности элементов аппаратуры и ходовой части после приклейки палубы. На этом этапе необходимо продумать съемные узлы для доступа к ним. Например, надстройки или еще каких-либо другие элементы конструкции. Так же необходимо заранее продумать о герметичности всей конструкции.
Я выбрал схему со всей съемной основной палубой и фальшпалубой из оракала. Данная схема была уже неоднократно проверена и доказала свою жизнеспособность. Вернемся к мотораме, ее я изготовил из фольгированного стеклотекстолита. Были перпендикулярно припаяны две пластины и между ними, для прочности конструкции, припаян уголок-подкос. Двигатели к раме крепятся болтами M2.
Сначала из фольгировнного стеклотекстолита была вырезана основа, к которой будут крепиться двигатели. В ней просверлены четыре отверстия под болты М2 и два отверстия под круглую часть корпуса двигателей. Затем, из фольгированного стеклотекстолита, изготавливаем часть, которая будет крепиться к бобышкам, установленным на корпусе модели.
В ней я просверлил два отверстия для крепления, но все же, лучше подумать, где расположить третье отверстие. Все-таки крепление на три точки более надежное. Затем припаиваем эти две детали под углом 90 градусов и устанавливаем между ними уголок для жесткости. Как показала практика, деталь к которой крепятся моторы лучше сделать из более толстого материала, для жесткости.
Вот так выглядит этот узел в сборе с электромоторами.
Сама рама крепится к корпусу радиоуправляемой модели катера на бобышки из оргстекла с резьбой М3.
Изготовление рулей для модели
Теперь на радиоуправляемую модель катера Schnellboot S100 надо изготовить рули. На эту модель их надо сделать 3 штуки. По правилам рули и винты можно сделать несколько больших размеров. Если центральный руль вполне достаточной площади, то боковые рули маловаты. Перо имеют форму трапеции, поэтому, сначала из бумаги, сделаем выкройку.
За основу можно взять рули из набора и немного увеличить площадь. После примерки выкроек перенесем их на материал, из которого будем делать детали. Здесь лучше применить нержавеющий и хорошо паяющийся металл. Для этих целей я использую листовую латунь толщиной 0,2-0,3 мм.
Устанавливаем баллер по месту оси вращения и хорошо припаиваем его мощным паяльником к одной из стенок пера. Затем сгибаем перо и запаиваем заднюю кромку, после, припаиваем торцы.
Вот такие получились необработанные детали.
Теперь их надо обработать и придать рулям нужную форму.
По такому же принципу делаем и центральный руль. Он несколько более сложной формы, но суть процесса подобна вышеописанной. Единственное отличие, здесь передняя кромка делается из медной трубки.
В конечном итоге получаются вот такие рули
Инструкция по изготовлению лодки с пультом
Проверку работы ИК-приемника и сервомотора на Ардуино лучше проводить с отключенным электромоторчиком, поскольку он будет создавать сильные вибрации при работе. На этом этапе тестирования проекта следует лишь оценить подвижность киля и отцентровать рычаг привода на сервомоторе. Необходимо сделать так, чтобы при нажатии кнопки «вперед» или «стоп» на пульте, киль вставал по центру.
1. Изготовление корпуса лодки из пеноплекса

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

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

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

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

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

Винт для судна изготавливается из любой пластиковой баночки или корпуса с небольшим закруглением, например, баночка от витаминок или корпус от клея-карандаша. Для начала необходимо вырезать из пластика винт в форме восьмерки, а затем выпрямить противоположные края винта, используя высокую температуру для размягчения пластика. Смотрите фото винта для лодки Ардуино выше.
История создания
Для начала небольшая историческая справка о прототипе. История создания немецких торпедных катеров берет начало в годы Первой Мировой Войны. Впервые образец кораблей такого типа был построен в 1917г. Сразу можно сказать, что он был очень далек от совершенства. Но все же к концу войны флот Германия насчитывал 21 катер.
После окончания войны многие страны потеряли интерес к этому типу оружия. По-другому обстояли дела в Германии, на которую было наложено множество ограничений по части вооружений, согласно Версальскому договору. Кстати, о торпедных катерах там ни чего не было сказано.
Под прикрытием этих организаций начались работы по совершенствованию имеющихся катеров и созданию новых. К концу 30-х были выработаны требования тактико-технические требования к новым «москитам». Согласно немецкой морской доктрине, скоростные показатели, в отличие от проектов катеров других стран, были относительно невысокие — около 40 узлов.
К тому времени разными фирмами были представлены три варианта катеров с разной компоновкой и различным количеством бензиновых двигателей. Но они не удовлетворили военных, поэтому, требовался совершенно новый проект. В 1928г. внимание специалистов привлекла моторная яхта Oheka II, построенная фирмой «Люрссен» для американского финансового магната.
Корпус, по тем временам, имел передовую конструкцию, его силовой набор был выполнен из легких сплавов, а обшивка состояла из двух слоев древесины. Три бензиновых двигателя позволяли яхте развивать скорость 34 узла. По тем временам это были выдающиеся характеристики. В ноябре 1929г. фирма «Люрссен» получила заказ на разработку и постройку торпедного катера.
За основу конструкторы взяли проект яхты Oheka II, почти вдвое увеличили водоизмещение чтобы компенсировать момент, создаваемый высокорасположенными торпедными аппаратами. Катер вступил в строй 7 агуста 1930г. и несколько раз менял свое название, в результате он получил обозначение S-1 (Schnellboot).
Следует отметить, что даже увеличение мощности двигателей не помогло добиться проектной скорости 36,5 узда. На скоростях близких к максимальной нос катера выходил из воды происходил замыв бортов и возникало сильное брызговое сопротивление. Эту проблему удалось решить применив так называемый «Эффект Люрссена».
Суть его заключалась в том, что в потоки крайних гребных винтов ставили небольшие вспомогательные рули, которые поворачивали 15-18 градусов в сторону борта. Это помогло добиться увеличения скорости до двух узлов. Впоследствии, вспомогательные рули стали обязательной частью конструкции всех шнельботов.
S-1 и стал прородителем всей серии немецких торпедных катеров класса S. С 1943 начали производиться катера наиболее удачной модификации Schnellboot типа S-100. От кораблей предыдущих типов он отличался бронированной рубкой куполообразной формы. Катера класса S-100 имели почти вдвое большую длину, чем катера противника аналогичного класса.
Исходный код
- bottleboat.ino
// библиотека для работы с платформой Strela#include <Strela.h> // библиотека для работы с I2C-расширителем портов#include <Wire.h> // EEPROM — энергонезависимая память// библиотека для записи и считывания информации с EEPROM#include <EEPROM.h> // библиотека для работы с сервоприводами#include <Servo.h> // создадим объект для управления сервоприводом Servo myservo; // это число мы будем использовать в логике поворотовint defaultSpeed =100; // w1 и w2 - это скорость вращения первого и второго мотора// скорость регулируется в пределах от -255 до 255// если это число положительное - мотор будет вращаться вперёд// если отрицательное - назад// если баланс скорости вращения моторов не бы совершен// по умолчанию равны 100int w1 =100;int w2 =100; // значение поправочного коефициента// скорости одного мотора к другомуfloat k =1; // переменная хранит контрольную сумму// проверка на то, было ли что нибудь записано в EEPROMint sum; // переменные состояния каждой из 4 кнопок// была ли кнопка отпущена? boolean button1WasUp =true; boolean button2WasUp =true; boolean button3WasUp =true; boolean button4WasUp =true; void setup(){// я неправильно прикрутил один мотор// поэтому, чтобы их не перекручивать// можно воспользоваться этой функцией.// направление вращения мотора 2 будет изменено. motorConnection(0, 1); // открываем последовательный порт со скоростью 9600 бод Serial.begin(9600);// Bluetooth Bee по умолчанию использует скорость 9600 бод Serial1.begin(9600); // пикнем зуммером с частотой 1000 Гц, 100 мс tone(BUZZER, 1000, 100); delay(500); // считываем значение из 4 ячейки памяти EEPROM sum = EEPROMReadInt(4); // записывали ли мы в EEPROM значение баланса скоростейif(sum ==777){// чтение из памяти значение баланса скоростей w1 = EEPROMReadInt(0); w2 = EEPROMReadInt(2);} delay(100);// нажата ли кнопка S1// вход в меню настройки баланса скорости моторовif(uDigitalRead(S1)){// пищим 3 раза зуммером tone(BUZZER, 500, 50); delay(300); tone(BUZZER, 500, 50); delay(300); tone(BUZZER, 500, 50); delay(300); // вызываем функцию баланса скорости моторов balanceMotors();} // зажгём первый и четвёртый светодиод uDigitalWrite(L1, HIGH); uDigitalWrite(L4, HIGH); // вызываем функцию нахождение поправочного коефициента// скорости одного мотора к другому correction();} void loop(){// если появились новые команды// вызываем функцию управленияif(Serial1.available()>0){ control();}// вывод скоростей serialPrint();} // функция настройки баланса скорости моторовvoid balanceMotors(){while(1){// зажгём второй и третий светодиод uDigitalWrite(L2, HIGH); uDigitalWrite(L3, HIGH); // если левое колесо (мотор 1) медленнее правого (мотор 2) // нам нужно определить клик кнопки// определить момент «клика» несколько сложнее, чем факт того,// что кнопка сейчас просто нажата. Для определения клика мы// сначала понимаем, отпущена ли кнопка прямо сейчас boolean button2IsUp = uDigitalRead(S2); // если кнопка была отпущена и не отпущена сейчас// и значение первого мотора менее 255if(!button2WasUp && button2IsUp && w1 <255){// может это «клик», а может и ложный сигнал (дребезг),// возникающий в момент замыкания/размыкания пластин кнопки,// поэтому даём кнопке полностью «успокоиться» delay(10);// и считываем сигнал снова button2IsUp = uDigitalRead(S2);// если она всё ещё нажата, значит это клик!if(button2IsUp){// Скорость первого мотора увеличиваем, а второго уменьшаем w1 ; w2--;}} // запоминаем последнее состояние кнопки для новой итерации button2WasUp = button2IsUp; // если правое колесо (мотор 2) медленнее левого (мотор 1) // нам нужно определить клик кнопки// определить момент «клика» несколько сложнее, чем факт того,// что кнопка сейчас просто нажата. Для определения клика мы// сначала понимаем, отпущена ли кнопка прямо сейчас boolean button4IsUp = uDigitalRead(S4); // если кнопка была отпущена и не отпущена сейчас// и значение второго мотора менее 255if(!button4WasUp && button4IsUp && w2 <255){// может это «клик», а может и ложный сигнал (дребезг),// возникающий в момент замыкания/размыкания пластин кнопки,// поэтому даём кнопке полностью «успокоиться» delay(10);// и считываем сигнал снова button4IsUp = uDigitalRead(S4);// если она всё ещё нажата, значит это клик!if(button4IsUp){// Скорость второго мотора увеличиваем, а первого уменьшаем w1--; w2 ;}} // запоминаем последнее состояние кнопки для новой итерации button4WasUp = button4IsUp; // Индикация увеличение скорости первого мотораif(uDigitalRead(S2)){ uDigitalWrite(L4, HIGH);}else{ uDigitalWrite(L4, LOW);} // Индикация увеличение скорости второго мотораif(uDigitalRead(S4)){ uDigitalWrite(L1, HIGH);}else{ uDigitalWrite(L1, LOW);} // вывод скоростей serialPrint(); // ход по значениям скоростей w1 и w2 drive(w1, w2); // если нажата кнопка S1// пишем CANCEL в Serial// и выходим из бесконечного цикла while(1) без сохраненияif(!button1WasUp && uDigitalRead(S1)){ Serial.println("CANCEL");break;} button1WasUp = uDigitalRead(S1); // если нажата кнопка S3if(!button3WasUp && uDigitalRead(S3)){// сохраняем значение первого мотора EEPROMWriteInt(0, w1);// сохраняем значение второго мотора EEPROMWriteInt(2, w2);// сохраняем значение контрольной суммы EEPROMWriteInt(4, 777);// Пишем SAVE в Serial и выходим из бесконечно цикла Serial.println("SAVE");break;} button3WasUp = uDigitalRead(S3);}/// while (1) // останавливаем моторы drive(0, 0); // погасим второй и третий светодиод uDigitalWrite(L2, LOW); uDigitalWrite(L3, LOW); // пикнем 3 раза зуммером tone(BUZZER, 1000, 50); delay(100); tone(BUZZER, 1000, 50); delay(100); tone(BUZZER, 1000, 50); delay(100);}/// balanceMotors //запись двухбайтового числа в памятьvoid EEPROMWriteInt(int address, int value){ EEPROM.write(address, lowByte(value)); EEPROM.write(address 1, highByte(value));} //чтение двухбайтового из числа из памятиunsignedint EEPROMReadInt(int address){ byte lowByte = EEPROM.read(address); byte highByte = EEPROM.read(address 1);return(highByte <<8)| lowByte;} void serialPrint(){ Serial.print("speed w1 = "); Serial.print(w1); Serial.print(" "); Serial.print("speed w2 = "); Serial.println(w2);} // пуск сервопривода постоянного вращенияvoid servoStart(void){ myservo.attach(11); myservo.write(0);} // остановка сервоприводаvoid servoStop(void){// Самый простой способ остановить серву постоянного вращения// отсоединиться от неё myservo.detach();} void control()// функция управления{// считаем значение пришедшей командыchar dataIn = Serial1.read(); if(dataIn =='F'){// пришла команда "F", едем вперёд drive(w1, w2);}elseif(dataIn =='B'){// пришла команда "B", едем назад drive(-w1, -w2);}elseif(dataIn =='L'){// пришла команда "L", поворачиваем налево на месте drive(-w1, w2);}elseif(dataIn =='R'){// пришла команда "R", поворачиваем направо на месте drive(w1, -w2);}elseif(dataIn =='I'){// пришла команда "I", едем вперёд и направо drive(defaultSpeed w1, defaultSpeed - w2);}elseif(dataIn =='J'){// пришла команда "J", едем назад и направо drive(-defaultSpeed - w1, -defaultSpeed w2);}elseif(dataIn =='G'){// пришла команда "G", едем вперёд и налево drive(defaultSpeed - w1, defaultSpeed w2);}elseif(dataIn =='H'){// пришла команда "H", едем назад и налево drive(-defaultSpeed w1, -defaultSpeed - w2);}elseif(dataIn =='S'){// если пришла команда "S", стоим на месте drive(0, 0);}elseif(dataIn =='X'){// пришла команда "X", крутим серву servoStart();}elseif(dataIn =='x'){// пришла команда "x", останавливаем серву servoStop();}elseif(dataIn =='V'){// пришла команда "V", пищим tone(BUZZER, 1000);}elseif(dataIn =='v'){// пришла команда "v", не пищим noTone(BUZZER);}elseif(((dataIn -'0')>=0)&&((dataIn -'0')<=9)){// настройка скорости вращения обоих моторов от 0 до 9// если первый мотор быстрееif(w1 > w2){// сохраняем новое значение скорости обоих моторов// второй с поправкой на баланс w1 =(dataIn -'0')*25; w2 =(dataIn -'0')*25*k;}else{// сохраняем новое значение скорости обоих моторов// первый с поправкой на баланс w1 =(dataIn -'0')*25*k; w2 =(dataIn -'0')*25;}}elseif(dataIn =='q'){// если "q" - полный газif(w1 > w2){// первый мотор максимум, второй с поправкой на баланс w1 =255; w2 =255*k;}else{// второй мотор максимум, первый с поправкой на баланс w1 =255*k; w2 =255;}}}/// end control // функция нахождения поправочного коефициента// скорости одного мотора к другомуvoid correction(){float m1 = w1;float m2 = w2;if(m1 > m2){ k = m2 / m1;}else{ k = m1 / m2;}}
Как собрать?
Перейдём к изготовлению корпуса катера:
Теперь можно смело ставить катер на воду, загружать его вкусняшками и отправлять в плаванье. Если катер при движении клонит в сторону, повторите процесс калибровки.
Катер на arduino с радиоуправлением своими руками
Компоновка
Лодка имеет размеры 60см длина и 7,5см диаметр. Внутренний диаметр 71мм. Заглушки заходят на 2.5см каждая.
Внутри корпус поделен на “отсеки”.
- 1 – аккумулятор и приемник
- 2 – цистерна
- 3 – насос
- 4 – сервы и регуляторы хода
- 5 – главный мотор
Цистерна должна находиться по середине, чтобы лодка погружалась горизонтально (не было дифферента).
Элеметны крепления изготовлены из листового пористого ПВХ толщиной 5мм. Затем они стягиваются на железных шпильках, расположенных вдоль корпуса. Заднюю заглушку тоже следует закрепить на шпильках, чтобы обеспечить жесткоть узла с мотором и тягами рулей.
Изначально для управления мотором и насосом использовались регуляторы хода. Но реверс у них на много медленнее прямого вращения, что не удобно для насоса.
Во время испытания я не ставил отдельную схему питания UBEC и использовал встроенный BEC на 1 ампер. Т.к. мне пришла бракованная серва, которая заклинивала, в этот момент ток подскакивал и палил весь регулятор.
Мотор 550-ой серии избыточен для модели такого размера, можно поставить меньше. Крепится он шурупами на специальный кронштеин к задней заглушке. Соединение с валом через латунную муфту.
Так же стоит поставить модули Fail-safe на каналы насоса и двигателя. Двигатель настраивается на выключение, а насос на продувку цистерны.
Все чертежи на отдельной странице.
Настройка управления
В управлении моторов всё интуитивно понятно (вперёд, назад, влево, вправо). В правом верхнем углу есть ползунок настройки скорости моторов. По нажатию на кнопку
Δ
сервопривод начнёт вращаться и утиные угощения посыпятся в воду. Повторное нажатие остановит процесс. Также можно посигналить уткам с помощью зуммера, нажав на кнопку с изображением пищалки.
Подготовка и сборка корпуса
Модель торпедного катера S-100 в масштабе 1:72 выпускает немецкая фирма Revell. О самой модели скажу немного, сейчас остались только такие фото литников.
При ближайшем рассмотрении видно, что все детали выполнены на высоком уровне, нет утяжин и смещений, совсем немного облоя. Порадовало большое количество деталей и качество их проработки. Данная модель сразу, еще до приобретения, планировалась под радиоуправление. Ее приличная длина — 500мм, позволяла сделать неплохую радиоуправляемую модель катера.
Она так же задумывалась для выступления в классе F-4A на соревнованиях по судомодельному спорту. Работа над моделью началась еще до создания блога, но мысль о нем уже была, поэтому и делались некоторые фото процесса постройки.Постройка радиоуправляемой модели катера началась с подготовки и склейки корпуса.
Затем, для герметичности корпуса, очень хорошо пролил полистироловым клеем для моделей весь шов.
Радиоуправление для прикормочного карпового кораблика с автопилотом. sc-a2. arduino. своими руками. вторая версия
Радиоуправляемая лодка на ардуино своими руками
Для этого проекта потребуется:
Радиоуправляемый катер на arduino

Этот проект о сборке RC лодки, а также вы узнаете как сделать свой собственный передатчик и приемник на 2.4 ГГц. И все это с помощью нашей любимой Arduino.
Шаг 1: Элементы
Части для лодки (включает в себя приемник)1x Arduino Pro Mini
1x NRF24L01
1x Сервопривод
1x RC boat Rudder
1x RC boat shaft
1x RC boat prop
1x 1000kv motor
1x 30A ESC
1x пара разъемов XT60
1x 3s Li-Po
1x Li-Po Low voltage alarm Alarms
1x RC муфта для соединения валов
KT доска (пенополистирол)
1x тумблер тумблер
перемычкиЧасти для передатчика
2x
Модули джойстика
1x Arduino Pro Mini
1x TP4056 модуль
1x литий-ионный аккумулятор
1x NRF24L01
перемычки
базовый модуль адаптера 1x NRF24L01
1x повышающий преобразовательШаг 2: Сборка RC лодки
После построения корпуса лодки убедитесь, чтобы обеспечивается ее водонепроницаемость, и если есть какие-либо протечки, заполните их горячим клеем.
Подключите бесщеточный двигатель к валу через муфту.
Шаг 3: Электроника (приемник)
Во-первых нам нужно установить Arduino, подключить к NRF24L01.
Затем соедините ESC к Arduino, где:
5v подключиться к 5v Arduino
Gnd подключается к Gnd Arduino
Signal на цифровой контакт 2
Затем подключите сервопривод
5v подключиться к 5v Arduino
Gnd подключается к Gnd из Arduino
Signal на цифровой контакт 2
Затем соедините ESC с двигателем.
Шаг 4: Создание корпуса передатчика
Шаг 5: Электроника (передатчик)
Во-первых нам нужно Arduino подключить к NRF24L01.
Затем подключить модули джойстика к Arduino следующим образом:
Для дросселя использован 1-осевой джойстик
GND к GND Arduino
5V до 5V Arduino
Signal соеденить с А0
Для направления
GND с GND Arduino
5v с 5v из Arduino
VRY с А1 Arduino
Затем подключите повышающий преобразователь к аккумуляторной батарее с помощью тумблера и подключите модуль TP4056, как показано на Fritzing файлах, прикрепленных ниже.
Наконец загрузите код и проверьте всю систему
Скетч для лодки на ардуино с ик пультом
#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; voidsetup() { Serial.begin(9600); // подключаем монитор, чтобы узнать коды кнопок пульта irrecv.enableIRIn(); pinMode(11, OUTPUT); pinMode(13, OUTPUT); pinMode(A0, INPUT); servo.attach (7); } voidloop() { 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(); // Ждем следующий сигнал от пульта } }
В случае успешного тестирования ИК-управления сервомотором, можно приступать к испытанию проекта на Ардуино для начинающих в реальных условиях. Но перед этим обязательно позаботьтесь о защите электрических схем и микроконтроллера от возможных брызг воды и влаги. Для этого можно использовать пищевую пленку (пленка свободно пропустит ИК сигнал от пульта дистанционного управления).
Соединение электромоторов с гребными валами
Теперь нужно собрать узел дейдвуды — валы-кронштейны. Для своей радиоуправляемой модели катера Schnellboot S-100 я использовал валы диаметром 2 мм фирмы Gaupner. Чтобы их не погнуть и не повредить во время подготовитель работ, для установки и подгонки ходовой части модели, использовались спицы от велосипеда, диаметр которых тоже 2мм.
Затем проверяем легкость вращения валов в этой системе. При необходимости выставляем и подгибаем кронштейны как нужно. В конечном итоге надо добиться, чтобы валы очень легко вращались во всей этой системе. После, небольшим количеством эпоксидной смолы, наживляем кронштейны гребных валов, приклеивая их к площадкам из текстолита.
Теория
Модель подводной лодки строится по тем же принципам, что и настоящая. В центре находится “прочный” водоНЕпроницаемый корпус, внутри которого скрыты все органы управления и электроника. Снаружу он окружен “легким” проницаемым корпусом, служащим для обтекания и красивого внешнего вида. Наша модель будет состоять только из прочного корпуса.
На скорости подводная лодка может погружаться за счет рулей глубины, а в статическом положении только с помощью балластной цистерны. Как это работает? При плавании на поверхности масса лодки чуть меньше массы объема вытесненной воды (закон Архимеда). Т.е. если лодка имеет объем 3л, то ее масса должна быть чуть меньше 3кг.
Теоретические расчеты погружения модели подводной лодки.
При строительстве есть 3 основные проблемы. Они вполне независимы и могут решаться отдельно.
- радио-аппаратура (2.4 ГГц не работают под водой)
- герметизация — корпус, вал двигателя и тяги рулей
- балластная цистерна
Начнем по порядку.
Установки рулевой машинки и электроники
Теперь наступило время установки рулевой машинки и электроники на радиоуправляемую модель катера Schnellboot S100. Для этого, сначала, продумаем как ее крепить серво привод. Я сделал три стойки-кронштейна из толстого литника и усилил их крепление уголками из полистирола. Саму раму сделал из пластиковой заглушки от компьютера. Она имеет форму уголка и получилось вполне удобное крепление.
В качестве сервопривода использовал китайскую рулевую машинку HXT-500, весом 8 грамм. Тягу сделал из проволоки диаметром 1мм с защелками из авиамодельной корды.
Устанавливаем все на место, раму крепим саморезами к стойкам из литников.
Во втором отсек отсеке размещаем электронику. Там будут располагаться приемник и регулятор хода.
Палуба с главной надстройкой пока не установлена, но в дальнейшем они будут вклеены и для возможности установки и снятия электроники, в переборке, сделан поднимающийся вверх люк.
Аккумуляторы для модели расположим в моторном отсеке. Чтобы батарея не мешала вращению гребных валов, сделаем подложку-перегородку, тоже из компьютерной заглушки. По бокам, чтобы аккумулятор не болтался, проложим полоски из пористого упаковочного материала.
Теперь радиоуправляемая модель катера Schnellboot S100 готова к ходовым испытаниям.
Электрическая схема лодки с ик управлением

В нашем проекте используется старый электродвигатель на 3,5 Вольта, поэтому мы его включаем через транзистор, используя выход 3,3V на плате Arduino UNO. Включение цепи с микромоторчиком происходит после подачи тока на среднюю ножку транзистора (база) с Pin11.