Hlavní navigace

Motor připojený k počítači a ovládaný Linuxem

Erik Yokotashi Hamera

V Linuxu je možné většinou poměrně jednoduše spojit skriptovacími jazyky funkcionalitu různých programů a udělat si jednoduchou aplikaci na míru. Pojďme tento koncept rozšířit i do fyzického světa v nejbližším okolí našeho počítače. Dnes si připojíme k našemu linuxovému počítači krokový motor z tiskárny.

Princip krokového motoru

Krokový motor je stroj zpravidla nevelkého výkonu (má špatný poměr hmotnosti a výkonu), který má několik preferovaných poloh rotoru oproti statoru. Po přivedení proudu na řídící cívky skončí motor v některé z preferovaných poloh. V těchto polohách je nejmenší energie magnetického pole (nejvyšší magnetická vodivost mezi rotorem a statorem pro aktuálně buzené pole).

Použijeme dvoufázový krokový motor, ten má dvě ovládací cívky (fáze) a ovládá se tak, že se přivede proud do jedné cívky, pak do druhé, pak do první, ale v opačném směru a nakonec do druhé v opačném směru (+1, +2, –1, –2). Celý cyklus se opakuje. Pro opačný chod se pouze otočí pořadí čtveřice (-2, –1, +2, +1). Číslo je číslo cívky, znaménko směr proudu.

Toto je základní řízení, které jsem použil na inkubátor pavoučího kokonu. Motor pochází z devítijehličkové tiskárny ALPS P2000G, pracuje na 3,9 V a má 1,8 úhlového stupně na krok. Takže udělá celou otočku za 100 kroku (25 čtveřic). Ve velkém množství tiskáren, kopírek, faxu a podobných zařízení bývá jeden, nebo dva krokové motory.

Krokový motor

Bez odporu do země šlo krokovat prstem (připojením báze tranzistorů na napájecí napětí přes odpor těla) a obával jsem se, že tranzistory budou spínat i špičky z napájecího napětí a další rušení. Jsou to darlingtony a mají zesílení větší než 750. Pokud si z minulého dílu vzpomínáte na zpětné diody zapojené paralelně s cívkou, vzpomínáte si správně. Ale použité tranzistory mají dostatečné kolektorové napětí a energie cívky může odtéct do výkonových odporů, takže nevznikne vysoká napěťová špička.

Zapojení je energeticky neefektivní, protože po sepnutí jednoho tranzistoru jím protéká proud cívkou krokového motoru a také (zbytečně) proud jeho odporu v kolektoru. Nicméně to příliš nevadí, protože stačí méně než 1 ms dlouhé sepnutí (záleží na setrvačnosti a mechanickém odporu zátěže, nutno vyzkoušet v konkrétní aplikaci a s konkrétním motorem). Tranzistory jsou bez chladičů, ale ani při kontinuálním běhu pomalou rychlostí (10 kroků za sekundu) se nezahřejí a odpory také ne. Podstatnou výhodou oproti běžnému můstkovému zapojení (místo odporu v kolektorech další čtveřice tranzistorů) je, že chyba softwaru nezpůsobí zkrat napájecího zdroje a zničení zařízení (což jde samozřejmě zařídit i jinak). Navíc není třeba ovládat tranzistory v kladné větvi.

Tento skript pak otáčí motorem na jednu stranu

while true; do
        for a in 1 2 4 8; do
                par_out "$a"
                par_out 0
                sleep 0.1
        done
done

a po otočení čísel (8 4 2 1) nazpět.

Krokový motor

Mezikrok

Pokud by počet kroků nestačil, dá se motor provozovat s dvojnásobným počtem kroků, ale tam už lze silně doporučit můstkové zapojení, protože motorem v polovině kroku protéká proud oběma cívkami. Zatímco u minulého zapojení šlo krokovat (+1, 0, +2, 0, –1, 0, –2, 0), kde je motor většinu času ve stavu 0 (žádnou cívkou neteče proud), u tohoto řízení se krokuje (+1, +1+2, +2, +2–1, –1, –1–2, –2, –2+1). Po dosažení stavu, kdy protéká proud jen jednou cívkou, je samozřejmě možné zařadit stav 0 (vše vypnout), ale ve stavu, kdy protéká proud oběma cívkami, je nutné tyto proudy nechat zapnuté. Odběr energie je výrazně vyšší, než u jednoduchého řízení.

Můstek

Princip můstku je jednoduchý. Zapojíme dva tranzistory nad sebe (často se používá komplementární pár – dva stejné tranzistory, jeden PNP a druhý NPN), jeden do kladné a jeden do záporné větve (u komplementárního páru spojíme kolektory, emitor NPN připojíme na zem a emitor PNP na plus napájecího napětí). Druhý vývod cívky zapojíme na druhou dvojici tranzistorů. Na jedné straně sepneme tranzistor na zem, na druhé na plus a a cívkou protéká proud v jednom směru.

Zapnutím druhé dvojice tranzistorů dostaneme opačný směr proudu. Ke každému tranzistoru je třeba paralelně připojit zpětnou diodu, která vede v opačném směru než tranzistor. Tranzistorové budiče s polomůstkem (párem tranzistorů) nebo více polomůstky se běžné prodávají s bipolárními tranzistory i s FETy. Je rozumné vytvořit ovládací signál kombinačními obvody tak, aby z portu šel pro každý můstek směr a enable. Pak není možné odpálit celé zařízení softwarovou chybou Pro více informací navštivte Wikipedii.

Jemnější řízení

Nejsem si jist, zda je toto možné udělat se všemi krokovými motory (nemám s tím praktickou zkušenost, ale třeba se najde někdo v diskusi), ale obě cívky lze také napájet analogově dvěma sinusovými průběhy signálů posunutými o 90 stupňů, které lze (pro větší energetickou efektivitu) vytvořit PWM modulaci. Pak je počet mezikroků neomezený (a spotřeba energie ještě vyšší, než u řízení s mezikrokem).

Přesnost řízení v Linuxu

Pokud je třeba motor řídit s přesným časováním, je lepší použít nějaký mikroprocesor a Linuxem mu pouze posílat co má udělat. Pokud třeba Firefox spotřebuje všechnu paměť a systém začne swapovat, je možné, že se krok zpozdí třeba i o několik sekund. S trochou smůly bude celou dobu zapnutá jedna z fází motoru. Z tohoto důvodu bych určitě dal tranzistory na chladič (já jsem inkubátor řídil procesorem Atmega8 se zakázanými interrupty).

Rozhodně doporučuji nepoužívat řídící počítač k žádným náročným úlohám (měl by mít tak 90 % idle), ale ani to nezaručuje nic (jen výrazně snižuje pravděpodobnost). Pokud by nedodržení časování znamenalo problém a řešení s extra procesorem by bylo nevhodné, volil bych RT Linux.

Našli jste v článku chybu?

16. 7. 2009 13:45

ava (neregistrovaný)

My jsme v byvale firme pouzivali radice microcon (http://www.microcon.cz/), konkretne M1486, kterym jenom po seriaku (RS232) nastavite konfiguraci – zpusob pripojeni motoru, rychlost, akceleraci, a pak posilate povely – udelej 100 kroku v kladnem smeru, toc se v zapornem smeru dokud neprijde na nejaky vstup log. 1 apod. O nejake casovani se pak jiz neni treba starat. Povelovy soubor mel par nedomyslenosti, ale vcelku vzato se tam dalo realizovat temer cokoliv.

Daji se koupit uz i hotove desky …

16. 7. 2009 1:27

Jde o to, zda chcete necojen natocit, nebo ridit pocet otacek u souvisle se otacejciho motru. pokud potrebujete neco pouze natocit o urcity uhel jsou jasnou volbou krokove motory (popripade serva).

BTW, pokud potrebujete jemnejsi krokovani, nez lze dosahnout mustkovym zapojenim, lze doporucit pouziti prevodu.

DigiZone.cz: Test Philips 24PFS5231 s Bluetooth repro

Test Philips 24PFS5231 s Bluetooth repro

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu