-
Notifications
You must be signed in to change notification settings - Fork 0
Ovladani serv
Každé servo má následující vlastnosti, které se jednou nastaví a pak se při jednotivých akcích používají:
- levá poloha
- pravá poloha
- rychlost
Nastavení serva se prování příkazem
kdeRNG:s:l:p RNG:s:l:p:r
- s
- číslo serva. Pokud má již rozsah definovaný, přepíše se novou definicí.
- l
- levá poloha serva, jako úhel 0-180
- p
- pravá poloha serva, jako úhel 0-180
- r
- rychlost, 1 nejvyšší, 8 nejnižší.
Příkaz RNG je konfigurační, neukládá se do sekvence akcí pro reakce na tlačítka
Příklad nastavení serva:
RNG:1:80:120:5pomaleji (rychlost 5) se hýbající servo, levá poloha 80, pravá 120 stupňů
RNG:2:90:110servo se pohybuje standardní rychlostí, levá poloha 90, pravá 110 stupňů
Nastavení je možné ještě "interaktivně", pomocí příkazu
CAL:skde "s" je číslo serva. CAL znamená "CALibrate". Po zadání CAL se zpracování vstupu přepne na *jednotlivé znaky*. Náklon serva se ovládá stiskem nebo přidržením tlačítek klávesnice PC:
- q, +
- "nahoru", většá úhly. Každý stisk vychýlí servo o 3 stupně.
- a, -
- "dolů", menší úhly.
- ENTER
- potvrdí polohu
- ESC nebo "." (tečka)
- zruší celou kalibraci
CAL
se servo nastaví do (prozatím definované) levé polohy. Není-li ještě servo nastavené, je levá a pravá poloha 90. Nejprve nastaví levá poloha, potvrdí ENTER
. Pak pravá poloha, opět potvdí ENTER
. Pak se nastavuje rychlost. Během nastavení rychlosti servo přejíždí mezi nastavenými polohami. Posledním stiskem ENTER
(po seřízení rychlosti) se nastavení uloží ve formě příkazu RNG
, jako by jej zadal uživatel přímo.
Příkaz CAL je konfigurační, neukládá se do sekvence akcí pro reakce na tlačítka
Příklad kalibrace serva:
CAL:5
Každé servo může být (volitelně) spojené s jedním výstupem, na kterém se signalizuje "ohlas" polohy. Při pohybu serva do pravé polohy se takový výstup sepne, při pohybu serva do levé polohy se rozepne. Pokud se servo pohybuje do polohy zadané jako stupně, má ohlas jiný význam - je sepnutý během pohybu serva, rozepnutý, je-li servo v klidu.
Ohlas serva se nastaví jako
SFB:s:okde "s" je číslo serva, "o" je číslo výstupu. Pokud je číslo výstupu 0, ohlas u serva se zruší (příkaz
SFB
zmizí z konfigurace). Dvě serva mohou mít přiřazený stejný výstup; pak platí, že poslední pohyb vyhrává. Po zapnutí napájení Arduino vyhodnotí polohy serva a je-li některé v (zapamatované) poloze R (pravé), zapne jeho ohlas.
Sepnutí výstupů odpovídající ohlasům je možné kontrolovat ve výpisu příkazu INF
, kde každému sepnutému výstupu odpovídá "1" v řádku "Out state
".
Ohlasy je možné použít pro spínání přídavných zařízení, signalizaci, ... například pro provázání s řízením znaků návěstidel podle polohy výhybek.
Příkaz SFB je konfigurační, neukládá se do sekvence akcí pro reakce na tlačítka
Příklad nastavení ohlasu
SFB:1:5Nastaví ohlas pro servo 1 na výstupu 5.
SFB:2:0Zruší ohlas serva 2.
Pohyb serva nařídí příkaz
kde "x" je číslo serva (1-8) a "p" je poloha. Poloha může býtMOV:x:p MOV:x:p:r
- L - úhel levé polohy nastavený příkazem RNG
- R - úhel pravé polohy nastavený příkazem RNG
- konkrétní úhel, kam se má páka serva nastavit.
1,2 - 3,4 - 5,6 a 7,8
. Pokud se spustí pohyb jednoho serva z dvojice bez čekání na dokončení, a spustí se druhé servo z dvojice, začne se pohybovat okamžitě. Pokud se vykonají akce ke spuštění serv mimo určené dvojice, čeká se vždy na uvolnění signálu (dokončení pohybu serva). Potřebujete-li pohybovat servy zároveň, musíte jejich zapojení podřídit uspořádání do dvojic.
Pokud není možné servem hýbat (servo mimo pár je nyní v pohybu), akce zablokuje svou sekvenci až do doby uvolnění servo výstupu - a to i v případě, že se na dokončování akcí nečeká.
Po dokončení pohybu serva se opraví výstup ohlasu, je-li pro servo nastavený. Pokud je servo již v poloze nařízené příkazem, povel se považuje za vykonaný ihned.
Příklady:
MOV:1:R MOV:2:L MOV:3:150 </blockquote>Nastaví nejprve servo 1 do pravé polohy (zkonfiurované předtím příkazem
RNG
), pak servo 2 do levé polohy a nakonec nastaví servo 3 na úhel 150 stupňů.