MultiWii
Аксель калибровали? Реги калибровали? Как с вибрациями?
все откалибровано было, вибрация тоже в норме через две резинки от сидюка. Получается при 1500 PITCH и ROLL должен взлетать без заносов, а триммирование на пульте это как раз что бы выставить эти 1500?
при подаче питания нужно несколько сек. не дергать коптер, т.к. идет калибровка гирррр. и если гиры не в нуле после калибровки, то интегратор в ИМУ в момент начнет копить оши…
Да, такое подозрение было, возможно я даже слегка пнул 😈 коптер в момент инициализации.
Большое спасибо за наводку!
вообще если читаете код или хотябы на инглише, то проще прочитать комменты в config.h и…
С английским проблем нет, есть проблемы с объемом информации, которая за раз в голову просто не лезет. Приходится осваивать код и его фичи поэтапно, крэш за крэшем 😁
Получается при 1500 PITCH и ROLL должен взлетать без заносов, а триммирование на пульте это как раз что бы выставить эти 1500?
да, сигнал с приемника мозг должне принимать 1500 в центральных положениях, сам коптер должен в горизонтали быть откалиброван. и еще советую посмотреть в сторону правельной ориентиции датчиков. я на самодельном мозге из ардуинки про мини и MPU6050 пока не настроил правельную ориентацию датчиков, то коптер при взлете крутило и норавило перевернуть
а куда подключать пищалку?
Вообще по стандарту вот
Но думаю не составит труда переназначить например на D11.
В def.h в секции atmega32u4 (Promicro) ищем
#if defined(D8BUZZER)
#define BUZZERPIN_PINMODE DDRB |= (1<<4);
#if defined PILOTLAMP
#define PL_PIN_ON PORTB |= 1<<4;
#define PL_PIN_OFF PORTB &= ~(1<<4);
#else
#define BUZZERPIN_ON PORTB |= 1<<4;
#define BUZZERPIN_OFF PORTB &= ~(1<<4);
#endif
Меняем 4 на 7, должно получиться. Мой контроллер улетел, проверить не могу.
p.s. и включить в конфиге #define BUZZER
А не может ли быть такого, что при включении коптера, в силу длительного процесса коннекта приемника к передатчику, мозга успевает уйти в фэйлсэйв?
Вообще по стандарту вот
вот на этом buzzer pin у меня напруга не менялась что я ни делал.
Попробуем переназначить, может поможет.
А не может ли быть такого, что при включении коптера, в силу длительного процесса коннекта приемника к передатчику, мозга успевает уйти в фэйлсэйв?
А вы собственноручно настраивали файлсейв? (раскомментировали соответствующие строки в коде?) По умолчанию он вроде не активирован…
вот на этом buzzer pin у меня напруга не менялась что я ни делал.
Попробуем переназначить, может поможет.
Нет, не выходит =(
переназначил как вы сказали, раскоментил строчку #define BUZZER, в конфигураторе показывает правильно напругу, но на выходе тестером меряю - какая-то ерунда. Либо 1.8V либо 0,3 - 0,6 - и не меняется…
Может чего-то ещё надо сделать?
вот на этом buzzer pin у меня напруга не менялась что я ни делал.
Может аукс был раскомментирован?
тестером меряю - какая-то ерунда. Либо 1.8V либо 0,3 - 0,6 - и не меняется…
Ну так Вы повесьте хотя бы светодиод что-бы видеть наглядно а не тестером.
Может чего-то ещё надо сделать?
Может везде где есть определение buzzer pin поменять надо? Там далее по коду еще есть где можно поменять.
А вы собственноручно настраивали файлсейв? (раскомментировали соответствующие строки в ко…
Вы меня за дебила держите? Естественно речь идет о ситуации, когда фэйлсэйв активирован и настроен…
Ну так Вы повесьте хотя бы светодиод что-бы видеть наглядно а не тестером.
светодиод не загорается вообще.
Может везде где есть определение buzzer pin поменять надо? Там далее по коду еще есть где можно поменять.
попробовал - тоже не получилось.
Блин,да что ж не так
попробовал - тоже не получилось.
Блин,да что ж не так
Может ошибаюсь, но светодиод, так же как и буззер-пищалку нужно через ключик подключать… иначе вы перегружаете выход Меги
так же как и буззер-пищалку нужно через ключик подключать… иначе вы перегружаете выход Меги
ну у меня походу дела просто не включается почему-то выход…
Может в конфиге включить A32U4ALLPINS?
this moves the Buzzer pin from TXO to D8 for use with ppm sum or spectrum sat. RX (not needed if A32U4ALLPINS is active) */
Или здесь поковыряться
override default pin assignments
Аа на стандартном d8 работает?
Аа на стандартном d8 работает?
дак а на нановие разве есть D8?
Спасибо! всё в итоге заработало, я, балбес не раскоментировал #define D8BUZZER а только #define BUZZER
Нашёл от Маховика такое сообщение, а куда этот код ставить?
Он должен “эмулировать” писк - как аз то что мне нужно!
#if defined(BUZZER)
static int8_t buzzerCount = 0;
if((buzzerCount % 2) && (buzzerCount > 0)) {
BUZZERPIN_ON;
} else {
BUZZERPIN_OFF;
}
buzzerCount++;
#endif
а куда этот код ставить?
Объявление переменной куда-то в шапку или функцию инициализации засунуть, остальной код - в основной цикл, который вызывается с частотой несколько сотен герц, более точно не скажу, так как еще не во всем оригинальном коде разобрался.
И еще: судя по всему, где-то должно быть место в коде, которое постоянно делает buzzerCount = 0 пока пищалка должна быть выключена.
дак а на нановие разве есть D8?
Аукс как раз на d8 висит. Код который Вы нашли предназначен для пищалок без встроенного генератора.
аксель не причем и калибруется один раз ровно в горизонт + иногда вишными тримами (шаг 0.2 град.) с пульта можно подкорректировать…
при подаче питания нужно несколько сек. не дергать коптер, т.к. идет калибровка гирррр. и если гиры не в нуле после калибровки, то интегратор в ИМУ в момент начнет копить ошибку с частотой примерно 300гц, что и выползет завалом горизонта. аксель конечно тут помогает, т.к. по нему идет корректировка, но это не спасет от завала горизонта т.к. в итоге в комплиментарном фильтре будет найден баланс между накоплением ошибки и корректировкой…
Ну а проще врубить дефайн GYROCALIBRATIONFAILSAFE и забыть
Когда участвовал в конкурсе Крока, пришлось дрейф по yaw несколько другим способом, выводил на отладку значение att.heading (которое находил по своей формуле), и по времени засекал дреф на 5 градусов (у меня минута получалась),
затем врубал счетчик и автоматом корректировал каждую 1/5 минуту на один градус, в общем замечательно получилось.
Сама процедура калибровки гироскопов в положении покоя на MW весьма сомнительная, так как значения за 512 циклов суммируются, а потом делятся на 512:
gyroZero[axis]=(g[axis]+256)>>9; (+256 добавлено в версии 2.3)
а так как калибровочное значение - целое (int16_t gyroZero[3] = {0,0,0}😉,
то получаем, что если гир за 512 циклов уплыл на значение меньшее 256, то корректировка =0,
в этом случае нужно переходить на float
- Вообще писать на ардурино - очень грустное дело, отладки полноценной нет (JTAG), уходит много времени, чтобы понять в чем ошибся,
думаю перейти на опенпилот, пробовал кнонибудь писать под эту платформу ?
Код который Вы нашли предназначен для пищалок без встроенного генератора.
да да! у меня просто основная идея - это подать сигнал с мультивия на микрофонный вход видеопередатчика FPV сетапа. И таким образом мониторить напряжение 😃 (во всяком случае, протянуть до доставки OSD)
Попробовал вставить код в разные места - нихрена не вышло. Пишет ошибки при компиляции.
Реализовал то что хотел сделать, результатом доволен, но надо ещё допилить немного будет =)
Спасибо serenya 😃 переназначил успешно на выход D11 на нановиее.
Купил микродинамик со встроенным генератором на 5V.
Разобрал его(схема странная немного, два транзистора и два резистора, даже конденсатора нет, не понял как генерирует и от чего частота зависит) и через кондёр подал сигнал от одной лапки катушки динамика на микрофонный вход видеопередатчика.
Теперь когда падает напруга у меня пищит и динамик на моделе и динамик на пульте FPV 😃 В принципе, может и вообще не буду тогда OSD вешать на свой микросетап, довольно удобно вышло.
Недостаток - у этого динамика частота зависит как-то от хрен знает чего. У меня выходит что если дырочку заклеиваешь на динамике, скотчем (чтобы дома не глушил) частота понижается чуть-чуть и сигнал на видео сразу становится раза в два громче.
Убираешь скотч с дырочки - частота повышается чуть чуть и сразу писк в видеоприёмнике как-то хрипнет и глохнет 😃 В принципе, различим, пользоваться этой “телеметрией” можно. Нужно будет схему перерисовать и спросить у кого-нибудь знающего, как сдвинуть чуток частоту этой пищалки (может кондёр куда впаять мелкий. Реально не понимаю, как с двумя транзисторами и двумя резисторами она генерирует, один из них, при этом похоже просто ограничивает ток)
Ещё, пока не понял, в мультивиее 3 уровня напряжения контроля - 1 предупреждение, 2-е предупреждение и critical.
При первом - одинарный писк, при втором - двойной писк. А вот при критикал - ничего не происходит, так и пищит двойной, что-то не так, хотелось бы чтобы начинал попискивать не переставая.