ArduCopter Mega: порт на обычную Arduino (тестим)

Serj=
SovGVD:

у меня чето не работает =)

Просто серву в приемник воткни и проверь.
Я тебе в скайп кинул мой radio.ino

SovGVD
Serj=:

Просто серву в приемник воткни и проверь.

серва останется в том положении, в котором был последний сигнал - надо именно звук слушать, а его нет (на газу тоже), значит и прерывание не срабатывает, а значит FS от multiwii должен работать, но чего у меня не работает на последней 2.7

дождался GPS fix, работает всетаки multiwii-йный вариант - переключается в RTL при выключении пульта, НО значения подмешиваются нехорошие - надо в FS обнулять их на 1500

Serj=
SovGVD:

обычный турниговый приемник не зависает на старых значениях, насколько мне известно

Да, ты прав, сам серву воткнул, она в том же положении остается после выключения пульта, но ее рукой можно повернуть, соответственно сигнала нет.
Мои проблемы с самолетом не удачный пример, на нем газ не сбрасывается, но видимо это уже регуль виноват.

SovGVD

На свой страх и риск - версия 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=5WXi6nVpsZc

Serj=
SovGVD:

На свой страх и риск - версия 2.7r4, с FS, которые roll/pitch/yaw выставляет в центр (1500) при пропаже сигнала с турниги

Проверил, работает, 1, 2 и 4 каналы выставляются в 1500, при Failsafe без GPS газ постепенно снижается до 1200, то есть Land срабатывает.

SovGVD:

кстаии с газом не потятно что делать - он остается на максимуме:
и при RTL получается будет набирать высоту

Ну он и должен набирать на величину ALT_HOLD_RTL а потом с постоянным газом идти домой.

SovGVD

короче надо тестить в реальности, а реальность холодная очень, но вроде бы как бы всё работает =)
Sir Alex, предлагаю ввести 2 варианта FAILSAFE, один multiwii-шный, другой через железку с rctimer

Serj=
SovGVD:

другой через железку с rctimer

Он же для нормальных приемников, на которых уровни при Failsafe выставить можно, типа Фриски.
И, по моему, железка лишняя, она же на остальных каналах уровни не выставит, если только 4 штуки ставить.

SovGVD
Sir_Alex:

Что за железка?

rctimer.com/index.php?gOo=goods_details.dwt&goodsi…
при пропаже сигнала с throttle канала выдает заранее выставленное значение, в случае с ардукоптеров это менее 975 - тогда будет срабатывать оригинальный FS, а без этой железки только multiwii вариант или приемник, который делает аналогично этой железки

Sir_Alex
SovGVD:

при пропаже сигнала с throttle канала выдает заранее выставленное значение, в случае с ардукоптеров это менее 975 - тогда будет срабатывать оригинальный FS, а без этой железки только multiwii вариант или приемник, который делает аналогично этой железки

Вопрос: Почему железка знает что пропал сигнал, а мы нет? Значит и мы можем таки определить пропажу сигнала…

SovGVD
Sir_Alex:

Значит и мы можем таки определить пропажу сигнала…

дык мы и определеяем, с мультивишным FS

Serj=

А пробовал кто-нибудь джойстик подключать?
У меня джойстик определился, на кнопки реагирует, режимы переключает, а на ручки не реагирует, заармить не могу, и из Планера не армится, пишет Error: Arm message rejected by MAV

tusik
Serj=:

заармить не могу,

Если подключены по кабелю, то так и должно быть

Serj=
tusik:

Если подключены по кабелю, то так и должно быть

Через модем тоже не могу.

Triumpher
Sir_Alex:

Вопрос: Почему железка знает что пропал сигнал, а мы нет? Значит и мы можем таки определить пропажу сигнала…

Приемник турниговский убогий! Даже железка от рцтаймера не на всех каналах может определить пропажу сигнала. Например на 5-и канале не может определить. А на 3-м и 6-м может.

Sir_Alex
Serj=:

У меня джойстик определился, на кнопки реагирует, режимы переключает, а на ручки не реагирует, заармить не могу, и из Планера не армится, пишет Error: Arm message rejected by MAV

Точно не знаю, но кто то уже писал, что только джойстиком нельзя заармить. Надо с пульта.

P.S. Я тут вчера глянул на 2.9 - едрид мадрид… работки они подкинули дофига. 2.9 уже использует модель драйверов HAL - что как бы означает что она сможет работать на разных платформах (PX4 в том числе) - но и мне придется колхозить драйвера по новой для этой модели…

Serj=
Sir_Alex:

кто то уже писал, что только джойстиком нельзя заармить. Надо с пульта.

Пробовал с пульта, но на стики джойстика все равно не реагирует, хотя в окне привязки каналов к джойстику полоски бегают.

Lazyan
Sir_Alex:

У мну родился сын! Так что у меня сейчас хлопот полный… Но потиху дорабатываю прошивку…

Поздравляю с наследником! Пускай хлопоты будут не в тягость )

SovGVD
Sir_Alex:

едрид мадрид…

пора завязывать с портированием? =)