Как да калибрирам спийд контролерите? Кои са най-честите грешки и въпроси.

Rust

Редовен Потребител
Даа, знам :) Преди броени дни официално излезе дигиталният протокол за комуникация DSHOT и сложи край на калибрирането на спийд контролерите. Сигурен съм, че поне още година или две обаче, този въпрос ще бъде срещан и актуален (по стечение на едно или друго обстоятелство). Та какъв по-добър начин за отговор от една публична тема тук :)

В недигиталната ера (всичко преди dshot) сигналът към есц-тата е аналогов – PWM (широкоимпулсна модулация) – или импулс с определена дължина. В зависимост от дължината ние казваме колко „газ“ искаме да подадем. По-голяма дължина – повече газ :)

Какво е калибриране?

Ами много просто. При каква дължина есц-то (спийд контролерът) да подаде минимална и максимална „газ“.

Защо е нужно?

Нужно е защото използваме полетен контролер. Ние не подаваме директно команда към есц-то. Нашият ресивър (на радио управлението) подава команда към полетния контролер, който от своя страна подава команда (импулс с определена от него дължина) към есц-то. Поради честата липса на това схващане се зараждат и част от често допусканите грешки, които ще прегледам по-надолу.
Накратко: Командата от радио управлението ни (да кажем 1200 микросекунди) не е равна на командата от полетния контролер към есц-то. Това също означава, че моторите ни не се командват от дистанционното ни, а от полетния ни контролер. Това е много важно.

Каква е нашата идеална цел?

Това е полетния контролер да знае каква дължина на импулса да подаде на есц-то когато иска минимална и максимална газ. Пример:
Ако имаме зададена максимална газ в есц-то на 2000мс, а във FС-то (полетния контролер) на 1800мс, то FC никога няма да подава повече от 1800мс и никога няма да бъде използвана максималната мощност на мотора.
Пример 2: обратната ситуация – 1800 в есц, 2000 в FC. Полетния контролер ще си „мисли“, че е има още запас, но от 1800мс нагоре, моторът ще върти все на пълни обороти. FC ще му е по-трудно да компенсира и да стабилизира нормално.

КАЛИБРАЦИЯ ПЪРВИ МЕТОД:

Използваме самия полетен контролер за да калибрираме есц-тата. Както може би вече се досещате, това е най-добрият метод, защото гарантира истинско синхронизиране между двете. В Betaflight/Cleanflight/iNav става по идентичен начин (вероятно много подобен във всеки друг софтуер с функция за ръчно управление на моторите):
1 – махате перките :) Няма по-важна стъпка от тази, ако не искате се самоубиете, нараните домашния любимец, лаптопа, цветята на жена ви или телевизора. Всичко се случва… и на най-опитните.
2 – отивате в таб "motor testing", вдигате всички мотори на максимум и включвате батерията. Ще чуете по-различна „песен“, което означава че влизате в системното меню, където е и желаната калибрация.
3 – след няколко секунди и бибипкания връщате плъзгача най-долу, където трябва да чуете още няколко потвърждаващи звука, че калибрацията е приключила успешно.
По този начин спийд контролерите се калибрират буквално по минимума и максимума, които FC-то след това ще им подава.

КАЛИБРАЦИЯ ВТОРИ МЕТОД:

Ръчно задавате стойностите. Влизате първо в настройките на полетния контролер и задавате 1000 за минимум (min command) и 2000 за максимум (max throttle) (ако нямате конкретна причина да използвате други стойности, тези би трябвало да ви свършат добра работа). След това влизате в настройките на спийд контролерите и задавате същото.
Този метод е с една стъпка по-назад от идеалния, защото често в кодът на тези софтуери са зададени буфери, осцилаторите на самите есц-та може да имат някакъв дрифт или друго подобно несъответствие. Със сигурност нещата ще работят и по този начин, просто не е чак толкова прецизен.

КАЛИБРАЦИЯ ТРЕТИ МЕТОД:

Тази си е направо НЕпрепоръчана, макар и все още често срещана по упътванията. Подходяща е за самолети, но не и за дрони или каквото и да е използващо полетен контролер.
1 – Спийд контролерите се връзват директно към ресивъра на радио управлението, подава се максимална газ.
2 – Включва се батерията и се изчаква „песничката“ за калибриране
3 – Сваляме газта. Трябва да чуем няколко потвърждаващи тона, че калибрацията е минала успешно.
Както се вижда, тук полетният контролер изобщо не участва в уравнението, което на практика обезсмисля понятието калибрация. Все пак за нас целта е да сверим часовниците точно между полетния контролер и есц-тата :)

ЧЕСТО ЗАДАВАНИ ВЪПРОСИ:

Защо като подавам газ моторите не се въртят с еднаква скорост?
-
Колкото е важно някои тестове да се правят без перки, толкова е важно други да се правят със перки :) Ако сте имали великото търпение да прочетете всичко до тук (поздравявам ви :) ), вече знаете, че не нашето радио контролира моторите, а нашият… полетен контролер!
Той разполага с минимум жироскоп и акселерометър, които се опитват да стабилизират летенето. Това означава дронът да не си завива сам наляво надясно като балон с дупка. Но какво става когато сме без перки?
1) сензорите хващат грешка (това им е работата и повярвайте, дори да си мислите, че не го мърдате те хващат и най-малките движения)
2) опитват се да я компенсират, като подадат газ на изоставащата страна/мотори
3) нищо не се случва, защото… хмм… нямаме перки :)
4) полетният контролер натрупва грешката и започва все по-свирепо да я компенсира
5) нищо не реагира по очакван начин и той напълно се побърква...
Хубавата новина е, че това означава, че просто стабилизацията ви работи.
Ако пък очаквате нещо, което работи добре на земята (или на 5см от нея), без перки и т.н., може би дронът не е точното нещо :)

Защо моторите не се въртят като ARM-на / Защо моторите понякога спират да се въртят в ARM-нато състояние?
Има една много важна настройка, която е точно затова и трябва да се направи непосредствено след калибриране. Нарича се minimum throttle или минимална газ. Това определя какъв импулс да бъде подаван минимално, когато сте в ARM-нато състояние. Ето и как се настройва:
1 – След като калибрацията е готова, отивате отново в Motor Testing таба с включена батерия (и махнати перки :) ) и леко повдигате слайдерите. Така междудругото можете и да проверите дали всички есц-та са се калибрирали. Трябва моторите да започват да се въртят от една и съща (или да кажем много близка) стойност.
2 – Проверявате къде е мястото където моторът започва да се върти и запомняте стойността (примерно 1030).
3 – Здравословно е да добавите още 20-30мс за повече сигурност, че някой мотор няма да се опита да спре докато си летите.
4 - Задавате тази стойност в полето Min Throttle (в нашия пример 1030 + 30 = 1060).

Защо дронът ми се преобръща като се опитам да излетя?
Макар и не директно свързано с калибрацията, хората които четат тази тема вероятно са точно на етапа с мятащия се като риба дрон, затова го включвам.
Причина 1: Моторите не са вързани в съответните изходи. Минете през motor testing и вижте един по един дали се завъртат по схемата.
Причина 2: Полетният контролер не сочи напред (което прави моторите да не са вързани в съответните изходи :p).
Причина 3: Моторите не се въртят в указаната посока.
Причина 4: Посоката на перките не е спазена. Някоя лява перка, е на мястото на дясна или обратното. Случва се на всички :)
Ако сте проверили всичко това 2 пъти и все още имате същия проблем, значи е време да го проверите още 3 пъти. Рано или късно ще хванете една от 4те причини.

Е, надявам се това да е било полезно :)
 

neon

Редовен Потребител
Изключително полезна тема! Всичко е обяснено подробно и се разбира още от първото прочитане. Ако беше написана месец по-рано, би ми спестила два-три часа търсене и питане. Предлагам да се закачи, като важна тема и да седи отгоре.
 
Нагоре