MultiWii

Syberian

Это степень 😃 460 * 10 в 6 степени

Эту 460 и меняем на 450, 670, 320 и пр… Сразу шагом в 20-30
Только надо учесть: если у вас включено #define ITG3200, менять нужно ту часть, где изначально стоит множитель 670е6, а не 460е6

Volver
Syberian:

Переделал, теперь параметры не дурят. Т.к. эта штука считает еще и угол рыскания, вывел его вместо азимута MAG. ftp://syberian.dyndns.org/arduino/Mu…7_MARGv1.1.zip Алил, попробуешь еще раз?

Попробую!! спасибо!

но, только вечером, дома ))

Syberian

Апдейт 😃
Настроил рыскание (в нашем случае - азимут). Показывает с точностью до градуса, повторяемость идеальная, дрейфа за пару минут не заметил. Можно использовать ардуину, как транспортир 😁 Причем, независимо, каким ребром ставить на стол.
ftp://syberian.dyndns.org/arduino/MultiWii1_prebis7_MARGv1.2.zip

Не представляю, что за инструмент получится, если туда еще и магнетометр прикрутить 😃
Я просто должен показать это миру! (и заставить работать у кого-нибудь еще)

В дальнейших планах - отключить ПИДы на гиры вообще, чтобы управление микшировалось только с выходов MARG и пульта (пропорционально-угловое). Задумок много. Может, стоит портировать на 1.7preter?

SovGVD

до GPS еще руки не дошли? по идее надо развернуться только и лететь (конечно с компасом получше), если на плоскости, удержание высоты вроде тоже уже есть

YAN=
SovGVD:

удержание высоты вроде тоже уже есть

“Вроде”, но до ума еще не довели. Делали на основе баро датчика, а там точность …

Volver
Syberian:

Не представляю, что за инструмент получится, если туда еще и магнетометр прикрутить Я просто должен показать это миру! (и заставить работать у кого-нибудь еще)

Надо пробоватЬ!

Кстати, не очень понял, мне для квадрика что-нибудь в коде менять надо кроме подстройки дельтаТайм?

SovGVD
YAN=:

а там точность …

GPS тоже не сильно точно измерит высоту… надо как то комбинировать + дальномеры есть ультразвуковые, там точность ±1 см даже у самых дешевых, но дальность метра 2-3

crafter

Чтобы по GPS была более-менее точная высота, необходимо иметь карту с обозначеностью рельефа, но с ней надо как-то оперировать. А тут идет чистая работа с координатами, или я не прав?

YAN=

Те, что я видел, до 6.5 м.

Syberian:

Апдейт

А у меня не открывается ((

V8Max

Мужчины помогайте!
Чет с недавнего времени очень плохо иницируется мозг коптера…
Что означает мигание светодиода, тот который показывает состояние коптера?
мигает три через три короткими…
при подключении питания моторы не пищат, а светодиод мигает, иногда начинает работать…
НО самое интересное, что если через юсб подсоединить, а потом батарейку подключить, то все работает.
Питание пускаю с регулятора на контакт регулятора напряжения, пробовал и на прямую подключать в обход регуля, ноль эмоций.
платка te-mini328

Панкратов_Сергей
crafter:

Чтобы по GPS была более-менее точная высота, необходимо иметь карту с обозначеностью рельефа, но с ней надо как-то оперировать. А тут идет чистая работа с координатами, или я не прав?

В основном - неправ. В большинстве своем для полета нужно держать определенную высоту - рельеф же отслеживать нет необходимости, а часто и вредно ( нам же не нужен прыгающий козлик).
GPS координаты обычно отображает с точностью 2-3 м, высота 3-5 м. Но такие прыжки в полете - недопустимы.
Потому - баро необходим.

YAN=
V8Max:

Мужчины помогайте!

Что-то с питанием. Или датчики накрылись. У меня было похожее. От ЮСБ работало идеально, от батареи на один поворот в ГУИ крутился раз 15. Поменял датчики (хорошо купил пару) все заработао.

crafter
Панкратов_Сергей:

баро необходим.

Самая высокая точность, будет при использовании нескольких устройств. Да и прыгающий шарик - собственно ничего плохого, вдруг будет цель пролететь пониже, единственным врагом будут провода лэп. Я вот сижу думаю этот вопрос. Мысли пока крутятся вокруг стереозрения, для определения высоты.

Syberian
mahowik:

ты чет напутал

Ардуино злая, я думал, она при компиляции сохраняет 😃 Исправил, перекачайте

YAN=

Не загружается в программу.
Вон, что выдает…

Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 0
at processing.app.Sketch.setCurrentCode(Sketch.java:1106)
at processing.app.Sketch.load(Sketch.java:218)
at processing.app.Sketch.<init>(Sketch.java:140)
at processing.app.Editor.handleOpenInternal(Editor.java:2114)
at processing.app.Editor.<init>(Editor.java:308)
at processing.app.Base.handleOpen(Base.java:699)
at processing.app.Base.handleOpen(Base.java:664)
at processing.app.Base.handleOpenPrompt(Base.java:653)

И еще в этом роде.

V8Max
YAN=:

Что-то с питанием. Или датчики накрылись. У меня было похожее. От ЮСБ работало идеально, от батареи на один поворот в ГУИ крутился раз 15. Поменял датчики (хорошо купил пару) все заработао.

Думал на диод шотки, регуль напряжения, все проверил ноль эмоций… плюс ко всему, на улицу мозг вытаскиваю и трындец не конектица

mahowik
Syberian:

Настроил рыскание (в нашем случае - азимут). Показывает с точностью до градуса, повторяемость идеальная,

  1. Cорри за вопрос… что такое “рыскание”? В каких режимах и как это отразится на полете коптера… если не трудно объясни на пальцах…
  2. Кстать у тебя же вроде стандартное подключение WMP+NK. По идее INTERNAL_I2C_PULLUPS не должны быть задизэйблены?
  3. Раздизэйблен параметр SERVO_TILT. для квадриков это нужно?
    Из описания:
    /* The following lines apply only for a pitch/roll tilt stabilization system */
    /* It is not compatible with Y6 or HEX6 or HEX6X */
deepness

Самолетное название “курса” оно же YAW.

Syberian
mahowik:

Cорри за вопрос… что такое “рыскание”? В каких режимах и как это отразится на полете коптера… если не трудно объясни на пальцах… 2. Кстать у тебя же вроде стандартное подключение WMP+NK. По идее INTERNAL_I2C_PULLUPS не должны быть задизэйблены? 3. Раздизэйблен параметр SERVO_TILT. для квадриков это нужно? Из описания:

  1. Это поворот вокруг оси, по-буржуйски YAW
  2. у меня на чаке и вмп подвески к питанию есть, а питаю их от 3.3в (есть выход на ардуино мега). Работает одинаково хорошо с обоими вариантами.
  3. тилт применяется для вывода авиагоризонта на ОСД, необязателен
Volver:

не очень понял, мне для квадрика что-нибудь в коде менять надо кроме подстройки дельтаТайм?

В шапке нужно выставить тип твоего аппарата и тип гир с акселями, если используются не чака с вмп. Ты это уже делал, я думаю, все как обычно.
А потом - тюнить коэфф-т.

YAN=

Олег, с Вашей прошивкой на квадрике запускаются только 2 двигателя.
Что-бы это значило?

Volver
YAN=:

Не загружается в программу. Вон, что выдает…

то же самое, не загружается в ардуино ИДЕ

mahowik
Volver:

то же самое, не загружается в ардуино ИДЕ

видимо ограничения ардуино ГУИ-оболочки… просто переименуй в MultiWii1_prebis7_MARGv1_2 (т.е. точку на подчеркивание заменить) + положи в одноименный каталог…
либо просто возьми в атаче 😃

ждем результатов тестов с нетерпением! 😃

Volver

то же самое, все сенсоры работают, а вот графики моторов и изогбражение квадрика не двигаются.

Вот мой скеч

/* Set the minimum throttle command sent to the ESC (Electronic Speed Controller) */
/* This is the minimum value that allow motors to run at a idle speed  */
#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A
//#define MINTHROTTLE 1120 // for Super Simple ESCs 10A
//#define MINTHROTTLE 1190

/* The type of multicopter */
//#define GIMBAL
//#define BI
//#define TRI
//#define QUADP
#define QUADX
//#define Y4
//#define Y6
//#define HEX6
//#define HEX6X
//#define FLYING_WING //experimental

#define YAW_DIRECTION 1 // if you want to reverse the yaw correction direction
//#define YAW_DIRECTION -1

//#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

//#define PROMINI  //Arduino type
#define MEGA

//enable internal I2C pull ups
//#define INTERNAL_I2C_PULLUPS

//****** advanced users settings   *************

/* The following lines apply only for a pitch/roll tilt stabilization system */
/* It is not compatible with Y6 or HEX6 or HEX6X */
/* Uncomment the first line to activate it */
#define SERVO_TILT
#define TILT_PITCH_MIN    1020    //servo travel min, don't set it below 1020
#define TILT_PITCH_MAX    2000    //servo travel max, max value=2000
#define TILT_PITCH_MIDDLE 1500    //servo neutral value
#define TILT_PITCH_PROP   10      //servo proportional (tied to angle) ; can be negative to invert movement
#define TILT_ROLL_MIN     1020
#define TILT_ROLL_MAX     2000
#define TILT_ROLL_MIDDLE  1500
#define TILT_ROLL_PROP    10

/* I2C gyroscope */
#define ITG3200

/* I2C accelerometer */
//#define ADXL345
//#define BMA020
#define BMA180

/* I2C barometer */
//#define BMP085

/* I2C magnetometer */
//#define HMC5843
//#define HMC5883