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

White_0807

Выносил компас над мозгом на 150 мм иначе при полном газе врал на 40-90 град…

Antarius

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

limon_spb
blind_oracle:

Относить подальше, ставить внешний компас, больше я думаю никак. Я вставил стальную пластинку 0.2~0.5мм между моздами и регулями, при газе коптер всё равно проворачивает в сторону градусов на 10-15 в сторону.

А вы пластину сажали на ноль? 😒 😃 Или просто?

Antarius:

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

Если медленно на ровной поверхности давать газу моторы одновременно стартуют?

blind_oracle
limon_spb:

А вы пластину сажали на ноль? 😃 Или просто?

Просто 😃 Думал “заземлить”, но решил что будет еще хуже) Может попробую при случае.

Antarius
limon_spb:

Если медленно на ровной поверхности давать газу моторы одновременно стартуют?

Да, откалибровано. Стартуют синхронно, останавливаются, когда газа совсем чуть-чуть тоже синхронно. Механически тоже вроде одинаково крутятся (руками). Да и висит отлично и взлетает ровно. Только вот на спуске поворачивается.

kren-DEL
Antarius:

Только вот на спуске поворачивается.

а вы попробуйте когда коптер в стабе висит повернуть его на 90 гр - он не возвращается назад… может у Вас какой подшипник дохнет? либо спускаться по самолётному…

pilot01
limon_spb:

Да, под платой силовые провода к ескам…
Плата записывается от отдельного UBEC
Думаете могут быть ТАКИЕ наводки?
Как посоветуете экранировать плату от проводов?

Ага, было такое на трехе…пришлось досконально всё передалать.
Мозги на пластикоых стойках преподняты над рамой, все силовые соединения идут под рамой (разделены самой рамой).
Общая земля (-) на все устройства (Мозг, GPS, bluetooth, OSD, DC-DC Step UP для камеры и Видео TX) в одной точке.

Питание от 3х ESC
1: Мозг, bluetooth, GPS
2: OSD
3: Серва YAW

Вблизи мозга исключительно сигнальные провода и забыл про все беды.

mahowik
Sir_Alex:

У Олега(commy.s) - 100% воспроизведение дизарма.
Мы уже многое перепробовали. Но самое интересное что при снятии пропеллеров, баг не воспроизводится - что как бы намекает на проблемы по питанию. Но даже питая от двух ESC - проблема остается.

Я вот подумал, это скорее всего проблема, типа “дребезг сигнала” (по аналогии с проблемой считывания сост-я кнопок микроконтроллером - “дребезг контактов”). Ведь в родном арду, на сколько помню, на обработку каналов приемника отельная мега стоит. А тут все в одну впихнули, в итоге возможно из-за каких нить прерываний сигнал с каналов аппы разово считывается некорректно, т.е. соот-но при определенном стечении обстоятельств получается некорректное считывание, но оно “равно” дизарму…
Для увеличения надежности подобных команд надо брать считывания к примеру за пол секунды и если одно или какой то процент не совпадают, то команда “не прошла поверку”… В вие так и сделано, команда аля арм/дизарм должна быть четкой в течении 1 сек…

SergDoc

Вопрос тогда больше к Алексею: входа подтянуты к питанию? я у себя подтягивал ибо тоже периодически наблюдал шум, и в px4 вход тоже подтянут к питанию…

ReM
mahowik:

Для увеличения надежности подобных команд надо брать считывания к примеру за пол секунды и если одно или какой то процент не совпадают, то команда “не прошла поверку”… В вие так и сделано, команда аля арм/дизарм должна быть четкой в течении 1 сек…

В вие я не вижу что есть 1 сек. По моему арм/дизарм происходит сразу. А вот в Ardu-Megapirate надо ждать - точно больше 1 сек.

mahowik
ReM:

В вие я не вижу что есть 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 сек… достаточно, что бы убрать ложные срабатывания…

limon_spb
pilot01:

Ага, было такое на трехе…пришлось досконально всё передалать.
Мозги на пластикоых стойках преподняты над рамой, все силовые соединения идут под рамой (разделены самой рамой).
Общая земля (-) на все устройства (Мозг, GPS, bluetooth, OSD, DC-DC Step UP для камеры и Видео TX) в одной точке.

Питание от 3х ESC
1: Мозг, bluetooth, GPS
2: OSD
3: Серва YAW

Вблизи мозга исключительно сигнальные провода и забыл про все беды.

Спасибо! Попробую экранировать сначала… А там посмотрим - исправит или нет.

Сори всем за фоотоп 😃

ReM

MegaPirateNG 3.0.1 R2
Сделал Compassmot. Показал 13%. Вижу разницу - по маршруту летит очень точно. Линии на карте совпадают. 😃
Попробовал запись точек маршрута на лету. Всё ok!

kren-DEL

Подскажите, в планере когда настраиваешь компас нужно заносить магнитное склонение, должно ли оно отображаться в соотв. поле после ухода в другую вкладку? (у меня посте возвращения стоит 0 😦)
Нормально ли работает автоопределение магнитного склонения?

ReM
kren-DEL:

Подскажите, в планере когда настраиваешь компас нужно заносить магнитное склонение, должно ли оно отображаться в соотв. поле после ухода в другую вкладку? (у меня посте возвращения стоит 0 😦)
Нормально ли работает автоопределение магнитного склонения?

Нужно. Должно отображаться. Автоопределение я не пробовал.

SovGVD
kren-DEL:

у меня посте возвращения стоит 0

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

Alex27111972

Привет всем. Извините что лезу в ваш огород…имею платку с ХК. Решил ее попробовать, скажите пжлста, какую прошиву на данный момент актуально влить в плату чтоб понять на сколько она отличается от оригинала АПМ 3.0.1?

2fast2real
Alex27111972:

какую прошиву на данный момент актуально влить в плату

MPNG 3.0.1 - R2, хотя я пока сам летаю на 2.9R300, проблемы все победил. Вроде бы )))

kren-DEL
kren-DEL:

только что проверил ещё раз

2fast2real:

MPNG 3.0.1 - R2

Восстановил коптер, пробовал повторить сбой FS, логи с борта тут , с планера нет, т.к. модемов нет 😦.
Видео, тестирование работы FS:

www.youtube.com/watch?v=RiysUO8nBCk

первый раз отключил пульт (см. 1:21), сработал РТЛ. вернул управление только переключением режима управления (Stab->AltHold->Stab), иначе всё равно использовался RLT…
сразу смоделировал второй FS - моментально сработал дизарм (см. 1:52)

www.youtube.com/watch?v=mZ93IuPEhI4

отключил пульт (см. 1:18), сработал РТЛ
вернул управление только переключением режима управления (Stab->AltHold->Stab) (см. 1:25)
смоделировал второй FS - сработал дизарм (см. 1:36)

www.youtube.com/watch?v=BqaTLrqe3Vg

FS при отсутствии ГПС с 1:30
спрашивайте что ещё потестить…

Пы.Сы. 2 Sir Alex: оттого-ли режим стабилизации стал жёстче, что убрали StabI & StabD?
такое ощущение, что коптер висит в режиме Loiter или PosHold, но спутников недостаточно, постоянные поправки чересчур сильные, даже в идеальных условиях, куда копать, как исправить, что крутить?

commy_s

Помогите переключиться на внешний компас. Как то в сети скудно по этому вопросу. Знаю, что то нужно раскомментировать в AP_InertialSensor_MPU6000_I2C.cpp , хелп. И как проверить, что работает только внешний компас, а не оба?

kren-DEL:

спрашивайте что ещё потестить…

Попробуй дать полный газ в стабе, у меня на 3.01 R1 дизармится, в R2 виснет.

limon_spb
commy_s:

Помогите переключиться на внешний компас. Как то в сети скудно по этому вопросу. Знаю, что то нужно раскомментировать в AP_InertialSensor_MPU6000_I2C.cpp , хелп. И как проверить, что работает только внешний компас, а не оба?

О, мне это тоже интересно! Скоро предстоит! У вас какой компас, где брали? Как раз выбираю…
Экранирование не помогло - несколько слоев фольги, сажал/не сажал на минус - эффекта ноль. Для тестов удлинил стойки, - расстояние до силовых проводов стало приличным (см фото) - влияние на компас уменьшилось, но все равно осталось существенным…