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

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

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

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

smalltim

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

Сказка.
Однако, из-за неожиданного выверта в схемотехнике импульсника оказалось так, что питание от USB попадает через импульсник в обратном направлении и диод Шоттки прямо на сервы.
Это чревато перегрузом USB и, если материнская плата умная, то отключением наглого потребителя, жрущего куда больше скромно испрошенных у контроллера ста миллиампер. А это вам, коллеги, уверен, не надо.
Для того, чтобы не перегружать USB порт в том случае, когда поворотка со всей требухой и сервами запитана от USB и не подключена внешняя батарея, в ближайшей прошивке поворотки я
отрубаю выходы PPM серв при питании на плате ниже 6 вольт, благодаря тому, что на наземке стоит АЦП для нюха батареи, и если питание идет от USB, то на АЦП приходит порядка 4.3В.
Помимо упомянутого, это поможет спасти полимерки, например, 2S, от необратимого разряда, если хозяин не обращает внимания на писки наземки или отключил их или выставил неправильное пороговое напряжение для писков.
Давно хотел сделать это, но всё руки не доходили. Лучше б и не брался, чесслово. См. концовку сказки.

Концовка сказки.
Ковыряя прошивку, переставил чтение данных с внешнего АЦП из цикла, исполняющегося раз в секунду, в главный цикл. И не придал этому значения. После этого убил 5 часов на попытки понять, почему наземка перестала распознавать данные с борта. Разломал прошивку в хлам, думая, что опять стек налезает на данные. Было такое когда-то на заре телеметрии. Заоптимизировал объем занимаемых данных процентов на 20 и код процентов на 5. Не помогает.
А всё потому что, идиот, думать надо. В чтении данных с АЦП стоят _cli() и _sei(), и, естественно, идут лесом видеопрерывания, прерывания с наивысшим приоритетом, на которые и дышать-то надо с опаской, не то что запрещать их. Ну и данные отправляются лесом вслед за прерываниями. Главный цикл-то молотит со всей возможной скоростью, прерывания от синхроимпульсов кое-как жмутся куда получится…
Потерянного времени жалко. Чесслово, как по минному полю ходишь 😃
А то было бы в Контрольной Панели уже готово окно мониторинга данных с борта в реальном времени 😦

Ильвир
smalltim:

А то было бы в Контрольной Панели уже готово окно мониторинга данных с борта в реальном времени 😦

Тимофей, судя по всему готовиться новая версия КП?! Пожалуйста, не забудьте в нее сразу добавить строку по выводу на экран ТМ показаний RSSI в вольтах. Спасибо.

Andrew_Stick

smalltim, спасибо вам за вашу работу. Собираюсь стать счастливым обладателем, так сказать, когда денег накоплю. Оченно ждем новый непирогоризонт и прошивку под коптеры.
По поводу цен: кому сильно не в терпеж, спросите мылом у “департамента продаж” 😁 Уровень они обозначают довольно точно.