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

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 выцепить? Очень хочется часть этой бесценной информации самопальному контроллеру наземки скармливать, чтобы он в случае чего и про самолет писком предупреждал.
grom-off
Илья_Бобровичь:

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

Есть в смаллтиме прикол такой: 1 и 2-ой каналы выходы местами попутаны относительно входов. Это учтено? А руль направления там не задействован в калибровке вообще, и в отличие от ФИшки, ворочание носом на РН не действует.

Вахтанг

Эта ошибка давно поправлена, в следущей-же партии.

smalltim
Pavel_K:
  1. Скорость порта будет 2400?

Это скорость в гипертерминале для виртуального COM порта. Можно хоть 115200 поставить, всё равно будет работать на скорости USB 😃

Pavel_K:

С наземки можно будет данные до USB выцепить?

Могу отстреливать на UART, разъем для этого на плате стоит.

Pavel_K:

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

Моя ж и так пищит, зачем еще пищать?

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

imageshack.us/g/220/c9g.mp4/ - вот ссылка там два видео. Я уже не знаю это какойто БРЕД. что только не делал. В режиме АП самолет полностью контролируеться передатчиком, в режиме Стабилизации НЕТ. помоему мне опять попался БРАК. что то мне невезет(((((. НУ другого обяснения я не нахожу… ДУрдом. Может и вправду неисправен?

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

вот ссылка там два видео. Я уже не знаю это какойто БРЕД. что только не делал. В режиме АП самолет полностью контролируеться передатчиком, в режиме Стабилизации НЕТ. помоему мне опять попался БРАК. что то мне невезет(((((. НУ другого обяснения я не нахожу… ДУрдом. Может и вправду неисправен?

После калибровки диапазонов каналов надо нажимать на кнопку “ЗАВЕРШИТЬ и ЗАПИСАТЬ”(на видео это не было сделано). Так же сразу нужно делать калибровку команд управления.
Самопроизвольное включение газа похоже на наводки на канал газа в квартире. Проверять нужно на улице. Вот если бы вы выложили видео с улицы, и там были бы какие либо проблемы, то тогда бы и дали вам совет. В квартире(как уже раньше вам писали) невозможно провести обьективные тесты. Идите уж на улицу…

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

Итак все что делал на видео было примером. Записывал я по 100 раз. уже, ничего е меняется. на улеце с газом тоже самое. а вот про коллебровку команд управления можно поподробнее.

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

что только не делал.

Я тоже не увидел на видео зваершения калибровки диапазонов, а также процедуры “Калибровка команд управления” - что является основным этапом!

Так-же на видео плохо видно “нормальное отображение горизонта”. Он либо постоянно перевернут (тогда сервы и должны быть в раскоряку), либо одновременно меняется крен и тангаж - что весьма странно - либо Вы так руку перемещаете, либо в этом и есть проблемма.

Можете сделать примерно тоже самое, только помедленее. Для начала (РУ можно не трогать), попробуйте руками сысмитировать все основные состояния горизонта (смотрим только картинку самолетика в КП). Ладонь под нижнем вертикальным датчиком постоянно.

  1. Без поднесения второй руки крен и тангаж должны быть близки к 0.
  2. Подносим вторую ладонь к 2-м передним горизонтальным датчикам. Моделька в КП должна опустить нос, крен меняться незначительно.
  3. Вторая рука возле задней пары пирометров - моделька задирает нос, крен тот-же.
  4. Подносим ладонь справа от гор. прирометров. Самолетик на экране наклоняется по крену, тангаж близок к нулю.
  5. Ладонь слева. Крен в другую сторону, тангаж близок к 0.
    Сможете это воспроизвести? Если нет, проверьте кабель от пиродатчиков - правильно ли разъемы воткнуты в АП?
    Если да, еще раз пройдите оба визарда РУ в КП (не забудьте сохранить и записать) и смотрите на раеакцию серв по пунктам 1-5. Они должны компенсировать наклоны моделли в КП.