Управление от ArduPilot на видеопредавател чрез Smart Audio

nikiforiv

Потребител
Въпреки че в последно време ArduPilot въведе доста нововъведения, като поддръжката на OSD, управление на шасито (Landing Gear) и др, все още няма нищо за управлението на Видео предавателите (VTX) по Аудио канала, т.н. Smart Audio. Докато смяната на каналите чрез дистнационното не представлява за мен интерес, то смяната нивото на мощноста в полет според мен е почти задължително при предаватели над 1W. Това е така защото при мощности над 1W отделената топлина е доста голяма и се отвежда главно чрез насрещния въздух при самолетите или чрез обдухването на някоя от перките при мултироторите. При включването на захранването на дадения модел, обикновено изминава известно време докато апарата захване спътниците, което е изключително важно за определяне точката за завръщане (RTL точката). През това време видео предавателя не се обдухва и може да прегрее ако е на максимална мощност. Именно за това се използва управлението на мощноста, като при включване на захранването видео-предавателя автоматично минава на най-ниска мощност. След като апарата намери спътниците и излети може да се включи на по-голяма мощност.

За целта между видеопредавателя и приемника се поставя една малка платчица която изчислява дължината на PWM импулса и според нея задава нужната команда чрез извода Smart Audio. Зеления светодиод светва при Power Level = 0, синият при Power Level = 1, червеният при Power Level = 2. Всичките светодиоди светват при Power Level = 3

Командите и отговорите се изпращат по Smart Audio пина чрез USART на 4800б/с. В даденото устройство се изпраща една команда три пъти подред през 130мс като отговора на видеопредавателя не се чете ( той идва обикновено идва 30мс след края на командата ).

Алгоритъма е следният:
При включване на захранването се предава команда за Power Level=0 т.е. най ниска мощност. Устройството не предава друга команда докато ключът на дистанционното отговарящ за Power level не премине през положение за най-ниска мощност ( така се гарантира че видеопредавателя няма да се включи на максимална мощност при включване на дистанционното със включен ключ на Power Level на макс ) . След изпълнението на това условие, устройството проверява периодично входа като изчислява приетият импулс и според неговата дължина изпраща съответната команда. Преди да я изпрати обаче устройството проверява последната реално подадена команда дали е идентична с тази която трябва да изпрати. Ако командата е идентична, тя не се подава тъй като няма смисъл.

Ключът на дистанционното който ще управлява Power Level на видеопредавателя трябва да е четири позиционен. Аз използвам саморъчно направен с четири бутона. Става и обикновен трипозиционен но тогава второто ниво на мощност няма да работи т.е ако имаме нива на мощност 25mW, 200mW, 600mW, 1200mW то с трипозиционен ключ 200mW няма да може да се избира.

Откъде ще дойде дадения канал като повечето приемници имат само един изход на който се извежда комплексен сигнал СРРМ или SBUS? В ArduPilot всеки неизползван извод може да се програмира да извежда различни сигнали, една от функциите е именно да се зададе канал от дистанционното да се изведе на даден неизползван извод. Така че ако коптера ви е квадро то свободни са най малко изводите за управление на двигателите М5 и М6. Например да предположим че на свободния извод М5 трябва да изведем СН8, тогава настройката ще бъде Servo5_Function = 58 ( след като отворите MisionPlaner и отидете на параметър Servo5_Function в колонката до него ще видите всички възможни стойности на параметъра )

За повече подробности, като схеми и файлове, тук: https://drive.google.com/file/d/1VAtrg2fh5oz0BjTWpVdbKAWpuvCTO-sY/view?usp=sharing
 

JetMan

Администратор
Модераторски Екип
Здравей - интересна реализация. Относно 4-позиционният ключ, понеже не съм виждал май радио с такъв, дали не е добра идея да се ползва комбинация от 2 позиционен и 3 позиционен така при изключен 2 позиционен 3-позиционния ще има 3 режима при включен ще има други 3, може да се комбинират с миксове и да станат нещата ?
 

nikiforiv

Потребител
Става с миксове. Например при Таранис х7 може да се ползва микс между двупозиционните SH и SF. Единия се настройва на 70% а другия на 50%. Нещо такова: Menu->няколко пъти PAGE->MIXER->CH8->OK->Sourse->OK->SH->Weight->70->OK->Esc->Esc->CH8->врътка надолу->OK продължително->Edit->OK->Sourse->OK->SF->Weigh->OK->50->OK->Esc->Esc Така в комбинацията имаме 4 положения 988us, 1398us, 1602us, 2012us. Лимитите на платчицата са следните:
Power Limit 0 < 1130us < Power Limit 1 < 1430us < Power Limit 2 < 1750us < Power Limit 3 < 2200us
 
Нагоре