А мне летать охота, или как протестировать узлы квадрокоптера без аппаратуры радиоуправления

в 12:49, , рубрики: avr, avr-usb-mega16, DIY, diy или сделай сам, квадрокоптер, метки: , , ,

Начитавшись статей на Хабре про квадрокоптеры, и насмотревшись видео на YouTube, захотелось и мне сделать квадрокоптер.
Заказал я в чудесном китайском магазине деталек, за основу брал список из этой статьи. К сожалению, в том магазине отсутствовала радиоаппаратура, да и опыта покупок на такие суммы у меня пока что не было, поэтому заказ состоял только из пропеллеров, аккумуляторов, двигателей, контроллеров к ним (ESC) и главного контроллера.
Приехало все достаточно быстро — менее двух недель (из Гонконга в Киев). Сразу после этого заказал в другом магазине радиоаппаратуру и разную мелочь.
Раму я сделал из подручных материалов (квадратной алюминиевой трубы из местного строительного магазина), разместил на ней двигатели с контроллерами. И захотелось мне их испытать — вдруг бракованые есть. Инструкция к ESC говорила о том, что нужно подключить к ним один из каналов от радиоуправления. Но радиоуправление приедет не раньше чем через полторы недели…

Полез я разбираться, как же управляются эти ESC. Оказалось, управляются они ШИМом, причем скважность импульсов тут не важна, а важна абсолютная длительность импульсов. Минимумом считаются импульсы в 1 мс, максимумом — в 2 мс (RaJa, спасибо за помощь).
Для эмуляции радиоуправления я использовал чудесную разработку DiHalt`а — плату pinboard II (за что ему отдельное спасибо). Программа на Си, код до безобразия простой: микроконтроллер (ATMega16) ждет байт из последовательного порта, и если это 'q', 'w', 'e' — увеличивает (с разным шагом) ширину импульса на выхоже ШИМ, если 'a', 's', 'd' — уменьшает. Также программа мигает одним из светодиодов — чтоб убедиться что МК не завис, и зажигает/гасит второй светодиод если на порт приходит '1'/'0' (для проверки связи с компьютером).
Код программы
ШИМ работает на частоте 488 Гц, все ESC адекватно такой сигнал воспринимают.
Компилировать в AVRstudio (я пока что 4ю использую), тактовая частота МК — 8MHz, прошивка с помощью bootloader`а (который был записан в МК в комплекте с pinboard).
Для управления платой можно использовать обычный screen (для *nix):
lim$ screen /dev/tty.usbserial-000013FAA 9600
либо гипертерминал для Win*.

И напоследок, как все в сборе выглядит:
А мне летать охота, или как протестировать узлы квадрокоптера без аппаратуры радиоуправления

И еще одно видео (вторая попытка):

Автор: lim

* - обязательные к заполнению поля