MultiWii
Маленькая поправка. При двух каналах >1900 (а не >2000) В коде особых граблей не видно. Сейчас буду проверять своей ppm-читалкой и ppm-генерилкой…
А какая прошивка у вас? Какое доп. оборудование или режимы включены?
Я провел небольшое исследование - приемник не при чем, после зависания я перетыкаю приемник, и ничего не меняется. Зависает совершенно спонтанно, иногда даже просто оставляю приемник в покое в центральных положениях стиков, через 5 минут смотрю - завис цикл чтения. Все остальное работает в GUI. Очень похоже, что проблема только в моей модифицированной прошивке, т.к. раньше ничего подобного не было. Но что я там менял в последний раз - не помню 😦
Бага в коде.
Комментируем в MultiWii_2_1.ino строчки с
----------------
// end of failsave routine - next change is made with RcOptions setting
if (rcData[THROTTLE] < MINCHECK) {
----------------
(у меня это ~626 строка) и до
----------------
#if defined(INFLIGHT_ACC_CALIBRATION)
if (AccInflightCalibrationArmed && f.ARMED && rcData[THROTTLE] > MINCHECK && !rcOptions[BOXARM] ){ // Copter is airborne and you are turning it off via boxarm : start measurement
InflightcalibratingA = 50;
AccInflightCalibrationArmed = 0;
}
if (rcOptions[BOXPASSTHRU]) { // Use the Passthru Option to activate : Passthru = TRUE Meausrement started, Land and passtrhu = 0 measurement stored
if (!AccInflightCalibrationActive && !AccInflightCalibrationMeasurementDone){
InflightcalibratingA = 50;
}
}else if(AccInflightCalibrationMeasurementDone && !f.ARMED){
AccInflightCalibrationMeasurementDone = 0;
AccInflightCalibrationSavetoEEProm = 1;
}
#endif
----------------
(у меня это 775 строка). Включительно.
После чего проблемы в WinGui не наблюдается. Очевидно, проблема все-таки не в ppm-sum frsky, а в коде Mwii…
Летать не пробовал - надо смотреть внимательно код - я мог и что лишнее закомментить -)
ps. hatuul - проверьте, пожалуйста, что у вас проблема при выкрученном thr действительно отсутствует
А какая прошивка у вас? Какое доп. оборудование или режимы включены?
Я провел небольшое исследование - приемник не при чем, после зависания я перетыкаю приемник, и ничего не меняется. Зависает совершенно спонтанно, иногда даже просто оставляю приемник в покое в центральных положениях стиков, через 5 минут смотрю - завис цикл чтения. Все остальное работает в GUI. Очень похоже, что проблема только в моей модифицированной прошивке, т.к. раньше ничего подобного не было. Но что я там менял в последний раз - не помню 😦
2.1- #TRI
тестюсь на самой простой - без gps, баро, магнита
последовательно вырубил все что можно - не помогало
pps. у меня при этом залипании он начинает мигать синим диодиком. Ощущение что пытается в какую-нибудь настройку зайти…
Ложная тревога -)
Зависание имеет место быть только в disarm состоянии - действительно настройки. В Arm - все ок, не виснет
Вечер добрый, подскажите как в прошивке MultiWii_2_1_b3 переназначить сумарный PPM с входа RX на THROTTLE, плата контроллера crius ALL IN ONE PRO v1.0 на меге 2560
При замыкании 3 и 4 каналов на первом канале появляется 27мс РРМ,а на втором рсси.
О! свежак (10/10/2012)!
ты кстати RSSI (PWM) не пробовал мобидрону кормить? или ему только аналоговый RSSI подойдет, которого в D8R-II(XP) нет похоже… хотя из ШИМ-а в аналог не трудно перегнать… не гугля по идее обычный RC фильтр прокатит…
Вечер добрый, подскажите как в прошивке MultiWii_2_1_b3 переназначить сумарный PPM с входа RX на THROTTLE, плата контроллера crius ALL IN ONE PRO v1.0 на меге 2560
поищите тут… вроде было…
мобидрону кормить
Уже третий месяц кормиться посмотри на мои видео.Кстати рсси почти аналоговый (ШИМ) мобидрон их хорошо принимает через резюк и кандёр запитаный на землю.Силу сигнала отображает почти такую-же как на пульте ±10%.
мобидрон их хорошо принимает через резюк и кандёр запитаный на землю.
не гугля по идее обычный RC фильтр прокатит…
так про то и писал 😃
подскажи плз. параметры фильтра, т.е. какой кондер и резюк?
Уже не помну,брал,что под руку попалось.
Если не ошибаюсь кандер 10 нФ запаралелен с резюком 1к.
В обрыв кажетса 100 или 50 ом ставил.
Вечер добрый, подскажите как в прошивке MultiWii_2_1_b3 переназначить сумарный PPM с входа RX на THROTTLE, плата контроллера crius ALL IN ONE PRO v1.0 на меге 2560
отвечу на свой вопрос, разобрался такая возможность появилась в MultiWii dev version r1143 (2012/09/27)
необходимо отредактировать в
RX.ino после
/**************************************************************************************/
/*************** PPM SUM RX Pin reading ********************/
/**************************************************************************************/
// attachInterrupt fix for promicro
#if defined(PROMICRO) && defined(SERIAL_SUM_PPM)
ISR(INT6_vect){rxInt();}
#endif
вписать
#if defined(PPM_ON_THROTTLE) && defined(MEGA) && defined(SERIAL_SUM_PPM)
ISR(PCINT2_vect) { if(PINK & (1<<0)) rxInt(); }
#endif
затем в def.h в
/************************** all the Mega types ***********************************/
найти #define PPM_PIN_INTERRUPT attachInterrupt(4, rxInt, RISING); //PIN 19, also used for Spektrum satellite option
и заменить на
#if defined(PPM_ON_THROTTLE)
//configure THROTTLE PIN (A8 pin) as input witch pullup and enabled PCINT interrupt
#define PPM_PIN_INTERRUPT DDRK &= ~(1<<0); PORTK |= (1<<0); PCMSK2 |= (1<<0); PCICR |= (1<<2);
#else
#define PPM_PIN_INTERRUPT attachInterrupt(4, rxInt, RISING); //PIN 19, also used for Spektrum satellite option
#endif
и последнее в config.h после раскоменченного желаемого PPM дописать #define PPM_ON_THROTTLE
например так
/**************************************************************************************/
/******** special receiver types ********************/
/**************************************************************************************/
/**************************** PPM Sum Reciver ***********************************/
/* The following lines apply only for specific receiver with only one PPM sum signal, on digital PIN 2
Select the right line depending on your radio brand. Feel free to modify the order in your PPM order is different */
//#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4 //For Graupner/Spektrum
//#define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4 //For Robe/Hitec/Futaba
#define SERIAL_SUM_PPM PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4 //For some Hitec/Sanwa/Others
#define PPM_ON_THROTTLE
проверил работает.
ну както так…
отвечу на свой вопрос
а мой ответ и конкретная ссылка не устроила?! 😃 если упростить до одного клика то вот…
и в 100-й раз… люди не читают и 2-х страниц… а иногда даже ответы на свои вопросы и на той же странице… 😃
Столкнулся с такой фигнёй:
Если включить управление подвесом - то каналы AUX3 и AUX4 - автоматом мапятся на поворот камеры по питчу и роллу соответственно. (вообще, на AIOP есть специальные пины под это дело, но они походу не используются). У меня на AUX3 висит переключение режимов. Соответственно, при щелчке переключателем камера поворачивается хрен-те-куда.
Мне это не понравилось, сделал вот такое решение, может быть кому-то окажется полезно:
config.h
/* Camstab pitch control only by one channel, uncomment only one option. Roll control is disabled.
E.g. CAM_STAB_AUX4_ONLY means that signal from AUX4 used to control pitch of the gimbal and AUX3 is ignored.
=== affects Output.ino - Cam stabilize Sevos section === */
// #define CAM_STAB_AUX3_ONLY
#define CAM_STAB_AUX4_ONLY
output.ino
сначала надо удалить кусок
S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX3]-1500;
S_ROLL = TILT_ROLL_MIDDLE + rcData[AUX4]-1500;
и потом добавить
#if defined(CAM_STAB_AUX3_ONLY)
S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX3]-1500;
S_ROLL = TILT_ROLL_MIDDLE;
#endif
#if defined(CAM_STAB_AUX4_ONLY)
S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX4]-1500;
S_ROLL = TILT_ROLL_MIDDLE;
#endif
#if !defined(CAM_STAB_AUX3_ONLY) && !defined(CAM_STAB_AUX4_ONLY)
S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX3]-1500;
S_ROLL = TILT_ROLL_MIDDLE + rcData[AUX4]-1500;
#endif
Подскажите - подключил тут BUZZER - так вот он непрерывно пищит. Что это за фигня?
P.S. Алярм по батарейке (VBAT) отключен.
какая прошивка? какой контроллер? на какой пин повесили?
и где купили пищалку? мне ссылку так толком и не дал ни кто… 😃
а мой ответ и конкретная ссылка не устроила?! 😃 если упростить до одного клика то вот…
и в 100-й раз… люди не читают и 2-х страниц… а иногда даже ответы на свои вопросы и на той же странице… 😃
спасибо устроила 😃 не дожмакал сразу.
какая прошивка? какой контроллер? на какой пин повесили?
и где купили пищалку? мне ссылку так толком и не дал ни кто… 😃
Прошивка 2.1. Плата - с хоббикинга, вот эта - MultiWii 328P Flight Controller w/FTDI & DSM2 Port
Пин там отдельный, спецом для Буззера, сейчас прозвоню куда идёт…
Пищалку, что досадно, ждал 3 недели с ебея, вот отсюда, но судя по всему Активная Пищалка (то есть с генератором тона) мультивию уже не нужна. Хватает обычной пищалки/динамика/etc от чего угодно!! Щас вот например просто от компа подключена …
UPDATE:
В общем оказалось что я слушал PPM сигнал, т.к. китайцы, кто разводил плату - BUZZER на пин D9 повесили, а там собсно один из моторов висит
Так к какому пину этот баззер вообще подключать? TX чтоли? 32ой пин Атмеги?
но судя по всему Активная Пищалка (то есть с генератором тона) мультивию уже не нужна
нужна… отлистайте страницу-две… я как раз с этим столкнулся
Так к какому пину этот баззер вообще подключать?
/************************** atmega328P (Promini) ************************************/
#if defined(PROMINI)
#if !defined(MONGOOSE1_0)
#define LEDPIN_PINMODE pinMode (13, OUTPUT);
#define LEDPIN_TOGGLE PINB |= 1<<5; //switch LEDPIN state (digital PIN 13)
#define LEDPIN_OFF PORTB &= ~(1<<5);
#define LEDPIN_ON PORTB |= (1<<5);
#endif
#if !defined(RCAUXPIN8)
#if !defined(MONGOOSE1_0)
#define BUZZERPIN_PINMODE pinMode (8, OUTPUT);
#define BUZZERPIN_ON PORTB |= 1;
#define BUZZERPIN_OFF PORTB &= ~1;
#endif
#else
#define BUZZERPIN_PINMODE ;
#define BUZZERPIN_ON ;
#define BUZZERPIN_OFF ;
#define RCAUXPIN
#endif
по идее для 328-й меги будет D8…
нужна… отлистайте страницу-две… я как раз с этим столкнулся
по идее для 328-й меги будет D8…
Ещё раз спасибо! Проверил на другой платке - мой Активный Баззер с ebay работает. Правда придётся его немного модифицировать - по умолчанию он задуман включаться когда отдельную ножку замыкаем на землю. Повесил его напрямую к ноге Атмеги - потребляет 20мА…
Завтра отпилю от него схемку активации ножкой на землю, либо выпаяю, останется один Активный Баззер фирмы HYDZ (на заметку - судя по всему эта фирма делает пищалки уже с генератором внутри).
из описания:
3, active low, can direct connect with single-chip IO control
т.е. по идее он активен при подаче логического “0”-ля… потому просто попробуйте поменяйть в коде это
#define BUZZERPIN_ON PORTB |= 1;
#define BUZZERPIN_OFF PORTB &= ~1;
на это
#define BUZZERPIN_ON PORTB &= ~1;
#define BUZZERPIN_OFF PORTB |= 1;
т.е. инвертировать…
upd: исправил, а то не тот код сунул сперва 😃
Привет всем .
Брал пищалку здесь www.ebay.com/itm/…/390363672455
из описания:
3, active low, can direct connect with single-chip IO controlт.е. по идее он активен при подаче логического “0”-ля… потому просто попробуйте поменяйть в коде это
#define BUZZERPIN_ON PORTB |= 1; #define BUZZERPIN_OFF PORTB &= ~1;
на это
#define BUZZERPIN_ON PORTB &= ~1; #define BUZZERPIN_OFF PORTB |= 1;
т.е. инвертировать…
upd: исправил, а то не тот код сунул сперва 😃
Изящное решение - завтра попробую!!