ArduCopter Mega: порт на обычную Arduino (тестим)
лог - точно, вот ещё логи, плата криус 2 с РЦТ, ГПС - ублокс с РЦТ, приёмник подключёт по ППМ, фриска D8R II Plus, OSD - MinimOSD, без модема
У Олега(commy.s) - 100% воспроизведение дизарма.
Мы уже многое перепробовали. Но самое интересное что при снятии пропеллеров, баг не воспроизводится - что как бы намекает на проблемы по питанию. Но даже питая от двух ESC - проблема остается.
Я у себя то же не могу воспроизвести, но у меня из всего перечисленного не подключен только OSD. А куда подключен OSD, на S3?
Меня смущают показания производительности, которые есть в логе. Там сказано, что 1000 раз из 1000, задачи (например чтение MPU6050) в шедулере превысили допустимое время. Это значит, что процессор чем то перегружен - вопрос только чем. У меня например этот показатель не выше 60 раз из 1000
А куда подключен OSD, на S3?
Да, на S3, контакт ТХ, как и положено:) когда восстановлю раму буду проводить испытания…
Меня смущают показания производительности, которые есть в логе. Там сказано, что 1000 раз из 1000, задачи (например чтение MPU6050) в шедулере превысили допустимое время. Это значит, что процессор чем то перегружен - вопрос только чем. У меня например этот показатель не выше 60 раз из 1000
Не связанно ли это с записью самого лога? В смысле он тормозит. У меня v1, дизарма никогда небыло…
Но неправильная запись параметров очень серьезная проблема. Никто больше не жалуется - я так понимаю, что это только у меня?
Тоже поделюсь видео
Вчерашние полетушки, Loiter, RTL и под конец бага с loiter, которая тут же и пропала и больше не появлялась.
зы: не обращайте внимания на голоса - теща, ребенок, жена, тесть, зеваки и даже животные были рядом.
Сегодня пробовал Geo Fence. Да, работает без нареканий.
Сегодня пробовал Geo Fence. Да, работает без нареканий.
А что оно такое?
А что оно такое?
А что оно такое?
если в кратце, то цилинд из которого коптер не имеет права вылетать, для учебы хорошо - как не крути, коптер не улетит за пределы летной площадке (если gps с компасом не глюканут)
а под платой это силовые провода идущие к ESC? Похоже на наводки от них.
Как запитывается мозги?
Да, под платой силовые провода к ескам…
Плата записывается от отдельного UBEC
Думаете могут быть ТАКИЕ наводки?
Как посоветуете экранировать плату от проводов?
Как посоветуете экранировать плату от проводов?
Относить подальше, ставить внешний компас, больше я думаю никак. Я вставил стальную пластинку 0.2~0.5мм между моздами и регулями, при газе коптер всё равно проворачивает в сторону градусов на 10-15 в сторону.
Выносил компас над мозгом на 150 мм иначе при полном газе врал на 40-90 град…
А у меня противоположная проблема - при полном газе с компасом ничего не происходит, показывает туда куда надо. А вот при быстром спуске в ручном режиме с очень малым уровнем газа, коптер поворачивает градусов на 45 против часовой стрелки. Из-за чего интересно?
Относить подальше, ставить внешний компас, больше я думаю никак. Я вставил стальную пластинку 0.2~0.5мм между моздами и регулями, при газе коптер всё равно проворачивает в сторону градусов на 10-15 в сторону.
А вы пластину сажали на ноль? 😒 😃 Или просто?
А у меня противоположная проблема - при полном газе с компасом ничего не происходит, показывает туда куда надо. А вот при быстром спуске в ручном режиме с очень малым уровнем газа, коптер поворачивает градусов на 45 против часовой стрелки. Из-за чего интересно?
Если медленно на ровной поверхности давать газу моторы одновременно стартуют?
А вы пластину сажали на ноль? 😃 Или просто?
Просто 😃 Думал “заземлить”, но решил что будет еще хуже) Может попробую при случае.
Если медленно на ровной поверхности давать газу моторы одновременно стартуют?
Да, откалибровано. Стартуют синхронно, останавливаются, когда газа совсем чуть-чуть тоже синхронно. Механически тоже вроде одинаково крутятся (руками). Да и висит отлично и взлетает ровно. Только вот на спуске поворачивается.
Только вот на спуске поворачивается.
а вы попробуйте когда коптер в стабе висит повернуть его на 90 гр - он не возвращается назад… может у Вас какой подшипник дохнет? либо спускаться по самолётному…
Да, под платой силовые провода к ескам…
Плата записывается от отдельного UBEC
Думаете могут быть ТАКИЕ наводки?
Как посоветуете экранировать плату от проводов?
Ага, было такое на трехе…пришлось досконально всё передалать.
Мозги на пластикоых стойках преподняты над рамой, все силовые соединения идут под рамой (разделены самой рамой).
Общая земля (-) на все устройства (Мозг, GPS, bluetooth, OSD, DC-DC Step UP для камеры и Видео TX) в одной точке.
Питание от 3х ESC
1: Мозг, bluetooth, GPS
2: OSD
3: Серва YAW
Вблизи мозга исключительно сигнальные провода и забыл про все беды.
У Олега(commy.s) - 100% воспроизведение дизарма.
Мы уже многое перепробовали. Но самое интересное что при снятии пропеллеров, баг не воспроизводится - что как бы намекает на проблемы по питанию. Но даже питая от двух ESC - проблема остается.
Я вот подумал, это скорее всего проблема, типа “дребезг сигнала” (по аналогии с проблемой считывания сост-я кнопок микроконтроллером - “дребезг контактов”). Ведь в родном арду, на сколько помню, на обработку каналов приемника отельная мега стоит. А тут все в одну впихнули, в итоге возможно из-за каких нить прерываний сигнал с каналов аппы разово считывается некорректно, т.е. соот-но при определенном стечении обстоятельств получается некорректное считывание, но оно “равно” дизарму…
Для увеличения надежности подобных команд надо брать считывания к примеру за пол секунды и если одно или какой то процент не совпадают, то команда “не прошла поверку”… В вие так и сделано, команда аля арм/дизарм должна быть четкой в течении 1 сек…
Вопрос тогда больше к Алексею: входа подтянуты к питанию? я у себя подтягивал ибо тоже периодически наблюдал шум, и в px4 вход тоже подтянут к питанию…
Для увеличения надежности подобных команд надо брать считывания к примеру за пол секунды и если одно или какой то процент не совпадают, то команда “не прошла поверку”… В вие так и сделано, команда аля арм/дизарм должна быть четкой в течении 1 сек…
В вие я не вижу что есть 1 сек. По моему арм/дизарм происходит сразу. А вот в Ardu-Megapirate надо ждать - точно больше 1 сек.
В вие я не вижу что есть 1 сек.
if (currentTime > rcTime ) { // 50Hz
rcTime = currentTime + 20000;
computeRC();
.....
// ------------------ STICKS COMMAND HANDLER --------------------
// checking sticks positions
uint8_t stTmp = 0;
for(i=0;i<4;i++) {
stTmp >>= 2;
if(rcData[i] > MINCHECK) stTmp |= 0x80; // check for MIN
if(rcData[i] < MAXCHECK) stTmp |= 0x40; // check for MAX
}
if(stTmp == rcSticks) {
if(rcDelayCommand<250) rcDelayCommand++;
} else rcDelayCommand = 0;
rcSticks = stTmp;
....
if(rcDelayCommand == 20) {
if(f.ARMED) { // actions during armed
#ifdef ALLOW_ARM_DISARM_VIA_TX_YAW
if (conf.activate[BOXARM] == 0 && rcSticks == THR_LO + YAW_LO + PIT_CE + ROL_CE) go_disarm(); // Disarm via YAW
#endif
#ifdef ALLOW_ARM_DISARM_VIA_TX_ROLL
if (conf.activate[BOXARM] == 0 && rcSticks == THR_LO + YAW_CE + PIT_CE + ROL_LO) go_disarm(); // Disarm via ROLL
#endif
}
....
rcDelayCommand это счетчик, который наращивается с периодом в 20мс и когда он равен 20-ти, тогда можно выполнить дизарм…
т.е. да, получится не 1 сек, а 0.4 сек… достаточно, что бы убрать ложные срабатывания…