MultiWii на самолете
В плате I2C-GPS прошивку меняли? Если да, то что в конфиге там?
Евгений, я сам недавно с похожей проблемой боролся. Я в итоге скачал с сайта юблокса интерфейс для работы с жпс, подключил сам модуль к фтдай , и увидел что у жпс скорость порта 9600… А и в переходника и всамой мултивии в прошивках скорость115000. Так что либо у жпс менять скорость, либо в прошивакх
В том то и дело что на прошивке для коптера (стандарт 2.3) всё работает
С железом всё впорядке,всё коннектится,видит спутники и т.д.
I2C - GPS прошивал , всё делал как тут rcopen.com/forum/f123/topic221574/10629
Такое ощущение что тут сидят одни профи и полюдски ответить могут только еденицы.
Что делать с родной прошивкой ? Не хочу я шиться патриком,по непонятным причинам с аппой нет коннекта, так что будьте добры, возьмите кто нибудь drive.google.com/uc?export=download&id=0B8_pEI-_Sl… и поправте то что внесено в прошивке патрика,что бы не париться, в родной прошивке меня всё устраивает,как летает и прочее,ну раз вы утверждаите что при подсоидинении ЖПС к Вию начинаются чудеса,то помогите в исправлении кода, или выложите что в нём именно менять и где
? ? ?
После редактирования стандартной прошивки 2.3 получится как раз прошивка Патрика. Он то же на ее основе свой код делал. Лучше опишите проблему с подсоединением к приемнику.
Как идет сигнал с приемника PPM SUM или параллельное соединение ?
Здравствуйте, как настроить флапероны, что то не получается на пульте, в гуи пробовал тоже без успешно, что то не так делаю, подскажите пожалуйста.
Доброго времени суток всем. Стоит у меня сейчас прошивка Патрика, подключено по ППСУМу, все работает, но есть одно НО! - как настроить фэйлсейв, чтобы при пропадании сигналов включался RTH? (при отключении приемника выход ппсума отключается, мультивий видит это). В гуи этого не нашел, в прошивке - вроде искал… но тоже не увидел… Так что ткните носом, пожалуйста, куда копать.
Приемник какой?
Приемник турнига 9Х8С2 v2, к нему на ардуинке прилеплен ппсум (в мультивие задействовал три аукса, один на арм\дизарм, остальные на выбор режимов). Также собрана простая схемка(после ппсума), отключающая выход ппсума при исчезновении сигнала на 2-м выходе приемника (для отработки фэйлсэйфа).
В сём привет. Подскажите где в прошивке настраивается угол отклонения по pitch и roll для летательного аппарата.
собрана простая схемка(после ппсума), отключающая выход ппсума при исчезновении сигнала
Зачем? Поставьте на фэйлсейф переключение режима на возврат домой и дело в шляпе.
В сём привет. Подскажите где в прошивке настраивается угол отклонения по pitch и roll для летательного аппарата.
Угол отклонения чего от чего и в каких режимах? Сформулируйте вопрос нормально…
Зачем? Поставьте на фэйлсейф переключение режима на возврат домой и дело в шляпе.
В том-то и дело, что у меня ппсум без фэйлсефа настраиваемого… При пропадании каналов он тупо выдает последние значения. А мне нужно как-то дернуть AUX для RTH . В ГУИ этого я не нашел, вот и не могу додуматься, как сделать. При добавлении той схемки, отключающей ппсум, у меня хоть сам мультивий становится в фэйлсэйф и через пару секунд сбрасывает газ до нуля. Может, где-то в коде это можно привязать к возврату домой, но я не настолько силен в понимании этого кода, чтобы не напортачить… 😦 Может, я Вас не совсем понял, тогда объясните, пожалуйста, по шагам, что и куда.
Написал небольшое дополнение для тех у кого при пропадании сигнала приемник остается в последнем состоянии на момент пропадания сигнала. Работает и по PPM_SUM и PWM.
MultiWii.cpp
было
int16_t rcData[RC_CHANS]; // interval [1000;2000]
int16_t rcSerial[8]; // interval [1000;2000] - is rcData coming from MSP
int16_t rcCommand[4]; // interval [1000;2000] for THROTTLE and [-500;+500] for ROLL/PITCH/YAW
uint8_t rcSerialCount = 0; // a counter to select legacy RX when there is no more MSP rc serial data
int16_t lookupPitchRollRC[5];// lookup table for expo & RC rate PITCH+ROLL
int16_t lookupThrottleRC[11];// lookup table for expo & mid THROTTLE
добавить
int16_t rcData[RC_CHANS]; // interval [1000;2000]
int16_t rcSerial[8]; // interval [1000;2000] - is rcData coming from MSP
int16_t rcCommand[4]; // interval [1000;2000] for THROTTLE and [-500;+500] for ROLL/PITCH/YAW
uint8_t rcSerialCount = 0; // a counter to select legacy RX when there is no more MSP rc serial data
int16_t lookupPitchRollRC[5];// lookup table for expo & RC rate PITCH+ROLL
int16_t lookupThrottleRC[11];// lookup table for expo & mid THROTTLE#if defined(FAILSAFE_CHANEL_NO_CHARGE)
int16_t rcData_last[RC_CHANS]; // interval [1000;2000]
#endif
Это нужно вставить
#if defined(FAILSAFE_CHANEL_NO_CHARGE)
int rcData_temp = 0;
static int16_t rx_no_charge[8] = FAILSAFE_RX;for(i=0; i<RC_CHANS; i++)
{
rcData_temp = rcData_temp + (rcData_last[i]-rcData[i]) ;
rcData_last[i]=rcData[i];
}if (abs(rcData_temp) < FAILSAFE_NO_CHARGE_DEADBAND)
{
failsafeCnt_charge++;
}else{
failsafeCnt_charge = 0;
}if ( failsafeCnt_charge > (5*FAILSAFE_NO_CHARGE_DELAY))
{
for(i=0; i<RC_CHANS; i++) rcData[i] = rx_no_charge[i];
}
#endif
после родного FAILSAFE
#if defined(FAILSAFE)
if ( failsafeCnt > (5*FAILSAFE_DELAY) && f.ARMED) { // Stabilize, and set Throttle to specified level
for(i=0; i<3; i++) rcData[i] = MIDRC; // after specified guard time after RC signal is lost (in 0.1sec)
rcData[THROTTLE] = conf.failsafe_throttle;
if ((failsafeCnt > 5*(FAILSAFE_DELAY+FAILSAFE_OFF_DELAY)) && !f.FAILSAFE_RTH_ENABLE) { // Turn OFF motors after specified Time (in 0.1sec)
go_disarm(); // This will prevent the copter to automatically rearm if failsafe shuts it down and prevents
f.OK_TO_ARM = 0; // to restart accidentely by just reconnect to the tx - you will have to switch off first to rearm
}
failsafeEvents++;
}
if ( failsafeCnt > (5*FAILSAFE_DELAY) && !f.ARMED) { //Turn of "Ok To arm to prevent the motors from spinning after repowering the RX with low throttle and aux to arm
go_disarm(); // This will prevent the copter to automatically rearm if failsafe shuts it down and prevents
f.OK_TO_ARM = 0; // to restart accidentely by just reconnect to the tx - you will have to switch off first to rearm
}
failsafeCnt++;
#endif
config.h добавить в любое место
#define FAILSAFE_CHANEL_NO_CHARGE
#define FAILSAFE_NO_CHARGE_DELAY 50 // Guard time for failsafe activation after signal lost. 1 step = 0.1sec - 1sec in example
#define FAILSAFE_NO_CHARGE_DEADBAND 10
// #define FAILSAFE_RX {1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500}
#define FAILSAFE_RX {1500, 1500, 1500, 1300, 1500, 2000, 1000, 1000}
// ROLL PITCH YAW THR AUX1 AUX2 AUX3 AUX4
FAILSAFE_NO_CHARGE_DELAY время срабатывания файлсейфа 1 это 0,1 с .
FAILSAFE_NO_CHARGE_DEADBAND проверка на небольшое изменение сигнала .
Гена, приветствую. Попробовал скомпилировать, ругается на необъявленную переменную failsafeCnt_charge++ . Какой тип нужен для этого?
Да забыл написать . Сюда добавить
multiwii.cpp
int16_t failsafeEvents = 0;
volatile int16_t failsafeCnt = 0;
volatile int16_t failsafeCnt_charge = 0;
Спасибо, скомпилил, ошибок нет. Завтра залью в мультик и буду настраивать
Что-то не понимаю… Прошил с этими изменениями. Когда армлю, газ управляется с пульта, но через секунд 5-10 начинаются хаотичные включения возврата домой, газ сам увеличивается до максимума, потом сбрасывается до середины и опять в максимум… При ручке газа в ноль газ уменьшается до нуля, но тоже примерно через 5-10 сек самостоятельно включается на 50 процентов… Т.е. поведение, как будто бы выключился пульт и сработал фэйлсэйф, но мультивий “видит” сигналы с пульта… Может, что-то коряво вставил в коде?
Если нужны мои файлы мультивия с исправлениями, то я выложил их на my-files.ru/uga6jp . Может, я чего-то начудил с фэйлсэйфом…
Я кое что подправил . Позвони мне завтра
Вопрос. На руках две arduino pro mini , модули neo-6m и gy-87. Вопрос, по какой схеме собирать все вместе, дабы получить полный автопилот для самолета, нужен полет по точкам, возвращение домой при потере связи и прочие плюшки. Прошивать надо простым вием 2.4, или пойдет только прошивка Патрика?
Как выходной, так и дождь - так что я себе от нечего делать придумал мороку:
Втулил на тренер ардуину и 2 датчика, компас и акселерометр; спаял датчики как проще, друг над другом на общие “штырьки”, но из-за этой простоты плата компаса получилось повернутой на 90 и " вверх ногами" 😃
Не я то помнил что дефайн есть и можно переназначить оси, но дошло до дела и я в каком то затыке 😄
Ни у кого опыта не было такого? Ссылки которые нашёл по быстрому как то не очень помогают
Вообще говоря компас то не очень и нужен сейчас, емнип это для жпс важно, а для жпс места уже все равно нет, да и самолёт не тот, чтоб жпс нужен был… Так что буду испытывать без компаса - но просто из интереса уже интересно…
multiwiifaq.ts9.ru/3----------------------.html
внизу страницы. оси можно не только переназначать с + и -, но и менять их местами (предупреждаю, т.к. когда то долго с этим мучался, пока не дошло, что их тоже можно переназначать.
www.multiwii.com/wiki/index.php?title=Config.h#sen… - тут описано, как должны себя вести датчики при изминении положения платы
ну вот как вести я уже видел, дефайны тоже; но методом тыка практически меняя что-то получаю не совсем тот результат, какой должен быть согласно вики… ну та поборю
хз, вчера позапускал “тренер” с мультивием (практического смысла нет, вот просто приспичило… ну если настроить, то можно ребенку давать полетать) - в “пасстру” он какой-то тормозной, рули/элероны за стиком “вдогонку” двигаются, из-за чего получается хрень а не полет 😃
это 2.4… может что-то поменялось, надо попробовать будет пред. версии