По запросу трудящихся, решил создать тему, дабы было проще выкладывать периодическую инфу и обновления, и разрешать вопросы когда таковые появляются. Кроме того, если кто-то проектирует собственного дрона, некторые моменты будут интересны.
За две инкарнации был создан относительно компактный вариант автопилота с GPS, 3D IMU, OSD на ATmega-х. Собственно целью стояло создание именно как можно более компактного и простого в обращении АП, без излишних "соплей", и как следствие более высокой надежности, с точки зрения эксплуатации.
Первый вариант автопилота создавался исключительно как модульный вариант, с подключением внешнего GPS (с поддержкой команд GPS Linx и Locosys-совместимых GPS с MTK набором команд).
Вначале был ЛУТ )) (причем для всех плат, и OSD и IMU)
В качестве баросенсора использован пресловутый MPX5004, с последующим усилением ОУ. Термосенсор так же аналоговый TMP36GT9 с последующим усилением на ОУ. Как оказалось, термо-сенсор сильно чувствителен к помехам с видео передатчиков на 1.2 гГц. Под воздействием излучения видео-антенны, начинает выдавать абсолютно неадекватный уровень сигнала.
Как накопитель LOG-ов использован EEPROM от Microchip с протоколом обмена I2C.
Дополнительные модули OSD, IMU подключаются к АП через I2C шину.
OSD - простейший текстовый Overlay на видеосигнал (32х22 символа) на ATMega88, с возможностью задавать оттенок прозрачности фона символов.
IMU включает 3-х осевой гироскоп и акселерометр от ST. Для интеграции матрицы ориентации использован так же ATMega88, при тактовой частоте 8 МГц.
Во втором вариант-е АП были учтены недостатки первого, заменены сенсоры на цифровые (BMP085), GPS и антенна размещены сразу на одной плате с АП, таким образом, стоимость самого GPS модуля в ~3 раза дешевле внешне-купленного, занимает меньше места, отсутствуют лишние провода.
Печатная плата проектировалась сразу для заводской печати. Поэтому удалось еще плотнее сжать элементы. В коробке ~4.5 на ~8.5 см. Без коробки 4x6.
Корпус кстати, печатанный на FDM 3D принтере. Несмотря на казалось бы крупный слой печати 0.2 мм, вполне неплохая коробка вышла, довольно детальная. Термоусадка, как показывает практика, для больших плат не есть лучший вариант.
Трубка пито так же печатанная на принтере. (с аналоговым диф. сенсором MPX5004DP)
Неплохая статья по разработке IMU интегратора: http://www.starlino.com/dcm_tutorial.html
Процессор IMU ATMega88, работает на частоте 8МГц, частота обновления ~62 Гц (есть возможность повышения до 124 Гц). Работает на FixedPoint арифметике, с точностью 14 бит.
Весь обслуживающий софт самописный, коннект с АП производится через Bluetooth, что в поле более удобно, нежели USB. Хоть и не столь надежно, на расстоянии дальше 10 метров.
В качестве процессора для АП использован ATMega644 на 16 МГц. Для логирования используется FLASH от Atmel на 512 кБ.
Особое внимание пришлось уделить сенсору BMP085. Поскольку на I2C шине висят кроме BMP085 параллельно другие модули, выяснилась неадекватная работа реализации адресации I2C Slave в BMP085. С некоторым адресами параллельных Slave-ов, BMP085 похоже некорректно распознает адрес и при определенных последовательностях байт данных (следующих за адресом) вмешивается в общение Master-a с другим Slave-ом.
Собственно, автономный полет АП