ArduCopter Mega: порт на обычную Arduino (тестим)
давайте по порядку
сейчас есть 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
А пробовал кто-нибудь джойстик подключать?
У меня джойстик определился, на кнопки реагирует, режимы переключает, а на ручки не реагирует, заармить не могу, и из Планера не армится, пишет Error: Arm message rejected by MAV
заармить не могу,
Если подключены по кабелю, то так и должно быть
Если подключены по кабелю, то так и должно быть
Через модем тоже не могу.
Вопрос: Почему железка знает что пропал сигнал, а мы нет? Значит и мы можем таки определить пропажу сигнала…
Приемник турниговский убогий! Даже железка от рцтаймера не на всех каналах может определить пропажу сигнала. Например на 5-и канале не может определить. А на 3-м и 6-м может.