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

smalltim

Прошивка телеметрии для работы с АП версии 4.0.4 от 4 декабря 2011.

Отличия от предыдущей версии, 4.0.3:

  • Увеличен объем контрольной суммы данных, кодируемых в видео, для более строгой проверки корректности декодированных данных на наземной станции.

Прошивка наземной станции версии 1.2.9.

Первый публичный релиз.

Известные глюки, баги, недоделки:

  • Отсутствует поддержка телеметрии без АП.
    ---- Будет добавлено в самое ближайшее время.

  • Периодически, раз в 10-15 минут, наземная станция получает пакет с поврежденными данными.
    ---- Вызвано недостаточной стойкостью алгоритма проверки контрольных сумм передаваемых данных. Будет вылечено программной фильтрацией - если модель за 1/5 долю секунды переместилась на 500м в сторону, потом тут же вернулась обратно, значит, был получен пакет с поврежденными данными.

INF файл для наземной станции.

Плата наземной станции не требует установки специальных драйверов для работы под Windows XP и выше, но необходима установка INF файла, чтобы показать системе название и характеристики подключаемого устройства.

Необходимое замечание:

Микропрограмма наземной станции использует библиотеку
LUFA (Lightweight USB Framework for AVRs) авторства Dean Camera:


www.fourwalledcubicle.com/LUFA.php

Соответственно, необходимые отсылки к авторству библиотеки сделаны как в коде, так и непосредственно в inf файле:


MFGNAME=“SMALLTIM, LUFA powered”
INSTDISK=“SMALLTIM CDC Driver Installer, LUFA powered”
DESCRIPTION1=“SMALLTIM USB Ground Station Over Virtual Serial Port”
DESCRIPTION2=“SMALLTIM Virtual GPS Module Over Virtual Serial Port”
SERVICE=“SMALLTIM USB Ground Station Over Virtual Serial Port”

baychi
smalltim:

Увеличен объем контрольной суммы данных, кодируемых в видео,

А прошивку для АП менять не требуется, старая поймет новый формат?

smalltim
baychi:

А прошивку для АП менять не требуется, старая поймет новый формат?

Не требуется.

Chicho:

А уже готова наземка?))

Готова. Ждем, пока обновится сайт и появятся новые плюшки.

Конечно, немного боязно - вдруг что-нибудь вылезет в процессе эксплуатации кучей народу, но аппаратно сделано, по-моему, очень чисто и аккуратно, а программные фишки лечатся на счет раз.

Код заковыривания данных в видеосигнал - для спецпрошивок от Oliver и всем заинтересованным в том, чтобы добавить поддержку наземки Smalltim в своих собственных разработках.

  • проц AVR должен работать на 16 МГц,
  • ноги проца, работающие с видео: D7 - подтяжка сигнала, D6 - затемнение сигнала.
  • номера строк, используемых для записи данных - 11-14.
  • код, приведенный ниже, надо запускать в начале строки после импульса строчной синхронизации.
  • код, приведенный ниже, передает 4-байтовый шматок данных, взятых по адресу X+R21*4, сопроводив его ID пакета и двумя байтами контрольной суммы. 3 младших бита в байте ID задают номер шматка.
  • наземка ожидает 16 разных шматков данных, после чего считает пачку данных от телеметрии принятой полностью.

При соответствии таким условиям наземка будет корректно распознавать принимаемые данные.
Интерпретация принятых данных - более сложный вопрос, остающийся на совести самодельщиков. Наземка будет отстреливать на ПК сырые данные в любом случае, а уж если нужна поддержка в софте наземки и интерпретация и формирование строк GPS для ПК - пишите, договоримся.

;***************************************************************************
;*
;* "data_video_encode" - data to video line encoding routine
;*       ;Input: X - start address of the data array to encode,
;*         R21 - number of chunk
;*       ; Temp: R16, R17, R18, R19, R20, R21, R22 - temporary registers
;*       ; uses R5 which is always 0
;***************************************************************************
 data_video_encode:
 LDI R16,4
 IN R22, DDRD
 SBI DDRD, 7
 SBI DDRD, 6
 CLR R20  ; R20 keeps control sum
 MOV R17, R21
 LSL R21
 LSL R21

 ADD XL, R21
 ADC XH, R20
 ORI R17, 0b10100000 ; Telemetry    data ID is 0b110xxxxxx
      ; Telemetry+AP data ID is 0b101xxxxxx
 MOV R20, R17
 CLR R21
 LDI R18, 8
  _continue_shifting_id:
   SBRC R17,7
   LDI R19, 1<<7
   SBRS R17,7
   LDI R19, 1<<6
   OUT VIDPORT, R19
   NOP
   NOP
   NOP
   NOP
   LSL R17
  DEC R18
  BRNE _continue_shifting_id
 NOP
 NOP
 NOP
 _continue_encoding_data_to_video:
  LD R17, X+
  ADD R20, R17
  ADC R21, R5
  LDI R18, 8
  _continue_shifting_data:
   SBRC R17,7
   LDI R19, 1<<7
   SBRS R17,7
   LDI R19, 1<<6
   OUT VIDPORT, R19
   NOP
   NOP
   NOP
   NOP
   LSL R17
  DEC R18
  BRNE _continue_shifting_data
 DEC R16
 BRNE _continue_encoding_data_to_video
 NOP
 NOP
 NOP
 NOP
 NOP
 LDI R18, 8
  _continue_shifting_controlsum:
   SBRC R20,7
   LDI R19, 1<<7
   SBRS R20,7
   LDI R19, 1<<6
   OUT VIDPORT, R19
   NOP
   NOP
   NOP
   NOP
   LSL R20
  DEC R18
  BRNE _continue_shifting_controlsum
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 LDI R18, 8
  _continue_shifting_controlsum2:
   SBRC R21,7
   LDI R19, 1<<7
   SBRS R21,7
   LDI R19, 1<<6
   OUT VIDPORT, R19
   NOP
   NOP
   NOP
   NOP
   LSL R21
  DEC R18
  BRNE _continue_shifting_controlsum2
 NOP
 NOP
 NOP
 NOP
 CLR R19
 OUT VIDPORT, R19
 OUT DDRD, R22
 RET
strannik
smalltim:

Код

Реально очень приятный и полезный подарок под новый год. Спасибо, Тимофей!

Chicho

Класс,но к сожалению прикуплю позже,я тока начал заниматься FPV все постепенно )))))))

Korogodsky

Подскажите, есть ли теоретическая возможность снимать показания с Смаллтим телеметрии через комп? Т.е. реально ли подключить к USB и считывать из COM порта данные?

baychi
Korogodsky:

есть ли теоретическая возможность снимать показания с Смаллтим телеметрии через комп? Т.е. реально ли подключить к USB и считывать из COM порта данные?

В наземной станции это заложенно. Эмуляция GPS через USB.

Korogodsky
baychi:

В наземной станции это заложенно. Эмуляция GPS через USB.

GPS мне как раз не нужен 😃 Мне нужны показания всех остальных датчиков. Я хочу подключив плату телеметрии к компьютеру, без наземной станции, получать данные с датчиков. Из видео выхода можно получить данные? Наверное я изъясняюсь не как профи 😊 не понятно, что мне нужно?

baychi
Korogodsky:

GPS мне как раз не нужен Мне нужны показания всех остальных датчиков. Я хочу подключив плату телеметрии к компьютеру, без наземной станции, получать данные с датчиков.

Эти данные вроде тоже идут по видеоканалу и доступны в наземке. Гдето выше в теме был даже формат структуры, поищите. В любом случае о деталях их ввода в ПК можно будет договориться с Тимофеем, так как тема прямой компьютерной обработки будет актуальна, ИМХО.

Korogodsky
baychi:

тема прямой компьютерной обработки будет актуальна, ИМХО

Я себе это представляю так - альтернативная прошивка для использования с ПК и переходник с видеовыхода на USB. Можно будет считывать данные из COM-порта и расшифровывать в соответствии с протоколом. Вопрос к Тимофею, можно ли ожидать что появится такая возможность?

Oliver
Korogodsky:

переходник с видеовыхода на USB.

Такой переходник - по сути сама по себе наземка. Вам, как я понимаю, такое невыгодно.

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

Korogodsky
Oliver:

Такой переходник - по сути сама по себе наземка. Вам, как я понимаю, такое невыгодно.

Дело не в не выгодно, а она мне просто не требуется 😃

Oliver:

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

Спасибо, покопаюсь.

Но вопрос к Тимофею не снимается, хотелось бы иметь Plug’n’Play девайс.

Oliver
Korogodsky:

Дело не в не выгодно, а она мне просто не требуется

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

Если же вы намекаете на то, что вам все это дело через ком надо на борту для каких-то собственных хитрых нужд - то опять же это делается Тимофеем вместе с коллегами.

Korogodsky
Oliver:

Если же вы намекаете на то, что вам все это дело через ком надо на борту для каких-то собственных хитрых нужд - то опять же это делается Тимофеем вместе с коллегами.

У меня же все прозрачно, для управления через интернет мне это нужно, радиоуправление мне не требуется. Соответственно показания датчиков мне нужно видеть с компа (комп на модели). Если бы эту телеметрию можно было подключить через USB к компьютеру и получать показания датчиков, это было бы то что надо.

Dark-Wizard

Тимофей, такой вопрос…
Сколько можно груза повесить на поворотку (патч антенны РЦ и видео например), чтоб она продолжала уверенно крутиться?

smalltim
Korogodsky:

Если бы эту телеметрию можно было подключить через USB к компьютеру и получать показания датчиков, это было бы то что надо

Максим, я немного потерялся. Да, это уже есть, ничего делать не надо.

Поворотка подключается к USB компа и гонит в реальном времени не только синтезированные NMEA сообщения, притворяясь GPS модулем, но и данные телеметрии. Всё через виртуальный COM порт.
Всё, что нужно от Вашей софтинки - открыть этот COM порт на ПК и читать данные.

Или Вам нужно получать данные именно с аппаратного UARTа на плате? Будет сделано, это несложно, просто никому пока не нужно.

Dark-Wizard:

Сколько можно груза повесить на поворотку (патч антенны РЦ и видео например), чтоб она продолжала уверенно крутиться?

В граммах, честно говоря, не меряли.
Под большим 1.2 ГГц патчем она будет нормально работать. Ну а так, это зависит от сервы поворота по вертикали. Поставите мощнее - будет уверенно крутить большие веса.

Korogodsky:

Соответственно показания датчиков мне нужно видеть с компа (комп на модели).

А, блин, понял. Надо, чтобы телеметрия НА БОРТУ на комп отстреливала данные. Хм. С автопилотом - нивапрос. Цепляйте через USB к бортовому компуку и читайте данные прямо в полете, автопилот виден как HID устройство, ~100 раз в секунду отсылает HID пакеты с данными.
Нужна расшифровка HID пакетов - говорите, что именно нужно, опишу.

Korogodsky
smalltim:

Поворотка подключается к USB компа

Наверное уже сто раз спрашивали и все же я не нашел, сколько будет стоить наземко? Мне кажется не рационально не использовать основные ее возможности, а пользоваться ей как переходничком. Лучше бы конечно прям с платы телеметрии получать данные.

smalltim
Korogodsky:

Наверное уже сто раз спрашивали

Коллеги, ну пожааалуйста, потерпите еще пару дней, появится на сайте 😉

ChifAviator

Это большая тайна, сказать скоко денех готовить хотя б примерно, держим интригу…

smalltim

Не сердитесь, коллеги.
В команде есть, грубо говоря, технические специалисты, я, например. А есть люди, занимающиеся ценообразованием. Области компетенции четко разграничены.
Я не буду выкладывать в форум свои приблизительные соображения насчет цен, а остальные в отместку не лезут с техническими советам. По-моему, вполне разумно.

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