CRIUS ALL IN ONE PRO Flight Controller
Ошибаешься. По барометру отслеживается изменение высоты.
А я чего написал??? Что данные барометра косвенно (то есть после домножения на коэффициенты и фильтрации) отображаются в конфигураторе в виде высоты. Читаете по диагонали?
Паяю ПОСК-50, температура плавления около 150. Очень удобно.
Нет такого эффекта, как с Розе, что после застывания - чип можно пальцами оторвать? Типа, не липнет нифига?
Что данные барометра косвенно (то есть после домножения на коэффициенты и фильтрации) отображаются в конфигураторе в виде высоты.
Именно так баро и отображается. Действительно, поднимая и опуская плату в телеметрии видно изменение высоты в + или в -.
Прогнал я платку через I2C_spy.pde , вот результат-
Start new scan
Detected device addr: 0x1E HMC5883/43 (compass)
Detected device addr: 0x68 ITG3200 (gyro), MPU6050 (gyro+accel)
Detected device addr: 0x77 MS5611 (baro)
=================================
Cycle is over
Как видно, компас отзывается. Что дальше. Куда копать. Теперь у меня вообще никаких идей нет. Щас залью ардуплейн назад…
Скиньте человеку кто небуть hex файл своей робочей прошивки. Может где то у него чтото заглючило в компиляторе ардуиновском.
Сразу после заливки арду, строчки компаса были живы. Я загрузил в плату настройки, отключил от УСБ, подключил синезуб- всё, и через синезуб и через усб- строчки компаса по нулям. Залил снова и2цшпийона, компас жив, после заливки арду, строчка компаса по нулям. Настройки залитые в плоату не стираются. Их надо как-то сбросить, возможно там проблема.
ПЫСЫ
отключаю, подключаю он 1 раз даже заработал и откалибровался. Отключил-подключил… не работает. Что за бред. ковыряю дальше.
Нет такого эффекта, как с Розе, что после застывания - чип можно пальцами оторвать? Типа, не липнет нифига?
Держит отлично. И еще свойство классное - капля этого припоя делает легкоплавким и соединение, припаянное чем-нибудь “дубовым”
отключаю, подключаю он 1 раз даже заработал и откалибровался. Отключил-подключил… не работает. Что за бред. ковыряю дальше.
ничего с ушами не напоминает, где компас и баро отваливались, если передернуть питание, не подождав более минуты?
Шой-то у меня ощущение…
А вы тип платы в ардуине правильно выставляете? А то если не правильно - оно заливается, но потом подвисает при попытке прицепиться конфигуратором - всё работает, но данные не идут.
Держит отлично
Спасибо за инфу, закуплюсь завтра =)
ВСЁ!!! РАЗОБРАЛСЯ!!!
Это похоже особенности прошивки… БАГИ…
На плате есть кнопка ресет. Пока её не нажмёшь компас не работает. Иногда при одиночном нажатии плата не запускается, остаётся гореть “А”(красный) лед, но повторное нажатие РЕСЕТ оживляет плату. При подключении через УСБ, плата всегда перезагружается, поэтому иногда компас работает, и никогда не работает от синезуба без ресета. После ресета компас работает ВСЕГДА!!! А я ещё думал… нахрена тут ресет… а вон оно как… очень даже надо!
Спасибо всем откликнувшимся! Я тут собирался компас менять, а оно вон как…
А вы тип платы в ардуине правильно выставляете?
Вы про это?
#define PIRATES_SENSOR_BOARD PIRATES_CRIUS_AIO_PRO_V1
Проша для самика сразу собрана для AIOP контроллера, ничего менять не надо.
Сама плата у меня версии 2, но там нет никаких отличий, кроме цвета пластика и усиленный усб
А то если не правильно - оно заливается, но потом подвисает при попытке прицепиться конфигуратором - всё работает, но данные не идут.
Вот именно это у меня и происходит! Но после ресета отпускает! Причина?
Причина?
ну я ж говорю - тип платы надо выставить в ардуине. В смысле - в настройках САМОЙ ардуины, среды программирования. У вас походу плата Pro Mini установлена. А надо Mega256. Сам с такой фигнёй сталкивался, и где-то здесь прочитал, что так бывает.
Вы про это?
#define PIRATES_SENSOR_BOARD PIRATES_CRIUS_AIO_PRO_V1
Нет. Это дефайн, определяющий тип платы для программы, в данном случае - пирата.
Распишу поподробнее. В среде ардуино делаете “сервис” -> “плата” -> Mega 2560
После чего пересобираете и перезаливаете прошивку. Должно попустить =)
Или ещё как вариант, на этой прошивке при подаче питания и первичной загрузки платы, не инициализируется компас, или проц не может его просчитать, но когда питание подано и сделать сброс, проц просчитывает компас как надо.
Кстати, иногда, 1й ресет не помогает, тогда точно помогает 2й ресет. Короче без компа на поле ехать нельзя. Без уверенности что компас в порядке- это самоубийственно
В смысле - в настройках САМОЙ ардуины, среды программирования. У вас походу плата Pro Mini установлена. А надо Mega256. Сам с такой фигнёй сталкивался, и где-то здесь прочитал, что так бывает.
выбрано Arduino mega 2560 or mega ADK
Если бы была выбрана не та плата, то какая связь с нажатием РЕСЕТ? я так понимаю никогда не будет подхватываться?
Тут в прошивке скорее дело. Её тут никто не пробовал. а мне позарез нужен автопилот для самика. Дистанции стали уже не 1 км, ссыкотна очень… Вот и решил попробовать. Всё вроде ок, кроме глюка с компасом.
Я мучаю дальше плату. Одиночный ресет не всегда помогает, иногда нужно даже 4-5 раз нажать ресет, чтобы заработал компас. И у меня появилась мысль. А что, если питание виновато? Рег в самике СБЕК, на столе я его питаю СБЕКом. Может шумные источники очень? Линейника нет, жалко, попробовать. От батареи его можно 3S питать? Extend Power стоит 5-12в, а 12.6 выдержит? Если питать от акка, джампер желтенький снимать надо?
Виталий, залейте MPNG и проверьте на ней. 99.999% тот кто портировал код пирата под самолет, не учел того момента, что MPU6050 обязан быть проинициализирован до компаса. У меня в прошивке этот вопрос решен (по сравнению с Ардукоптером (там компас не подключен через MPU6000) а в самолетной похоже что нет.
Виталий, залейте MPNG и проверьте на ней. 99.999% тот кто портировал код пирата под самолет, не учел того момента, что MPU6050 обязан быть проинициализирован до компаса. У меня в прошивке этот вопрос решен (по сравнению с Ардукоптером (там компас не подключен через MPU6000) а в самолетной похоже что нет.
Сделаю!
12 ,6 вольт много, там стоит слабинький стабилизатор. А вот задействовать розьем балансера можна, взять из него 7,2 вольт.
Виталий, залейте MPNG и проверьте на ней. 99.999% тот кто портировал код пирата под самолет, не учел того момента, что MPU6050 обязан быть проинициализирован до компаса. У меня в прошивке этот вопрос решен (по сравнению с Ардукоптером (там компас не подключен через MPU6000) а в самолетной похоже что нет.
Похоже что именно так дела и обстоят! На вашей прошивке компас работает железно, я задолбался питание передёргивать, ни одного отказа ни через синезуб, ни через УСБ!!! Прошивку залил быстро, опыта уже море…
Отсюда следует что я прав тут -
Или ещё как вариант, на этой прошивке при подаче питания и первичной загрузки платы, не инициализируется компас, или проц не может его просчитать, но когда питание подано и сделать сброс, проц просчитывает компас как надо.
Только я не смог правильные слова подобрать! Теперь всё логично!
Отсюда следствие… Сир Алекс, Алесей… ради всего хорошего в жизни… Скажите, что и куда дописать в код ардупилота, пожалуйста! Если это, конечно, не означает 2х дневного гемора…
12 ,6 вольт много, там стоит слабинький стабилизатор. А вот задействовать розьем балансера можна, взять из него 7,2 вольт.
я смотрю вы просто кладеЗь полеЗных советов 😃
расход батареи должен быть равномерным по банкам…
взять из него 7,2 вольт.
вообще не вариант. Потому что -
расход батареи должен быть равномерным по банкам…
Полностью согласен с Александром. Даже если плата и не потребляет практически ничего. Не вариант. мне проще на работе линейник сваять, 2 мин делов. Но только проблема уже найдена. Не в питании дело.
Отсюда следствие… Сир Алекс, Алесей… ради всего хорошего в жизни… Скажите, что и куда дописать в код ардупилота, пожалуйста! Если это, конечно, не означает 2х дневного гемора…
Сложно сказать, код довольно сильно отличается, попробуйте в файле system.pde перенести код:
if(g.compass_enabled)
init_compass();
после строчки:
imu.init(IMU::COLD_START, mavlink_delay, flash_leds, &timer_scheduler);
Там такая строчка-
#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
?
да
Там ещё есть такое место, строчка такая же, этот кусок немного ниже первого куска -
#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
Виталий, есть замечательный тег [CODE] что бы не генерить полосы-посты 😉
подправьте плз., т.к. через час вроде уже не сможете отредактировать…
Там ещё есть такое место, строчка такая же, этот кусок немного ниже первого куска -
Вставил строчку во второй кусок, под барометр сразу-
первые 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й разы компас не заработал.