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

ReM

Сегодня пробовал Geo Fence. Да, работает без нареканий.

Mark_Kharkov
ReM:

Сегодня пробовал Geo Fence. Да, работает без нареканий.

А что оно такое?

SovGVD
Mark_Kharkov:

А что оно такое?

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

limon_spb
pilot01:

а под платой это силовые провода идущие к ESC? Похоже на наводки от них.
Как запитывается мозги?

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

blind_oracle
limon_spb:

Как посоветуете экранировать плату от проводов?

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

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 😦)
Нормально ли работает автоопределение магнитного склонения?

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