Smalltim OSD and autopilot (часть 2)

Илья_Бобровичь
Pav_13:

калибровали в КП?

в кп нет. только на плате замыкал белый и красный как написанно в инструкции. я чтото пропустил? как коллебровать в КП?

Pav_13
Илья_Бобровичь:

я чтото пропустил? как коллебровать в КП?

Пропустили Вы, похоже, все уроки русского языка в школе, раз читать не умеете и пишете с трудом 😦

КП ->Телеметрия ->Настройка датчиков и входов ->Калибровка датчика тока.

Илья_Бобровичь

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

Илья_Бобровичь

НУ все с датчиком тока вопрос решен. все было эллементарно нужно было его в КП откалибровать. а вот с АП чего то не ладится. Взял табурет , подключил самолет включил мониторинг датчиков горизонта. Подношу руку к датчику тангажа тот что в крыле снизу, крен становиться 0 тангаж примерно 5%, включаю СТабилизацию Элероны тупо в крайнее положения пытаються накренить модель в право (хотя крен 0) руль высоты градусов 15 и пытаеться опустить нос модели ( это при том что датчик показывает и так наклон 15%) а он вместо того что бы его ровнять еще сельнее заваливает. Подношу другую руку к датчикам крена изменений эллероно НЕТ совсем, чуть подергиваеться руль высоты пытаясь еще сильнее завалить нос, пытаюсь повернуть модель в плоскости так что бы стал отрабатывать руль направления и привет вместо этого включается мотр. че за бред? понятно что в домашних условиях но ни до такой же степени пи…ть.
П.С. Прошу простить за мой китайский, очень спешу.

baychi
Илья_Бобровичь:

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

Похоже не откалибровано управление.
Советую прошить последнюю версию прошивки (есть в ветке), взять здесь-же последнюю версию КП и проделать операцию привязки и калибровки РУ.

Илья_Бобровичь

Так что бы небыло затупов какая последня версия АП телеметрии и КП? я только все получил Автопилот новой версии врятли там старые прошивки.

baychi
Илья_Бобровичь:

какая последня версия АП телеметрии и КП?

Все что нужно - здесь: (не забудьде также перешить телеметрию).
rcopen.com/forum/f90/topic205896/2724

baychi
Илья_Бобровичь:

это у меня и стоит.

Тогда еще раз пройдите визард привязки и калибровки РУ. Если в КП горизонт правильный, а реакция модели - нет, то это самая вероятная причина.
Проверьте так-же настройки микширования - чтобы все было отключено и не мешало.

Илья_Бобровичь

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

baychi
Илья_Бобровичь:

я не использую микширование

Поэтому проверьте, что бы там не было “грязи”.
Если повторное прохождение визарда проблеммы не решит, снимите видео неправильной работы и (вид КП и модели) и выложите вместе с настройками.
PS: Модель ЛК или классика?

baychi
Илья_Бобровичь:

вот он

С классиклой “чудес” быть не должно.

Илья_Бобровичь:

только сейчас датчик “тангаж” в крыле в передней кромке 20 см от фюза.

Для домашних тестов это не имеет значения. Тонкие вещи только поле покажет…

ad2237

Всем здравствуйте! На что все-таки будет похоже ИМУ? Это принцип гироскопа, как у ФИшки, или еще что-то. Пока в этом деле новичок) Т.е. чем ИМУ будет превосходить пиродатчики?

grom-off
Илья_Бобровичь:

но ни до такой же степени пи…ть.

Иди уже в поле, не пудри мозг домашними тестами. Ну просто - выйди на улицу, в конце то концов…

ad2237:

На что все-таки будет похоже ИМУ? Это принцип гироскопа, как у ФИшки. Пока в этом деле новичок) Т.е. чем ИМУ будет превосходить пиродатчики?

Сам и ответил. Пиродатчики смотрят по сторонам (приходится располагать вне фюза - провода и аэродинамика) и косячат при пасмурной (дождливой, снежной погоде), а ИМУ “вещь в себе” (и в фюзеляже) и погода на неё не влияет. А вобщем читайте больше (и раньше) эту тему, в том числе есть инфа даже в инструкции автопилота.

Enigm

Как я понял то OSD можно и самому спаять и прошить.
Кто сам собирал помогите найти схему и печатку.
А то пересмотрел 2 длинные темы и все нужные вложения уже за давностью удаленны.
Может кто поделится кто скачивал .
Спасибо

Илья_Бобровичь
grom-off:

Иди уже в поле, не пудри мозг домашними тестами. Ну просто - выйди на улицу, в конце то концов…

Я выше уже писал что в поле я БЫЛ!!! и тест свой описывал, самолет тупо валиться в штопор. Потому и пытаюсь найти решение проблемы. Сегодня запишу Видео и выложу его. может кто чего и подскажет.

smalltim

Илья, давайте видео, думаю, поможет.

Готовлюсь к выходу наземки, вылизываю прошивки, и т.д. и т.п.
В поле свежую прошивку наземки так и не проверял, погода вообще мрак.
С GPS модулем автопилота, лежащим на балконе, поворотка потихоньку поворачивается вслед за ползанием координат GPS вокруг стартовой точки.

Пример работы с Google Earth, параллельно с ним гипертерминал:

Поворотка 5 раз в секунду отстреливает следующие данные:

$GSSTG - Ground Station Settings - настройки наземной станции
$GSSTA - Ground Station Status - состояние наземной станции
$GSTR1,
$GSTR2 - Ground Station Telemetry Raw Data 1/2 - две пачки сырых данных прямо с борта
$GPGGA - стандартное сообщение NMEA
$GPRMC - стандартное сообщение NMEA

Формат всех сообщений открыт. В будущем, возможно, где-то что-то немного поменяется, но не сильно.

$GSSTG - целые числа через запятую:

$GSSTG,1481,1686,1904,1103,1974,0,3,90,0,0,0,1

  • горизонтальная серва: длина PPM в микросекундах для поворота направо на 180 градусов
  • горизонтальная серва: длина PPM в микросекундах для поворота в среднее положение
  • горизонтальная серва: длина PPM в микросекундах для поворота налево на 180 градусов
  • вертикальная серва: длина PPM в микросекундах для поворота в горизонталь
  • вертикальная серва: длина PPM в микросекундах для поворота в вертикаль
  • номер звукового эффекта при повреждении данных в видео
  • номер звукового эффекта при просадке батареи наземной станции
  • пороговое напряжение при просадке батареи наземной станции
  • номер звукового эффекта при потере RC связи на борту
  • номер звукового эффекта при включении автовозврата на борту
  • номер звукового эффекта при потере данных от спутников GPS на борту
  • минимальное расстояние, при котором отключается наведение антенны

$GSSTA:

$GSSTA,163,210,3,160,320,90,0,3590,2206,43,-337,0,3,

  • количество пакетов данных, успешно прошедших проверку, в секунду
  • общее количество пакетов данных, в секунду
  • количество циклов успешного обновления полного объема данных от телеметрии, в секунду
  • ID платы: 160 - телеметрия с автопилотом
  • отдетектированное количество строк в видеосигнале
  • угол поворота антенны по горизонтали, в градусах, 0 - нейтраль, увеличение угла - против часовой стрелки
  • угол поворота антенны по вертикали, 0 - горизонталь, увеличение угла - вверх
  • значение таймера PPM для поворота по горизонтали
  • значение таймера PPM для поворота по вертикали
  • напряжение батареи наземной станции, вольт*10
  • dx до модели по земле /1.11111, сантиметры
  • dy до модели по земле / 1.11111, сантиметры
  • расстояние до модели по земле, метры

Сейчас убрано, но вернется в релизе:

  • версия прошивки, старший номер
  • версия прошивки, средний номер
  • версия прошивки, младший номер
  • дата прошивки, день
  • дата прошивки, месяц
  • дата прошивки, год

$GSTR1,$GSTR2

  • 2х32 байта, записанных в 16-ричной форме. Значащие - только первые 57 байт. Данные ложатся на такую структуру:

typedef struct
{
S32 gps_curlat; // lsb = 0.00001 deg
S32 gps_curlon; // lsb = 0.00001 deg
S32 gps_startlat; // lsb = 0.00001 deg
S32 gps_startlon; // lsb = 0.00001 deg
U16 gps_curspeed; // lsb = 1kmh
S16 gps_startalt; // lsb = 1m
S16 gps_dz; // lsb = 1m
S16 gps_heading; // lsb = 1deg

U16 baro_curspeed; // lsb = 1kmh
U16 baro_curalt; // lsb = 1m
S16 compass_curheading; // lsb = 1deg
S16 compass_bearing_to_base; // lsb = 1deg

U8 autopilot_status;
U8 gps_numsatellites_batteryindicator; // (low 4bits)/battery indicator(high 4 bits)
S16 gps_bearing_to_base; // lsb = 1deg
U16 current; // lsb = 0.01A
U16 mah; // lsb = 1mah
U16 voltage1; // lsb = 0.01/0.1v
U16 voltage2; // lsb = 0.01/0.1v
U16 voltage3; // lsb = 0.01/0.1v
S8 cur_pitch; // lsb = 1deg
S16 cur_roll; // lsb = 1deg
U16 gps_distance; // lsb = 1m
U8 variometers; // low 4 bits = GPS vario, high 4 bits = baro vario
U8 rc_signal_voltage_value_bitmask; // bits 7,6,5 =1 - voltages 1,2,3 > 10v, bit4 = 1 - rc signal present, bits3…0 - numsticks
U16 flight_time_seconds;
S16 temperature; // lsb = 0.1c

// 57 bytes of essential information
U8 nonsense0;
U8 nonsense1;
U8 nonsense2;
U8 nonsense3;
U8 nonsense4;
U8 nonsense5;
U8 nonsense6;
// 7 bytes of data for alignment to 64 bytes
} telemetry_ap_data_type; // 64 bytes

По структуре видно, что данные сгруппированы в пачки по 4 байта (32 бита), это минимальный объем данных, передаваемых в одной строке ТВ сигнала.
Соответственно, все параметры расположены либо на границе в 4 байта, либо внутри пачки в 4 байта, чтобы избежать повреждения.
Вместе с 4 байтами данных передается еще 1 байт идентификатора посылки и 2 байта контрольной суммы.
Но повреждение данных - дело неизбежное, не только из-за неидеальных условий передачи видео, но и из-за построения схемы/логики.
Поворотка не ожидает данных от телеметрии в какой-то четко определенный момент времени после начала кадра или получения синхроимпульса. Напротив, в течение каждой строки поворотка бомбит видеосигнал до тех пор, пока не наступит таймаут или удастся синхронизироваться с фазой заковыривания данных средствами телеметрии.
Это безмерно упрощает схему декодирования данных из видеосигнала и ослабляет требования к качеству видео - на дрожание и сдвиги фазы/синхро поворотке просто покласть в разумных пределах. Зато, с другой стороны, это требует злых проверок данных на корректность на выходе декодера. В результате чего, на примере строки $GSSTA выше, я имею 163 корректных пакета по 4 байта из 210 распознанных пакетов, в искусственно ухудшенных условиях - сбитой настройке уровня сигнала на поворотке.
С учетом 4-кратного дублирования - более чем нормально, можно падать до ~50 пакетов и по-прежнему, не терять в скорости обновления данных на земле.

Наконец,
$GPGGA, GPRMC - стандартные NMEA строки, но с ограничениями:

  1. время - не UTC время, а время полета
  2. точность по высоте - до 1м
  3. точность по широте-долготе - до 0.00001град.
  4. HDOP,VDOP и прочее не передается

Поворотка представляется системе композитным USB устройством с двумя виртуальными COM портами, для выбора в GoogleEarth можно использовать любой.
Драйвер для поворотки как таковой не нужен в любой версии Windows от XP и выше, 32/64бит, но при первом подключении к ПК нужно подсунуть *.inf файл.

Вроде пока всё.

Pavel_K

Круто! Это ж просто мечта!

У меня сразу два вопроса созрело:

  1. Скорость порта будет 2400?
  2. С наземки можно будет данные до USB выцепить? Очень хочется часть этой бесценной информации самопальному контроллеру наземки скармливать, чтобы он в случае чего и про самолет писком предупреждал.