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

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

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

SovGVD

тупо хеш от настроект (+ версия) - будет уникальное название, потом if (file_exists(хеш)) { отдать юзеру } else { блииин, придется собирать }
ну или табличку в базе хеш - осознаенное имя файла

Sir_Alex

Похоже дело не в бобине магнитном поле. Пробовал и так и сяк подсовывать магнит, пофиг дым. Хотя может у меня слишком слабый магнитик…

Я тут подумал, что может быть еще проблема в датчике тока и напряжения (Соответственно зависает при резком увеличении тока) - этот вариант я уже не могу проверить, где то потерял датчик тока…

Ребята, задонейчу 50$ тому кто найдет причину глюка!

Олег24

Привет ! Летал позавчера. И словил дизарм. Первый за три месяца … Прошивка 2.9 R306. Это произошло после серии кувырков. Причем переворот влево квадр отрабатывал без проблем а вот вправо еле как. И при очередном перевороте моторы встали. Это выполнялось в стаб моде. Разгон вверх, ручка влево, газ вниз. Квадр переворачивается и добавляем газ. У меня моторы встали именно при правом перевороте.

kren-DEL
Sir_Alex:

Я тут подумал, что может быть еще проблема в датчике тока и напряжения

был у меня глюк, на версии 2.9, постоянно срабатывал FS по питанию вплоть до отключения моторов, хотя в планере напряжение было нормальным, с тех пор им не пользуюсь