ArduCopter Mega: порт на обычную Arduino (тестим)

blind_oracle
Sir_Alex:

Нужна, потому как основная идея, отказаться от Arduino IDE и других сторонних программ. А если HEX отправлять по e-mail - получается надо avrdude использовать или другую прогу что бы залить прошивку. Хотелось бы все в одном флаконе.

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

ReM
Sir_Alex:

Если мне память не изменяет, на 2.8 флип нормально не работал…

3.0.1 R2 работает нормально.

SGur
ReM:

3.0.1 R2 работает нормально.

Накатил 3.0.1 R2- заработало!
Теперь перестала работать стабилизация и управление подвесом камеры. В настройках гимбалов стоят RC5 и RC6 и галка стабилизации. В 2.8 работало. Пробовал все входные каналы. Так же не смог активировать триггер камеры, но он мне не нужен пока . Sw7 в настройках устанавливал.
Есть у кого опыт по стабу в этой версии?

Sir_Alex
SGur:

Теперь перестала работать стабилизация и управление подвесом камеры. В настройках гимбалов стоят RC5 и RC6 и галка стабилизации. В 2.8 работало. Пробовал все входные каналы. Так же не смог активировать триггер камеры, но он мне не нужен пока . Sw7 в настройках устанавливал. Есть у кого опыт по стабу в этой версии?

Используйте выводы D11,D12 и RC10, RC11 соответственно.

SGur
Sir_Alex:

Используйте выводы D11,D12 и RC10, RC11 соответственно.

Проверил- работает.
“Спасибу” нажал.
с чем связано изменение распиновки?

Sir_Alex
SGur:

с чем связано изменение распиновки?

D44,D45 использовали программный PWM генератор, а D11,D12 - аппаратный. Это во первых уменьшает дергатню серв, а во вторых снижает нагрузку на процессор, который и так еле дышит.

Sir_Alex

Похоже, что таки удалось установить причину из за которой останавливаются моторы, при нажатии на газ: ЭТО ВИБРАЦИЯ! Пользователь который помогал тестировать и у него постоянно воспроизводилось, по наводке одного из разработчиков ArduCopter попробовал снять плату с коптера и о чудо, бага не воспроизвелась!!!

Теперь осталось разобраться, как вибрации приводят к зависанию контроллера, но хоть что то сдвинулось с мертвой точки )))

Alex_dndz
Sir_Alex:

Теперь осталось разобраться, как вибрации приводят к зависанию контроллера, но хоть что то сдвинулось с мертвой точки )))

скорее всего непропай, только тщательный визуальный осмотр. имхо.

Sir_Alex
Alex_dndz:

скорее всего неропай, только тщательный визуальный осмотр. имхо.

Почему тогда при установке предыдущей версии MPNG, проблема не воспроизводится? Не, я не исключаю хардварную проблему, но с моей точки зрения, проблема скорее всего в драйвере MPU.

Alex_dndz

Подскажите, как в MPNG 3.0.1 R2 переназначить GPS U-BLOX на порт S3, плата AIO v2?
к S2 нет возможности подключить.

2fast2real
Sir_Alex:

снижает нагрузку на процессор, который и так еле дышит.

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

Alexey_1811
2fast2real:

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

Нужно ставить stm32F4XX и забыть на время про нехватку ресурсов МК.

2fast2real

Еще бы уметь под него программить ))) я кроме асмы ни какого другого языка не знаю (

commy_s
Sir_Alex:

Похоже, что таки удалось установить причину из за которой останавливаются моторы, при нажатии на газ: ЭТО ВИБРАЦИЯ! Пользователь который помогал тестировать и у него постоянно воспроизводилось, по наводке одного из разработчиков ArduCopter попробовал снять плату с коптера и о чудо, бага не воспроизвелась!!!

Теперь осталось разобраться, как вибрации приводят к зависанию контроллера, но хоть что то сдвинулось с мертвой точки )))

В моем случае дело было не в вибрации (пропы карбон отбалансированы, желе не было) Я избавился от этой проблемы переместив плату на стойки, подальше от силовых. Раньше она крепилась прямо на разводке питания. Такое ощущение, что плата висла при резком скачке магнитного поля, может это как то связано с сходившим с ума компасом.

Теперь появилась другая проблема, которую обсуждают на rcgroups, а именно перезагрузку minimosd в альтхолд и лойтере (waiting for mavlink). Видимо реально не хватает ресурсов процессора.

SergDoc

Похоже в imu переполнения возникают по датчикам?

Sir_Alex
SergDoc:

Похоже в imu переполнения возникают по датчикам?

Не представляю, как переполнения могу привести к зависанию. Даже если возникнет деление на 0, то по идее, плата должна уйти в ребут. Причем что странно, когда плата зависает, моторы останавливаются - а это значит, что PWM генератор перестает работать - с чего бы это???

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

iluxa1
Sir_Alex:

Похоже, что таки удалось установить причину из за которой останавливаются моторы, при нажатии на газ: ЭТО ВИБРАЦИЯ!

Может нужно просто усложнить алгоритм арминга/дисарминга чтобы случайные входные данные не смогли вызывать эти события?

Sir_Alex
commy_s:

Я избавился от этой проблемы переместив плату на стойки, подальше от силовых. Раньше она крепилась прямо на разводке питания. Такое ощущение, что плата висла при резком скачке магнитного поля, может это как то связано с сходившим с ума компасом.

Хм… да, это то же вариант. Возможно что дело не в вибрации а в резком изменении магнитного поля. Надо будет попробовать поднести магнит во время работы…

commy_s:

Теперь появилась другая проблема, которую обсуждают на rcgroups, а именно перезагрузку minimosd в альтхолд и лойтере (waiting for mavlink). Видимо реально не хватает ресурсов процессора.

Да, есть такая проблема, но с ресетом вроде как решается прошивкой более старых версий minimOSD.
А вот почему начинают тормозить данные не понятно. Я похожую проблему получил дома, когда включил отладочный режим шедулера (SCHED_DEBUG=2), я сразу и не понял что происходит, как только срабатывает FS (я его как раз тогда проверял) - телеметрия пропадает и появляется только когда происходит посадка. Видимо тут такая же проблема, но SCHED_DEBUG явно никто не включает, значит тормоза где то в другом месте.

У тебя кстати какой GPS? В каком он режиме работает, NMEA?

commy_s
Sir_Alex:

У тебя кстати какой GPS? В каком он режиме работает, NMEA?

NEO-6M протокол ublox

Sir_Alex
blind_oracle:

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

Вроде я с большего определился что мне надо:

  1. Скрипт, который запускается по крону раз в минуту или реже.
  2. Скрипт подключается к локальной БД и вытягивает текущее задание на компиляцию. Видимо в БД, будет лежать ID задания, ID пользователя, Список дефайнов которые выбрал пользователь (видимо это произвольная строка, которую надо передать в make).
  3. Скрипт запускает компиляцию и записывает результат (hex файл запакованный например gz) обратно в БД в ту же запись с заданием и обновляет статус задания. Если возникла ошибка, статус = ERR и бинарное поле куда записывается прошивка, туда надо положить текст ошибки или что там будет от make.
  4. Смотрит есть ли еще задания и если есть то п.2

Вот в принципе и все 😃

obion

Как вариант можно ещё ввести “кеш” прошивок.
Скорее всего большая часть конфигов будет совпадать и в этом случае можно просто отдавать готовую прошивку, которая когда-то была собрана по запросу какого-то пользователя.