CRIUS ALL IN ONE PRO Flight Controller

sulaex

Есть счастливые обладатели с удачно подключенным внешним компасом по I2C?
Разжуйте, как правильно подключить внешний компас?
В def.h за комментировал, но компас по прежнему работает на плате контроллера.
Перемычки какие надо резать, если надо?
Поиском по форуму поискал, но кроме оговорок как это все просто сделать и невнятных вырезок кодов ничего полезного не нашел.
Кто то советует перемычки резать, кто то код менять, каша в голове уже.

ЗЫ пытаюсь подключить эту плату
www.goodluckbuy.com/index.php?target=products&prod…

OlegIv:

Кто-нибудь подключал к плате этот сонар? www.hobbyking.com/hobbyking/…/uh_viewItem.asp?idPr…

да, я подключал, очень хорошо работает с прошивкой МахоВия
собаку выведу и могу проконсультировать по асе или тимспику

ColonelTY
OlegIv:

Кто-нибудь подключал к плате этот сонар?

Да, работает.

ctakah

Неужели никто не знает как поменять направление на подвесе по роллу? В прошивке в конфиге?

gorbln
sulaex:

Разжуйте, как правильно подключить внешний компас?
В def.h за комментировал, но компас по прежнему работает на плате контроллера.

Сам не пробовал - но в закладки добавил. Если получится - расскажите, ок?
rcopen.com/forum/f123/topic283798/2137

ctakah:

Неужели никто не знает как поменять направление на подвесе по роллу? В прошивке в конфиге?

Всё связанное с подвесом - и расходы, и реверсы - в config.h (если про мультивий)
#define TILT_PITCH_PROP -28 //servo proportional (tied to angle) ; can be negative to invert movement
По-моему - вполне прозрачно.

sulaex
ctakah:

Неужели никто не знает как поменять направление на подвесе по роллу? В прошивке в конфиге?

#define TILT_PITCH_PROP 10 //servo proportional (tied to angle) ; can be negative to invert movement
#define TILT_ROLL_PROP 10

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

О, опередили 😃

sulaex
Sir_Alex:

Попробуйте вот это rcopen.com/forum/f123/topic283798/2141

sulaex:

В def.h за комментировал, но компас по прежнему работает на плате контроллера.

делал именно это, компас на АИОП по прежнему работает

mahowik

Дефайн MPU6050_I2C_AUX_MASTER нужно отключать в CRIUS_AIO_PRO_V1 секции файла def.h… После перезаливки скетча, передерните питание rcopen.com/forum/f123/topic283798/2145, но сдается мне это не поможет…

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

могу и ошибаться конечно…

White_0807
sulaex:

делал именно это, компас на АИОП по прежнему работает

Мне отключение в def.h не помогло. Помог скальпель - отрезал дорожку AUX DA под компасом. Плата с хоббей.

mahowik
sulaex:

на собственной шкуре опробовано, чуть трехой не размолотил мебель в доме,

по идее в ГУИ ошибки по и2с (I2C error: ) должны были зашкаливать, если конфликты на шине…

sulaex
mahowik:

по идее в ГУИ ошибки по и2с (I2C error: ) должны были зашкаливать, если конфликты на шине…

не было вроде никаких ошибок и нету желания опять проверять, хотите проверит, просто заремите деф и подлетните, когда начнет коптер крушить все вокруг, не забудьте посмотреть в гуи, возможно тогда и найдутся ошибки 😃
я ведь выше описал ситуацию, что и как подключается, если перемычки не трогать, внешний разъем не работает, компас работал соответственно один, тот, что установлен на плате контроллера

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 на борту, но без компаса… соот-но подключение внешнего компаса вешается на общую шину…