Автопилот Arduplane - открытое ПО

alexeykozin

ну бутлоадер перезалить пару пустяков, если что обращайся, есть и хекс и фьюзы
шью из avrdude а в качестве программатора ардуиновская плата duemilanove - пять проводков и битбанг программатор готов

alexeykozin

кстати в выходные моросил мелкий дождь, была попытка потаскать модель по участку перед летными испытаниями,
капля попала на плату ИМУ (полагаю в район кварца) при этом иму встала наглухо, даже при резете сначала перестала реагировать вообще, а по мере просыхания стала медленно мигать светодиодами. когда от иму нет сигнала автопилот также замирает во всех авто режимах.
Тут пара спорных мыслей - хорошобы область кварца ардупилоту и иму залить каким нить составом - но чтоб и не коробило его как от лака но от влаги защищало (может термоклей?) и второе без корпуса всеже никак, минимум закатать в термоусадку, а еще лучше в конвертик из тонкого пенофола, если фольгу с GND соеденить то еще и экран получится

вот как заливал бутлоадер в иму без всяких программаторов:

Serj=
alexeykozin:

если что обращайся

Спасибо, оказалось все действительно просто, подключил по мануалу arduino.cc/en/Tutorial/ArduinoISP, только пришлось между RESET и 5V поставить резистор 110 ом, иначе ошибка лезла avrdude: stk500_getsync(): not in sync: resp=0x15.

alexeykozin

это навреное изза того что программатор не ждет после резета пока зарядится кондер а сразу пытается туда лить прошивку, с консольной утилитой avrdude такой пробемы нет, у нее можно выставять скорость, шьется конечно дольше (минуты 3 на самой низкой скорости) но можно заливать даже с фьюзами настроенными на внутренний кварц 8мгц (именно так настроены фьюзы у новых микрух)

Вчера опять потерял вечер в попытке подключить рембизи к пилоту, сначала подключил к иму вместо жпс эмулятор от рембизи попытался менять параметры лок-не лок, фигня какаято синий светодиод мигает, но лока не случается, психанул, отнес самоль на балкон и подождал пока залочится от жпс модуля, вернулся к компу, подключил рембизи - все так же клацает скоростями пытаясь найти жпс, глянул терминалом что из пилота идет, вроде адекватный вывод и жпс сообщения и м-команды рембизи есть, решил что трабла таки в прошивке рембизи, попробовал еще разок перешить, прошил мегалоадом (правда так и не понял что там за шняга с двумя файлами один во флешь - другой в епром???) так как в простом аплоадере в выпадающем списке лишь старые прошивки перечислены а 1.73 выкачивал из форума рембизи . Хотел еще разок проверить вдруг заработает, но тут сдох аккамулятор на модели, с учетом того что был уже первый час ночи, решил прервать мытарства…

Serj=
alexeykozin:

я жпс родной от китайского рембизи и использую

А дайте ссылочку, где брали osd.

alexeykozin
Serj=:

А дайте ссылочку, где брали osd.

брал тут opensurprise.com/remzibi-osd-for-fpv-p-120.html
обошлось 99баксов за комплект модуль жпс 5 герцовый с батарейкой + плата осд + регулятор-фильтр питания + доставка. платил пайпалом, шло три недели.
плата ОСД глючит неподецки при любом нажатии на плату - какието траблы то видео исчезнет то черточки по всему экрану, промыл от флюса - не помогло попробую пропаять… вобщем конечно китайщина но по цене микрух, накрайняк плату закажу нормальную и перепаяю микрухи…

alexeykozin

незнаю в чем фокус, залил НЕ ардупилотную версию
OSDV1_74 из стандартного рембизи-аплоадера, на 34800 определился жпс,
показало режим man - ручной, переключил на стабилизацию показал stb
горизонта нету ну и HEX с ним!

lio

возможно неправильно определено какой именно выдавать протокол для ремзиби
хотя если горизонт не критичен …
я про это
REMZIBI_M_COMMANDS
REMZIBI_ARDU_FIRMWARE_13 (v1.3 and older)
REMZIBI_ARDU_FIRMWARE_14 (v1.4 and newer $A and $I)

alexeykozin

а какой самый функциональный?
я решил что REMZIBI_M_COMMANDS
не?

lio

ставил 14 для горизонта - показывал 😃
ну и все режимы тоже

Serj=

Поковыряв код файл сейва в 2.7 понял что он вообще не предназначен для работы с приемниками без файл сейва. Посему был заказан комплект FrSky 2.4GHz с телеметрией.
Кто-нибудь пытался через какую штука гнать телеметрию с Ардупилота? Скорость канала 9600 кстати.
Судя по ветке обсуждения этого комплекта связь до 5 км, включая телеметрию. Вкусно!

alexeykozin

у ардупилота с жпс и иму одна скорость,
в последней прошиве стоит 38400
тоесть используя стандартный код 9600 использовать не получится…

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

Serj=
alexeykozin:

посмотреть код никак- там хекс файл

В файле Fail_Safe_v16.zip есть сишный исходник, насколько я понял там как раз и определяется наличие импульсов правильной длинны с приемника (от 800 до 2350).

alexeykozin

простите за тупейший вопрос, вопрос к тем кто летал в режиме маршрута на комплекте ardupilot + IMU
куда его грузить? в пилот или иму?
конфиг тул и туда и туда пишет…
какие прошивки иму и пилота использовали?

пытался проанализировать схему и код. Иму в отличие от комплекта пилот+гпс+термофилы даже курса гпс не дает пилоту, вместо этого широту, долготу, высоту и коррекцию крена тангажа и направления, соответственно вопрос если маршрут загрузить в пилот то откуда иму узнает куда рулить.
С другой стороны если маршрут заливать в иму - то как она узнает что пилот получил команду “auto” от пилота к иму из обратной связи лишь пин граундстарт

пробовал на жпс - эмуляторе посмотреть поведение в режиме RTL - какойто неадекват, встает на круг и все

lio

заливается в сам ардупилот
иму - только для стабилизации вместо него можна пироголовы с успехом пользовать 😃
кстати вывели горизонт на ремзиби ?

alexeykozin

с рембизи Am1.72 сростил ту прошивку на которую несколькими постами выше давали ссылку ardupilot2.7 + imu1.7
но пришлось подправить код -в исходном неверно была передача количества спутников и еще добавил автоустановку сохранения домашней точки.
в результате и горизонт показывает и режим автопилота manual - stabilize итд

если кому надо могу выложить что вышло, но еще не облетано, сами понимаете

lio

еще внимательно проверьте как он передает данные на осд
могут быть неувязки по форматам
была какая то версия связки … показывал координаты совершенно не те что были в реалии (чет было намудрено в математике )
еще момент
у меня связка без шилд-платы … и для забивания точек приходится вырубать физически иму(мешает FTDI кабелю)
вроде с шилдом етой проблемы нету

alexeykozin

у меня тоже без платы датчика воздушной скорости, а чтобы не мешало прошивке зажимаю резет на иму на время прошивки пилота
а на какой версии иму и пилота вы остановились?

с широтой и долготой все нормуль

lio

2.7+1.7 + мод сделал (юстировку иму - если не точно стоит, по аналогии с триммированием пироголов)

alexeykozin

2 lio
юстирование неплохая штука в иму 1.8.2 такое тоже есть, она долго мигает после каждого ресета но зато потом никаких дрифтов, но на сколько я понял 1.8.2 не подойдет к прошивке пилота с выводом данных для ремзиби - она не передает инфу о спутниках, ваш мод - это продолжение ремзибиевской прошивки или официальной?

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

а в вашей версии пилота 2.7 вы нашли-исправили дрожание? по моему это серьезный баг, я пытался расковырять, выводил промежуточные значения переменных в сериалпорт, но пока безрезультатно, подумалось что перебороть то можно например сделав “скругление” перед выводом в серву не выводить запрашиваемое значение сразу а усредняя его с предыдущими. но потом подумал, что надо искать причину бага а не ставить заплату

lio

про юстировку … мож я не так сказал 😃
короч ето коррекция начального положения иму относительно горизонтального полета
типа как триммирование самика
столкнулся с тем что нужно было настроить иму на приблизительно 5 градусов (лет крыло при полете идет с таким углом атаки в горизонтальном полете)
и вот чтоб не ставить под иму подкладки и не угадывать угол начальной инициализации просто ввел корректировку угла в конфиг при сборке ардупилота
идея такая-же как у пироголов
#define PITCH_TRIM 0 // deg * 100 : allows you to offset bad IR sensor placement
#define ROLL_TRIM 0 // deg * 100 : allows you to offset bad IR sensor placement

а так то при предстартовой подготовке ставлю самик на стапель (заведомо выставленный в 0) иму проходит инициализацию … заливаю точки если нада и в путь 😃

на счет авто-калибровки по кнопочке … иму должна знать истинный 0 … на его основе она выравнивается
а если нажать калибровку кода самик в руке и наклонен … это чревато таким-же горизонтом кривым 😦

с дрожанием пока сильно не боролся … пока особо не напрягает … но думаю придется … зима длинная 😃