Корзина

Блог

Вы читаете блог проекта RC Drone, запись №77.
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 по достижении предела. Вот как это выглядит вживую:

Красиво, правда? Жена сказала, что я сделал из квадрокоптера часы :)
В целом, таким способом можно написать простейшую программу, которая бы использовала значения с гироскопов для того, чтобы управлять сервами - у нас получится полноценная схема стабилизации подвеса для камеры.

Комментарии к посту

elik981, 2012-08-19 07:01:16
А зачем писать отдельную программу стабилизации камеры, если функция управления и стабилизации подвеса камеры есть в прошивке ArduCopter 2.7. А значит должна работать и в MegaPirateNG. Правда на плате Crius AOIP предусмотрено управление только двухосевым подвесом. Но думаю канал управления затворм можно переназначить на третью ось. Главное чтобы прошивка поддерживала. А в версии 2.7 вроде добавили. http://diydrones.com/profiles/blogs/arducopter-2-7-released.

И как делать стабилизацию на плате
Сергей, 2012-08-19 11:53:43
Будем экспериментировать и пробовать различные варианты. Пока что я заказал специальную плату MultiWii SE Lite, в которую можно залить прошивку управления подвесом камеры. Задача - сделать независимый подвес, чтобы при любых наклонах рамы коптера он сохранял свое положение в пространстве. Если AIO справится с этим в одиночку, то так даже лучше - сэкономим на массе электроники на борту.
PS длину поля для комментов увеличил в 4 раза, чтобы они не обрезались на полуслове :)
Залогиньтесь или зарегистрируйтесь, чтобы отправлять комментарии



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