MultiWii

Raptor_SK
Пчёл=:

подскажите где мой косяк и как вылезти из этого.

Для начала: как подключен приемник?
Стоит ли перемычка sat/usb и как?
Скачай последний релиз Вия, раскомментируй свою плату, тип коптера…

//#define HEX6
#define HEX6X
//#define HEX6H // New Model

//#define HK_MultiWii_SE_V2 // Hobbyking board with MPU6050 + HMC5883L + BMP085
#define HK_MultiWii_328P // Also labeled “Hobbybro” on the back. ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 Connector (Spektrum Satellite)
//#define RCNet_FC

Для обычного приемника:

/* PIN A0 and A1 instead of PIN D5 & D6 for 6 motors config and promini config
This mod allow the use of a standard receiver on a pro mini
(no need to use a PPM sum receiver) */
#define A0_A1_PIN_HEX

/********************************* Aux 2 Pin ***********************************/
/* possibility to use PIN8 or PIN12 as the AUX2 RC input (only one, not both)
it deactivates in this case the POWER PIN (pin 12) or the BUZZER PIN (pin 8) */
#define RCAUXPIN8
//#define RCAUXPIN12

Еще возможно надо будет настроить фалсейв…
Да, во вкладке Output поменять миксы моторов на:

#ifdef HEX6X
motor[0] = PIDMIX(-4/5,+9/10,+1); //REAR_R
motor[1] = PIDMIX(-4/5,-9/10,+1); //FRONT_R
motor[2] = PIDMIX(+4/5,+9/10,-1); //REAR_L
motor[3] = PIDMIX(+4/5,-9/10,-1); //FRONT_L
motor[4] = PIDMIX(-4/5 ,+0 ,-1); //RIGHT
motor[5] = PIDMIX(+4/5 ,+0 ,+1); //LEFT
#endif

(спасибо Александру mahowik)
Вроде все…

Пчёл=

Многое прояснили ,Спасибо большое, ещё не понял как раскомментировать саму плату, приемник обычный перемычка стоит на usb , до того как накосячил плата активировалась без проблем с пульта( арминг- дизарминг)теперь молчит.
тип коптера нашел ранее ка выбрать, у меня сейчас прога multiwii conf не видит плату ,в ардуино выставлял duemilanove w/atmega328 , да последний релиз скачал его и пытаюсь воткнуть , после редактирования нажимаю verify/compile в скече , запись проходит без ошибок, плату все равно не видно

mahowik
DVE:
  • ALT HOLD is greatly improved thanks to the code of Mahowik, a little bit optimized since
    improved baro hold (PID) algorithm that includes the accelerometer z-axis
    its a real major improvement for multiwii

Это мой старый зачаточный АХ, который был в первых бетах (ранее распространявшихся) + простой регулятор высоты со свободным газом. Т.е. никакой заданной регулировки скорости (через отдельный пид регуль), автокалибровки газа висения (+ компенсации на просадку батареи соот-но) и независимости от конфига тама нет. Взлетать-садиться в альтхолде ясное дело не умеет…
А последние вкусности пока в RC1 и RC2.

Raptor_SK
Пчёл=:

ещё не понял как раскомментировать саму плату,

Твоя плата: 😃

//#define HK_MultiWii_SE_V2 // Hobbyking board with MPU6050 + HMC5883L + BMP085
#define HK_MultiWii_328P // Also labeled “Hobbybro” on the back. ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 Connector (Spektrum Satellite)
//#define RCNet_FC // RCNet FC with MPU6050 and MS561101BA www.rcnet.com

Пчёл=:

,в ардуино выставлял duemilanove w/atmega328 ,

Ставь Arduino Nano ATmega328… И используй последнюю версию ГУИ…
P.S. На прошлой неделе я отдал челу хексу на такой плате… прекрасно летает.
P.P.S. Проверь шнур/разъем USB - у меня на одной такой плате были из за этого проблемы, пропаивал разъем на плате…

dROb
dROb:

В общем буду разбираться - хочу запитать мозг от отдельного BEC, потом махнуть мозг на другой, ну и т.п…
Но если у кого было так же, - напишите в чём была причина и удалось ли побороть.

Победил гулянку сервы запитыванием платы от отдельного BEC. Видимо в момент щелчков, происходила просадка по питанию, и плата подглючивала.
Щелчки не победил - видимо надо прошиваться SimonK

Между тем - напомните, плз, какой параметр PID для Pitch и Roll надо крутить, если наблюдается сложность удержания высоты? (без Altitute Hold). I по-моему, но вот в какую сторону крутить - не припомню…

mahowik
dROb:

какой параметр PID для Pitch и Roll надо крутить, если наблюдается сложность удержания высоты? (без Altitute Hold).

пиды тут ни при чем… надо настроить экспоненту газа под свой коптер… сделать это можно либо в аппе, либо в ГУИ вия, НО не там и там!
удобнее так, в аппе отрубаем, а в ГУИ выставляем EXPO=0.25-0.35. Более 0.35 не советую выставлять, т.к. газ совсем дубовый становиться.

  • середину выставляем (в ГУИ это MID). Середина - примерная точка висения. Примерная, т.к. с просадкой батареи она убегает на 50…100 единиц…
Alexsis1109

Всем доброго времени суток! Кто-нибудь самостоятельно писал код для обработки ШИМа РРМ сигнала на контроллере Atmega? Я пытаюсь написать на Atmega128

mataor
Alexsis1109:

Кто-нибудь самостоятельно писал код для обработки ШИМа РРМ сигнала на контроллере Atmega? Я пытаюсь написать на Atmega128

блин… в одной теме тебе кучу вариантов предложили, а ты еще сюда полез. лезеш в исходники вия, конкретно в RX.ino - там все есть. Единственно тебе придется выдрать из ардуино и переделать для 128-й меги таймер системного времени и процедурку micros. Вперед.

Alexsis1109
mataor:

Единственно тебе придется выдрать из ардуино и переделать для 128-й меги таймер системного времени и процедурку micros. Вперед.

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

mataor

во первых - вопрос не для этой ветки.
во вторых - почему 128-я мега?
по обработке приемника неудобна - мало входов прерываний - всего 8, если использовать приемник с PPMSUM то норм (по одному проводу где), иначе все ноги входов прерываний нужно задействовать.
по таймеру: так и не сказали какой кварц?
настройка таймера по даташиту легко делается:
TCCR0 - установкой битов CS00-CS02 предделитель таймера
TCNT0 - сюда загружаем счетчик сколько считаем, в прерывании записываем значение вновь
TIMSK - устанавливаем бит TOIE0
для примера при кварце 16МГц предделитель 0 (CS00 = 1) TCNT0 = (255-16) будет прерывание 1 раз в 1 мкс, но имхо так делать не стоит - почти половину времени (зависит от внутренности прерывание) процессор будет уделять только таймеру.

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

Alexsis1109
mataor:

для примера при кварце 16МГц предделитель 0 (CS00 = 1) TCNT0 = (255-16) будет прерывание 1 раз в 1 мкс, но имхо так делать не стоит - почти половину времени (зависит от внутренности прерывание) процессор будет уделять только таймеру.

вот и у меня, когда я пытаюсь сделать его быстрее 5мкс, он зависает, видимо не успевает просто сам себя обработать. кварц 14.7456 МГц.

mataor:

Еще раз говорю - смотрите исходники библиотек ардуино.

какие именно библиотеки использовать, не подскажите?

mataor:

во вторых - почему 128-я мега?

в основном, потому, что у нее 8 аппаратных шимов и 2 уарта

mataor

а у меня 22 шима и 7 уартов окромя остальной кучи периферии)))
arduino-1.0.1\hardware\arduino\cores\arduino\ оттуда в данный момент вам нужна wiring.c - копайтесь в ней…
примите за правило - в прерывании МИЗЕР кода.

Alexsis1109
mataor:

а у меня 22 шима и 7 уартов окромя остальной кучи периферии)))

ого, круто, а atXmega у вас какая, 64-ая?

mataor:

примите за правило - в прерывании МИЗЕР кода.

да, это правило я хорошо знаю)

mataor
Alexsis1109:

ого, круто, а atXmega у вас какая?

MultiWii на atxmega (не arduino) лучше уж спрашивай там… в ближайшее время собираюсь кучку информации по текущему состоянию выложить, ато подзаглохла темка - полусырое выкладывать как то не могу.

Alexsis1109
mataor:

MultiWii на atxmega (не arduino) лучше уж спрашивай там…

договорились

dROb
mahowik:

пиды тут ни при чем… надо настроить экспоненту газа под свой коптер… сделать это можно либо в аппе, либо в ГУИ вия, НО не там и там!
удобнее так, в аппе отрубаем, а в ГУИ выставляем EXPO=0.25-0.35. Более 0.35 не советую выставлять, т.к. газ совсем дубовый становиться.

  • середину выставляем (в ГУИ это MID). Середина - примерная точка висения. Примерная, т.к. с просадкой батареи она убегает на 50…100 единиц…

Вот видео, которым я сызмальства пользовался для настройки ПИДов 😃 (автор - капитанКУК)

Там примерно на 1:20 - как раз сценарий когда “Hard to control height” (причина - высокий P)

А Кривую тоже обязательно настроим. У этого коптера висение вообще на 25% газа…

Shurikk
dROb:

Вот видео, которым я сызмальства пользовался для настройки ПИДов (автор - капитанКУК)

блин, выкрутил звук погромче в наушниках, чтобы движки слышать, вы бы предупреждали, что там в конце видео))

dROb
Shurikk:

блин, выкрутил звук погромче в наушниках, чтобы движки слышать, вы бы предупреждали, что там в конце видео))

Не уверен , что досматривал это видео до конца))) Хотя вчера пока писал сообщение - это видео на заднем фоне звучало)) Но видимо я оказался быстр 😃

gorbln
Shurikk:

вы бы предупреждали, что там в конце видео))

Да уж. Чуть личинку не отложил

Beware the chicken!!!

Пчёл=
Raptor_SK:

Твоя плата: 😃

Ставь Arduino Nano ATmega328… И используй последнюю версию ГУИ…
P.S. На прошлой неделе я отдал челу хексу на такой плате… прекрасно летает.
P.P.S. Проверь шнур/разъем USB - у меня на одной такой плате были из за этого проблемы, пропаивал разъем на плате…

Да использую последнюю 2.2, но все то же,кабель менял порты менял , пробовал на другом компе ftdi определяется четко, (а то думал менять его) разъем прозвонил ,пропаял , даж ft232 пропаял на всякий, где то читал что с файлом def тоже что делают, точнее для работы нужны два файла def и config , с eeprom не нужно ничего делать ? удалять данные или чистить ?, с предыдущей платой на 168 меге тоже были заморочки пока данные не удалил ,в этой пока не знаю как и нужно ли это делать.

Raptor_SK
Пчёл=:

в этой пока не знаю как и нужно ли это делать.

File > Examples > EEPROM > eeprom clear… потом жмешь загрузить, как при заливке. Все, память очищена… Можно заливать свежую прошивку.
И скачай последнюю версию Ардуино.
P.S. Открывать прошивку надо через File > open > MultiWii.ino,
дожна открытся куча вкладок, работаешь в основном с конфигом, все остальное игнорируешь, разве что, в output правишь миксы для хексы…