Smalltim OSD and autopilot (часть 2)
я не использую микширование . , Проходил я привезку до того пока ее небыло аппаратура вобще не управляла самолетом
я не использую микширование
Поэтому проверьте, что бы там не было “грязи”.
Если повторное прохождение визарда проблеммы не решит, снимите видео неправильной работы и (вид КП и модели) и выложите вместе с настройками.
PS: Модель ЛК или классика?
imageshack.us/g/831/sam5892.jpg/ - вот он только сейчас датчик “тангаж” в крыле в передней кромке 20 см от фюза.
вот он
С классиклой “чудес” быть не должно.
только сейчас датчик “тангаж” в крыле в передней кромке 20 см от фюза.
Для домашних тестов это не имеет значения. Тонкие вещи только поле покажет…
А они есть
Всем здравствуйте! На что все-таки будет похоже ИМУ? Это принцип гироскопа, как у ФИшки, или еще что-то. Пока в этом деле новичок) Т.е. чем ИМУ будет превосходить пиродатчики?
но ни до такой же степени пи…ть.
Иди уже в поле, не пудри мозг домашними тестами. Ну просто - выйди на улицу, в конце то концов…
На что все-таки будет похоже ИМУ? Это принцип гироскопа, как у ФИшки. Пока в этом деле новичок) Т.е. чем ИМУ будет превосходить пиродатчики?
Сам и ответил. Пиродатчики смотрят по сторонам (приходится располагать вне фюза - провода и аэродинамика) и косячат при пасмурной (дождливой, снежной погоде), а ИМУ “вещь в себе” (и в фюзеляже) и погода на неё не влияет. А вобщем читайте больше (и раньше) эту тему, в том числе есть инфа даже в инструкции автопилота.
Как я понял то OSD можно и самому спаять и прошить.
Кто сам собирал помогите найти схему и печатку.
А то пересмотрел 2 длинные темы и все нужные вложения уже за давностью удаленны.
Может кто поделится кто скачивал .
Спасибо
Попробуйте вот здесь посмотреть, и будет Вам счастье…😃 www.smalltim.ru/production/osd-mini/sources/
Иди уже в поле, не пудри мозг домашними тестами. Ну просто - выйди на улицу, в конце то концов…
Я выше уже писал что в поле я БЫЛ!!! и тест свой описывал, самолет тупо валиться в штопор. Потому и пытаюсь найти решение проблемы. Сегодня запишу Видео и выложу его. может кто чего и подскажет.
Илья, давайте видео, думаю, поможет.
Готовлюсь к выходу наземки, вылизываю прошивки, и т.д. и т.п.
В поле свежую прошивку наземки так и не проверял, погода вообще мрак.
С 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 строки, но с ограничениями:
- время - не UTC время, а время полета
- точность по высоте - до 1м
- точность по широте-долготе - до 0.00001град.
- HDOP,VDOP и прочее не передается
Поворотка представляется системе композитным USB устройством с двумя виртуальными COM портами, для выбора в GoogleEarth можно использовать любой.
Драйвер для поворотки как таковой не нужен в любой версии Windows от XP и выше, 32/64бит, но при первом подключении к ПК нужно подсунуть *.inf файл.
Вроде пока всё.
Круто! Это ж просто мечта!
У меня сразу два вопроса созрело:
- Скорость порта будет 2400?
- С наземки можно будет данные до USB выцепить? Очень хочется часть этой бесценной информации самопальному контроллеру наземки скармливать, чтобы он в случае чего и про самолет писком предупреждал.
так что бы стал отрабатывать руль направления и привет вместо этого включается мотр. че за бред?
Есть в смаллтиме прикол такой: 1 и 2-ой каналы выходы местами попутаны относительно входов. Это учтено? А руль направления там не задействован в калибровке вообще, и в отличие от ФИшки, ворочание носом на РН не действует.
Эта ошибка давно поправлена, в следущей-же партии.
- Скорость порта будет 2400?
Это скорость в гипертерминале для виртуального COM порта. Можно хоть 115200 поставить, всё равно будет работать на скорости USB 😃
С наземки можно будет данные до USB выцепить?
Могу отстреливать на UART, разъем для этого на плате стоит.
контроллеру наземки скармливать, чтобы он в случае чего и про самолет писком предупреждал
Моя ж и так пищит, зачем еще пищать?
imageshack.us/g/220/c9g.mp4/ - вот ссылка там два видео. Я уже не знаю это какойто БРЕД. что только не делал. В режиме АП самолет полностью контролируеться передатчиком, в режиме Стабилизации НЕТ. помоему мне опять попался БРАК. что то мне невезет(((((. НУ другого обяснения я не нахожу… ДУрдом. Может и вправду неисправен?
вот ссылка там два видео. Я уже не знаю это какойто БРЕД. что только не делал. В режиме АП самолет полностью контролируеться передатчиком, в режиме Стабилизации НЕТ. помоему мне опять попался БРАК. что то мне невезет(((((. НУ другого обяснения я не нахожу… ДУрдом. Может и вправду неисправен?
После калибровки диапазонов каналов надо нажимать на кнопку “ЗАВЕРШИТЬ и ЗАПИСАТЬ”(на видео это не было сделано). Так же сразу нужно делать калибровку команд управления.
Самопроизвольное включение газа похоже на наводки на канал газа в квартире. Проверять нужно на улице. Вот если бы вы выложили видео с улицы, и там были бы какие либо проблемы, то тогда бы и дали вам совет. В квартире(как уже раньше вам писали) невозможно провести обьективные тесты. Идите уж на улицу…
Итак все что делал на видео было примером. Записывал я по 100 раз. уже, ничего е меняется. на улеце с газом тоже самое. а вот про коллебровку команд управления можно поподробнее.
что только не делал.
Я тоже не увидел на видео зваершения калибровки диапазонов, а также процедуры “Калибровка команд управления” - что является основным этапом!
Так-же на видео плохо видно “нормальное отображение горизонта”. Он либо постоянно перевернут (тогда сервы и должны быть в раскоряку), либо одновременно меняется крен и тангаж - что весьма странно - либо Вы так руку перемещаете, либо в этом и есть проблемма.
Можете сделать примерно тоже самое, только помедленее. Для начала (РУ можно не трогать), попробуйте руками сысмитировать все основные состояния горизонта (смотрим только картинку самолетика в КП). Ладонь под нижнем вертикальным датчиком постоянно.
- Без поднесения второй руки крен и тангаж должны быть близки к 0.
- Подносим вторую ладонь к 2-м передним горизонтальным датчикам. Моделька в КП должна опустить нос, крен меняться незначительно.
- Вторая рука возле задней пары пирометров - моделька задирает нос, крен тот-же.
- Подносим ладонь справа от гор. прирометров. Самолетик на экране наклоняется по крену, тангаж близок к нулю.
- Ладонь слева. Крен в другую сторону, тангаж близок к 0.
Сможете это воспроизвести? Если нет, проверьте кабель от пиродатчиков - правильно ли разъемы воткнуты в АП?
Если да, еще раз пройдите оба визарда РУ в КП (не забудьте сохранить и записать) и смотрите на раеакцию серв по пунктам 1-5. Они должны компенсировать наклоны моделли в КП.
удалено
а вот про коллебровку команд управления можно поподробнее
Так Вы ее не делали!!!