Serva PDM Angle Hold jsou motory, které jsou řízeny signálem PDM (Pulse Duration Modulation) a jsou schopné udržet daný úhel.
Úhlová serva se používají k simulaci pohybu různých mechanismů: Pohon může snadno otevřít/zavřít ventily a vytvořit tak krmítko pro domácího mazlíčka nebo navrhnout malý úkryt v hostinci. A takové servomotory umožní vašemu robotovi ovládat paže nebo otáčet hlavou.
Seznam modelů
model | Tvarový faktor | Řídící signál | Kontaktujte nás | Jmenování | Vnitřní rozhraní | Rozsah otáčení |
---|---|---|---|---|---|---|
Feetech FS90 / Dokumentace | Micro | PDM | Ne | Držení úhlu | Analogový | 0–180 ° |
Feetech FT90B / Dokumentace | Micro | PDM | Ne | Držení úhlu | Digitální | 0–180 ° |
Feetech FS90-FB / Dokumentace | Micro | PDM | Ano | Držení úhlu | Analogový | 0–180 ° |
Feetech FS0403-FB / Dokumentace | Micro | PDM | Ano | Držení úhlu | Analogový | 0–180 ° |
Feetech FS5106B | Standardní | PDM | Ne | Držení úhlu | Analogový | 0–180 ° |
Feetech FS5109M | Standardní | PDM | Ne | Držení úhlu | Analogový | 0–180 ° |
Feetech FT5519M | Standardní | PDM | Ano | Držení úhlu | Digitální | 180° |
Feetech FB5118M / Dokumentace | Standardní | PDM | Ano | Držení úhlu | Digitální | 0–300 ° |
Feetech FT6335M / Dokumentace | Standardní | PDM | Ne | Držení úhlu | Digitální | 0–360 ° |
Rozhraní pro správu
U úhlových serv PDM závisí poloha výstupního hřídele na délce impulsu. Pro ovládání motoru je nutné předat speciální signál PDM (Pulse Duration Modulation) – impulsy konstantní frekvence a proměnné šířky. Při obdržení řídicího impulsu z externího regulátoru generuje plnění servopohonu vlastní signál do motoru, jehož trvání je určeno zpětnovazebním senzorem. Dále obvod porovná dobu trvání dvou pulzů:
Pokud je doba trvání jiná → elektromotor se zapne. Směr hřídele závisí na znaménku rozdílu impulsů.
V signálu PDM je frekvence pulzu konstantní a rovná se 50 Hz, tj. perioda pulzu je 20 ms. Šířka impulzu se však mění a závisí na tom výstupní přídržný úhel motoru. Obecně se uznává, že rozsah výstupního úhlu 0–180° odpovídá šířce pracovního impulsu 544–2400 μs.
Jako příklad uvádíme data pro oblíbený hobby servopohon Feetech FS90.
Pulzní perioda | Šířka pulzu | Poloha serva | popis |
---|---|---|---|
20 ms | 544 us | 0° | Maximální poloha hřídele ve směru hodinových ručiček CW |
20 ms | 1540 us | 90° | Neutrální poloha hřídele |
20 ms | 2400 us | 180° | Maximální poloha hřídele proti směru hodinových ručiček CCW |
U různých pohonů se rozsah šířky impulsu a rotace hřídele může lišit od standardního. Například existují serva s rozsahy 0–120° a 0–310°. Tyto údaje lze upřesnit v charakteristikách.
I v rámci stejného modelu serva existuje výrobní chyba, která způsobuje, že provozní rozsah délek pulsů se liší. Pro přesný provoz musí být každé konkrétní servo zkalibrováno: prostřednictvím experimentování je nutné vybrat správný rozsah, který je pro něj specifický.
Často se metoda řízení serv nazývá PWM (Pulse Width Modulation) nebo PPM (Pulse Position Modulation). To není pravda a použití těchto metod může dokonce poškodit jednotku. Správný termín je PDM (Pulse Duration Modulation), ve kterém je důležitá délka pulzů, nikoli frekvence.
Pokud váš servopohon chrastí, cuká nebo má za úkol ovládat více serv, věnujte pozornost rozšiřující desce Multiservo Shield.
Servopohony se zpětnou vazbou
Mezi PDM úhlově držící serva existují i modely se zpětnou vazbou, u kterých je signál z interního potenciometru vyveden samostatným vodičem.
To bude užitečné pro vytváření složitých zpětnovazebních smyček, kde se objeví aktuální poloha serva. Například zjistit, zda servo dosáhlo cílové pozice nebo zda s ním něco nerušilo.
Obvykle je přítomnost zpětnovazebního signálu výslovně indikována v charakteristice servopohonu.
Napájení serva
Servopohon lze napájet dvěma způsoby: přímo z regulátoru (pokud to charakteristiky dovolují) nebo z externího zdroje napájení.
Žádné externí napájení
Pokud je servopohon napájen 5 volty a odebírá proud menší než 500 mA, je možné napájet servomotor přímo z regulátoru.
Schéma zapojení
Barva drátu | kontakt | Funkce | Připojení |
---|---|---|---|
Oranžová / žlutá / bílá | S | Čep ovládání serva | Připojte k I/O pinu řadiče. |
Červený | V | Jídlo | Připojte ke zdroji napájení ovladače. |
Hnědá / Černá | G | Země | Připojte k zemi ovladače. |
S externím napájením
Pokud je servopohon napájen napětím vyšším než 5 voltů nebo odebírá proud vyšší než 500 mA, vyžaduje externí zdroj napájení.
Schéma zapojení
Barva drátu | kontakt | Funkce | Připojení |
---|---|---|---|
Oranžová / žlutá / bílá | S | Čep ovládání serva | Připojte k I/O pinu řadiče. |
Červený | V | Jídlo | Připojte k externímu zdroji napájení s vhodným napětím. |
Hnědá / Černá | G | Země | Připojte k uzemnění externího napájecího zdroje a k zemi regulátoru. |
Příklady práce pro Arduino
Mozkem projektu bude platforma Arduino Uno.
Vezměme Feetech FS90 jako testovací servopohon. Příklady jsou kompatibilní se všemi servy PDM s úhlovým držením, stačí do programu zadat charakteristiky vašeho konkrétního motoru.
Připojení a konfigurace
Pro přehlednost schématu využíváme připojení servopohonu přímo k regulátoru, bez externího napájení. Pokud potřebujete další napájecí zdroj, zkontrolujte schémata v sekci napájení serva.
Co budete potřebovat?
Schéma zařízení
Pro rychlé sestavení a odladění zařízení doporučujeme vzít rozšiřující desku Troyka Shield, která se umístí na horní část Uno R3 sendvičovou metodou.
Nastavení softwaru
Ke spuštění příkladů budete potřebovat knihovnu AmperkaServo, což je obal standardní knihovny Servo s dalšími metodami.
Změna polohy rohu
Pro spuštění vyzkoušíme motor v polohách 0, 90 a 180 stupňů.
Kód pro Arduino IDE
Po zablikání zařízení se hřídel serva otočí o 0, 90 a 180 stupňů.
Plynulá změna polohy úhlu
Pojďme si úkol zkomplikovat. Pohybujme hřídelí plynule od 0 do 180 stupňů.
Kód pro Arduino IDE
Po zablikání zařízení se hřídel serva bude plynule pohybovat od 0 do 180 stupňů a zpět.
Změna polohy úhlu dvou serv
Do projektu přidáme druhý servopohon.
Hřídel dvou motorů otočíme postupně do poloh 0, 90 a 180 stupňů.
Kód pro Arduino IDE
Po zablikání zařízení se hřídel každého serva otočí střídavě o 0, 90 a 180 stupňů.
Čtení úhlu serva
Dále vypočítáme aktuální polohu hřídele motoru. Je důležité si uvědomit, že pouze malý počet serv umožňuje číst data zpětné vazby přes samostatný vodič.
Pro test zopakujeme standardní příklad pro plynulé posunutí servopohonu od 0 do 180 stupňů a paralelně odečteme aktuální úhel hřídele motoru.
Schéma zařízení
Kód pro Arduino IDE
Po zablikání zařízení se hřídel serva bude plynule pohybovat od 0 do 180 stupňů a zpět. A paralelně se na konzole zobrazí aktuální úhel hřídele.
Příklady práce pro Espruino
Mozkem projektu bude platforma z rodiny Espruino, například Iskra JS.
Připojení a konfigurace
Pro přehlednost schématu využíváme připojení servopohonu přímo k regulátoru, bez externího napájení. Pokud potřebujete další napájecí zdroj, zkontrolujte schémata v sekci napájení serva.