Аппаратура Radiolink AT 9 2,4 ГГц

WizardRND

Тут довольно много писали про проблемы с подбором USB-симуляторного кабеля, далеко не все правильно понимают каналы радиолинковской аппы. Самое забавное, что за 300 руб можно самому сделать USB-кабель, прекрасно настраиваемый под любую аппу.

  1. покупаем за 3 бакса на али платку ATmega32U4 (она же Leonardo)
  2. покупаем разъёмчик для трейнер-порта или дербаним какой-нибудь кабель
  3. качаем вот тут скетч “джойстик-интерпретатора”, которому понадобится библиотека Joystick вот отсюда
  4. Качаем и ставим ардуину
  5. Открываес скетч в Arduino IDE, указываем “Инструменты - Плата - Arduino Leonardo”, подключаем библиотеку, проверяем, что всё компилится. Дальше внимательно смотрим на текст скетча - он очень простенький и наглядный, как переделать его под другое число каналов - понять несложно. Вот так я переделал под свою AT9 c учётом того, как у меня привязаны к тумблерам каналы 5-10:
#include <HID.h>

// PPM_Joystick.ino - Converter of PPM sygnal to USB joystick controls.
//
// PPM pulse train:
//   __   ___________________________________   _____   ____   _______   ___ //___   __________   __ HIGH
//     |_|      Sync pulse > 3000 us         |_|     |_|    |_|       |_|   //    |_|          |_|
// Channel pulse 1000 to 2000 us                                                                     LOW
// Pulse start and end on falling edge. The end of one pulse is the begining of next.

// The code uses Jystick library from 
#include <Joystick.h>

unsigned long curTime = 0;
unsigned long oldTime = 1;
volatile int pulseLength = 0;
volatile int channel = 0;

// Pulse timing interupt routine.
void ISR1()
{
  curTime = micros();
  pulseLength = curTime - oldTime;
  oldTime = curTime;

  if (pulseLength > 3000) {
    channel = 0;
    Joystick.sendState();
  } else {
    channel++;
    setChannel(channel, pulseLength);
  }
}

// The function converts length of the pulse
// to USB joystick control value.
void setChannel(int ch, int pulse)
{
  // Processing pulses with length 800 - 2200 mks.
  float value = (pulse - 800) / 1400.0;

  if (value < 0)
    value = 0;
  else if (value > 1.0)
    value = 1.0;

  switch(ch) {
    case 1:
    Joystick.setXAxis(value*255 - 127);
    break;

    case 2:
    Joystick.setYAxis(value*255 - 127);
    break;

    case 3:
    Joystick.setZAxis(value*255 - 127);
    break;

    case 4:
    Joystick.setXAxisRotation(value*360);
    break;

    case 5:
    Joystick.setYAxisRotation(value*360);
    break;

    case 6:
    Joystick.setButton(1, (int)(value+0.5));
    break;

    case 7:
    Joystick.setZAxisRotation(value*360);
    break;

    case 8:
    Joystick.setButton(2, (int)(value+0.5));
    break;

    case 9:
    Joystick.setButton(3, (int)(value+0.5));
    break;

    case 10:
    Joystick.setButton(4, (int)(value+0.5));
    break;
  }
}

void setup()
{
  Joystick.begin(false);
  attachInterrupt(0, ISR1, FALLING);
}

void loop()
{
  // Place your debug code here...
  delay(100);
}
  1. компилим скетч и заливаем в платку
  2. припаиваем к платке всего 2 провода - землю к любому “GND” и сигнальный (PPM-OUT на трейнер-разъёме аппы) к контакту “3”.
  3. подключаем аппу, втыкаем USB от платки в комп (драйвера джойстика тянутся из комплекта ардуины) - в видим в устройствах джойстик “Arduino Leonardo”

Собственно, всё.

При желании вместо кабеля можно подключить приёмник R6D/R6DS/R6DSM в режиме PPM - 5V для него берутся с той же плвтки. Получится вообще “беспроводный адаптер”.

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

P.S. Не рекомендую использовать оси Rudder и Throttle - популярные симуляторы типа Freerider, LiftOff и HotProps их не понимают. Зато с осями AxisRotation - никаких проблем нет.

Goryna

Купил для своей AT10 вот такой шнурок - никаких проблем ни в одном симуляторе

MouSe_Gr
Goryna:

Купил для своей AT10 вот такой шнурок - никаких проблем ни в одном симуляторе

линк нерабочий

Goryna
MouSe_Gr:

линк нерабочий

Прошу прощения, линк взял со своего профиля, к томуж и с корзины. Посмотрел у продавца - больше такого нет. Нашёл по внешнему виду и комплектации один в один у другого.

Parala

Купил at9s. Подключил к назе по sbus. Оказалась проблема: по рудеру в правую сторону стик не доводит до 100%, останавливается на около 75%. В левую сторону доводит до 75% а потом резко 100%. Подскажите в чем проблема? по пвм тоже самое.

Anatoll
Parala:

не доводит до 100%, останавливается на около 75%

надо откалибровать стики аппы… калибровал вот по этому видео - все понятно без перевода…

Николай76
Parala:

Купил at9s. Подключил к назе по sbus. Оказалась проблема: по рудеру в правую сторону стик не доводит до 100%, останавливается на около 75%. В левую сторону доводит до 75% а потом резко 100%. Подскажите в чем проблема? по пвм тоже самое.

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

В моем случае я делал так, сначало полетконтр.прошил а потом цеплял приемник. Потом я разозлился и сначало подключил приемыш по pwm, и все встало на свои места.

Parala

Да нет, помогла калибровка стиков, по совету товарища выше. Не стал отписывать тут, чтобы не флудить.

Goryna

Очень прошу помочь объяснением, ссылками в настройке двойных расходов для коптера. Видео подходящего не нашёл. Никак не могу настроить чтоб расходы менялись по тумблеру, не могу понять принцип и связь расходов и экспоненты.

Sergey345
Goryna:

Купил для своей AT10 вот такой шнурок - никаких проблем ни в одном симуляторе

Внимание работает только с XP!

malibu75

Ребята, у кого есть возможность посмотреть на плату, или может фотографии есть? Нужно уточнить наличие/отсутствие детали на фотках ниже. К аппе пару месяцев не походил. Сегодня включаю - пару минут поработала и отрубилась. По питанию на плате вместо 3.3в - полвольта. Нашел плохо запаянный конденсатор, и рядом с ним свободные пятачки со следами флюса. Есть подозрение, что там что-то было.


Goryna
cfero:

Специально для вас записал =))

Спасибо, твоё видео по этой теме в ютубе первое! Толково снято.

Sergey345:

Внимание работает только с XP!

Не правда. Я на ноутбуке на win10 64x тренеруюсь в FPV Freerider
Так же запускал и в других симуляторах.

cfero
Goryna:

твоё видео по этой теме в ютубе первое! Толково снято.

Спасибо, только ютуб что-то качество не поднимает. Попробую перезалить. Забыл упомянуть, что на пониженных расходах может не работать дизарм стиками. Наза глушит при удержании стика газа внизу, а вот всякие cc3d и контроллеры мелколетов могут не дизармиться

UPD

Перезалил в лучшем качестве. Пускай в теме лежит, может кому поможет

Saire
malibu75:

рядом с ним свободные пятачки со следами флюса. Есть подозрение, что там что-то было.

Вскрыл свою аппу, у меня черная плата, след от флюса тоже есть (они по всей аппе есть). Только у меня там выход под вибромоторчик распаян, с другой стороны разъем стоит.

Saire




П.С. Фотки тяжелые, по 3 метра.
П.С.С Немного доработал аппу при разборе, добавил гнездо для подключения монитора и приемника.
П.С.С.С Моя аппа произведена 11 марта 2016, если верить наклейке в бат. отсеке.

malibu75
Saire:

Вскрыл свою аппу, у меня черная плата, след от флюса тоже есть (они по всей аппе есть).

Спасибо! А я как раз нашел в теме фотографию зеленой платы, тоже со следами флюса, детали нет.
Можно предположить, что ничего и не должно быть.

Saire
malibu75:

, что ничего и не должно быт

Как ничего, если там разъем для вибро?

Sergey345

Подскажите, для AT9S при пропадании связи/отключении пульта, связь восстанавливается при пропадании проблем?

Anatoll
Sergey345:

связь восстанавливается при пропадании проблем?

естественно