Корзина

Блог

Просмотр записей блога с тегом 'полетный контроллер'. Записи отсортированы от самых свежих к старым.
2013-06-02 17:33:05; автор: Сергей
По состоянию на 2 июня 2013 г. многие прошивки для полетного контроллера и управляющее ПО обновились. Теперь процесс настройки платы AIO Pro для использования в ней прошивки MegaPirateNG заключается в следующем.
1. Сама прошивка MegaPirateNG v2.8 R3 доступна на code.google.com.
2. Чтобы эту прошивку установить в октокоптер, ее нужно скомпилировать с помощью IDE Arduino 1.0.5.
Интересный момент: чтобы прошивка полетного контроллера скомпилировалась, нужно в каталоге с arduino-1.0.5 удалить подкаталог libraries и переместить на его место одноименный каталог из исходников прошивки MegaPirateNG.
3. Правим файл ArduCopter\APM_Config.h, чтобы указать что у нас тип рамы OCTA_FRAME. В каталог arduino-1.0.5/hardware/arduino нужно положить файл boards.txt из каталога с прошивкой, а в самом IDE выставить плату Arduino Mega 2560. Также копируем файл arduino-1.0.5\hardware\arduino\variants\standard\pins_arduino.h в каталог arduino-1.0.5\hardware\arduino\cores\arduino\ , иначе будет ошибка компиляции.
После этих действий можно запускать компиляцию прошивки, открыв файл ArduCopter/ArduCopter.pde и нажав пункт меню Скетч->Проверить\Компилировать. Результат компиляции будет в временной папке "C:\Documents and Settings\[username]\Local Settings\Temp\buildNNN.tmp\ArduCopter.cpp.hex - но мы не будем вручную его прошивать на полетный контроллер, поэтому то, где лежит HEX код прошивки для полетного контроллера, не особо важно. IDE arduino все сделает сам: достаточно к компу подсоединить USB провод с micro USB на втором конце, подсоединить его к плате Crius AIO Pro 1.0, и выбрать в IDE пункт меню "Загрузить", как прошивка скомпиляется и сама зальется на полетный контроллер.
4. Для настройки прошивки используем последний APM Mission Planner 1.2.53, который теперь выкладывается теперь не на code.google.com, а на своем сайте: ardupilot.com. Для работы этого ПО нужен .NET Framework 4.0.
Используя тот же USB провод, что использовался для загрузки прошивки из arduino, мы подключаем Mission Planner к плате. У меня она определилась на порту COM5. После успешного подключения я зашел в терминал Mission Planner-а и увидел там ожидаемые строчки:
Init MegaPirateNG V2.8 R3
Free RAM: 1943
FW Ver: 120
----------------------------------------

load_all took 1224us
Press ENTER 3 times for CLI
3GROUND START?MegaPirateNG V2.8 R3]

Так что все готово к настройке и полетам.
2012-08-16 01:26:35; автор: Сергей, комментарии (2)
Несмотря на то, что квадрокоптер у меня потерпел крэш, полетная плата, хотя и сильно пострадала, но оказалась жива. Или полу-жива. Потеряно два гироскопа из трех, но в целом, она работает.

Я решил проверить ее необычным способом: написал для этой платы программу и посмотрел, как она работает.

Оказывается, программы для этой платы можно писать не только в AVR Studio 5, о чем я писал ранее, но и в среде интегрированной разработки (IDE) для Arduino. О да! Ардуино! Вот так я делал:
  • Скачиваем IDE с code.google.com, распаковываем.
  • Потребуется немного настроить среду разработки. В файле hardware/arduino/boards.txt надо прописать такие строки:
    hobbyking_v2.name=HobbyKing v2.1 ATmega168
    hobbyking_v2.upload.protocol=usbasp
    hobbyking_v2.upload.maximum_size=14336
    hobbyking_v2.upload.speed=57600
    hobbyking_v2.build.mcu=atmega168p
    hobbyking_v2.build.f_cpu=16000000L
    hobbyking_v2.build.core=arduino
    hobbyking_v2.build.variant=hobbyking_v2
    Потом надо создать каталог hardware/arduino/variants/hobbyking_v2, куда поместить файл pins_arduino.h из hardware/arduino/variants/standard/, и исправить его: в массив digital_pin_to_port_PGM добавить в конец два элемента PB и в конец массива digital_pin_to_bit_mask_PGM элементы _BV(6),_BV(7).
    Также я поправил файл %APPDATA%/Arduino/preferences.txt, указав там в обоих случаях verbose=true.
  • Всё, теперь можно запускать IDE arduino.exe, в котором надо выбрать Сервис->Плата->HobbyKing v2.1 ATmega168 и Сервис->Программатор->USBasp, поскольку именно его я купил на хоббикинге для прошивки полетной платы.
  • Пишем код и заливаем его в полетную плату через меню "Файл->Загрузить с помощью программатора". Обычная загрузка не работает, т.к. она хочет использовать несуществующий COM-порт, а USBasp у нас не создает COM-порта.

Простейшая моя программа зажигает светодиод D1 на 0.9 сек, потом поворачивает серву на 10 градусов, потом выключает светодиод на 0.1 сек, и процесс повторяется снова. Поскольку серва имеет ход всего 80 градусов, то я ее сбрасываю в 0 по достижении предела. Вот как это выглядит вживую:

Красиво, правда? Жена сказала, что я сделал из квадрокоптера часы :)
В целом, таким способом можно написать простейшую программу, которая бы использовала значения с гироскопов для того, чтобы управлять сервами - у нас получится полноценная схема стабилизации подвеса для камеры.
2012-08-10 00:26:38; автор: Сергей, комментарии (2)
Продолжается увлекательная история о том, как я, не имея никакой документации, пытаюсь разобраться с тем, что это такое - All In One Pro и как ее настраивать.

Как я выяснил ранее, эта плата - альтернатива более дорогой и пафосной APM 2 (ArduPilotMega 2.0). На AIO ставится то же самое свободное программное обеспечение, которое разрабатывают энтузиасты и выкладывают его в опенсорс. Производят плату All In One Pro какие-то китайцы, и она продается вообще без какой бы то ни было документации.

Итак, в прошлый раз я пробовал подключить плату по USB к компьютеру, установив предварительно драйвера. Сначала я думал, что плата имеет какой-то дефект, проблему с таймингом или питанием, поэтому компьютер ее не определяет. Проверил на другом компьютере - то же самое. Начал думать в сторону использования FTDI разъема на плате для подключения не к USB, а к настоящему COM порту компьютера... Однако решение проблемы подключения платы оказалось банальным: китайский USB провод был битый. Я вскрыл его Micro USB разъем и увидел, что белый провод (Data -) был оторван. Вот поэтому не определялась плата компьютером. Пришлось проводок припаять:
Micro USB провод
После этого все успешно определилось. Вот так стала выглядеть плата с подсоединенным проводом и горящими светодиодами:
Crius All in one Pro with USB
Опытным путем установлено, что в этом вновь созданном COM порту нужно выставить скорость 115200 бит/c, и после этого Mission Planner начинает видеть плату при переключении в верхнем меню на кнопку Terminal, при этом подключать явно (нажимая кнопку в правом верхнем углу) не требуется.

Удалось через Mission Planner залить прошивку ArduCopter V2.7.1 Octa, а также получил доступ в консоль платы:
Init ArduCopter V2.7.1

Free RAM: 1424
FW Ver: 118
----------------------------------------


load_all took 524us
3ERASING LOGS
3Erasing logs5?3Log erase complete-?COMPASS INIT ERROR

Press ENTER 3 times for CLI

GQC^`'ArduCopter V2.7.1] 
ArduCopter V2.7.1] 
ArduCopter V2.7.1] 
ArduCopter V2.7.1] ?
Commands:
  logs
  setup
  test
  help
  planner
ArduCopter V2.7.1] 

Красота.
2012-08-09 03:56:56; автор: Сергей
Ну вот дошли руки настроить эту чудесную плату. Как видно из ее названия, это плата "всё в одном", т.е. в том числе в этой плате встроен FTDI чип, который преобразует USB сигнал в последовательный порт. Ну чтож, я подключил плату к компьютеру через какой-то нестандартный USB кабель, у которого на стороне платы разъем меньшего размера, чем miniUSB. Этот провод я купил на том же сайте, что и саму плату (rctimer.com). Плата стала красиво подсвечиваться светодиодами: одновременно горят красный, желтый (В) и зеленый светодиоды. При наклоне платы также начинают моргать красный (А) и зеленый (С) светодиоды, видимо, давая понять, что гироскопы на плате находятся в исправном состоянии. Однако... Однако компьютер не видит мою плату, пишет, что USB device is not recognized. Пробовал перетыкать несколько раз, пробовал даже запитать плату от UBEC 5V в надежде, что ей не хватает питания. Не помогло. Поставил драйвер FTDI to Serial port, который нужен для работы с этой платой (взять драйвер можно с сайта ftdichip.com), перегрузился, перетыкал опять UB провод, не помогло. И тут случайно плата определилась! Оказывается надо десяткок-другой раз перетыкать USB и наконец плата определится как USB Serial Port (Vendor ID 0403, Product ID 6001).
Теперь можно пробовать подключить плату к Mission Planner.
2012-08-04 17:17:27; автор: Сергей
Второй посылкой пришел полетный контроллер All in one Pro v1.0. Я заказывал в том числе и плату расширения и GPS с гнездом для установки XBee. Вот как выглядит полетный контроллер:
All in one Pro 1.0
Посылка пришла за 2 недели. В комплекте нет никакого мануала, просто плата полетного контроллера и всё. Будем потихоньку разбираться, что к чему и как настраивать эту плату AIO Pro.
Ну а пока ждем остальных посылок. Очередная посылка на подходе - с аккумуляторами.