ArduCopter Mega: порт на обычную Arduino (тестим)
Хм это он у тебя в стаб моде такой резвый, или в акро летал?
Хм это он у тебя в стаб моде такой резвый, или в акро летал?
Да в стабе.
А что в прошивке то наменял, что не у кого не летает, а у тебя так зачетно пархает 😃?
А что в прошивке то наменял, что не у кого не летает, а у тебя так зачетно пархает ?
ничего он не менял, человек скопировал оригинальный ардукоптер под свои размеры
Доброго времени суток!
прошивка 2.6r3
попробовал прикрутить эхолот:Ultrasonic Module HC-SR04 Distance Measuring
вопросы:
- К каким контактам подключать правильно? (D9,D10)?
- Какой тип датчика выбрать, ато показывает неправильно расстояние(такое ощущение, что в дюймах, хотя пишет в см…)
- Как можно проверить сонар (какой режим, Alt Hold) и как правильно настроить удержание по-высоте и при каких условиях он включается?
- При полёте постоянно приходится доруливать в одну сторону(и в акро и в стабе), чтобы не упал(доруливаю вправо), что крутить? (датчики откалиброваны, стоит при старте по-горизонтали)
кто нибудь летает с подвесом с сервами на 2.0.49?
какая то непонятная странность у меня (сервы аналоговые), при подключении через usb - сервы нормально работают, но слабо (0.5A всетаки у usb только), при подключении основного питания сервы тупо подрагиваются и не стабилизируют ничего в полете, при этом добавляя очень быструю и паразитную тряску
ничего он не менял
В оригинальном арду 2 меги, одна делает все то же что и у нас, а вторая лишь из PWM делает PPM_SUM, правильно? Вот интересно, не ужели PPM_SUM жрет столько ресурсов??? Я понимаю если бы одна мега работала только на обработку данных с датчиков чтоб не сбивался алгоритм на всяких других задачах, а другая все остальное…
а еще датчики подключены по шине SPI, если память не изменяет, а у нас через i2c всё
Хм… и в чем приемущество? Не думаю что SPI шина быстрей работает… Интересно какое время исполнения у них быстрого цикла?
Входы выходы на других пинах? Мне по идее PPM_SUM делать не надо, могу его сразу с приемника послать, плату датчиков то же повесить куда угодно, может попробовать оригинальную прошивку, раз на ней все так хорошо и радужно 😃
может попробовать оригинальную прошивку, раз на ней все так хорошо и радужно
только у нас нет ни логера, ни spi датчиков ни еще какой нибудь приблуды =)
я тут кстаии failsafe ночью начал вкорячивать, щас глянул на код и понял что он сработает только если приемник работает, а не если не работает ^_^ эх, зря до 3 ночи сидел
понять бы как часто read_radio() вызывается… сколько там по времени фаст луп идет?
ничего он не менял, человек скопировал оригинальный ардукоптер под свои размеры
Что менял, написал, в основном это обработка сигнала на моторы фильтры и тд!
Железо тоже, за исключением пары штук, просто давно с IDG работаю!
Я уже понял написал не в ту тему сорри!!
кто желает протестить FAILSAFE? =)
nekaka.com/d/AR9xFg3N9p
тестил только в GUI, если отключить приемник при заведенных моторах, то газ скидывается на 1300 (задается в APM_Config.h), остальные стики (roll/pitch/yaw) по центру, а так же принудительно STABILIZE включается (эта штука не работает с ppmsum (пока что))
в основной код пока не добавляю, т.к. без реальных тестов довольно опасно =)
для Sir Alex: в APM_RC.cpp добавил новую функцию
uint8_t APM_RC_Class::GetFailState(void)
{
failsafeCnt++;
if(failsafeCnt > 20) failsafeCnt = 20;
return(failsafeCnt);
}
в самом прерывании (чтобы обнулялся счетчик, если есть сигнал)
if (mask & 1<<0) { // If pulse present on THROTTLE pin, clear FailSafe counter - added by MIS fow multiwii (copy by SovGVD to megapirateNG)
failsafeCnt = 0;
}
ну и failsafeCnt туда же
в основном коде (radio.pde) дергается функция throttle_failsafe() в а в ней дергается GetFailState, который прибавляет счетчик ошибок, пороговое значение 15 быстрых циклов, если за это время счетчик так и не обнулился, то дергается измененная функция set_failsafe, которая дергает евенты + выставляется ch3_failsafe, который в radio.pde->read_radio() меняется принудительно первые 4 значения аппы (стики)
может чего упустил важного, но теоретически должно работать, у кого гарантированно работает RTL, то можно в events.pde->failsafe_on_event() вместо set_mode(STABILIZE); поставить set_mode(RTL); тогда при пропадания сигнала с аппы будет возврат домой (но хз как это соеденится с тем что значения стиков принудительно задаю)
я тут кстаии failsafe ночью начал вкорячивать, щас глянул на код и понял что он сработает только если приемник работает, а не если не работает ^_^ эх, зря до 3 ночи сидел
Я как то пытался по быстрому вкорячить FS, но как оказалось при потере связи не всегда пропадает сигнал на приемнике, причем все приемники ведут себя по разному - не понятно на что ориентироваться. И даже если приемник переходит в режим FS - выдавая постоянно последнее значение, из за способа обработки сигнала, значения немного прыгают - что детектируется как наличия нормального сигнала (т.е. надо вводить Deadband).
Кроме того, в APM - FS реализован на втором проце… по сути в основном коде ничего нет. Если что то и делать, то в самой APM_RC
Хм… и в чем приемущество? Не думаю что SPI шина быстрей работает… Интересно какое время исполнения у них быстрого цикла?
SPI как минимум в 2 раза быстрее.
С одной стороны Пират имеет лишнюю обработку в виде APM_RC библиотеки (обработка RC приемника), но с другой стороны, у нас нет логирования (ИМХО достаточно медленная операция). Так что по идее, то на то и выходит. Но Оригинал нормально летает, а у нас колбасня какая то. Эх, не хватает у меня времени во всем разобраться. Уже и оригинальный APM имеется… попробую тайминги сравнить.
Кстати, благодаря новому осцилу, нашел один баг в коде обработки датчиков. Все они опрашиваются по таймеру (scheduler), так вот, они вызывались все в момент срабатывания таймера и могли просто не успеть считать все значения до вызова следующего таймера. В новой версии будет вызываться только один драйвер за один вызов таймера.
как я понял FS бывает нескольких видов, то что в multiwii сделано (и то что вроде бы сегодня добавил в пирата) работает как минимум на народной аппе turnigy 9x, другие приемники могут выставлять определенные значения сигналов при потере (в ардукоптере на это рассчитано, судя по всему), а третьи просто замирают (вот тут уже хз как детектить, т.к. не ясно пилот не трегает стики или нет сигнала)
как я понял FS бывает нескольких видов, то что в multiwii сделано (и то что вроде бы сегодня добавил в пирата) работает как минимум на народной аппе turnigy 9x, другие приемники могут выставлять определенные значения сигналов при потере (в ардукоптере на это рассчитано, судя по всему), а третьи просто замирают (вот тут уже хз как детектить, т.к. не ясно пилот не трегает стики или нет сигнала)
Все верно, разные приемники ведут себя по разному. Кстати на пин ориентироваться нельзя, т.к. при разных схемах подключения (mwi, standart…) Throttle попадает на разный пин. Там в коде есть массив с маппингом канала на пин, с его помощью можно определить где собственно throttle находится.
Chester_kz, Версия доступна в SVN. Я жду когда отпишутся люди у которых GPS врал на километр (этот баг вроде поправлен).
Кстати на пин ориентироваться нельзя
да там вроде на всех стразу пропадает сигнал (хотяяяяааа, хз), в общем это первая проба, если заработает, то уже можно накручивать костыли, да и в самом дефайне (типа TX_mwi) можно прописать на какой пин ориентироваться
сейчас смотрю как trim_accel прикрутить, чтобы в поле в горизонт выставлять на земле (в общем мне понравились multiwii фишки с конфигурированием некоторых вещей на поле без ноутов)
да там вроде на всех стразу пропадает сигнал (хотяяяяааа, хз)
Вот именно! В моем Turnigy пропадали не все каналы, а первые 4! остальные какую то ботву начинали показывать…
сейчас смотрю как trim_accel прикрутить, чтобы в поле в горизонт выставлять на земле
Level в поле лехко сделать. Дизарминг держим секунд ~10 и включается LEVEL.
Держим арминг ~10 секунд - включается режим триммирования. Взлетаем и пытаемся удержать коптер на месте в течении 45 сек, потом садимся и дизарминг. Главное делать это в безветренную погоду, иначе будет непредсказуемый результат. (Эту же фичу можно повесить на 7й канал)
Главное делать это в безветренную погоду
в этом то и косяк, поэтому хочу чтобы можно было за земле оттримировать горизонт, в multiwii это спасало, например при дрейфе акселя
Вот именно! В моем Turnigy пропадали не все каналы, а первые 4!
ну значит огромными буквами надо написать ВНИМАНИЕ НА СВОЙ СТРАХ И РИСК ну и чего нибудь про ТЕСТИТЬ НА ЗЕМЛЕ БЕЗ ВИНТОВ
Пост 4855 подскажите что-нибудь?
вот видео полёта
Бедный коптер… ((( Как вы его мучаете.
Пропы какие? 10x45? Timing на регулях какой?
Можно попробовать залиить 2.0.49 и удостовериться что дело не в железе.
На этой прошивке я бы начал уменьшася Rate P. И экспоненты поставить на пульте.
А газом надо аккуратней самому работать.
Валы у моторов укоротить.
С вибрациями кстати как?
… и не юзать ACRO режим пока не научитесь летать (если опыта нет), я например боюсь включать
Кстати, по сравнению с 2.0.49, в 2.6 выключен Instant_PWM и по умолчанию стоит 490Hz PWM на моторы, может быть это то же влияет на воблинг и стабильность.
И еще, я посмотрел на конфиги некоторых людей с оригинальным APM, так вот они то же уменьшают Rate P до 0.09 (дефолт 0.180), так что возможно вообще с нашими платами проблем нет.
выключен Instant_PWM и по умолчанию стоит 490Hz PWM на моторы
как поправить? я через часок смогу протестить
Пропы какие? 10x45? Timing на регулях какой?
Пропы 10х47
Регули Плюшки 30А
тайминг 400
Rate P = 0.15
экспоненты поставить на пульте
Валы у моторов укоротить.
спасибо, попробуем вечерком… (про экспоненты, ткните носом как, если не сложно 😃 )
С вибрациями кстати как?
Да вроде нестрашно, всё никак не проверю, но вроде жутких не замечено, как определить что надо избавляться, какие допустимые показатели? (должно просто жужжать?)
как поправить? я через часок смогу протестить
В Планере в конфиге есть
В Планере в конфиге есть
ну я там и так 400мгц высталял и rateP менял - как дергался не пойми как, так и продолжил дергаться, только еще и управляться перестал =)