Снова всем мозгопривет! В этой статье вы узнает о том, какой все же катер-самоделка у меня в итоге получился.
Шаг 8: Пайка электрокомпонентов
Окончательная электросхема поделки является почти копией прототипа 3, за исключением того, что вместо Arduino Uno используется ATmega328 (см. фото), причем каждый из двух чипов смонтирован на отдельной печатной плате и на фото это “разделение” показано пунктирной линией. Еще одно преимущество “разделения” в том, что для кажой платы имеется свой регулятор напряжения, то есть лучше отводится тепло выделяемое при функционировании мозгосамоделки. Вместо непосредственной пайки компонентов на плату, их я смонтировал через контактные разъемы, что позволяет их при необходимости заменять. Так же для возможного апгрейда по краям плат с микроконтроллерами я припаял контактные разъемы.
Программируются AtMegas очень просто, нужны лишь FT232 и компьютер. В предназначенный разъем на платах устанавливается FT232, а она в свою очередь через USB кабель подключается к компьютеру, на котором установлен софт для Arduino.
Микроконтроллеры ATmega “контактируют” между собой по нескольким соединениям, одно из которых предназначен для передачи значения GPS-положения. Так же 13 контакт одного ATmega соединяется с ТХ контактом другого ATmega. Обе цепи микроконтроллеров должны быть запитаны от одной батареи и для этого я впаял штекерные разъемы “мама”, а к батарее через переходник смонтировал Y разъем.
Полный список необходимых деталей представлен ниже, и самые затратные детали из него это модуль GPS, катер и приемо-передатчик радиоуправления.
Запчасти и компоненты:
- резистор 10кОм - 4шт.
- резистор 1кОм - 2шт.
- резистор 220 Ом - 4шт.
- регулятор напряжения LM7805 - 2шт.
- регулятор напряжения L78L33ACZ - 2шт.
Arduino-компоненты:
- чип ATmega328 - 2шт.
- светодиод 5мм - 4шт.
- кристалл осцилятора 16MHz clock crystal - 2шт.
- кнопка нормально выключенная - 2шт.
- керамический конденсатор 30пФ - 4шт.
- керамический конденсатор 0.1мФ - 2шт.
- электролитический конденсатор 47мФ - 2шт.
- Н-канальный МОП-транзистор - 2шт.
- штекерный разъем “мама” JST RCY - 3шт.
- штекерный разъем “папа” JST RCY - 1шт.
- диод N5408 - 2шт.
- контактные разъемы
- терминальная плата FT232
А так же:
- GPS модуль NEO-6M - 1шт.
- монтажная плата 5х7см - 2шт.
- приемник и передатчик HK-GT2B - 1шт.
- компас HMC5883L 3-Axis - 1шт.
- катер на радиоуправлении - 1шт.
Шаг 9: Монтаж автопилота в корпус катера
Для установки компонентов автопилота в корпусе катера я использовал такую же дощечку, что и для прототипа 3. Платы прикреплены к ней с помощью винтов, а батарея хомутами-стяжками. Сама установочная доска крепится в корпусе также на липучку, с помощью липучки крепится и GPS-антенна, а модуль GPS просто вставляется в контактный разъем терминальной платы.
Приемник радиоуправления подключается к цепи микроконтроллера с помощью самостоятельно изготовленного кабеля из припаянных к проводам “мама”-штекеров и “папа”-контактов с другой стороны и закрепленных горячем клеем. Двигатели подключены к схеме через штекерные разъемы изолированные горячим клеем в соответствии со схемой.
Шаг 10: Программинг AtMegas
Как было сказано ранее, для программинга микроконтроллеры подключаются к компьютеру через плату FT232. Далее в программе для Arduino в настройках выбирается соответственно "Arduino Nano w/ ATmega328" вместо "Arduino Uno". Сам мозгокод очень похож на код для прототипа 3.
Код первого микроконтроллера анализирует GPS данные и отправляет результат на второй микроконтроллер через последовательное соединение. Во время отправки данных светодиод на 13 контакте будет мигать, и светиться, если GPS-координата на зафиксирована.
Код второго микроконтроллера выполняет больше функций. Он принимает GPS-координаты текущего положения, вычисляет расстояние от этого места до следующей точки, сравнивает свое направление с необходимым азимутом и соответственно с этим управляет двигателями. Еще код отключает опцию автопилота если присутствует сигнал от пульта ДУ. В этом случае, код обрабатывает сигнал получая из него необходимую скорость каждого двигателя. Сам маршрут, то есть последовательность GPS-точек для прохождения поделкой, также прописан в этом коде.
Перед использование мозгоподелки необходимо откалибровать компас второго микроконтроллера. Для этого я использовал библиотеку helscreams compass library, которая сделала все необходимое. После того как процесс калибровки завершится должен засветиться зеленый светодиод..
Коды для каждого микроконтроллера являются, по сути, сочетаниями моих предыдущих кодов, и найти их можно в конце мозгоруководства.
Шаг 11: Монтаж компаса
Во время тестирования третьего прототипа я заметил, что при включении двигателей мозгокомпас отклоняется на 10 градусов влево, очевидно, что это существенная погрешность. Устранялась эта “неприятность” перемещением компаса к носу катера, поэтому я и разместил сам компас спереди.
Компас также оказался достаточно чувствителен к наклону, поэтому при монтаже я соорудил для него подложку из листового пеноматериала и двустороннего скотча внутри передней части катера. С автопилотом компас соединяется кабелем из проводов с припаянными контактами, закрепленными горячим клеем.
Шаг 12: Испытания
После тестирования катера-самоделки в ванной, я, наконец, провел реальные испытания на уже знакомом пруду! Для этого я запрограммировал маршрут из трех точек в виде треугольника, с помощью ДУ отвел катер от берега и включил автопилот. Катер несколько раз успешно прошел маршрут, заходя в каждую заданную точку!
Во время плавания катер использовал только треть мощности, что примерно равно скорости пешехода. Я задал такую скорость чтобы не перегревать транзисторы, да и для безопасности заплыва.
Через неделю после первого успешного испытания я провел серию дополнительных испытаний заставляя двигаться катер по различным траекториям: треугольник, круг, зиг-заг и т.д. Мозгоподелка вела себя великолепно!
Правда два раза провод последовательного соединения с односторонней связью двух микроконтроллеров отсоединялся. К счастью, с помощью ДУ я подгонял катер к берегу, снова подсоединял провод односторонней связи и отправлял катер в очередное плавание. При испытаниях GPS не терялся, а каждого заряда батареи хватало примерно на 10 минут.
Шаг 13: Размышления об апгрейде
По существу, катер с автопилотом готов, но есть простор для совершенствования. Во время тестовых заездов я заметил, что после поворота поделка начинает колебаться. Причина в том, что компас недостаточно скомпенсирован, и после поворота он все-таки наклоняется и из-за этого начинаются колебания. Исправить это можно установкой акселерометра, а лучше совмещенными компасом и акселерометром, например GY-511, который также как и мой компас использует протокол I2C. При его монтаже придется лишь немного изменить распайку.
По поводу маршрута. Код который я написал для самоделки очень прост, поэтому катер не следует заданному маршруту целиком, а просто направляется от точки к точке, к тому же не компенсирует занос. Чтобы исправить это я собираюсь применить ПИД - регулятор в следующем коде.
Еще у меня есть SD карт-ридер, который можно использовать для записи GPS данных, но он вроде работает на более низких напряжениях.
Приложенные файлы: boat_autopilot
Файл Autopilot_GPS это код для ATmega, подключенного к GPS, а Autopilot_Main для основного микроконтроллера ATmega. В остальных файлах код для первых прототипов.
И в заключение:
Своим мозгопроектом я не просто доволен, ведь он воплотился, я еще рад тому, что приобрел много полезных знаний и навыков, от программирования до проектирования электросхем, и в дальнейшем планирую заняться более масштабными проектами
А сейчас всем удачи в ваших самоделках! Надеюсь было интересно :)
( Специально для МозгоЧинов #Boat-Autopilot