CRIUS ALL IN ONE PRO Flight Controller

Leon11t

Скиньте человеку кто небуть hex файл своей робочей прошивки. Может где то у него чтото заглючило в компиляторе ардуиновском.

Dreddix

Сразу после заливки арду, строчки компаса были живы. Я загрузил в плату настройки, отключил от УСБ, подключил синезуб- всё, и через синезуб и через усб- строчки компаса по нулям. Залил снова и2цшпийона, компас жив, после заливки арду, строчка компаса по нулям. Настройки залитые в плоату не стираются. Их надо как-то сбросить, возможно там проблема.

ПЫСЫ
отключаю, подключаю он 1 раз даже заработал и откалибровался. Отключил-подключил… не работает. Что за бред. ковыряю дальше.

Сергей_Вертолетов
gorbln:

Нет такого эффекта, как с Розе, что после застывания - чип можно пальцами оторвать? Типа, не липнет нифига?

Держит отлично. И еще свойство классное - капля этого припоя делает легкоплавким и соединение, припаянное чем-нибудь “дубовым”

Dreddix:

отключаю, подключаю он 1 раз даже заработал и откалибровался. Отключил-подключил… не работает. Что за бред. ковыряю дальше.

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

gorbln

Шой-то у меня ощущение…
А вы тип платы в ардуине правильно выставляете? А то если не правильно - оно заливается, но потом подвисает при попытке прицепиться конфигуратором - всё работает, но данные не идут.

Сергей_Вертолетов:

Держит отлично

Спасибо за инфу, закуплюсь завтра =)

Dreddix

ВСЁ!!! РАЗОБРАЛСЯ!!!

Это похоже особенности прошивки… БАГИ…

На плате есть кнопка ресет. Пока её не нажмёшь компас не работает. Иногда при одиночном нажатии плата не запускается, остаётся гореть “А”(красный) лед, но повторное нажатие РЕСЕТ оживляет плату. При подключении через УСБ, плата всегда перезагружается, поэтому иногда компас работает, и никогда не работает от синезуба без ресета. После ресета компас работает ВСЕГДА!!! А я ещё думал… нахрена тут ресет… а вон оно как… очень даже надо!
Спасибо всем откликнувшимся! Я тут собирался компас менять, а оно вон как…

gorbln:

А вы тип платы в ардуине правильно выставляете?

Вы про это?
#define PIRATES_SENSOR_BOARD PIRATES_CRIUS_AIO_PRO_V1
Проша для самика сразу собрана для AIOP контроллера, ничего менять не надо.
Сама плата у меня версии 2, но там нет никаких отличий, кроме цвета пластика и усиленный усб

gorbln:

А то если не правильно - оно заливается, но потом подвисает при попытке прицепиться конфигуратором - всё работает, но данные не идут.

Вот именно это у меня и происходит! Но после ресета отпускает! Причина?

gorbln
Dreddix:

Причина?

ну я ж говорю - тип платы надо выставить в ардуине. В смысле - в настройках САМОЙ ардуины, среды программирования. У вас походу плата Pro Mini установлена. А надо Mega256. Сам с такой фигнёй сталкивался, и где-то здесь прочитал, что так бывает.

Dreddix:

Вы про это?
#define PIRATES_SENSOR_BOARD PIRATES_CRIUS_AIO_PRO_V1

Нет. Это дефайн, определяющий тип платы для программы, в данном случае - пирата.

Распишу поподробнее. В среде ардуино делаете “сервис” -> “плата” -> Mega 2560
После чего пересобираете и перезаливаете прошивку. Должно попустить =)

Dreddix

Или ещё как вариант, на этой прошивке при подаче питания и первичной загрузки платы, не инициализируется компас, или проц не может его просчитать, но когда питание подано и сделать сброс, проц просчитывает компас как надо.
Кстати, иногда, 1й ресет не помогает, тогда точно помогает 2й ресет. Короче без компа на поле ехать нельзя. Без уверенности что компас в порядке- это самоубийственно

gorbln:

В смысле - в настройках САМОЙ ардуины, среды программирования. У вас походу плата Pro Mini установлена. А надо Mega256. Сам с такой фигнёй сталкивался, и где-то здесь прочитал, что так бывает.

выбрано Arduino mega 2560 or mega ADK

Если бы была выбрана не та плата, то какая связь с нажатием РЕСЕТ? я так понимаю никогда не будет подхватываться?
Тут в прошивке скорее дело. Её тут никто не пробовал. а мне позарез нужен автопилот для самика. Дистанции стали уже не 1 км, ссыкотна очень… Вот и решил попробовать. Всё вроде ок, кроме глюка с компасом.

Я мучаю дальше плату. Одиночный ресет не всегда помогает, иногда нужно даже 4-5 раз нажать ресет, чтобы заработал компас. И у меня появилась мысль. А что, если питание виновато? Рег в самике СБЕК, на столе я его питаю СБЕКом. Может шумные источники очень? Линейника нет, жалко, попробовать. От батареи его можно 3S питать? Extend Power стоит 5-12в, а 12.6 выдержит? Если питать от акка, джампер желтенький снимать надо?

Sir_Alex

Виталий, залейте MPNG и проверьте на ней. 99.999% тот кто портировал код пирата под самолет, не учел того момента, что MPU6050 обязан быть проинициализирован до компаса. У меня в прошивке этот вопрос решен (по сравнению с Ардукоптером (там компас не подключен через MPU6000) а в самолетной похоже что нет.

Dreddix
Sir_Alex:

Виталий, залейте MPNG и проверьте на ней. 99.999% тот кто портировал код пирата под самолет, не учел того момента, что MPU6050 обязан быть проинициализирован до компаса. У меня в прошивке этот вопрос решен (по сравнению с Ардукоптером (там компас не подключен через MPU6000) а в самолетной похоже что нет.

Сделаю!

Leon11t

12 ,6 вольт много, там стоит слабинький стабилизатор. А вот задействовать розьем балансера можна, взять из него 7,2 вольт.

Dreddix
Sir_Alex:

Виталий, залейте MPNG и проверьте на ней. 99.999% тот кто портировал код пирата под самолет, не учел того момента, что MPU6050 обязан быть проинициализирован до компаса. У меня в прошивке этот вопрос решен (по сравнению с Ардукоптером (там компас не подключен через MPU6000) а в самолетной похоже что нет.

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

Dreddix:

Или ещё как вариант, на этой прошивке при подаче питания и первичной загрузки платы, не инициализируется компас, или проц не может его просчитать, но когда питание подано и сделать сброс, проц просчитывает компас как надо.

Только я не смог правильные слова подобрать! Теперь всё логично!

Отсюда следствие… Сир Алекс, Алесей… ради всего хорошего в жизни… Скажите, что и куда дописать в код ардупилота, пожалуйста! Если это, конечно, не означает 2х дневного гемора…

mahowik
Leon11t:

12 ,6 вольт много, там стоит слабинький стабилизатор. А вот задействовать розьем балансера можна, взять из него 7,2 вольт.

я смотрю вы просто кладеЗь полеЗных советов 😃
расход батареи должен быть равномерным по банкам…

Dreddix
Leon11t:

взять из него 7,2 вольт.

вообще не вариант. Потому что -

mahowik:

расход батареи должен быть равномерным по банкам…

Полностью согласен с Александром. Даже если плата и не потребляет практически ничего. Не вариант. мне проще на работе линейник сваять, 2 мин делов. Но только проблема уже найдена. Не в питании дело.

Sir_Alex
Dreddix:

Отсюда следствие… Сир Алекс, Алесей… ради всего хорошего в жизни… Скажите, что и куда дописать в код ардупилота, пожалуйста! Если это, конечно, не означает 2х дневного гемора…

Сложно сказать, код довольно сильно отличается, попробуйте в файле system.pde перенести код:

    if(g.compass_enabled)
        init_compass();

после строчки:

imu.init(IMU::COLD_START, mavlink_delay, flash_leds, &timer_scheduler);
Dreddix

Там такая строчка-

#if HIL_MODE != HIL_MODE_ATTITUDE
imu.init(IMU::WARM_START, mavlink_delay, flash_leds, &timer_scheduler);
ahrs.set_centripetal(1);
#endif

Сделать так?

#if HIL_MODE != HIL_MODE_ATTITUDE
imu.init(IMU::WARM_START, mavlink_delay, flash_leds, &timer_scheduler);
if(g.compass_enabled)
init_compass();
ahrs.set_centripetal(1);
#endif
?

Dreddix

Там ещё есть такое место, строчка такая же, этот кусок немного ниже первого куска -

 #if HIL_MODE != HIL_MODE_ATTITUDE
    gcs_send_text_P(SEVERITY_MEDIUM, PSTR("Warming up ADC..."));
 	mavlink_delay(500);

	// Makes the servos wiggle twice - about to begin IMU calibration - HOLD LEVEL AND STILL!!
	// -----------------------
	demo_servos(2);
    gcs_send_text_P(SEVERITY_MEDIUM, PSTR("Beginning IMU calibration; do not move plane"));
	mavlink_delay(1000);

	imu.init(IMU::COLD_START, mavlink_delay, flash_leds, &timer_scheduler);
    if (force_accel_level || g.manual_level == 0) {
        // when MANUAL_LEVEL is set to 1 we don't do accelerometer
        // levelling on each boot, and instead rely on the user to do
        // it once via the ground station
        imu.init_accel(mavlink_delay, flash_leds);
    }
	ahrs.set_centripetal(1);
    ahrs.reset();

	// read Baro pressure at ground
	//-----------------------------
	init_barometer();

Похоже что сюда надо писать, а не в том, первом месте? И сразу под барометром, вроде как
if(g.compass_enabled)
        init_compass();

    if (g.airspeed_enabled == true) {
        // initialize airspeed sensor
        // --------------------------
        zero_airspeed();
        gcs_send_text_P(SEVERITY_LOW,PSTR("<startup_ground> zero airspeed calibrated"));
    } else {
        gcs_send_text_P(SEVERITY_LOW,PSTR("<startup_ground> NO airspeed"));
    }
#endif // HIL_MODE_ATTITUDE 
mahowik

Виталий, есть замечательный тег [CODE] что бы не генерить полосы-посты 😉

подправьте плз., т.к. через час вроде уже не сможете отредактировать…

Dreddix
Dreddix:

Там ещё есть такое место, строчка такая же, этот кусок немного ниже первого куска -

Вставил строчку во второй кусок, под барометр сразу-
первые 2 запуска отлично
3й компаса нет
4й компаса нет
5й плата повисла
6й плата повисла
7-20 всё отлично!
По перемигиванию диодов видно запустился компас или нет.

И того второй кусок выглядит так-

#if HIL_MODE != HIL_MODE_ATTITUDE
    gcs_send_text_P(SEVERITY_MEDIUM, PSTR("Warming up ADC..."));
 	mavlink_delay(500);

	// Makes the servos wiggle twice - about to begin IMU calibration - HOLD LEVEL AND STILL!!
	// -----------------------
	demo_servos(2);
    gcs_send_text_P(SEVERITY_MEDIUM, PSTR("Beginning IMU calibration; do not move plane"));
	mavlink_delay(1000);

	imu.init(IMU::COLD_START, mavlink_delay, flash_leds, &timer_scheduler);
    if (force_accel_level || g.manual_level == 0) {
        // when MANUAL_LEVEL is set to 1 we don't do accelerometer
        // levelling on each boot, and instead rely on the user to do
        // it once via the ground station
        imu.init_accel(mavlink_delay, flash_leds);
    }
	ahrs.set_centripetal(1);
    ahrs.reset();

	// read Baro pressure at ground
	//-----------------------------
	init_barometer();

        if(g.compass_enabled)
        init_compass();

    if (g.airspeed_enabled == true) {
        // initialize airspeed sensor
        // --------------------------
        zero_airspeed();
        gcs_send_text_P(SEVERITY_LOW,PSTR("<startup_ground> zero airspeed calibrated"));
    } else {
        gcs_send_text_P(SEVERITY_LOW,PSTR("<startup_ground> NO airspeed"));
    }
#endif // HIL_MODE_ATTITUDE

Прогресс заметен! Уже намного лучше! Но иногда не включается всё же…
Может я не туда вставил всё таки? Или не хватает ещё чего?

пысы ещё 10 запусков, 3й-4й разы компас не заработал.

Sir_Alex

Вот подправленная версия АрдуПланеНГ: www.siralex.info/files/ArduPlaneNG2xR5.zip

Я правда проверял только на коленке, как оно будет летать без понятия 😃

P.S. Там правки и в библиотеках и в основном коде, так что менять надо все.

Leon11t
mahowik:

я смотрю вы просто кладеЗь полеЗных советов 😃
расход батареи должен быть равномерным по банкам…

Вот про это не подумал, так и батарею угробить можно

Dreddix:

Линейника нет, жалко, попробовать. От батареи его можно 3S питать? Extend Power стоит 5-12в, а 12.6 выдержит? Если питать от акка, джампер желтенький снимать надо?

Я тут статейку накатал был http://forum.rcdesign.ru/f4/th про преобразователь.