MultiWii

mahowik
kedrikov:

Как бы сделать так чтобы и блютуз остался и OSD подцепить???

а зачем? все настройки (пид, боксы и т.д.) через осд можно делать…

kedrikov

Ну конфигуратор на компе както более информативнее.Кстате а киньте инструкцию по настройке через ОСД плиз.

Yanchak

А можно както триммирование хвоста трешки на стики вывести? типа как триммирование акселей?. Бо покупать панель ради этого не хочется. Есть блютус и гуи в телефоне но через гуи хвост не триммируется. 😦

Или я чтото не так делаю?

mahowik
kedrikov:

Ну конфигуратор на компе както более информативнее.Кстате а киньте инструкцию по настройке через ОСД плиз.

инструкции не видел… ролл стик вправо (при выключенных движках) и ты в меню

---------------------------------------------------------------------------------------------------------------------------------

и сюда ссылочку чеб труд не пропал ))

serenya
mahowik:

в miniGps нажми Query, потом GSV выставь в 5 к примеру и нажми Confirm и все увидишь…

Что-то не помогает, я выставил GSV=5, нажал confirm, никакой реакции. Изменяю GSV на другую цифру нажимаю Query, здесь я так понимаю значение GSV должно поменяться на 5, т.е. прочитаться из модуля то что в него записано, а нет, значение не меняется. Похоже с модуля параметры совсем не читает.

Заработало чтение с модуля после перепрошивки, но спутники так и не видит.

mahowik
serenya:

Заработало чтение с модуля после перепрошивки, но спутники так и не видит.

странно… поставь все фреймы в 1-цу, затем конфирм, затем убедись, что записались (т.е. нажми квэри)… потом высунь модуль на открытое небо на пару минут…

upd: а после включения, в консоли нмеа данние бегут хоть?

kedrikov
serenya:

прочитаться из модуля то что в него записано, а нет, значение не меняется

Такое наблюдается если нет контакта Rx GPS - Tx RS232(переходник)

serenya

Вчера вечером не ловил спутники, долго не разбирался, на ночь оставил на подоконнике. С утра подключил к компу не отключая внешнее питание, т.е. просто перевел на питание от компа и отключил внешнее, в miniGPS появился 1 спутник. Залил AGPS и заработал модулек, 4-5 спутников казал, 3D FIX и в miniGPS и физический светодиодик на плате загорается - уже легче. Подцепил к ардуине с I2C-GPS-NAV - молчит, мигает с частотой 1 Гц, по моему это нет данных. Есть подозрение что не правильно распаяны Rx и Tx, скорее всего на платке (брал спецом под GPS из-за выведенного разъема I2C) распиновка приведена с каким то умыслом не так как я понял, вечером попробую подцепить Rx-Rx и Tx-Tx. Встречался с таким на криусе на ТТЛ разъеме когда подключал ВТ.

kedrikov:

Такое наблюдается если нет контакта Rx GPS - Tx RS232(переходник)

serenya:

Заработало чтение с модуля после перепрошивки

Но вполне возможно что плохой контакт был, хотя я несколько раз его перетыкал.

serenya

Заморгала моя платка I2C-GPS-NAV тройными вспышками, т.е. стала получать адекватные данные и словила 3D FIX. Оказывается дело было не в бобине.

serenya:

Есть подозрение что не правильно распаяны Rx и Tx, скорее всего на платке

На плате все верно, сам дурак попутал. Но переподключение не дало желаемого эффекта и пришлось подробнее смотреть конфиг I2C-GPS-NAV. На этот раз разглядел что дефайн МТК с автонастройкой и только для МТК3329. Включил дефайн NMEA и все заработало.

ctakah

Либо я просмотрел,либо совсем все скоро подешевеет:) Кто нибудь летает стабильно без сонаров ,по баро на такой платке: goodluckbuy.com/3m-pilot-multiwii-mwc-flight-contr… ? Какая прошивка-пират или мультик?

Alexey_1811

Прирос у меня наконец то ЖПС. RH и PH работают но есть пару вопросов.

  1. Иногда когда включаешь PH коптер тут же проваливается вниз.
  2. Когда коптер разворачивается в сторону “дома” при активации RH то он сильно качается. Ну и когда летит домой то тоже видно качание чуток.
    Это нормально или нужно крутить ПИДы?
mahowik
devv:

MultiWii AllinOne (Alpha)

давно слежу за этими прогами конфигураторами под андроид… вот еще бы кто написал offline map tracking, тогда можно было бы через 3DR модем иметь все что надо в поле без ноутбука…

bbasil

Это мое первое сообщение в мультикоптерах 😃 - сильно не пинать.
Дано мозг - Crius SE, прошивка MWC 2.1 дефолтные настройки(PID).
Видео о том как по YAW трикоптер идет в разнос без виброразвяки мозга от рамы и как не идет с ней 😃
Вообщем все будет (надеюсь) понятно 😃

GraninDm

Добрый день!

Собственно, собираю потихоньку MultiWii…
Еще не летаю, борюсь со свякими проблемами.

Одна из них это HK-T6A V2
Даже при увеличении расходов не могу покрыть весь диапазон
регулировок. Постоянно приходится крутить тримы.
И к тому же центр не в центре диапазона.
Примерно так.
#define RX_THROTTLE_MIN 1155
#define RX_THROTTLE_CENTER 1575
#define RX_THROTTLE_MAX 1992

1155 1575 1992
±-------------±--------+
Min Centr Max

Короче, мне это надоело и я сделал изменения в коде rx.ino для V2.1
Код написан по-быстрому для проверки.
Мне он не нравиться, но сейчас это неважно…

/**************************************************************************************/
/*************** Standard RX Pins reading ********************/
/**************************************************************************************/

#if defined(STANDARD_RX)
// predefined PC pin block (thanks to lianj)
#define RX_PIN_CHECK(pin_pos, rc_value_pos) \
if (mask & PCInt_RX_Pins[pin_pos]) { \
if (!(pin & PCInt_RX_Pins[pin_pos])) { \
dTime = cTime-edgeTime[pin_pos]; \
if (900<dTime && dTime<2200) { \
if(RX_NORMALISE){ \
int32_t ss = dTime; \
if(rc_value_pos == THROTTLEPIN){ \
if(dTime > RX_THROTTLE_CENTER) ss = (ss - RX_THROTTLE_CENTER) * 500 / (RX_THROTTLE_MAX - RX_THROTTLE_CENTER) + 1500; \
else ss = (ss - RX_THROTTLE_MIN) * 500 / (RX_THROTTLE_CENTER - RX_THROTTLE_MIN) + 1000; \
rcValue[THROTTLEPIN] = uint16_t(ss); \
} \
else if(rc_value_pos == YAWPIN){ \
if(dTime > RX_YAW_CENTER) ss = (ss - RX_YAW_CENTER) * 500 / (RX_YAW_MAX - RX_YAW_CENTER) + 1500; \
else ss = (ss - RX_YAW_MIN) * 500 / (RX_YAW_CENTER - RX_YAW_MIN) + 1000; \
rcValue[YAWPIN] = uint16_t(ss); \
debug[2] = dTime; \
debug[3] = rcValue[YAWPIN]; \
} \
else if(rc_value_pos == ROLLPIN){ \
if(dTime > RX_ROLL_CENTER) ss = (ss - RX_ROLL_CENTER) * 500 / (RX_ROLL_MAX - RX_ROLL_CENTER) + 1500; \
else ss = (ss - RX_ROLL_MIN) * 500 / (RX_ROLL_CENTER - RX_ROLL_MIN) + 1000; \
rcValue[ROLLPIN] = uint16_t(ss); \
} \
else if(rc_value_pos == PITCHPIN){ \
if(dTime > RX_PITCH_CENTER) ss = (ss - RX_PITCH_CENTER) * 500 / (RX_PITCH_MAX - RX_PITCH_CENTER) + 1500; \
else ss = (ss - RX_PITCH_MIN) * 500 / (RX_PITCH_CENTER - RX_PITCH_MIN) + 1000; \
rcValue[PITCHPIN] = uint16_t(ss); \
} \
else rcValue[rc_value_pos] = dTime; \
} \
else rcValue[rc_value_pos] = dTime; \
} \
} else edgeTime[pin_pos] = cTime; \
}
// port change Interrupt

и добавил в config.ino констранты

/*************************************************************************************************/
/***************** ***************/
/**************** SECTION 0 - RX normalisation *******/
/***************** ***************/
/*************************************************************************************************/

#define RX_NORMALISE 1

#define RX_THROTTLE_MIN 1155
#define RX_THROTTLE_CENTER 1575
#define RX_THROTTLE_MAX 1992

#define RX_PITCH_MIN 1145
#define RX_PITCH_CENTER 1587
#define RX_PITCH_MAX 2000

#define RX_ROLL_MIN 1084
#define RX_ROLL_CENTER 1556
#define RX_ROLL_MAX 2034

#define RX_YAW_MIN 1087
#define RX_YAW_CENTER 1583
#define RX_YAW_MAX 2034

#define RX_AUX1_MIN 1000
#define RX_AUX1_CENTER 1600
#define RX_AUX1_MAX 2000

#define RX_AUX2_MIN 1000
#define RX_AUX2_CENTER 1600
#define RX_AUX2_MAX 2000

При RX_NORMALISE = 0 код работает как и раньше
При RX_NORMALISE = 1 включается нормализация

Выключаю нормализицию.
Выставляю тримы по центру (хотя можно в любых положениях сделать нормализацию),
записываю крайние и центральное значения всех каналов.
Записываю константы в config.ino.
Включаю нормализацию.
Теперь у меня диапазон регилировок в MultiWii Config от 1000 до 2000.
Центр в 1500.
Значения, конечно, плавают ±3-5 единиц но я думаю это непринципиально.

В моей реализации мне нравиться то, что я могу без настройки расходов настроить
правильную регулировку для MultiWii.

Скажите, я вообще не велосипед случаем изобрел?

mataor
GraninDm:

Одна из них это HK-T6A V2

у меня аналогичный пульт FlySky CT6B, тож немного подзамучился с триммингом и с плаванием центра на 10-15 едениц…
с плаванием удалось решить проблему одновременно с дальнобойностью - заменой приемника и передатчика FrSky-евским комплектом, там похоже плывет приемник, также при этом верхняя и нижняя границы добавили по 50 примерно в каждую сторону, с диапазоном оставил так как есть - просто настроил в конфиге параметры #define MINTHROTTLE 1150 #define MAXTHROTTLE 1900 #define DEADBAND 12

ваше решение на мой счет оч даже оригинальное и имеющее право на жизнь для владельцев дешевых апп, единственно появляется небольшая нелинейность относительно центра.

GraninDm
mataor:

ваше решение на мой счет оч даже оригинальное и имеющее право на жизнь для владельцев дешевых апп, единственно появляется небольшая нелинейность относительно центра.

Спасибо за ответ… (Если полечу, то попробую на своем коде)
Только мой как раз убирает нелинейность, так как нормализация идет не по всему диапазону а по двум половинам.
Центр всегда в центре края всегда на краю диапазона 1000-2000. И настраивается в разы проще.
А MINTHROTTLE и MAXTHROTTLE я баловался - ничего хорошего не получилось 😦

mataor
GraninDm:

Только мой как раз убирает нелинейность, так как нормализация идет не по всему диапазону а по двум половинам.

нелинейность в том смысле что одинаковый сдвиг допустим вверх и вниз от центра будут различаться ненамного - у одного допустим диапазон сдвига 500 у другого 450, на аппе сдвинули один на 100 и другой на 100, на коптере получим для примера по одному сдвиг 95 по другому 90 - что-то вроде того. но в реальности при управлении коптером это наврятли будет заметно

П.С. если точнее посчитать
#define RX_PITCH_MIN 1145 - диапазон 442
#define RX_PITCH_CENTER 1587
#define RX_PITCH_MAX 2000 - диапазон 413

(1687-1587)*500/413+1500 = 1621, итого сдвиг на аппе в 100 = 121 на коптере
(1487-1145)*500/442+1000 = 1387, итого сдвиг на аппе в 100 = 113 на коптере

минтроттл влияет на значение газа для пуска моторов, у меня мин газа примерно 1120, моторы соответственно запускаются не при арминге а при небольшом смещении газа вверх…

да… еще один минус данного способа - 8 операций умножения/деления в прерывании - не очень хорошо (но имеет право на жизнь в вие - не так критично)

GraninDm
mataor:

кстати скорее всего воспользуюсь вашим кодом, решение оч даже понравилось

Будет интересно 😃 Просьба отписаться потом, а то я все еще никак не взлечу, из-за проблемы с акселерометром.
А про нелинейность я имел в виду другое.
Этим кодом восстанавливается линейная зависимость между углов наклона стика и значением полученным multiwii.
Хотя тут еще важна линейность резистора в аппе.

mataor:

да… еще один минус данного способа - 8 операций умножения/деления в прерывании - не очень хорошо (но имеет право на жизнь в вие - не так критично)

Так я же говорю - код плохой - он сделан макросом, и разворачивается 4 раза.
А по поводу деления и умножения, то во первых там целые 32-значные во-вторых компилятор должен выражение с константами упростить., либо можно принудительно упростить через переопределение промежуточных констант.