Activity
Всех приветствую) Приобрёл себе Jumper T-Pro ELRS, столкнулся со странной траблой: Настроил модель, забиндил с приёмником FrSky XM Plus, подключил квадрик к Betaflight, открыл вкладку Receiver, и первые четыре канала вообще никак не реагируют (roll, pitch, yaw, throttle). Т.е. если на пульте настроить на остальные каналы любой стик - реакция видна в Бэтафлайте, только ставлю на любой из первых четырёх каналов - вообще ничего.
И самое главное - с приёмником всё ОК. До этого летал со старой доброй turnigy 9x с модулем FrSky - всё отлично.
Может перепрошить пульт? Прилагаю скрины с версией и настройкой радио. Может, есть у кого идеи, в чём может быть причина?
i.postimg.cc/…/839-A2140-9-C46-44-A7-B9-D5-B076736…
i.postimg.cc/…/9-A412-A83-3-D85-495-A-96-E4-82-D39…
Если кому-то нужно вот ссылочка с описанием, как это сделать
Всё супер ) Залил в ардуину HEX, перепрошил XM plus на предыдущую версию и всё заработало. Спасибо ещё раз ))
Спасиб, попробую, отпишусь по результату 😄
Неа ( У меня Тараниса нету… Юзаю Турнигу 9X
Класс, как раз то, что мне и надо
самодельный адаптер из ардуино нано
а можно хоть одну ссылку на мануал как сделать такой адаптер? 😃 Гуглил - ничего толкового не смог найти ((
Та же проблема - не биндится Frsky XM+ (который с новой прошивкой). Может кто-то “ткнуть” в инструкцию, как при помощи обычного USB<–>TTL прошить его старой версией? Заранее благодарю )
Вмем привет. Купил второй приёмник FrSky XM plus. Пробую биндить - не получается. В поддержке посоветовали перепрошить его под предыдущую прошивку (которая совместима с моим передатчиком). Кто может помоч с этим (за бутылку или чето-то ещё 😄 ) Ну или дать инструкцию… PS пробовал по этой инструкции, через FTDI переходник - не получилось (Прошил наконец xm+)
В идеале, если кто сможет, я бы подъехал 😃
ok, спасибо, заказал.
Да, спасибо, скачал с гитхаба (github.com/4712/BLHeliSuite), все мануалы присутствуют )
PS Попробую на нём полетать, но на данынй момент удобнее и стабильнее DJI Naza V2 Light ничего не находил.
Прошил я свой racerstar shot30a esc 30a 4 in 1 через arduino nano, всё отлично заработало! Косяк был с включённой опцией “low rpm power protect”. С ней при старте мотора подаётся четверть напряжения и мотор с массивным пропом просто не в сотсоянии раскрутиться нормально чтоб регуль переключился на нормальное напряжение.
Единственная загадка для меня, ну вот как я смог прошить регуль по протоколу С2 используя только ground и data line (C2 Data). Там же ведь ещё провод тактирования должен быть (C2 clock)… И по инструкции из архива blheli suite его надо подключать. В общем каки-то загадочным образом для меня это всё работет ))
Ну только не V3, а F3.
Вообще говоря, вам нужен не какой-то конкретный, а любой контроллер, на который встанет Betaflight или Inav.Я нашел F3 за 825 рублей, но их нет в наличии, что и неудивительно, т.к. они устаревшие.
Тогда могу порекомендовать актуальный контроллер F4, у меня с ним как раз BLHeli Suite пашет отлично, да и летать на нем можно без проблем.
С доставкой обойдется в 1000 рублей или меньше.
xt-xinte.com/JMT-F4-V3-Betaflight-Flight-Controlle…
ok, спасибо, заказал.
В самом BLHeliSuite есть описания разных возможных программаторов, включая распиновку.
Там же есть таб “make interfaces” из которого можно залить прошивку в ардуину.
Да, спасибо, скачал с гитхаба (github.com/4712/BLHeliSuite), все мануалы присутствуют )
PS Попробую на нём полетать, но на данынй момент удобнее и стабильнее DJI Naza V2 Light ничего не находил.
Вот тут не подскажу, я ардуиной уже очень давно шил регули. Лучше посмотреть на Ютубе или в инструкции к БЛХелиСюит на ГитХабе.
Ок, спасибо!
Ну и так, чисто ради интереса: так как от регуля к “программатору” у нас идёт минус, плюс и сигнал, то двусторонняя свясь в данном случае реализуется протоколом, похожим на 1-Wire через сигральный провод?
Либо через полетный контроллер с прошивкой BF, либо через Ардуино.
BLHeli конфигуратор заливает в ардуино скетч и она становится программатором.
Тоесть покупаю ардуинку типа этой
ru.aliexpress.com/item/…/32263477572.html
Заливаю в неё прошивку, она становится “программатором”.
Понял, спасибо огромное.
PS А не скинете ссылочку, на какие пины ардуины кидать регулятор?
а какой у вас полетный контроллер?
да он едва 10 стоит так-то.
а моторы какие?
Сообщение от romeo84
для прошивки нужна плата omnibus f3
а какой у вас полетный контроллер?
Сообщение от romeo84
почти 30 баксов
да он едва 10 стоит так-то.
Сообщение от romeo84
Поставил 15 пропы - при арминге моторы крутятся, даю газу чтоб взлтеть - эффекта ноль
а моторы какие?
Полетный контроллер
Naza light V2
Моторы
T-Motor MN3110 470KV
По поводу Omnibus v3 - где Вы за 10 баксав нашли его? )) Я только за 2к:
ru.banggood.com/Original-Airbot-Omnibus-F3-V2-Flig…
А вообще, в двух словах, по поводу настройки ESC на прошивках BlHeli:
Я, так понимаю, конкретно в модели racerstar shot30a esc 30a настройка через передатчик отключена и есть два варианта: либо подпаиваться непосредственно к площадкам для ISP-подключения, либо через сигнальный провод ESC (по которому в обычном режиме идёт ШИМ-сигнал) посредством платы программатора, которым в данном случае выступает Omnibus… я правильно понимаю?
Плиз, объясните кто-нибудь в двух словах, как проще его настроить через BlHeli suite? Меня интересует, чем физически его к ноуту подключить?
PS Попробовал подключить другой мотор, вот такой
hobbyking.com/…/4108-480kv-turnigy-multistar-22-po…
И всё заработало без косяков! )) Значит сто пудов проблема в настройке регуля.
Вопрос остаётся один - как в моём случае с меньшими затратами подключить acerstar shot30a esc 30a 4 in 1 к ноуту и настроить тайминги? Заранее благодарю.
Всем привет.
Подскажите, может кто знает:
Купил racerstar shot30a esc 30a (ru.banggood.com/Racerstar-Shot30A-ESC-30A-30amp-3-…), собрал квадрик, откалибровал полный газ на esc, вроде всё ок, летает (на назе лайт v2) с 12 пропами. Поставил 15 пропы - при арминге моторы крутятся, даю газу чтоб взлтеть - эффекта ноль. Стал разбираться, понял, что пока мотор не раскрутится до каких-то минимальных оборотов при минимальном токе, “нормальный” ток контроллер не даёт.
Было такое у кого?..
Думаю, дело 99.99% в настройке ESC. В инструкции глянул, что для прошивки нужна плата omnibus f3. Ради перепрошивки влом тратить почти 30 баксов, из чего рождается ещё вопрос: Можно чем-то прошить обычную ардуинку, подключить её к racestar’у и настроить его? Если да, то киньте плз ссылочку на мануал.
Заранее спасибо.
RSSI слегка придуряется (плавает), но в приемлемых пределах.
Приемыш Frsky TFR 8SB - RSSI зацеплен напрямую, без конвертера.
Питание -работает. Ну чуть отличается (сотые)
Т.е. меня вообще все устраивает.
Режимы работы цеплять не собирался.
А ссылку можно на сборку? Что-то не могу в поисковике найти.
Роман, а не затруднит ли Вас поделится произведением искусства? (прошивкой)
Я сейчас затестирую сборку “alezz”-а
Ну мож Ваша будет тож интересна. Только напругу хочу просто подавать как есть
Да не вопрос. Пробуйте ))
Дополнительно, что я сделал:
RSSI.
Работает только с галкой Raw в настройках AdruCam OSD и дополнительно немного сглаживается, т.к. rssi штука такая, которая очень волатильна.
Вольтаж.
Тут все сложнее. Я замутил дополнительный модуль на Arduino Mini. Данные с S.Porta датчика напряженя FrSky FLVSS поступают через инвертор логических уровней на последовательный порт ардуины. Она их декодирует и попеременно, с интервалом в 2 секунды отправляет напряжение каждой банки в Micro Minim OSD. Поступает как PWM сигнал, аналогичный как для серв - 1000 микросекунд - 0 вольт, 2000 мкс - 5 вольт (взял с запасом, но ясно дело банка lipo больше 4.2 вольт вряд ли будет). Долго мучился, чтоб так извратиться )))
И да, пин под вольтаж напрямую использовать не получилось - не передётся нормально PWM через резисторы, которые связывают пин с atmego-й. Подпиваться пришлось к обратной стороне платы между первым и вторым резистором - как раз напрямую к дорожке, ведущей к ноге атмеги. Оказалось совсем несложно ))
Вот ссылка на hex файл прошивки
cloud.mail.ru/public/3qW1/E9ujVmQVJ
PS Что за сборка от alezz? Как ощущения?
Немного не в тему. Это Minim OSD. Вот ссылки как её паять
code.google.com/p/minnazaosd/wiki/SolderGPS
www.google.ru/search?q=naza+minimosd&newwindow=1&e…
Благодарю! Это были наводки от силовых проводов. Перенёс плату вперёд, стал висеть хорошо в безветренную погоду. Но, даже при небольшом ветре, сильно раскачивается из стороны в сторону, сильно ускоряется, чуть ли не опрокидывается. Думаю, надо крутить настройки в GUI. Иногда срывается в сторону (лечится выключением-включением). Как по мне - сырой софт ещё. С назой v2 в сравнение не идёт - та у меня как вкопанная даже в ветер. PS Вот заснял видео в полный штиль
Всех приветствую. Может кто сталкивался с проблемой:
Имеется квадрик 450 с Flip32 и GPS-кой Ublox N8M, батарея 4S, двигло 600 KV, пропы 12x4, дефолтные настройки CleanFlight.
Как только включаю режим GoToHome (одновременно с Horizont и Mag), коптер либо наклоняется резко и хаотично в сторону и улетает, набирая огромную скорость, после чего отключаю ГоТуХоум и веду его руками обратно, либо, иногда, бывает сначала резкие конвульсии из стороны в сторону (при завышенных PosR) и потом тоже самое.
Режим Position Hold тоже не работает. Коптер тупо уносит в хаотичную сторону.
Проверял и пробовал многое: Менять GPS, перезаливать на BaseFlight, смотрел координаты GPS с ноута - все ровно, все данные есть, 12 спутников минимум, 3D fix всегда есть. Весь день летал, менял настройки - ничего. В итоге чуть не стукнул по нему… еле сдержался ))
Завтра попробую вынести плату Flip32 вперёд к GPSке - вдруг наводки… хотя чушь это… магнетометр работает ровно.
Какие ещё танцы с бубном надо сделать? Чтож такое может быть, что коптер уносит резко в сторону?
Где-то видел следующую идею балансировки: на коптере с Multiwii заливаем спец. прошивку и оставляем подключенным один мотор с винтом. На компе в спец. доработанном GUI (где есть спектральный анализ и чего-то ещё) в момент работы двигла смотрим графики и опытным путём изолентой на винт минимизируем вибрации.
Никак не могу найти эту спец. версию Multiwii. Подкиньте ссылочек, кто в курсе.
PS пробую сделать так стандартной версией Multiwii 2.3 - ничё толкового не выходит - без спектрального анализа вибрации сильные, куб я ни вешал изоленту ((
Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.
Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,
Блин, надо что-то с этим делать. Вся вкусность левел-мода в том, чтобы после нереальных флипов выровнять коптер, если зарулишься.
- Валяется Наза-М Лайт, попробую её впихать вместо мультивии и на ней такое сотворить, интересно, как она себя поведёт.
Ну а что касается мультивия:
2. Попробую отключить лоу-пасс фильтр на 10 герц на гиро (#define MPU6050_LPF_10HZ).
- Попробую пошаманить с настройками комплиментарного фильтра
// **************************************************
// Simplified IMU based on "Complementary Filter"
// Inspired by
//
// adapted by ziss_dm :
//
// The following ideas was used in this project:
// 1) Rotation matrix:
// 2) Small-angle approximation:
// 3) C. Hastings approximation for atan2()
// 4) Optimization tricks:
//
// Currently Magnetometer uses separate CF which is used only
// for heading approximation.
//
// **************************************************
//****** advanced users settings *******************
/* Set the Low Pass Filter factor for ACC
Increasing this value would reduce ACC noise (visible in GUI), but would increase ACC lag time
Comment this if you do not want filter at all.
unit = n power of 2 */
// this one is also used for ALT HOLD calculation, should not be changed
#ifndef ACC_LPF_FACTOR
#define ACC_LPF_FACTOR 4 // that means a LPF of 16
#endif
/* Set the Gyro Weight for Gyro/Acc complementary filter
Increasing this value would reduce and delay Acc influence on the output of the filter*/
#ifndef GYR_CMPF_FACTOR
#define GYR_CMPF_FACTOR 600
#endif
Что думаете?
Неужели никто до сих пор не решил данную проблему… грош цена тогда такому режиму стабилизации. Очень обидно будет, если это проблема железа и софтово его не поправить.
Не думаю, что это сильно зависит от дешевости вашего датчика. Думаю, что это ошибка в расчетах Мультивия (или наоборот дешевость или погрешность гироскопа). При резких движениях сигнал датчика акселерометра не может быть использован как сигнал горизонта, поэтому положение в пространстве рассчитывается по гироскопам. По возвращению “в горизонт”, Ваш коптер имеет некую ошибку (скорее всего по оси вращения), и, пока горизонт не будет перерасчитан по акселю - будут использоваться значения горизонта, рассчитанные по гироскопу.
Грубо говоря, Ваш коптер перевернулся на 360 градусов, а по расчетам Мультивия, всего на 340. При неполных вращениях этого не заметно, т.к. погрешность компенсируется обратным ходом,
Да, дело всего скорее в прошивке. Использую MultiWii_2_2. Попробовал сделать два переворота одновременно, в итоге после перевода в режим удержания горизонта коптер скривило так, что не смог удержать => воткнул в дерево. (оффтоп - как его теперь от туда достать… высокая сосна, самый верх:)) )
Пользую CRIUS MultiWii Standard Edition Flight Controller MWC SE v2.5
вот такой (goodluckbuy.com/crius-multiwii-standard-edition-fl…)
Работет отлично на квадрике. Появилась одна проблема. После переворота в акро-режиме резко включаю режим стабилизации горизонта, после чего коптер 10-15 секунд не может нормально стабилизироваться: упорно держит небольшой угол, причём чем резче был переворот, тем больше угол и дольше он “приходит в себя”. Что это может быть? На двух коптерах с разными платами стабильно такое замечал. Я думаю, это дешёвенький акселометр сходит с ума после резких телодвижений. Было такое у кого-нибудь?
По поводу вибраций - согласен. Они большие. Но долбанный дешевый ZYX S 3 AXES GYRO работает на ура. Был бы там ещё левел мод и го ту хоум, я бы и не парился.
Там, думаю, алгоритм оптимизирован под огромные вибрации (а я как-то летал с гнутым валом, верт трясло как лихорадочного… и летал ведь отлично!). Можно ж и с multiwii поколдовать, чтоб адекватно летал. Если кто-то уже это сделал, буду благодарен ))
Просьба, если кто-нибудь настраивал crius multiwii se v2.5 на 600 trex, выложите Вашу прошивку и скрин с настройками ПИДов. Мучаюсь уже который месяц, пробую на последней прошивке адаптировать пиды под верт - ооочень плохо выходит. Вертушка либо постоянно заваливается с малыми пидами, либо начинает ассцилировать и раскачиваться, причём после резкого манёвра. особенно стрёмно на высоте. Уже незнаю что и делать.
Хотя до этого стояла флайбарлесс ZYX S 3 AXES GYRO и всё было гуд. Но хочется всётки мультивии, чтоб автолевел и goToHome было… мечта ))
аукс 3 и 4 можно оформить вместо стабилизации подвеса камеры. На crius multiwii 2.5 (atmega 328p) получалось.
На 328 меге доступны только 2 аукса, 4 доступно при подключении через ppm-sum.
Я уже немного подзабыл что для чего, но кажется здесь надо активировать в config.h.
Все 4 аукса можно сделать рабочими! Я же всё разжевал, как сделать 😃
rcopen.com/forum/f123/topic221574/9794
Приветствую всех! Очень хочется попробовать антенну клевер под 1.2. Ввиду того, что “ювелир” из меня никакой, прошу помощи. Кто сможет сделать парочку под комплект BEV 1.3G 1500mW (www.bevrc.com/bev-13g-1500mw_p82.html)? Естессно не за просто так ))
чёт я не догнал, висим значит нормально? отклоняем стик - поворачивается, отпустили должен остановится, если продолжает поворачиваться в ту же сторону, пропорции маловато, если в обратную - много, так же если очень мягкий демпфер, то вибрации превращаются в “круговые” колебания, т.е. сводят гиру с ума (и тут может быть такая бяка - “нулевая точка” гиры может быть смещена) , тогда вполне может быть всё что угодно… далее на полу, вы крутите аппарат- он пытается исправить положение и не может, по сей причине и стоит в таком положении, чуть дёрнуть стик и это сбросится (это на полу - в полёте так не будет) подумываю о верте тоже, но больше 450-го страшно, а в 450 и меньший моя плата не встанет 😦
Я имел ввиду: отклоняем стик руддера в любую сторону и верт начинает закручивать в сторону, противоположную вращению основного ротора.
Всё таки нашёл в описании нововведений прошивки 2.3 тему из-за чего мой верт раскручивался:
***Control mode***
- yaw PID principle is now different from PITCH&ROLL PID:
- yaw ITerm is canceled if the yaw stick is not centered <<-- вот нафига, спрашивается, такой замут нужен
Теперь буду искать в коде, как убрать эту “yaw ITerm is canceled if the yaw stick is not centered”…
А по поводу 450 вертолёта - я на таком примерял плату www.rctimer.com/product_761.html - если на её двойным скотчем налепить на приёмник (у меня турнига 9x), а его влепить на место гироскопа, то всё помещается на ура )
omegapraim, про gyro smooth спасибо - классная штука. На выходных попробую активировать.
А по оси Z всё в норме - я вроде как не совсем чайник 😁 Ситуация такая - как только отклоняю стик оси Z - тут же верт начинает закручивать и мне приходится парировать отклонением стика руддера влево для стабилизации.
SergDoc, дифференциальная составляющая у меня и так была отключена… Я проверил в статике: на полу покрутил верт немного по оси Z (сразу увидел реакцию шага хвостового винта - установился на полную), теперь чуть-чуть двинул стик руддера и шаг резко сбросился в начальное состояние. Буду шарить в коде где идёт этот сбос…
как раз плату чем более жестко тем лучше. убирать желательно нужно источник вибраций а не их последствия
Как ни странно - но доп. слои двойного скотча помогли - на выходных попробовал настроить ПИДы для акро режима - и ура )) летает замечательно, ничем ни хуже контроллера ZYX S 3 AXES GYRO. Одно НО - если стик руддера не трогать, все ОК, хвост как вкопанный держится. Стоит только сдвинуть стик немного в любую сторону, как хвост резко уводит противоположно вращению осн. ротора. Такое ощущение, что обнуляется интегральная составляющая. Если кто побеждал такое - отпишитесь плз.
- Убирайте вибрации, либо демпфируйте систему, в вертолете вибрации на раму сильнее чем в квадрике.
- Чтобы отклик был сильнее в гуи есть строка с цифирями называется RATE (расходы) вот ее покрутите. 2я кривая это кривая газа ее вам лучше не трогать…
1 - плату поставил на 5 слоев двойного скотча. Вибраций почти нет (конечно с квадриком в любом случае не сравнится).
2 - в гуи rate сразу то и не заметил, просто никогда не было нужды за полтора года )). В итоге зашкалил на двойку - помогло, но все равно управление далеко от идеала. Буду пробовать Gyro filters…
Пробовал прошивку 2.3 с платой crius multiwii se на 600 вертолёте - у меня летает не очень. Пришлось сильно уменьшать стандартные PIDы, особенно пропорциональную составляющую, после чего отклик на движения стика roll pitch стал ну оооочень маленький, т.е. беру roll до упора в сторону, верт еле-еле отклоняется. Где можно в коде исправить это?
Стал пробовать режим удержания горизонта - так и не получилось. Верт сначала сильно раскачался, потом воткнулся в землю, выровнять стиками не успел ((
Итак, если кому надо,
добавляем каналы AUX2, AUX3, AUX4 в прошивку MultiWii 2.3, Плата Crius multiwii se
- Раскомментить в config.h (строка 388)
#define RCAUXPIN8
#define RCAUXPIN12
так как иначе эти пины настроятся будут работать не на вход, а на выход на всякие там BUZZERы и т.д.
- В RX.cpp разрешаем прерывания от нужных нам пинов
/************* atmega328P's Specific Aux2 Pin Setup *********************/
#if defined(PROMINI)
#if defined(RCAUXPIN)
PCICR |= (1 << 0) ; // PCINT activated also for PINS [D8-D13] on port B
#if defined(RCAUXPIN8)
PCMSK0 = (1 << 0); PCMSK0 |= (1 << 3); PCMSK0 |= (1 << 4);
#endif
#if defined(RCAUXPIN12)
#endif
#endif
#endif
- В RX.cpp настраиваем обработку прерываний от этих же пинов и формируем значения в ауксах от приёмника
/********************* atmega328P's Aux2 Pins *************************/
#if defined(PROMINI)
#if defined(RCAUXPIN)
/* this ISR is a simplification of the previous one for PROMINI on port D
it's simplier because we know the interruption deals only with one PIN:
bit 0 of PORT B, ie Arduino PIN 8
or bit 4 of PORTB, ie Arduino PIN 12
=> no need to check which PIN has changed */
ISR(PCINT0_vect) {
uint8_t pin;
uint16_t cTime,dTime;
static uint16_t edgeTime;
static uint16_t edgeTimeAux[4]; // 0 не используется, 1 для aux2, 2 для aux3, 3 - резерв
static uint8_t auxIntLast; // сохранённое состояние битов порта B после предыдущего прерывания
uint8_t auxMask; // маска для определения изменённого входа порта B
pin = PINB;
auxMask = pin ^ auxIntLast; // doing a ^ between the current interruption and the last one indicates wich pin changed
cTime = micros();
sei();
auxIntLast = pin; // we memorize the current state of all PINs [B0-B7]
if (auxMask & 1<<0) { // если меняется бит 0 порта B (выход D08 на плате), то формируем aux2
if (!(pin & 1<<0)) { //indicates if the bit 4 of the arduino port [B0-B7] is not at a high state (so that we match here only descending PPM pulse)
dTime = cTime-edgeTimeAux[1]; if (900<dTime && dTime<2200) rcValue[0] = dTime; // just a verification: the value must be in the range [1000;2000] + some margin
} else edgeTimeAux[1] = cTime; // if the bit 2 is at a high state (ascending PPM pulse), we memorize the time
}
if (auxMask & 1<<4) { // если меняется бит 4 порта B (выход D12 на плате), то формируем aux3
if (!(pin & 1<<4)) { //indicates if the bit 4 of the arduino port [B0-B7] is not at a high state (so that we match here only descending PPM pulse)
dTime = cTime-edgeTimeAux[2]; if (900<dTime && dTime<2200) rcValue[1] = dTime; // just a verification: the value must be in the range [1000;2000] + some margin
} else edgeTimeAux[2] = cTime; // if the bit 2 is at a high state (ascending PPM pulse), we memorize the time
}
if (auxMask & 1<<3) { // если меняется бит 3 порта B (выход D11 на плате), то формируем aux4
if (!(pin & 1<<3)) { //indicates if the bit 4 of the arduino port [B0-B7] is not at a high state (so that we match here only descending PPM pulse)
dTime = cTime-edgeTimeAux[2]; if (900<dTime && dTime<2200) rcValue[3] = dTime; // just a verification: the value must be in the range [1000;2000] + some margin
} else edgeTimeAux[2] = cTime; // if the bit 2 is at a high state (ascending PPM pulse), we memorize the time
}
}
#endif
#endif
Работает замечательно. Единственное, если выдернуть из платы провода всех ауксов, то вновь добавленные принимают хаотичные значения (то есть все, кроме aux1). Видать, где-то надо добавить дефолтное значение, если сигнала на пин не поступает. Где это делается - искать уже оочень в лом.
Вот итоги 3-х часового мучения и поиска багов в собственном коде… Подскажите, кто как отлаживает код? …перепрошивать девайс по 10 раз для того, чтобы фиг знает как угадать, что не ту переменную подставил это анреал мучения ))
хех… кто тебе такое сказал? 😛
я уже делал подобное, жертвуеш ненужной сейчас ногой, небольшая добавка кода - и вуаля все 4 аукса
кстати тут же если сделать одну мааааленькую правку - уже получаем работающий аукс 3
Благодарю. Сейчас попробую реализовать… Отпишусь как получится. Ведь явно не хватает двух ауксов…
PS Блин, как же тяжело без отладки что-либо делать ((
Спасибо!
вы вообще полезли в абсолютно левые дебри…
вот чтение собственно сигналов:#if defined(STANDARD_RX) #if defined(FAILSAFE) && !defined(PROMICRO) // predefined PC pin block (thanks to lianj) - Version with failsafe #define RX_PIN_CHECK(pin_pos, rc_value_pos) \ if (mask & PCInt_RX_Pins[pin_pos]) { \ if (!(pin & PCInt_RX_Pins[pin_pos])) { \ dTime = cTime-edgeTime[pin_pos]; \ if (900<dTime && dTime<2200) { \ rcValue[rc_value_pos] = dTime; \ if((rc_value_pos==THROTTLEPIN || rc_value_pos==YAWPIN || \ rc_value_pos==PITCHPIN || rc_value_pos==ROLLPIN) \ && dTime>FAILSAFE_DETECT_TRESHOLD) \ GoodPulses |= (1<<rc_value_pos); \ } \ }а в функции void computeRC() получаем готовые значения в массив rcData[chan]
или же у вас OpenLRS плата?
и вообще подробней объясните задачу (какой контроллер?, зачем и что нужно? и т.д. )
Плата Crius SE v 0 2, а зачем это нужно - хочу задействовать вход AUX3.
============
И ещё вопрос: скачал MultiWii 2.3, пытаюсь настроить вертолётный режим (HELI_120_CCPM) Так вот, никак не могу инвертировать серво… Подскажите плз, у кого получалось



