CRIUS ALL IN ONE PRO Flight Controller

Sir_Alex
mahowik:

upd: Залез в даташит посмотреть… На сколько понимаю, если дефайн отключен, то компас вешается на основную i2c шину через mpu6050, отсюда и конфликты при подключении внешнего компаса, т.к. оба уже сидят на общей i2c шине… т.е. внешний компас прямым подключением к i2c, а AIO компас через mpu6050… потому скорее всего только “отрезать” компас от mpu6050…

Не знаю что там в def.h, но я точно знаю что достаточно отключить Bypass mode у MP6050, что бы отключить компас. Это я все уже прошел в Пирате и специально даже дейфайн сделал для отключения компаса. А разработчик AIOP по моей просьбе, сделал перемычки для компаса. Перемычки подключают компас к MPU6050 или напрямую к процессору. А вот если не запаять вообще, то компас будет отключен и можно подключить внешний.

omegapraim

Я ленивый не то что вы))))) Я сделал два экрана из двустороннего текстолита, один экран под платой второй над, и заземлил оба экрана на минус, Хедфри после калибровки заработал как надо. Если текстолит не заземлять то эффекта от экранов не будет. Компас не спаивал.

sulaex
Sir_Alex:

Не знаю что там в def.h, но я точно знаю что достаточно отключить Bypass mode у MP6050, что бы отключить компас. Это я все уже прошел в Пирате и специально даже дейфайн сделал для отключения компаса. А разработчик AIOP по моей просьбе, сделал перемычки для компаса. Перемычки подключают компас к MPU6050 или напрямую к процессору. А вот если не запаять вообще, то компас будет отключен и можно подключить внешний.

Труднее всего в жизни признавать свои ошибки.

Для подключения внешнего компаса в частности к AIOP v2.0 приобретенного на RCTimer требуется:

  1. перерезать обе перемычки на плате контроллера (SJ2 и SJ3)
  2. в скетче def.h найти условие “#if defined(CRIUS_AIO_PRO_V1)” и в его теле строку “#define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050” заремить

вот так:

#if defined(CRIUS_AIO_PRO_V1)
#define MPU6050
#define HMC5883
#define MS561101BA
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
//#define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050
#undef INTERNAL_I2C_PULLUPS
#define I2C_SPEED 400000L //400kHz fast mode
//servo pins on AIO board is at pins 44,45,46, then release pins 33,34,35 for other usage
//eg. pin 33 on AIO can be used for LEDFLASHER output
#define SERVO_1_PINMODE pinMode(44,OUTPUT); // TILT_PITCH
#define SERVO_1_PIN_HIGH PORTL |= 1<<5;
#define SERVO_1_PIN_LOW PORTL &= ~(1<<5);
#define SERVO_2_PINMODE pinMode(45,OUTPUT); // TILT_ROLL
#define SERVO_2_PIN_HIGH PORTL |= 1<<4;
#define SERVO_2_PIN_LOW PORTL &= ~(1<<4);
#define SERVO_3_PINMODE pinMode(46,OUTPUT); // CAM TRIG
#define SERVO_3_PIN_HIGH PORTL |= 1<<3;
#define SERVO_3_PIN_LOW PORTL &= ~(1<<3);
#endif

если есть возможность, прошу затереть пост 2287, да бы не вводить народ в заблуждение

надеюсь данная инструкция теперь верная?

Вот до чего доводят тонны постов на форуме и бессонные ночи.
Пойду протестирую на улицу.

omegapraim

2 sulaex было бы очень замечательно если б вы все сделали с картинками, тогда бы можно было бы добавить ваш пост в FAQ. А так не многие поймут где чего резать.

sulaex
omegapraim:

2 sulaex было бы очень замечательно если б вы все сделали с картинками, тогда бы можно было бы добавить ваш пост в FAQ. А так не многие поймут где чего резать.

Если собираетесь переносить картинки, пере сохраните их, иначе с этого ресурса они со временем удалятся. Картинка кликабельна с большим разрешением.

Sir_Alex
sulaex:
  1. в скетче def.h найти условие “#if defined(CRIUS_AIO_PRO_V1)” и в его теле строку “#define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050” заремить

Это лишнее, достаточно обрезать перемычки 😃

mahowik
Sir_Alex:

А разработчик AIOP по моей просьбе, сделал перемычки для компаса.

ну я то про свой огород писал, т.е. про первую версию платы 😃 а это значит что в первой АИОП резать всеж придется…

Sir_Alex:

Это лишнее, достаточно обрезать перемычки

В вие, для работы компаса по основной i2c шине этот дефайн надо комментить обязательно…

Sir_Alex
mahowik:

Алексей, не путай народ В вие, для работы компаса по основной i2c шине этот дефайн надо комментить обязательно…

Да, был не прав. Посмотрел исходники, оказывается Вий зачем то работает с компасом через регистры самого MPU6050, а не напрямую с компасом… Непонятно тока зачем это делать…

sulaex

Отлетал пару акков. НР работает предсказуемо, завтра до настраиваю его еще чутка, что бы на полном газу при бросании стиков не так сильно по дуге восстанавливал позицию, не работает АН, конфликт с бародатчиком на дополнительной плате, надо бы сдуть его нафик. Телеметрия понравилась на аппе, приятное дополнение, огромное спасибо за это 😃

mahowik
Sir_Alex:

оказывается Вий зачем то работает с компасом через регистры самого MPU6050, а не напрямую с компасом… Непонятно тока зачем это делать…

Через этот дейфайн, как раз переключается работа с компасом через mpu6050, либо с основной шины, т.е. поддержка двух вариантов подключения… а сделано это скорее всего для поддержки различных платок/бордов… к примеру есть куча плат с mpu6050 на борту, но без компаса… соот-но подключение внешнего компаса вешается на общую шину…

DVE

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

Я к тому что болтающиеся в воздухе/на ветру провода как на фото, имхо не есть гуд, если и делать, то как на Назе - с защитой и в корпусе, а это уже сложнее конструктивно.

OK-40

Доброго дня всем! Имею AIO v.1 wii вкупе с такими регуляторами. Не могу определиться - какую строчку правильно будет раскоментировать в config.h:
#define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones

drug123
OK-40:

Доброго дня всем! Имею AIO v.1 wii вкупе с такими регуляторами. Не могу определиться - какую строчку правильно будет раскоментировать в config.h:
#define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones

А в связи с чем, простите, сомнения? В связи с регуляторами? Так они не i2c у вас. А все датчики на плате прекрасно работают на 400 кГц

OK-40
drug123:

А в связи с чем, простите, сомнения? В связи с регуляторами? Так они не i2c у вас. А все датчики на плате прекрасно работают на 400 кГц

Все сомнения - из-за моих недостаточных знаний по этому вопросу. Так как правильно поступить с учетом моей комплектации?

drug123
OK-40:

Все сомнения - из-за моих недостаточных знаний по этому вопросу. Так как правильно поступить с учетом моей комплектации?

Если регули не I2C (такие используются для немца и не ваш случай), то тогда надо смотреть исключительно на датчики. На AIOP стоят самые современные датчики, все они работают на 400 кГц.

OK-40

Спасибо, Ярослав! Теперь все понятно.

mahowik
drug123:

Если регули не I2C (такие используются для немца и не ваш случай), то тогда надо смотреть исключительно на датчики. На AIOP стоят самые современные датчики, все они работают на 400 кГц.

Рассуждения правильные, только к этим дефайнам никакого отношения не имеют 😃
Это пристарелые дефайны для управления скоростью i2c шины для уже исторических в вие wmp (wii motion plus) - гира, nunchak - аксель. Не поверите, чуть менее двух лет назад летали на датчиках из китайских игрушек, заказывая клоны этих самых игрушек играя в лотерею. Кому интересно, в ветке вия все есть 😉
P.s. а для каждого из нормальных маркированных датчиков скорость i2c шины прописана индивидуально…

drug123
mahowik:

Рассуждения правильные, только к этим дефайнам никакого отношения не имеют 😃
Это пристарелые дефайны для управления скоростью i2c шины для уже исторических в вие wmp (wii motion plus) - гира, nunchak - аксель. Не поверите, чуть менее двух лет назад летали на датчиках из китайских игрушек, заказывая клоны этих самых игрушек играя в лотерею. Кому интересно, в ветке вия все есть 😉
P.s. а для каждого из нормальных маркированных датчиков скорость i2c шины прописана индивидуально…

Саш, да я в курсе, у меня самого есть пара итг выпаянных из моушен плюс :о))

kalabok

Хочу установить датчик тока на коптер megapirateng плата AIOP V1.1
В закормах нашол такой:
Acs755 Scb-100

Ктото уже ставил такой?
Как правильно подключить и настроить?

mataor
mahowik:

скорость i2c шины

кстати… недавно опробовал датчики на 800кГц запускать - все идеально работает.

kalabok:

Как правильно подключить и настроить?

по даташиту.

nikr
kalabok:

Ктото уже ставил такой?
Как правильно подключить и настроить?

На мегапират ставил ACS756SCA-100. Спаял на платке с 5v стабилизатором и делителем напряжения.
В стандартной прошивке такие датчики пока не предусмотрены, хотя обещались в последующих релизах внести. Так что пока надо самостоятельно дописывать rcopen.com/blogs/99365/15541