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

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:

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

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

Serj=

Завел себе такую табличку для тестирования, а то сумбур в голове. Что еще стоит в нее добавить?
Stabilize + Работает
Alt Hold - Плавает, надо попробовать без паралона
Land - Слишком быстро садиться, после посадки тащит влево
Simple + Работает, но надо проверить еще раз, не понятно, нужно ли активировать в коде
SuperSimple
Loiter + Работает
RTL + Работает
Auto + Работает, но надо разбираться с командами
TAKEOFF - После взлета не идет на маршрут
Circle
Guided
Failsafe +/- Работает, но есть баг
Модем + Работает
Подвес + Работает
AttoPilot 90A - Не правильно показывает напряжение
RTL при просадке батареи
Follow Me
GeoFence
FPV

Sir_Alex

В 2.8 R3 добавил поддержку PPM_SUM через пин PL1(ICP5) - Пропала дерготня по входным каналам… а я то всегда думал, что это Турниджи 9x фигово работает…

PL1 пин вывели на новой платке CRIUS AIOP v2, но те кто использует обычную Ардуину, так же могут воспользоваться им (вроде бы Digital48 пин)