(лесният начин) Как да вържем SBUS и FrSky smart port телеметрия на Omnibus F4 (или друг F4)

Дискусия в 'Мултикоптери' започната от Rust, 27 Юли 2017.

От Rust на 27 Юли 2017 в 17:05
  1. Rust

    Rust Редовен Потребител

    Публикации:
    263
    от:
    София
    В тази тема ще разгледаме как да вържете телеметрия към полетен контролер Omnibus F4, но теоретично методът би работил на всеки друг полетен контролер с STM32 F4 процесор. Ключовата дума тук е именно F4, защото този чип, макар и значително по-бърз от F3 е по-стар хронологично и няма вградени инвертори на серийните (UART) портове. FrSky използват инвертори в ресивърите си не само за SBUS, но и при телеметрията.

    Omnibus F4 има допълнително добавен инвертор към SBUS входа си, затова там не е нужно да правите нищо специално. За телеметрията обаче, сигналът трябва да бъде инвертиран по някакъв начин за да „потече“ успешно.

    Първият начин това да се случи беше да „хакнем“ ресивъра като вземем от него сигнал преди да бъде инвертиран и го вържем към свободен UART на полетния контолер. За този метод може да научите тук.

    В по-новите версии на BetaFlight обаче има и по-лесен начин, който не изисква интервенции по ресивъра, не отнема хардуерен UART и също работи безотказно.

    Списък на стъпките:

    1) Връзвате s.port към мотор пин 6.
    [​IMG]

    2) Отваряте betaflight configurator и включвате feature – softserial и telemetry.

    [​IMG]

    3) В ports tab избирате smartport на softserial1. Не забравяйте да натискате save след всяка стъпка!
    *(ако не ви се появяват SOFTSERIAL портове на този етап, направете стъпка 4) и след това се върнене на стъпка 3) )
    [​IMG]
    4) В CLI пишете:
    resource motor 6 none
    resource serial_tx 11 a08
    save

    Това прави пин "мотор 6" да бъде назначен към softserial 1 tx. Повече за командата RESOURCE и как с нея да променяте места на пинове може да научите в това видео.

    5) Това е. Ако сте изпълнили всичко остава само да отидете в телеметричното меню на вашия TARANIS и да цъкнете върху Discover Sensors, докато дронът е включен. Това автоматично ще намери всички предавани сензори по вече работещата телеметрия :)

    *според използваната версия може да се наложи да напишете и "set telemetry_inversion=on", но по време на писане на това упътване това става автоматично.

    Връзване на SBUS:

    1) Вържете SBUS :)
    [​IMG]
    2) Изберете Serial RX на UART1.

    [​IMG]

    3) Изберете Serial-based recevier и SBUS на receiver mode/provider.
    [​IMG]

    4) Не забравяйте да натиснете save :)

    За кои приемници може да бъде използван този метод:
    - По-новата серия приемници на FrSky използват т.нар s.port телеметрия (smart port). Това са всички от X серията като X4R, XSR, X8R, X6R.

    - По-старата D серия като D4R-II и D8R използват т.нар frsky телеметрия, но този метод теоретично би проработил и за тях, макар при рейсинг дрони едва ли да бихте искали да използвате PPM, което тези приемници предлагат.

    Полезен трик:
    Ако в менюто на вашия TARANIS намалите броят на предаваните канали на 1-8, вместо 1-16. Така ще бъде предаван по един 9ms фрейм, вместо по два. С други думи – 2 пъти по-малко закъснение ;-)

    Успех!
     
    Последна промяна: 4 Август 2017
    neon, west_ice, zoSo and 6 others like this.

Коментари

Дискусия в 'Мултикоптери' започната от Rust, 27 Юли 2017.

    1. zoSo
      zoSo
      @Rust : Адмирации!

      Благодаря на колегата @bateray , затова че ми обърна внимание. Става въпрос за неинвертиран sbus хардуерен хак.
      Последна промяна: 31 Юли 2017
    2. bateray
      bateray
      На картинката правило си пише че от пин А може да се вземе неинвертиран SBUS сигнал и тва е тествано. А ако искаш не инвертиран smartport се взима от другаде... Ето картинка [​IMG]
    3. st5rov
    4. zoSo
      zoSo
      Щеше да бъде хубаво, но осцилоскопа показа друго :(. Ма все пак нещо не ми харесва този как провежда нАучния експеримент. Май не измерва всички 16 канала, а само първите 8 от първия фрейм.
      Последна промяна: 16 Октомври 2017 в 15:09
    5. Rust
      Rust
      Краят на видеото му е много як :). Но има шанс и да не е прав, защото мери един фрейм и в 2-та случая. Идеята е че при 1-8 имаш един 9мс фрейм и после нов. Докато при 1-16 имаш един 9мс фрейм за първите 8 канала, после още един 9мс фрейм за вторите 8 канала и чак тогава нов. По спомен можеше да се види и на блекбокс лог.

Сподели Тази Страница