MultiWii
- 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.
ещё не понял как раскомментировать саму плату,
Твоя плата: 😃
//#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 - у меня на одной такой плате были из за этого проблемы, пропаивал разъем на плате…
В общем буду разбираться - хочу запитать мозг от отдельного BEC, потом махнуть мозг на другой, ну и т.п…
Но если у кого было так же, - напишите в чём была причина и удалось ли побороть.
Победил гулянку сервы запитыванием платы от отдельного BEC. Видимо в момент щелчков, происходила просадка по питанию, и плата подглючивала.
Щелчки не победил - видимо надо прошиваться SimonK
Между тем - напомните, плз, какой параметр PID для Pitch и Roll надо крутить, если наблюдается сложность удержания высоты? (без Altitute Hold). I по-моему, но вот в какую сторону крутить - не припомню…
какой параметр PID для Pitch и Roll надо крутить, если наблюдается сложность удержания высоты? (без Altitute Hold).
пиды тут ни при чем… надо настроить экспоненту газа под свой коптер… сделать это можно либо в аппе, либо в ГУИ вия, НО не там и там!
удобнее так, в аппе отрубаем, а в ГУИ выставляем EXPO=0.25-0.35. Более 0.35 не советую выставлять, т.к. газ совсем дубовый становиться.
- середину выставляем (в ГУИ это MID). Середина - примерная точка висения. Примерная, т.к. с просадкой батареи она убегает на 50…100 единиц…
Всем доброго времени суток! Кто-нибудь самостоятельно писал код для обработки ШИМа РРМ сигнала на контроллере Atmega? Я пытаюсь написать на Atmega128
Кто-нибудь самостоятельно писал код для обработки ШИМа РРМ сигнала на контроллере Atmega? Я пытаюсь написать на Atmega128
блин… в одной теме тебе кучу вариантов предложили, а ты еще сюда полез. лезеш в исходники вия, конкретно в RX.ino - там все есть. Единственно тебе придется выдрать из ардуино и переделать для 128-й меги таймер системного времени и процедурку micros. Вперед.
Единственно тебе придется выдрать из ардуино и переделать для 128-й меги таймер системного времени и процедурку micros. Вперед.
легко сказать выдерни и переделай когда все понимаешь. я прошу просто для начала с таймером помочь разобрать, неужели так трудно помочь?
во первых - вопрос не для этой ветки.
во вторых - почему 128-я мега?
по обработке приемника неудобна - мало входов прерываний - всего 8, если использовать приемник с PPMSUM то норм (по одному проводу где), иначе все ноги входов прерываний нужно задействовать.
по таймеру: так и не сказали какой кварц?
настройка таймера по даташиту легко делается:
TCCR0 - установкой битов CS00-CS02 предделитель таймера
TCNT0 - сюда загружаем счетчик сколько считаем, в прерывании записываем значение вновь
TIMSK - устанавливаем бит TOIE0
для примера при кварце 16МГц предделитель 0 (CS00 = 1) TCNT0 = (255-16) будет прерывание 1 раз в 1 мкс, но имхо так делать не стоит - почти половину времени (зависит от внутренности прерывание) процессор будет уделять только таймеру.
Еще раз говорю - смотрите исходники библиотек ардуино.
Мне тоже пришлось много ковыряться, зато сейчас имею успешно работающий порт мультивия на atXmega, а там отличий намного поболее было
для примера при кварце 16МГц предделитель 0 (CS00 = 1) TCNT0 = (255-16) будет прерывание 1 раз в 1 мкс, но имхо так делать не стоит - почти половину времени (зависит от внутренности прерывание) процессор будет уделять только таймеру.
вот и у меня, когда я пытаюсь сделать его быстрее 5мкс, он зависает, видимо не успевает просто сам себя обработать. кварц 14.7456 МГц.
Еще раз говорю - смотрите исходники библиотек ардуино.
какие именно библиотеки использовать, не подскажите?
во вторых - почему 128-я мега?
в основном, потому, что у нее 8 аппаратных шимов и 2 уарта
а у меня 22 шима и 7 уартов окромя остальной кучи периферии)))
arduino-1.0.1\hardware\arduino\cores\arduino\ оттуда в данный момент вам нужна wiring.c - копайтесь в ней…
примите за правило - в прерывании МИЗЕР кода.
а у меня 22 шима и 7 уартов окромя остальной кучи периферии)))
ого, круто, а atXmega у вас какая, 64-ая?
примите за правило - в прерывании МИЗЕР кода.
да, это правило я хорошо знаю)
ого, круто, а atXmega у вас какая?
MultiWii на atxmega (не arduino) лучше уж спрашивай там… в ближайшее время собираюсь кучку информации по текущему состоянию выложить, ато подзаглохла темка - полусырое выкладывать как то не могу.
MultiWii на atxmega (не arduino) лучше уж спрашивай там…
договорились
пиды тут ни при чем… надо настроить экспоненту газа под свой коптер… сделать это можно либо в аппе, либо в ГУИ вия, НО не там и там!
удобнее так, в аппе отрубаем, а в ГУИ выставляем EXPO=0.25-0.35. Более 0.35 не советую выставлять, т.к. газ совсем дубовый становиться.
- середину выставляем (в ГУИ это MID). Середина - примерная точка висения. Примерная, т.к. с просадкой батареи она убегает на 50…100 единиц…
Вот видео, которым я сызмальства пользовался для настройки ПИДов 😃 (автор - капитанКУК)
Там примерно на 1:20 - как раз сценарий когда “Hard to control height” (причина - высокий P)
А Кривую тоже обязательно настроим. У этого коптера висение вообще на 25% газа…
Вот видео, которым я сызмальства пользовался для настройки ПИДов (автор - капитанКУК)
блин, выкрутил звук погромче в наушниках, чтобы движки слышать, вы бы предупреждали, что там в конце видео))
блин, выкрутил звук погромче в наушниках, чтобы движки слышать, вы бы предупреждали, что там в конце видео))
Не уверен , что досматривал это видео до конца))) Хотя вчера пока писал сообщение - это видео на заднем фоне звучало)) Но видимо я оказался быстр 😃
вы бы предупреждали, что там в конце видео))
Да уж. Чуть личинку не отложил
Beware the chicken!!!
Твоя плата: 😃
Ставь Arduino Nano ATmega328… И используй последнюю версию ГУИ…
P.S. На прошлой неделе я отдал челу хексу на такой плате… прекрасно летает.
P.P.S. Проверь шнур/разъем USB - у меня на одной такой плате были из за этого проблемы, пропаивал разъем на плате…
Да использую последнюю 2.2, но все то же,кабель менял порты менял , пробовал на другом компе ftdi определяется четко, (а то думал менять его) разъем прозвонил ,пропаял , даж ft232 пропаял на всякий, где то читал что с файлом def тоже что делают, точнее для работы нужны два файла def и config , с eeprom не нужно ничего делать ? удалять данные или чистить ?, с предыдущей платой на 168 меге тоже были заморочки пока данные не удалил ,в этой пока не знаю как и нужно ли это делать.
в этой пока не знаю как и нужно ли это делать.
File > Examples > EEPROM > eeprom clear… потом жмешь загрузить, как при заливке. Все, память очищена… Можно заливать свежую прошивку.
И скачай последнюю версию Ардуино.
P.S. Открывать прошивку надо через File > open > MultiWii.ino,
дожна открытся куча вкладок, работаешь в основном с конфигом, все остальное игнорируешь, разве что, в output правишь миксы для хексы…
Собрал квадрик и готовлюсь к взлету. Но вот возникла такая проблема. Прошивка 2.1. В ГУИ настраиваю аппу Turnigy9x : 1020-1500-1980 по всем каналам. Все хорошо-значения меняются ±2единицы. Выключаю питание коптера и передатчика. Потом включаю снова - значения в середине по всем каналам 1480, минимум так и остался , максимум упал до 1940. Через минут 5 все значения восстанавливаются как при настройке. Аппа вроде ни при чем- значения АЦП средние и максимальные никуда не ползут.
DEADBAND пробовал и 6 и 10 - не влияет. В чем может быть проблема?
Не обращайте внимание,это не критично.