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

White_0807
devv:

А не проще сменить в модуле ЖПС скорость ?

На какую?

Alex_dndz

Хелп!!!
На мой вопрос никто не знает ответ? не хочу на Мультивий назад переходить!

devv
White_0807:

На какую?

Арду на скорости 38400 работает с ЖПС
В пирате 2.7 была строчка #define SERIAL2_BAUD 38400 // GPS порт
Хотя пират вроде сам умеет переключать скорость модуля на нужную ему

Sir_Alex
Alex_dndz:

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

Можете поменять местами порты в файле libraries\AP_HAL_MPNG\HAL_MPNG_Class.cpp

AVRUARTDriverInstance(avrUart2Driver, 3);
AVRUARTDriverInstance(avrUart3Driver, 2);
White_0807:

Господа подскажите ГДЕ в 3.0.1- R2 задают протокол и скорость GPS? Уже голову сломал меняю все подряд - не работает пишет NOGPS и статус гпс-0… Приемник NEO-6M подключен к serial2 . Протокол NMEA.

В R2 невозможно сменить скорость порта и нельзя поменять драйвер GPS.

White_0807

С ГПС разобрался , 3RD подключил все крутится вертится… НО! Магнетометр у меня выносной решил проверить - подношу бокорезы стальные - показания меняются все как надо вродебы но стоит поднести железяку поближе вплотную пират виснет , моторы останавливаютя , на пульт не реагирует , выходит из комы только через переподключение питания , во как… Проверял несколько раз , пробовал все варианты запитки и подключения - виснет!

RTemka

Вот кому кто то 😃 обещал 50 баксов.
Вечером попробую своему магнетометру крышу снести.
Вопрос возник, на каком принципе основан датчик ?
Нельзя ему магнитом голову снести навсегда ?

Sir_Alex

Мы это уже проверили и повторили с Алексеем Крапоткиным. Проблема в COMPASS_LEARN, если его отключить, то баг не воспроизводится. Правда я у себя дома так и не нашел магнит, поэтому код пока не поправил (кстати судя по всему, это не в пирате дело, а в АрдуКоптере)

White_0807

Магнит и не нужен. Хватает и бокорезов-отверток…

Олег24
White_0807:

Магнит и не нужен. Хватает и бокорезов-отверток…

Красава !!! Я вчера подобное видел но внимания не обратил, аккум плохо контачил думал помеха была по питанию

SergDoc

ну не буду утверждать

bool AP_Compass_HIL::read()
{
    // get offsets
    Vector3f ofs = _offset.get();


    // apply motor compensation
    if(_motor_comp_type != AP_COMPASS_MOT_COMP_DISABLED && _thr_or_curr != 0.0f) {
        _motor_offset = _motor_compensation.get() * _thr_or_curr;
    }else{
        _motor_offset.x = 0; //почему не 0.0f
        _motor_offset.y = 0; //почему не 0.0f
        _motor_offset.z = 0; //почему не 0.0f
    }


    // return last values provided by setHIL function
    mag_x = _hil_mag.x + ofs.x + _motor_offset.x;
    mag_y = _hil_mag.y + ofs.y + _motor_offset.y;
    mag_z = _hil_mag.z + ofs.z + _motor_offset.z;


    // values set by setHIL function
    last_update = hal.scheduler->micros();      // record time of update
    return true;
}


#define MAG_OFS_X 5.0 // почему не 5.0f
#define MAG_OFS_Y 13.0 // почему не 13.0f
#define MAG_OFS_Z -18.0 // почему не -18.0f

и таких вещей в коде только по компасу куча?

Sir_Alex
White_0807:

Магнит и не нужен. Хватает и бокорезов-отверток…

У меня не хватает, я и магнитом пробовал, пофигу.

White_0807

Облетал 3.0.1- R2 … Рама трикоп. Впринципе летает на стоковых пидах но подправил на глазок чуть… Итак: альтхолд великолепен! Лоитер в штиль весьма зачетен-гуляет туда сюда по кругу в радиусе 500-600мм… Хвост немного виляет но надо серву поменять (люфт).
В общем спасибо Sir Alex огромное! Высота в планнере некорректно отображается - гуляет хоть коптер и висит как прибитый , так и должно быть?

limon_spb

Может быть кто глянет опытным взором, почему поймал планету?
Вот видео полторы минуты - там в самом конце.
www.dropbox.com/s/…/2013-10-02 10.08.59.mp4

Летаю без GPS, без компаса в обычном стабе пока: дал полный вперед до упора + чтобы не проседал по высоте добавлял потихоньку газу. Коптер через пару секунд стал переворачиваться дальше положенного наклона и я вырубил движки с испугу. Не сильный ветер дул сзади-справа на коптер, как раз куда он стал переворачиваться (т.е. левый луч нырнул вниз).

После падения покрутил движками - все крутится значит не механика…
Прошивка 2.6 или 2.7…
Это может быть из-за пидов? Я их решил не менять - стоят такие же, как на гексе были такой же массы и с этими же движками. Не знаю, что и думать… починю а он снова на бреющем полете шмякнется 😃

limon_spb

PS: на гексе стояли 10’ пропы. Тут поставил 11’.

5yoda5

Добрый день, уважаемые коптероводы! Принимайте очередного новичка в свои ряды.
Я заканчиваю сборку своего квадрика. Сегодня пытался оторваться от земли. Зараза, “клюет носом”.
Сетап такой:
Контроллер AIO banned link
Движки DT-750 banned link
Регуляторы 30А “синие” banned link
остальное неважно.
Мозги прошил мегапиратом MegaPirateNG_2.8_R3. Калибровку компаса делал, калибровку акселерометра делал. GPS не зафурыкал, пусть пока так болтается, позже активирую…
Итак, при пробном “подлёте” квадрик пытается заморковить вперед. То есть задние винты крутятся быстрее. ПИДы ещё никакие не трогал, всё на стоке.
Что можно посмотреть, чтобы научить газонокосилку летать?
Заранее спасибо всем откликнувшимся.

p.s. движки крутятся правильно, винты стоят правильно - проверил три раза…

SovGVD
5yoda5:

Что можно посмотреть, чтобы научить газонокосилку летать?

откалиброваны ли регули, настроена ли аппа (1500 по центру и края 1000 и 2000), после чего откалиброванна ли в планере?

5yoda5

Конечно. Я сначала откалибровал саму аппу, потом КАЖДЫЙ регулятор в отдельности (сначала запрограммировал регуль, потом откалибровал под расходы), процедуру “радио калибрэйт” делал.
Тут мне в личке натолкнули на мысль. У меня похоже неправильно указан тип платы в прошивке (соответственно не тот комплект датчиков). Для моей платы banned link - что мне ставить в прошивке - “PIRATES_FFIMU”?

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

limon_spb
5yoda5:

Добрый день, уважаемые коптероводы! Принимайте очередного новичка в свои ряды.

Добрый день!
Компас не влияет ни на что, вроде, если летать в стаб режиме.
По поводу пидов - лучше их сначала уменьшить. Если будут слишком маленькие он просто не будет держать горизонт. Зато если будут слишком большие - будет моментальный флип и краш. Первый раз, когда я пробовал свежесобранный коптер, тоже были дефолтные пиды, и из-за этого он не успел оторваться от земли, как тут же оказался в стенке.

blind_oracle
limon_spb:

Добрый день!
Компас не влияет ни на что, вроде, если летать в стаб режиме.

Эээ… насколько я понимаю еще как влияет. Компас держит направление, ориентацию аппарата по оси Yaw, вне зависимости от режима.

limon_spb
blind_oracle:

Эээ… насколько я понимаю еще как влияет. Компас держит направление, ориентацию аппарата по оси Yaw, вне зависимости от режима.

На сколько я знаю, это делают гироскопы. А компас нужен только тогда, когда полет идет с использованием GPS, чтобы знать ориентацию в пространстве и понимать какими винтами крутить чтобы лететь, куда надо. По крайней мере мои соосные вертолеты отлично держат направление без компаса, а первое время на квадрике я летал вообще не зная, что компас нужно калибровать и в планере он показывал полную ересь 😃 Конечно об удержании позиции я тогда и не помышлял, но стаб режим работал без нареканий.

SergDoc

Да, вот именно, не разводите ересь в ветке, для чего и какой датчик тут->habrahabr.ru/post/118192/ доходчиво написано 😃

ReM
blind_oracle:

Эээ… насколько я понимаю еще как влияет. Компас держит направление, ориентацию аппарата по оси Yaw, вне зависимости от режима.

Должен держать. Но не держит. Проверить просто.
А если залить Multiwii - держит.

Alex_dndz

[QUOTE=Sir Alex;4512355]Можете поменять местами порты в файле libraries\AP_HAL_MPNG\HAL_MPNG_Class.cpp

AVRUARTDriverInstance(avrUart2Driver, 3);
AVRUARTDriverInstance(avrUart3Driver, 2);

в libraries\AP_HAL_MPNG\HAL_MPNG_Class.cpp есть только
AVRUARTDriverInstance(avrUart0Driver, 0);
AVRUARTDriverInstance(avrUart1Driver, 1);
AVRUARTDriverInstance(avrUart3Driver, 3);

я немного ошибся
нужно с serial2 переназначить на serial1.
Что на что заменить?