MultiWii
Доброго всем вечера, решил зделать себе подсветку на Х-квадрик,( по всем четырём углам стоят кусочки ленты светодиодной), чтоб таким образом работала:
по умолчанию светятся все светодиоды,
двигаешь питч вперёд начинают блымать передний левый передний правый,
назад задний левый и задний правый,
ролл вправо передний правый и задний правый,
ролл влево передний левыйи задний левый,
питч вперёд и ролл вправо передний левый, передний правый и задний правый, остальные диогонали аналогично.
может чтото такое уже написанно незнаю, вобщем решил зделать и зделал, работает. Я вот незнаю как красиво мой код в общий код втулить, и может гуру подскажут не будет ли мой код мешать обработкам основных задач программы, вродеб время цикла на глаз не увеличелось. Контроллер ALL IN ONE PRO. Вот код:
впихнул в основной файл MultiWii перед функцией void setup()…
////// veLED
int veI=0, veT=10, veS=25; //veT - скорость мерцания, veS - чувствительность на отклонение стика
const int vePIN1=9; //порты управления диодами
const int vePIN2=10;
const int vePIN3=11;
const int vePIN4=12;
void veLEDsetup(){
pinMode (vePIN1, OUTPUT);
pinMode (vePIN2, OUTPUT);
pinMode (vePIN3, OUTPUT);
pinMode (vePIN4, OUTPUT);
digitalWrite(vePIN1, HIGH);
digitalWrite(vePIN2, HIGH);
digitalWrite(vePIN3, HIGH);
digitalWrite(vePIN4, HIGH);
}
void veLED(){
veI++;
if(veI==veT){
if(rcData[PITCH]>1500+veS){
digitalWrite(vePIN1, LOW);
digitalWrite(vePIN2, LOW);
}
if(rcData[PITCH]<1500-veS){
digitalWrite(vePIN3, LOW);
digitalWrite(vePIN4, LOW);
};
if(rcData[ROLL]>1500+veS){
digitalWrite(vePIN2, LOW);
digitalWrite(vePIN3, LOW);
};
if(rcData[ROLL]<1500-veS){
digitalWrite(vePIN1, LOW);
digitalWrite(vePIN4, LOW);
};
}
if(veI>=veT*4){
digitalWrite(vePIN1, HIGH);
digitalWrite(vePIN2, HIGH);
digitalWrite(vePIN3, HIGH);
digitalWrite(vePIN4, HIGH);
veI=0;
}
}
////// veLED
в функции void setup() в конце ткнул veLEDsetup();
в основной void loop() в конце ткнул veLED();
задействовал 9, 10, 11, 12 пины, ключём для светодиодных лент использовал драйвер L293 каждый канал под свой луч, очень удобно и компактно вышло всё на микрухе распаял, ни какой печатке делать непришлось 😃
Небольшое видео:
когда я начинал не было даже того что сейчас считается FAQ все было на английском. и платы разводили, травили сами.
Спасибо повеселили, вы в гетинаксе отверстия сверлили, после “травили сами” - ну и протчее))))))))))))
ЗЫ - вы хоть на возраст посмотрите, прежде чем дырки под ордена “сверлить” )))
может чтото такое уже написанно незнаю
Вот мой вариант, только делал на отдельной меге. rcopen.com/forum/f123/topic301781
Вот мой вариант, только делал на отдельной меге. rcopen.com/forum/f123/topic301781
Ага, почитал, похожий проектик 😃, интересные коменты, по поводу ухудшения удобства управления изза блымания, старался в своей сделать коэффициенты натройки мерцания и идея в том была чтоб во время моргания длительнасть потухшего светодиода была меньше чем в светящемся состоянии по отношению к скорости мерцания.
помогите, не пойму что с вием случилось 😦
вчера летал без проблем, сегодня собрал подвес для камеры думал завтра с камерой полетаю, но решил включить и проверить - вий не армится.
подключил к компу, гуи его видит, но показания датчиков нет, как ни крути коптер, ни одно показание датчиков не меняется
перепрошил вий, стал армиться, но при арме движки сами не стартуют на малом газу (motor_stop не включал), только стиком если дать газу начинают крутиться.
коптер покачал - движки просто крутятся равномерно, без реакции.
подключил гуи - так же графики всех датчиков просто прямые, калибровка ничего не меняет.
платка с ХК на атмега328
летал всего раз 15 - без проблем
а так хотелось пока выходные попробовать поснимать 😦
помогите, не пойму что с вием случилось 😦
вчера летал без проблем, сегодня собрал подвес для камеры думал завтра с камерой полетаю, но решил включить и проверить - вий не армится.
подключил к компу, гуи его видит, но показания датчиков нет, как ни крути коптер, ни одно показание датчиков не меняется
перепрошил вий, стал армиться, но при арме движки сами не стартуют на малом газу (motor_stop не включал), только стиком если дать газу - начинают крутится.
коптер покачал - движки просто крутятся равномерно, без реакции.
подключил гуи - так же графики всех датчиков просто прямые, калибровка ничего не меняет.
платка с ХК на атмега328а так хотелось пока выходные попробовать поснимать 😦
ошибки по i2c шине идут? похоже на то что сгорела lcc микруха, увы но это лечится только заменой. Как вариант может быть программый глюк, почистите eeprom пару раз и залейте прошивку, если не оживет значит скорее всего труба.
к i2c у меня ничего не подключено, как проверить то ошибки?
ни в гуи ни в arduino 1.0.1 не вижу функции почистить еепром
2 omegapraim
Наверно QFP все-таки. А то я озадачился поископ LCC на картинке этой платки.
2 -flank
Похоже на ее конец или почти конец…
i2c проверь показания в проге вии конф.
При записи среда ардуина создает hex во временных файлах. Найди его и потом считай какой-либо программой прошивальщиком и сравни записанное и считанное.
2 omegapraim
Наверно QFP все-таки. А то я озадачился поископ LCC на картинке этой платки.
2 -flank
Похоже на ее конец или почти конец…
i2c проверь показания в проге вии конф.
При записи среда ардуина создает hex во временных файлах. Найди его и потом считай какой-либо программой прошивальщиком и сравни записанное и считанное.
как вариант, если померла она то дело поправимое. И на всякий случай уточню, у вас все датчики сидят на I2C шине все которые есть на плате, а выход просто для подключения дополнительных.
По поводу LCC, уже этих плат столько модификаций…
На сколько помню ардуина вроде бы чистит еепром каждый раз? Для наглядности я бы лучше погонял hex другим прошивальщиком, поглядел на содержимое флеша и еепрома, взять хотябы avrdude из самой среды ардуины.
i2c проверь показания в проге вии конф
i2c error счетчик бежит
глянул платку, 2 микросхемы то понятно, атмега и фтди, а qfp что за зверь тут? по маркировке на микросхемах не понятно
спасибо
если бежит счетчик это сбои на шине значение должно быть ноль, так что пробуйте чистить еепром, и заново собрать прошивку, и перезалить ее в ардуинку. Ну или как вариант какойто из датчиков того…
Кажись больше похоже, что сама мега, либо ее порт.
Дмитрий, кстати как себя будут вести показания, если один из датчиков кердык? i2c думаю не вся должна отъехать, а конкретно адрес одного из датчиков обрабатываться не будет
2 -flank, попробуй еще поиграться с конфигом вии. Поочередно раскомментировать и комментировать датчики (см. на плате другие микрухи).
QFP и LCC это тип корпусов микросхем.
LLC это level logic converter извините описался, но его там вообще нет, вести себя могут по разному, от простой не работы до того что вся шина повиснет. А вот по поводу конфига правильная мысль начните с гирика.
для начала я не могу разобраться как тут eeprom чистить, неужели для avrов нет нормального gui для программирования? под usb программатор нашел, а под com чета не соображу, на avrdude смотрю как на баран на новые ворота
Александр, конкретно тыкни сцылку, какой у тебя контроллер. Чтобы увидеть, что у него на борту. Ну и тут юзать ICSP или FTDI и соответственно прошивальщик/программатор подобрать.
Для очистки еепром можешь заюзать пример из ардуины и во все ячейки записать нули.
я уже нашел, спасибо 😃
платка вот такая hobbyking.com/…/__27033__MultiWii_328P_Flight_Cont…
очистил еепром - без изменений 😦
снял платку, осмотрел все - видимых повреждений нет
Попробуй изменить конфиг, чтобы оставить гиру ITG3205.
ща платку спиртом протру, на всякий случай, а то в последний полет снег задуло
т.е. все убрать и оставить только эту гиру?
Да, и при внимательном рассмотрении на плате LLC присутствует, 8 ногий элемент около порта для сателита (белый трехконтактный.)