Crius Hobby MultiWii
Ребят помогите новичку разобраться, дайте ссылочку где почитать про прошивку платы, какой файл за что отвечает. Читая форум накачал себе уже кучу прошивок, но ни одну не получается залить (выдает ошибку компиляции: core.a(HardwareSerial.cpp.o): In function `__vector_19’: )
у меня: Плата MultiWii SE с FTDI есть еще программатор USBasp.
За ранее спасибо.
А с этим уже ознакомились?
Инструкция.
выдает ошибку компиляции
Баян, нужна ардуина 0023, а не 1.0
Все получилось. Спасибо!!! Не думал что прошивки чувствительны к версии ардуины!!!
И еще вопросик, если я правильно понял то мы (как обычные пользователи) лазим только в файле config.h, меняем в нем все что считаем нужным и заливаем в плату ???
Верно все, основные настройки именно там. Глубже пока лезть не нужно, только если есть полное понимание, как именно работает прошивка
Ребят может все таки подскажет кто? магнитометр при завалах чуть ли не перекручивает на 360гр в программе. откалибровать не получается, кручу по 5 заходов, Как быть? когда квадрик в горизонте то работает отлично, на многих прошивках тоже самое, только на одной нормально смотрит на север, хоть в перевернутом состоянии!
Ребят может все таки подскажет кто? магнитометр при завалах чуть ли не перекручивает на 360гр в программе. откалибровать не получается, кручу по 5 заходов, Как быть? когда квадрик в горизонте то работает отлично, на многих прошивках тоже самое, только на одной нормально смотрит на север, хоть в перевернутом состоянии!
это направление осей может быть перепутано
Ребят может все таки подскажет кто? магнитометр при завалах чуть ли не перекручивает на 360гр в программе. откалибровать не получается, кручу по 5 заходов, Как быть? когда квадрик в горизонте то работает отлично, на многих прошивках тоже самое, только на одной нормально смотрит на север, хоть в перевернутом состоянии!
Неправильно сконфигурированы датчики по осям. В начале ветки был дан верный define с которым больше ничего крутить не надо: rcopen.com/forum/f123/topic258132/21
т.е. у меня в прошивке сразу правильно заработал вот этот:
#define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP
Да всем спасибо! особенно leprud! разобрался, действительно по осям не было сконфигурировано, кроме всего прочего в def.h напрочь отсутствовали этот блок строк
#if defined(CRIUS_SE)
#define ITG3200
#define BMA180
#define HMC5883
#define BMP085
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
#define INTERNAL_I2C_PULLUPS
#endif
Я их вставил, и добавил строку в Config.h
#define CRIUS_SE // Crius MultiWii SE board AIO
Сейчас компас отлично показывает, настроил аппу и прошивку для баро и альт. скоро испытания! тока от балансирую всё, а то один лучь как струна)), хотя сам квадрик в полете не трясет.
Я тоже сегодня полетел, на стоковых пидах с отбалансированными винтами коптер висит как влитой! 😃 Хорошая платка, намного удобнее ковыряний с ардуиной и датчиками.
Поставил крайнюю прошивку (dev_20120225), в ней уже есть headfree mode (когда плата смотрит на компас и “вперед”/“назад”/“вправо”/“влево” делает не по изначальному расположению платы, а по магнетометру. Сиречь можно пустить коптер волчком и продолжать адекватно летать, не думая о реальном положении коптера). Но пришлось выносить плату выше моторов и подальше от силовых проводов (у меня мелкий коптер, расстояния были мизерными - от кончиков пропеллеров до стоек крепежа платы меньше сантиметра), иначе магнетометр начинал врать и дрейфовать.
Также значительно улучшена работа с нашим BMA180, теперь у меня отлично заработал level mode.
Добавлен уже #define CRIUS_SE, и выбирать надо именно его, т.к. положение осей немного поменялось и ручное добавление блока #if defined(CRIUS_SE) не даст желаемого результата. Ну да уже не важно, дефайн есть готовый.
Леонид, если не сложно подскажите плз, что закоментили, а что разкоментили в этой (dev_20120225) прошивке.
И еще вопрос:
- калибровка акселей это: установить все на горизонтальную поверхность и нажать кнопку калибровки. ???
- калибровка компаса это: нажимаем кнопку и крутим все по всем осям пока диод моргать не перестанет. ???
Достаточно раскомментить только #define CRIUS_SE, в принципе.
Остальное - дело вкуса и привычек
(например, я поставил motor_stop, itg3200 lpf=42hz, deadband=10)
Спасибо, а на счет калибровок я правильные выводы сделал (читая форум)?
Леонид а чем прошиваете у меня ардруина 023 почему то даже открывать не хочет???
Михаил, эт у меня сегодня такая проблема была почитайте чуть выше
нужна ардуина 1.0, а не 0023
а на счет калибровок
Там все просто…
Гироскопы калибруются сами при включении (поэтому важно включая питание не дергать аппарат)
Акселерометр калибруется единожды, выставив коптер ровно
Магнетометр чтоб откалибровать - нажать кнопочку в гуи, да пока светодиод мигает - покрутить по всем осям на 360 градусов.
у меня ардруина 023 почему то даже открывать не хочет
файл .ino переименуйте в .pde , и его уже открывайте
Либо уже можно качать 1.0 ардуину для него, не принципиально
При компиляции когда раскомментируешь #define RCAUXPIN12 вылетает ошибка!
MultiWii_dev_20120225.cpp: In function ‘void i2c_init()’:
Sensors:121: error: ‘I2C_PULLUPS_ENABLE’ was not declared in this scope
что это?
при #define RCAUXPIN8 нормально,
Ну и кроме этой ошибки
Я тащююсь от HEEDFREE просто суперская функция для FPV без стабилизации камеры по роллу
когда раскомментируешь #define RCAUXPIN12
Да, чет там ошибка
В def.h
замените
#if !defined(RCAUXPIN12)
#define POWERPIN_PINMODE pinMode (12, OUTPUT);
#define POWERPIN_ON PORTB |= 1<<4;
#define POWERPIN_OFF PORTB &= ~(1<<4); //switch OFF WMP, digital PIN 12
#define I2C_PULLUPS_ENABLE PORTC |= 1<<4; PORTC |= 1<<5; // PIN A4&A5 (SDA&SCL)
#else
#define POWERPIN_PINMODE ;
#define POWERPIN_ON ;
#define POWERPIN_OFF ;
#define RCAUXPIN
#endif
#define I2C_PULLUPS_DISABLE PORTC &= ~(1<<4); PORTC &= ~(1<<5);
на
#if !defined(RCAUXPIN12)
#define POWERPIN_PINMODE pinMode (12, OUTPUT);
#define POWERPIN_ON PORTB |= 1<<4;
#define POWERPIN_OFF PORTB &= ~(1<<4); //switch OFF WMP, digital PIN 12
//#define I2C_PULLUPS_ENABLE PORTC |= 1<<4; PORTC |= 1<<5; // PIN A4&A5 (SDA&SCL)
#else
#define POWERPIN_PINMODE ;
#define POWERPIN_ON ;
#define POWERPIN_OFF ;
#define RCAUXPIN
#endif
#define I2C_PULLUPS_DISABLE PORTC &= ~(1<<4); PORTC &= ~(1<<5);#define I2C_PULLUPS_ENABLE PORTC |= 1<<4; PORTC |= 1<<5; // PIN A4&A5 (SDA&SCL)
Аккуратно, не проверял код
Спасибо заработал порт, я проверил !
Кстати тут появились AUX 3 - 4 а на какие порты назначались ктонить проверял?
а вот нашел в прошивке
AUX3 = PIN A14
AUX4 = PIN A15
Тут вообще проблема, в прошивке то они прописаны но на плате их нет!!!
Переходите на sum ppm - всего один провод от приемнику к контроллеру, да никакой головной боли от выбора разъема 😃
Ну и вес сократится немного, понятное дело