ArduCopter Mega: порт на обычную Arduino (тестим)
а когда будете новую прошивку 2,9 обрабатывать?
- У меня сегодня переезд на другую квартиру, и там не будет интернета недельку… да и времени не будет скорее всего
- Пока наверное нет смысла портировать, надо подождать пока не выйдет релиз. (ИМХО)
Как проверяли? Просто выключали питание передатчика?
Да, просто выключал, хотел проверить на остаточный сигнал по одному из каналов, но не успел, зарулился и жестко воткнул одним мотором в снег, он примерз и больше не вращался.
Если нету GPS (или нет 3D Fix’a) - просто сядет.
Тоже надо проверить, дома в планере не видно, включается Land или нет.
Не вкурил.
Тут даже не в мегапирате наверное дело.
Приемник Turnigy 8ch при потере сигнала на каналах 1,2,4 выдает последние полученные значения. На 3-м канале у меня приблуда от RCtimera, которая ставит канал 3 (газ) в 975 ms, включается файлсейф, и если на одном из этих каналов значения не в центре (перед пропажей сигнала мы например поворачивали по курсу или летели прямо ), то они будут подмешиваться в управление при возврате домой.
Короче: нормальный приемник с файлсейвом на всех каналах нужен.
Заказал себе FrSky.
Не вкурил… Собственно задача Failsafe вернуть домой коптер!
У меня приемник при пропадании сигнала с пульта продолжает выдавать последние полученные значения по каналам.
Возможна такая ситуация при которой Failsave срабатывает когда коптер на полном газу пилит от тебя. Как в этом случае отработает RTL если коптер получает от приемника сигнал лететь вперед? Ведь во время RTL коптером можно рулить с пульта.
На 3-м канале у меня приблуда от RCtimera
Опередил!
Я без приблуды тестил.
давайте по порядку
сейчас есть 2 версии FAILSAFE
- выдранная мной из Multiwii, работает с приемником от турниги, детектит пропажу сигнала (нет прерываний от приемника) и делает тоже что и ардукоптер(*)
- где то проскакивала версия с failsafe, который требует приблуду с rctimer и детектик падение сигнала на газу от 975 (кажется) и ниже, и делает затем тоже что и ардукоптер(*)
* ардукоптер при наличии GPS делает возврат домой при условии что не включен AUTO режим (где то в настройках можно задать что бы игнорировал AUTO)
* при отсутствии GPS, коптер делает LAND в месте потери сигнала
обычный турниговый приемник не зависает на старых значениях, насколько мне известно… попробуйте подключить наушники на разные канала и вырубить аппу, скорее всего не должно быть никакого звука
Возможна такая ситуация при которой Failsave срабатывает когда коптер на полном газу пилит от тебя
Вот оно самое, что имею в виду!
Нужно чтоб мегапират игнорировал данные от приемника по 1,2,4 каналу при failsafe. Это для турниг 8 ch. А вот хоббикинговский 6-ти канальный более умный. По 1,2,4 каналам, сигнал ровно в центр (1500 ms) ставит.
Вобщем конечно лучше нормальный применик с файлсейвом.
обычный турниговый приемник не зависает на старых значениях, насколько мне известно… попробуйте подключить наушники на разные канала и вырубить аппу, скорее всего не должно быть никакого звука
Смотрел через ARM-планер, в RadioCalibration. Значения зависают в последних полученных значениях. Или это неверный способ?
- выдранная мной из Multiwii, работает с приемником от турниги, детектит пропажу сигнала (нет прерываний от приемника) и делает тоже что и ардукоптер(*)
Вот эту версию я не нашел. Если же она в есть в 2.7R4 или 2.7R3 то оно не работает. Пробовали.
- где то проскакивала версия с failsafe, который требует приблуду с rctimer и детектик падение сигнала на газу от 975 (кажется) и ниже, и делает затем тоже что и ардукоптер(*)
Вот эту версию юзаем. Это как 2.7R4 слегка поправленная товарищем couger
в 2.7R4 вроде бы есть вариант 1), вариант 2) в подправленой прошивке
у меня работал, но тестил на земле
давайте по порядку
сейчас есть 2 версии FAILSAFE
У меня стоковая 2,7 R4, в ней похоже, как раз твой Failsafe работает.
обычный турниговый приемник не зависает на старых значениях, насколько мне известно…
Еще как зависает, доказано двумя Сеснами на сосне 😃
У меня стоковая 2,7 R4, в ней похоже, как раз твой Failsafe работает.
у меня чето не работает =)
попробовал сейчас наушники подключить - 1 канал молчит (остальные наверное тоже), т.е. зависание значение происходит в прошивке т.к. нет прерываний и значения последние остаются, при этом действительно если стики были наклонены, то коптер и будет продолжать лететь по последний значениям без FS
осталось понять почему FS не работает multiwii-йный вариант (хотя в параметрах и в прошивке выставил чтобы работало)
у меня чето не работает =)
Просто серву в приемник воткни и проверь.
Я тебе в скайп кинул мой radio.ino
Просто серву в приемник воткни и проверь.
серва останется в том положении, в котором был последний сигнал - надо именно звук слушать, а его нет (на газу тоже), значит и прерывание не срабатывает, а значит FS от multiwii должен работать, но чего у меня не работает на последней 2.7
дождался GPS fix, работает всетаки multiwii-йный вариант - переключается в RTL при выключении пульта, НО значения подмешиваются нехорошие - надо в FS обнулять их на 1500
обычный турниговый приемник не зависает на старых значениях, насколько мне известно
Да, ты прав, сам серву воткнул, она в том же положении остается после выключения пульта, но ее рукой можно повернуть, соответственно сигнала нет.
Мои проблемы с самолетом не удачный пример, на нем газ не сбрасывается, но видимо это уже регуль виноват.
На свой страх и риск - версия 2.7r4, с FS, которые roll/pitch/yaw выставляет в центр (1500) при пропаже сигнала с турниги
Сам пират (принудительный FS) direct.nekaka.com/XW8PGLVIeU/Cxgn
либы (как обычно удаляем старые и ставим новые) direct.nekaka.com/tCYTYhXsGh/n3iC
если лениво все либы перезаливать то вот этот файлик в APM_RC пихнуть direct.nekaka.com/zlQ2AJxqfJ/sQTs
там одна единственная правка:
uint16_t APM_RC_PIRATES::InputCh(uint8_t ch)
{
uint16_t result;
uint16_t result2;
// Because servo pulse variables are 16 bits and the interrupts are running values could be corrupted.
// We dont want to stop interrupts to read radio channels so we have to do two readings to be sure that the value is correct...
result=readRawRC(ch);
// Limit values to a valid range
result = constrain(result,MIN_PULSEWIDTH,MAX_PULSEWIDTH);
if(failsafeCnt >= 20 && ch!=2 && ch<=3) {
result=1500; // можно было и красивее
}
radio_status=1; // Radio channel read
return(result);
}
проверка:
- заходим в планер, выводим raw sensors вкладка radio,
- заводим коптер (без винтов конечно, как бы виртуально), стик roll/pitch в любую сторону
- вырубаем пульт - должен переключится в RTL (наличие GPS fix обязательно, чтобы увидеть RTL, иначе можно глянуть в radio, как себя стики ведут) и в rawsernsor->radio roll/pitch/yaw должны быть по центру
ВНИМАНИЕ нельзя при этом использовать FS с rctimer
кстаии с газом не потятно что делать - он остается на максимуме:
www.youtube.com/watch?v=6PFCcOHfL-o
и при RTL получается будет набирать высоту
На свой страх и риск - версия 2.7r4, с FS, которые roll/pitch/yaw выставляет в центр (1500) при пропаже сигнала с турниги
Проверил, работает, 1, 2 и 4 каналы выставляются в 1500, при Failsafe без GPS газ постепенно снижается до 1200, то есть Land срабатывает.
кстаии с газом не потятно что делать - он остается на максимуме:
и при RTL получается будет набирать высоту
Ну он и должен набирать на величину ALT_HOLD_RTL а потом с постоянным газом идти домой.
короче надо тестить в реальности, а реальность холодная очень, но вроде бы как бы всё работает =)
Sir Alex, предлагаю ввести 2 варианта FAILSAFE, один multiwii-шный, другой через железку с rctimer
Что за железка?
другой через железку с rctimer
Он же для нормальных приемников, на которых уровни при Failsafe выставить можно, типа Фриски.
И, по моему, железка лишняя, она же на остальных каналах уровни не выставит, если только 4 штуки ставить.
Что за железка?
rctimer.com/index.php?gOo=goods_details.dwt&goodsi…
при пропаже сигнала с throttle канала выдает заранее выставленное значение, в случае с ардукоптеров это менее 975 - тогда будет срабатывать оригинальный FS, а без этой железки только multiwii вариант или приемник, который делает аналогично этой железки
при пропаже сигнала с throttle канала выдает заранее выставленное значение, в случае с ардукоптеров это менее 975 - тогда будет срабатывать оригинальный FS, а без этой железки только multiwii вариант или приемник, который делает аналогично этой железки
Вопрос: Почему железка знает что пропал сигнал, а мы нет? Значит и мы можем таки определить пропажу сигнала…
Значит и мы можем таки определить пропажу сигнала…
дык мы и определеяем, с мультивишным FS