Добрый день! Хочу представить вниманию сообщества свой небольшой проект мини-квадрокоптера на основе MultiWii 2.0.
Лирическое отступление или история проекта
Начнем с предыстории, иначе понять, почему коптер получился именно таким, какой он есть, будет весьма затруднительно.
В 2011 году, на 5-м курсе университета, мне хотелось собрать своего маленького робота just for fun, однако колесная платформа как-то не притягивала, и решено было собирать что-нибудь летающее. Самым простым вариантом мне тогда показался вертолет. Но просто так строить летающего робота было не интересно, я решил присовокупить его к своему дипломному проекту «разработка системы дистанционного управления подвижным объектом».
Spec-list вертолета:
деталь | название | ссылка | кол-во |
---|---|---|---|
платформа | Fire Fox EP200 | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=8938 | 1 |
двигатель (BLDC) | V623-4500vk | N/A | 1 |
регулятор (ESC) | HobbyKing Red Brick 25A ESC | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18003 | 1 |
сервопривод (Servo) | NoName 3.7g | N/A | 4 |
аккумулятор (LiPo, АКБ) | Rhino 1050mah 2S 7.4V 20C | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=7307 | 2 |
Зарядное устройство (ЗУ) | IMAX RC B3 | rctimer.com/ | 1 |
Передатчик (Tx) & Приемник (Rx) |
MSP-EXP430G2 430BOOST-CC110L |
www.ti.com/tool/430boost-cc110l www.ti.com/tool/msp-exp430g2 |
1+1 |
Гироскоп (Gyro) | HobbyKing GA250 AVCS Gyro | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=15318 | 1 |
Я был (да в прочем, и остаюсь) новичком в постройке подобных аппаратов и поэтому столкнулся с рядом проблем, в частности IMAX B3 оказался горелым, и мне пришлось в авральном режиме паять свое ЗУ (о нем как-нибудь в другой раз). В итоге, на момент защиты, как ни странно, мне удалось собрать собственную Rx/Tx систему, однако сам вертолет превратился в долгострой.
Дипломный проект был представлен в виде стенда:
Здесь обозначены: токовый шунт (1), ESC (2), Rx (3), тумблер питания (4), BLDC + тахометр (5), аккумулятор (6) и дисплей тахометра (7). Все это добро управлялось с помощью невзрачного вида программы, которой я планировал управлять вертолетом.
Прошло какое-то время, защита прошла на ура, все шло по плану. Пора бы и честь знать! Были докуплены / изготовлены следующие комплектующие:
деталь | название | ссылка | кол-во |
---|---|---|---|
Rx/Tx | Turnigy 6XS FHSS | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=24903 | 1 |
шестерня (pinion) | Custom | изготовлена на заводе | 1 |
Итак, собрал, настроил, ключ на старт… Дальше все как в тумане:
- разбита механика хвостового винта;
- разбиты посадочные скобы (landing gear brace);
- двигатель больше не заводится;
- сильно задето самолюбие.
Проанализировав ситуацию, я выяснил, что во всем виновата радиоаппаратура, которая через пару минут после включения сильно разогревается и перестает нормально работать.
Постройка коптера
С последних событий прошел один год. Я перестал считать себя самым неудачливым «пилотом» на свете и купил недостающие детали для своего вертолета (в т.ч. новый ресивер Turnigy RX7000S). Но вертолеты меня уже особо не интересовали. В это время, я натолкнулся на очень интересный материал с Hackaday. Глаза загорелись, и родился новый проект!
Spec-list коптера:
деталь | название | ссылка | кол-во |
---|---|---|---|
платформа | WLtoys V949 BNF | www.banggood.com/Wholesale-WLtoys-V949-Beetle-RC-Quadcopter-Mini-UFO-BNF-p-57271.html | 1 |
Микроконтроллер (MCU) | Arduino Pro Mini 8MHz 3.3v | www.ebay.com/itm/Redesign-Pro-Mini-atmega328-3-3V-8M-Replace-ATmega128-Arduino-Compatible-Nano-/200914924969?pt=LH_DefaultDomain_0&hash=item2ec77675a9 — Arduino | 1 |
Передатчик (Tx) | Turnigy 6XS | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=24903 | 1 |
Приемник (Rx) | Turnigy RX7000S | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=28472 | 5* |
аккумулятор (LiPo, АКБ) | Turnigy Nano-Tech 600mAh 1S | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=20385 | 3 |
Авионика (Gyro, Acc) | MPU-3050 MPU-6050 |
Жестоко выдрано из WLtoys V949 cм. Hate! — спойлер ниже |
1 2** |
Зарядное устройство (ЗУ) | Custom | Самоделка (двух сортов) | 2 |
Дополнительно | Turnigy Voltage Booster for Servo | www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=11784 | 1 |
* – как сломался первый ресивер – описано ранее, второй сломался от короткого замыкания (сам виноват), купил еще 3, на всякий случай, итого – 5шт.
** – два модуля заказывались в разных магазинах, в разное время, о первом читайте далее, второй пока еще в пути.
Плюсами такой конфигурации я считаю:
- возможность использовать гироскоп от WLtoys V949;
- возможность использовать светодиоды, конденсаторы, различные разъемы, MOSFET-ы и диоды шоттки от WLtoys V949;
- наличие аккумулятора (и даже зарядного устройства) в комплекте WLtoys V949;
- возможность питания гироскопа непосредственно от Arduino (Arduino на 3.3v выбрана не случайно).
В качестве программной платформы я решил использовать MultiWii 2.0. В конечном итоге, схема аппарата имеет следующий вид:
Схема выполнена в DipTrace 2.7.
На мой скромный взгляд, тут все должно быть понято. Эта схема, практически полностью копирует оригинальную «Connecting Diagrams» с сайта MultiWii: www.multiwii.com/connecting-elements.
Интерес, возможно, вызовет разводка платы, вот ее 3D модель:
Хотя плата (да и проект в целом), наверное, не представляет собой ничего выдающегося, я решил поделиться ею со всеми желающими: github.com/geovas/DCwii. Плата изготовлена по технологии ЛУТ:
Но ведь должно было случиться чего-нибудь нехорошее, правда? Один из элементов, а именно GY-521 уже после сборки оказался сломанным!
А мы продолжаем, на момент поломки гироскопа аппарат выглядел так:
Единственная идея, которая меня посетила на тот момент, была использовать MPU-3050 из платы управления WLtoys V949. Сказано сделано:
- Ножницами по металлу была вырезана часть платы с гироскопом.
- Старый MPU-6050 был отключен.
- Новый «модуль» был приклеен поверх старого и подпаян.
Выглядит отвратительно, но работает же! На фото ниже, модуль «франкенштейн» выделен красным:
На сегодняшний день я заказал новый MPU-6050, однако, он еще где-то в пути.
Прошивка коптера
Последним оплотом сопротивления, оказалась MultiWii. Я, конечно, сразу нашел Fork для 8MHz-версии Arduino Pro Mini, однако был удивлен, когда понял, что с моей конфигурацией работать он не будет. В итоге пришлось повозиться. Приведу ссылку на свой Fork MultiWii 2.0: github.com/geovas/multiwii-firmware/tree/master.
Основные особенности моей прошивки следующие:
- работа с Arduino Pro Mini 8MHz 3.3v;
- поддержка работы с двигателями постоянного тока (ДПТ);
- ДПТ можно полностью остановить;
- Возможность работы с гироскопом MPU-3050m.
После несчетного количества крашей (благо маленький коптер оказался достаточно прочным), мне удалось настроить аппарат. Настройку я осуществлял через MultiWii WinGui, которую, как и саму MultiWii пришлось допиливать под 8MHz контроллер, но это уже совсем другая история.
Предлагаю небольшое видео первого полета коптера, как наладится хорошая погода (ну или выпадет снег) попробую по запускать его на природе.
P.S.
- Проекты на GitHub будут постепенно развиваться, если вы тоже строите коптер на основе WLtoys V949 или аналогичного аппарата, буду рад выслушать ваши предложения и замечания, а также поделиться опытом!
- Друзья! Если вы найдете в моей статье какие-то ошибки или неточности, сразу сообщите мне об этом.
- Если вам не понравились «злобные ставки», не стесняйтесь — говорите. Их цель — показать «честный процесс постройки аппарата» со всеми трудностями с которыми мне пришлось столкнуться и важную заповедь подобных проектов — смирение, ибо без него не было бы и статьи. Если подобным врезкам не место на хабре, то так тому и быть! Спасибо за понимание.
Автор: geovas333