Румпельный автопилот своими руками

Обновлено: 07.07.2024

Предприниматель

"CARPLINE V2"
Посностью русифицирован.
Все настройки на русском языке.

Схема подключения.

Обозначения и органы управления.

ВНИМАНИЕ! АВТОПИЛОТ НЕ НУЖНО КАЛИБРОВАТЬ! КАЛИБРОВКА ПРОИСХОДИТ "АВТОМАТИЧЕСКИ" ПОСЛЕ ВКЛЮЧЕНИЯ КОРАБЛЯ!

Автопилот "CARPLINE V2" создан на базе V1.
Значительно расширен функционал для подключения дополнительных органов, улучшающих и упрощающих работу Вашего кораблика.
- Подключение сервомашинок или электромагнитов для открытия бункеров.
- Управление лодкой: мотор/руль или мотор/мотор.
- Подключение сервомашинок или электромагнитов для открытия крючков.
- Возможность подключить 2 устройства, питающихся от 12V, которые включаются непосредственно с пульта управления.
- Добавлены выходы подключения крючков для сброса оснастки (серво или электромагниты).
- Подсветка дисплея вкл/выкл кнопкой "ОК" принудительно.
- Возможность подключения лебёдки (например видеокамера), мотор 12V с редуктором.
- Подключение фары 12V.
- Возможность подключения глубиномера с показаниями на дисплее пульта управления.
- Возможность подключения аккумуляторов 3S или 4S с конкретным отображением заряда на дисплее пульта управления.
И многое другое!

1. (Максимальная скорость лодки в ручном режиме)
(от 0 до 100
– В зависимости от мощности двигателя, типа гребного винта и типа лодки установите максимальную скорость лодки в ручном режиме. Рекомендованное значение для одномоторной лодки - 80. Для двухмоторного корабля с коллекторными моторами, установите значение - 100%.

2. (Максимальное левое положение руля)
(от 1000 до 1400) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Крайние положения SERVO 1000 и 2000, а центр руля при этих значениях 1500. Если, например, Вы установите левое положение 1000, а правое положение 1900, то центр руля сместится на 50 пунктов влево и будет равен 1450. Таким образом можно отрегулировать центральное положение руля, не используя механического вмешательства в конструкцию лодки. В зависимости от типа сервопривода и конструкции руля, установите нужное значение максимального левого отклонения руля. Если Вы используете SERVO 90°, то установить значение 1000. Если Вы используете SERVO 180°, то рекомендуем установить значение приблизительно 1250.

3. (Максимальное правое положение руля)
(от 1600 до 2000) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Крайние положения SERVO 1000 и 2000, а центр руля при этих значениях 1500. Если, например, Вы установите правое положение 2000, а левое положение 1200, то центр руля сместится на 100 пунктов вправо и будет равен 1600. Таким образом можно отрегулировать центральное положение руля, не используя механического вмешательства в конструкцию лодки. В зависимости от типа сервопривода и конструкции руля, установите нужное значение максимального правого отклонения руля. Если Вы используете SERVO 90°, то установить значение 2000. Если Вы используете SERVO 180°, то рекомендуем установить значение приблизительно 1750.

4. (Регулировка трима скорости)

– Рекомендованное значение 0 (0 – это центральное положение джойстика). Можно так же воспользоваться кнопкой Трим 1.

5. (Регулировка трима руля)

– Установите значение 0! Для корректной работы автопилота, изначально, при сборке корабля, руль нужно устанавливать так, чтобы лодку не тянуло в сторону при движении в ручном режиме. Для этого, в зависимости от того как установлен руль, ослабьте крепление и механически установите руль правильно.

В РЕЖИМЕ АВТОПИЛОТА, ПРИ СЛЕДОВАНИИ ЛОДКИ НА ТОЧКУ, МЫ РАЗДЕЛИЛИ УЧАСТОК НА 3 ЗОНЫ. РАЗГОН, ПРЯМОЙ УЧАСТОК И ЗАМЕДЛЕНИЕ. ДЛЯ КАЖДОГО УЧАСТКА ЕСТЬ ВОЗМОЖНОСТЬ УСТАНОВИТЬ ДИССТАНЦИЮ И СКОРОСТЬ. ПУНКТЫ МЕНЮ 6 – 11.

6. (Скорость разгона в режиме AUTO,
(от 5 до 50)
– Установить скорость, при которой лодка начинает движение в режиме автопилота при следовании на рабочую точку. С этой скоростью лодка будет двигаться то расстояние, которое установлено в настройке «Дистанция разгона в режиме AUTO, м). Рекомендованное значение 30% для одномоторной лодки. Для двухмоторной установите значение 50%.

8. (Скорость прямого участка в режиме AUTO,
(от 5 до 100)
– Скорость лодки прямого участка, после скорости разгона и до скорости замедления. Рекомендованное значение 70% для одномоторной лодки. Для тихоходных кораблей установите значение 100. Для двухмоторной лодки, использующие для управления моторами регуляторы скорости, мы рекомендуем установить значение до 100%.

9. (Скорость домой в режиме AUTO,
(от 5 до 100)
– Скорость лодки при движении на домашнюю точку после скорости разгона и до скорости замедления. Рекомендованное значение 80 - 100%. Для тихоходных кораблей установите значение 100. Для двухмоторной лодки, использующие для управления моторами регуляторы скорости, мы рекомендуем установить значение до 100%.

12. (Отклонение руля при разгоне в режиме AUTO,
(от 5 до 100) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Насколько максимально руль сможет повернуться при разгоне. Установите максимальное значение чтобы лодка могла по наименьшему радиусу развернуться к направлению точки. Рекомендованное значение 100.

13. (Отклонение руля при замедлении в режиме AUTO,
(от 5 до 100) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Насколько максимально руль сможет повернуться при замедлении. Установите максимальное значение чтобы лодка могла по наименьшему радиусу развернуться к направлению точки. Рекомендованное значение 100.

15. (Чувствительность руля при разгоне в режиме AUTO)
(от 1 до 20) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Чувствительность руля при разгоне в режиме автопилота. Насколько резко или плавно будет реагировать руль при корректировках курса при разгоне. Например: если лодка отклонилась от нужного курса на 30 градусов, то руль должен повернуться на 30%. При установленном значении 10, руль будет поворачиваться с шагом 10, это 10, 20, 30. При установленном значении 1, руль будет поворачиваться на нужный курс с шагом 1, это 1, 2, 3, 4, 5, 6……. и так далее, пока не достигнет 30. Установите значение 10.

16. (Чувствительность руля замедления в режиме AUTO)
(от 1 до 20) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Чувствительность руля при замедлении в режиме автопилота. Насколько резко или плавно будет реагировать руль при корректировках курса при разгоне. Например: если лодка отклонилась от нужного курса на 30 градусов, то руль должен повернуться на 30%. При установленном значении 10, руль будет поворачиваться с шагом 10, это 10, 20, 30. При установленном значении 1, руль будет поворачиваться на нужный курс с шагом 1, это 1, 2, 3, 4, 5, 6……. и так далее, пока не достигнет 30. Установите значение 10.

17. (Чувствительность руля прямого участка AUTO)
(от 1 до 20) ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– Чувствительность руля при разгоне в режиме автопилота. Насколько резко или плавно будет реагировать руль при корректировках курса при разгоне. Например: если лодка отклонилась от нужного курса на 30 градусов, то руль должен повернуться на 30%. При установленном значении 10, руль будет поворачиваться с шагом 10, это 10, 20, 30. При установленном значении 1, руль будет поворачиваться на нужный курс с шагом 1, это 1, 2, 3, 4, 5, 6……. и так далее, пока не достигнет 30. Установите значение 10.

18. (Тип лодки: 1 - руль + мотор 2 - мотор + мотор)
1 - руль + мотор – Установите данное значение если вы используете одномоторную лодку.
2 - мотор + мотор – Значение для двухмоторной лодки.

Примечание: Уточните у производителя или поставщика сервопривода угол открытия. Есть сервоприводы 90 градусов и 180 градусов. Т.е. если используется сервопривод 180 гр., то 1000 – это закрытое положение, а 2000 – максимально открытое на 180 гр. положение. Если сервопривод 90 гр., то соответственно 2000 – это максимально открытое положение 90 гр.

19. (Левый бункер закрытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с бункерами на сервоприводе.
– Данная настройка для сборщиков прикормочных корабликов, использующих сервоприводы для бункеров, где 1000 – минимальное положение сервопривода, а 2000 – максимальное.
Установка: 1) Подключите сервопривод к плате автопилота.
2) Тумблер Switch A переключите в нижнее, а затем в верхнее положение (закрытие бункера), убедитесь, что сервопривод открылся и закрылся.
3) Закрепите бункер согласно Вашему техническому креплению.
4) Установите значение 1000.
5) Тумблером Switch A откройте и закройте бункер.
6) Если бункер закроется не до конца, уменьшите данное значение настройки до желаемого результата. Откройте/закройте бункер 3 раза, чтобы изменённые настройки применились.

20. (Левый бункер открытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с бункерами на сервоприводе.
– В зависимости от корпуса лодки и формы бункера, установите значение 1900 (для сервопривода с углом открытия 90 гр.). Если нужно увеличить угол открытия бункера и этому позволяет корпус лодки, значение можно увеличить. 2000 – это максимальное открытое положение сервопривода. Откройте/закройте бункер 3 раза, чтобы изменённые настройки применились.

21. (Правый бункер закрытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с бункерами на сервоприводе.
– Установите значение 1900 и повторите те же действия, что и с левым бункером.

22. (Правый бункер открытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с бункерами на сервоприводе.
– Установите значение 1100 и повторите те же действия, что и с левым бункером.

23. (Длительность сброса прикормки в секундах)
(от 1 до 20)
– В данной настройке выставляется время в секундах, которое кормушка будет находиться в открытом положении до автоматического закрытия. Примечание: Если Вы используете электромагниты для открытия бункеров, то рекомендованное значение 1-2 секунды.

24. (Левый крючок закрытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с крючками на сервоприводе.
– Данная настройка для сборщиков прикормочных корабликов, использующих сервоприводы для крючков, где 900 – минимальное положение сервопривода, а 2100 – максимальное.
Установка: 1) Подключите сервопривод к плате автопилота.
2) Удерживая кнопку UP тумблер Switch A переключите в нижнее, а затем в верхнее положение (закрытие крючка), убедитесь, что сервопривод открылся и закрылся.
3) Закрепите крепление крючка согласно Вашему техническому креплению.
4) Установите значение приблизительно 1000.
5) Удерживая кнопку UP тумблером Switch A откройте и закройте крючок.
6) Если крючок закроется не до конца, уменьшите данное значение настройки до желаемого результата. Откройте/закройте крючок 3 раза, чтобы изменённые настройки применились.

25. (Левый крючок открытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с крючками на сервоприводе.
– В зависимости от корпуса лодки и формы крепления крючка, установите значение 1900 (для сервопривода с углом открытия 90 гр.). Если нужно увеличить открытие крючка и этому позволяет корпус лодки, значение можно увеличить. 2100 – это максимальное открытое положение сервопривода. Откройте/закройте крючок 3 раза, чтобы изменённые настройки применились.

26. (Правый крючок закрытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с крючками на сервоприводе.
– Установите значение 1900 и повторите те же действия, что и с левым крючком.

27. (Правый крючок открытое положение)
(от 900 до 2100) ДАННАЯ НАСТРОЙКА ДЛЯ ЛОДКИ с крючками на сервоприводе.
– Установите значение 1100 и повторите те же действия, что и с левым крючком.

28. (Длительность сброса крючка в секундах)
(от 1 до 20)
– В данной настройке выставляется время в секундах, которое крючок будет находиться в открытом положении до автоматического закрытия. Примечание: Если Вы используете электромагниты для открытия крючков, то рекомендованное значение 1-2 секунды.

29. (Автовозврат при отсутствии связи в секундах)
(от 10 до 600)
– Время в секундах, через которое кораблик вернётся на домашнюю точку при потере связи. Значение выставляется в секундах. Рекомендованное значение 90.

31. (Реверс руля: 0 – Правый 1 – Левый)
ДАННАЯ НАСТРОЙКА ДЛЯ ОДНОМОТОРНОЙ ЛОДКИ.
– В зависимости от того как установлен сервопривод руля, установите значение 0 или 1. При отклонении стика руля вправо на пульте управления, руль лодки так же должен отклониться вправо. Внимание: Данная настройка применяется только для одномоторной лодки, управление руля которой, осуществляется сервоприводом.

32. (Джойстик газа: 0 – Левый 1 – Правый)
– На пульте управления есть 2 стика управления лодкой. Вы можете использовать как левый, так и правый стик для движения вперёд/назад, установив нужное значение 0 – 1.

33. (Реверс серво VRA: 0 – Левый 1 – Правый)
– Данная настройка изменяет направление движения дополнительного подключённого сервопривода.

34. (Реверс серво VRB: 0 – Левый 1 – Правый)
– Данная настройка изменяет направление движения дополнительного подключённого сервопривода.

35. (Тип батарей: 0 - 3S 12.6V 1 - 4S 16.8V)
– В зависимости от типа аккумулятора, установите нужное значение в данной настройке. Это будет влиять на показания уровня заряда батарей лодки.

36. (Ограничение по току двигателя лебёдки / mA)
– Выход для подключения мотора 12V с редуктором и потреблением тока до 1А. Установите ограничение по току, при котором двигатель должен остановится (отключается подача питания на двигатель). Данный выход предназначен для использования, например, видеокамеры.

37. (KP - Шаг руля в режиме AUTO)
– Насколько сможет отклониться руль в случае отклонения курса при движении на точку в режиме автопилота. Внимание: Данная настройка применяется только для двухмоторной лодки в режиме автопилота. Рекомендуем установить значение 35-38.

38. (KI - Резкость руля в режиме AUTO)
(от 0 до 100)
– Насколько плавно или резко сможет отклониться руль в случае отклонения курса при движении на точку в режиме автопилота. Внимание: Данная настройка применяется только для двухмоторной лодки в режиме автопилота. Рекомендуем установить значение 100.

image

Идея постройки автопилота появилась примерно 2 года назад. Хотелось создать полностью автономный аппарат способный добраться из точки А в точку Б с возможностью ухода от столкновений и облёта преград, способного преодолевать зоны глушения или отсутствия спутникового сигнала. Также хотелось иметь удобное и простое управление с помощью мышки как это реализовано в играх (стратегии) управляя движением ЛА с помощью точек. Начинать всё пришлось с нуля, как и эту статью поэтому если есть ошибки напишите об этом в комментариях. Начну по порядку.

Аппаратное обеспечение

Изначально я не знал какое железо лучше использовать для этого проекта, но в итоге пришёл к выводу, что оптимальным вариантом будет связка микроконтроллер (МК) + одноплатный компьютер. Где МК решает задачу стабилизации летательного аппарата (ЛА), его движению по заданному курсу и высоте, а одноплатный компьютер решает задачу навигации и движения по маршруту. Поскольку в планах был уход от столкновений компьютер должен был быть достаточно мощным чтобы обрабатывать информацию от датчиков обнаружения препятствий, компактным и не слишком дорогим на том момент под это описание наиболее подходил TinkerBoard, Raspbery тогда это была 3B+ и сильно уступала по характеристикам. В качестве МК хотелось иметь arduino совместимый контроллер т.к. на arduino имелась огромная база готовых скетчей и поэтому выбор пал на DUE 84 МГц, 32bit ARM Cortex-M3 т.к. он был наиболее мощным и должен был компенсировать прямоту моих рук)).

В качестве датчиков ориентации изначально я планировал использовать MPU 9250 с фильтром Маджевика, результаты его работы были отличными. Главным преимуществом этого варианта было то, что все расчёты, включая калибровки датчиков (акселерометра, гироскопа и магнитометра), находились на МК. Но возникла проблема, фильтр плохо компенсировал линейное ускорение, которое постоянно возникает при толчках или резкой смене курса. Выражается это в показаниях тангажа и крена, в момент ускорения они начинают уплывать, а проходя через пропорционально дифференциальный (ПД) регулятор и особенно дифференциальную часть, уплывание создавало проблемы. Поэтому пришлось использовать датчик с уже реализованным фильтром BNO 055.

Функциональная схема показана на рисунке 1:

image


Рисунок 1 — Функциональная схема Автопилота.

Программное обеспечение

Для разработки ПО я использую QT вместе с IDE QT Creator т.к. он наиболее мне знаком, а также благодаря кроссплатформенности я могу запускать свои программы как на одноплатном ПК с Debian так, и десктопе с Windows, что очень удобно. Для разработки ПО микроконтроллера используется Arduino IDE. Для наглядности постараюсь представить все разделы на рисунке 2.

image


Рисунок 2. — Архитектура АП (BNO 080 добавлен на будущее).

1) Графический интерфейс управления — представляет из-себя спутниковую карту с помощью которой осуществляется управление ЛА. Сама программа отображения спутниковых снимков не моя, она была украдена мной тут (её автор тоже пытался сделать что-то подобное).

image


Рисунок 3 — Графический интерфейс управления.

2) Ядро автопилота это та часть ПО которая вычисляется на одноплатном компьютере TinkerBoard. Ядро отвечает за навигацию и движение по маршруту. Для этого к компьютеру подключен датчик GPS. С его помощью можно получить текущее положение ЛА (широту и долготу) и сравнить это положение с тем, что имеется в маршруте полёта. В результате этой операции получается азимут на цель, который отправляется на микроконтроллер вместе с остальными параметрами полёта. В дальнейшем ядро можно оснастить своим IMU датчиком, чтобы реализовать ИНС. Например, можно использовать BNO 080 проинтегрировать, ускорение и получить скорость, а проинтегрировав скорость получить расстояние. Расстояние, полученное от ИНС, необходимо будет перевести в систему координат GPS (широту и долготу) для её использования в расчёте азимута.

3) Команды ядра выполняет микроконтроллер, основная задача МК следовать по заданному курсу на заданной высоте. Для этого на МК установлен IMU датчик BNO 055, барометр bmp 280 и сонар. Для движения по курсу используется азимут полученный от ядра он, сравнивается с текущим курсом и полученное рассогласование передаётся в ПД регуляторы управления рысканьем и креном. Управление тангажом осуществляется 2мя ПД регуляторами: 1-й определяет рассогласование текущей и заданной высоты, которое поступает на вход 2-го регулятора, при этом выход регулятора высоты ограничен текущим углом атаки, чтобы контролировать её набор. В случае, если в графическом интерфейсе тип точки выбран взлёт или посадка, для определения высоты используется сонар. Его показания комплексируются с данными барометра, чтобы наиболее точно определить расстояние до земли и вертикальную скорость. Помимо основных функций МК также собирает телеметрию о работе IMU датчиков, текущем направлении и высоте, передаёт их в ядро, где эти данные дополняются данными от GPS и поступают в графический интерфейс.

Заключение

На данный момент автопилот ещё находится на стадии полётных испытаний и полностью не настроен. Впрочем я провёл только два запуска и пока не подобрал коэффициенты для регуляторов.

Вообще ПД регуляторы мне кажутся не стабильными и хочется заменить их чем-то более надёжным, тем более они уже устарели. Также необходимо заменить расчёты с углами Эйлера на расчёты в кватернионах, т.к. последние более стабильно себя ведут при развороте ЛА на углы больше 120 градусов и полётах во время ветра.

У кого нибудь есть идея как создать простой авто пилот для яхтыю(ардуино,компас, и потенциометер на положение рулевого пера) выход на 2 реле.
Чтобы просто нажал кнопку и схема держала курс.

Arhat109

Этого категорически недостаточно. Ветер гуляет и надо ещё иметь данные по кажущемуся ветру, крену, скорости потока воды и положению парусов.

Ну и вообще. Нормально центрированная яхта как-бы такого не требует, в смысле дергать рулем постоянно.

Добрый день.
О. это мой конек.
Позвольте представиться Я окредитованный установщик морского оборудования от компаний Garmin and Furuno
Я как бы Занимаюсь навигационным оборудованием последние 18 лет и скажу что в атопилоте для катера используется только данные компаса
в автопилоте для яхт добовляется сенсор руля а все о чем писалось выше это из фантастических книжек.
Конечно иногда может использоватьсч сигнал от сенсора направленич ветра.
В этом случае вместо компаса будет использоваться угол направления ветра относительно судна чтобы парус всегда был полон. но как правило это используется на прогулке поскольку в течение дня ветер меняется чаще по кругу.Можно раскошелится на плотер тогда можно мальцем ткнуть в карту и судно поплывет туда.
Я же ищу более дешевый выход типа Ардуино компас и да же сегодня подумал из серво отсоединить мотор и вывести провода наружу к двум реле через диоды.одно будет включатся в отрецательное направление другое в положительное далее через них более мощный мотор а серва сама станет сенсором положения руля.
И все это за копейки

Старик Похабыч

"одумал из серво отсоединить мотор и вывести провода наружу к двум реле " а чего бы сразу 2 реле не подсоединить к ардуино ? или одно 2канальное реле. Есть и цифровые компасы типа GY-271. Идея то прям простая, в зависимости от разницы между курсом и направлением движения задавать угол руля.. Но пока это сильно упрощенно в голове

Wan-Derer

@Старик Похабыч, лучше оперировать не курсом, а координатами. Тогда будет неважен снос посуды ветром/течением

Старик Похабыч

ну теоретически да, если задан конечная точка маршрута.. а так, если кататься то пойдет и направление, например визуальный ориентир. Но пусть лучше профи скажет, ему виднее

Можно конечно и 2 реле напрямую подсоединить и положение руля переменным сопротивлением сниматью ноо. для этого нужна программа а у меня
терпения и времени хватало только на квадрокоптеры с готовой программой а в ардуино максимум на серво с кнопкой

IMG_20191101_062948.jpg

Вот к примеру старый автопилот от фуруно-сенсор руля, компасс, мозги и панель управления он проработал скажем дофига с 1993 года

Arhat109

О, это круто наверное быть аккредитованным установщиком, да ещё и сразу от двух конкурентов!
И наверное это печально, что они оба используют только данные о расхождении курса и положение пера руля ..

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

То, что предложил - делал когда-то давно "для себя" - ставил на модель 1/4 тонника в масштабе 1:10. Работало.

В настоящее время в продаже имеется несколько моделей автопилотов, но всех их объединяет одно неприятное свойство - непомерно большая цена.

К счастью природа не терпит пустоты и вот совсем недавно появился новый автопилот Skipper, обладающий рядом функций и возможностей, отсутствующих у имеющихся, но самое главное - имеющий цену в 1,5-2,5 раза меньше.

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

Надеюсь автор - Сергей Панкратов, примет участие в обсуждении и будет активно поддерживать свой проект.

Читайте также: