Studentská tvůrčí a odborná činnost
STOČ 2015
NÁVRH A REALIZACE ROBOTICKÉHO MANIPULÁTORU
Tomáš SKALICKÝ
Univerzita Pardubice, Fakulta elektrotechniky a informatiky, Katedra řízení procesů, Studentská 95, Pardubice 532 10
23. dubna 2015 FAI UTB ve Zlíně
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
Klíčová slova: robotický manipulátor, mikropočítač, programování Anotace: Předkládaná práce zabývající se návrhem a realizací robotického manipulátoru se věnuje problematice tvorby hardwarových prostředků pro manipulaci s objekty v průmyslové automatizaci. Bakalářská práce se v úvodu teoretické části zabývá elektronikou, která se skládá ze dvou jednotek. Samostatnou ovládací část tvoří aplikace vytvořená v jazyce Java, která komunikuje s řídicí deskou pomocí USB. Teoretická část bakalářské práce současně poukazuje na problematiku zvolení vhodných prostředků na vývoj celého robotického manipulátoru. Dále přibližuje vnitřní fungování použitého software, vyvíjeném v jazyce ANSIC. V závěru celé práce jsou shrnuty použité algoritmy a současně jsou předloženy technické výkresy celého robotického manipulátoru.
2
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
Obsah Úvod ....................................................................................................................... 4 Hardware ................................................................................................................ 5 2.1 Mikropočítač ATmega8 ......................................................................................... 5 2.2 Demultiplexor 74HC4067 ...................................................................................... 5 2.3 Převodník FT232RL .............................................................................................. 5 3. Software ................................................................................................................. 6 3.1 Komunikace přes USART ..................................................................................... 6 3.2 Řízení servomotorů ................................................................................................ 6 4. Počítačová aplikace ................................................................................................ 7 4.1 Java ........................................................................................................................ 7 4.2 Armini control software ......................................................................................... 7 4.3 Konzolový režim .................................................................................................... 8 4.4 Grafický režim ....................................................................................................... 9 4.5 Plánovací režim .................................................................................................... 10 5. Konstrukce ........................................................................................................... 11 5.1 Návrh.................................................................................................................... 11 5.2 Vizualizace robotického manipulátoru ................................................................ 12 6. Závěr .................................................................................................................... 12 Literatura ......................................................................................................................... 13 1. 2.
3
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
Úvod V posledních několika letech jsme se stali svědky neuvěřitelného technického pokroku v oblasti elektrotechniky, mikroprocesorové techniky, automatizace a měřící techniky. Všechna tato fakta mají za následek snahu modernizovat pracovní postupy, co nejvíce automatizovat všechny možné průmyslové závody, šetřit tak peníze a eliminovat chybu člověka. V průmyslové automatizaci se můžeme setkat se spoustou jednoúčelových, ale i víceúčelových stojů. Jedním z těchto víceúčelových strojů je robotická paže. 1.
Obr. 1.1 – Armini Její využitelnost a schopnost velmi přesně umisťovat objekty nám usnadňuje práci již desítky let. Proto jsem se pokusil o vlastní vývoj autonomní robotické paže, která bude schopna přemisťovat různé objekty a to v celém svém rozsahu. Bude se ovládat ovládacím panelem vytvořeným přímo na elektronice robotické paže, nebo nadřazeným řídicím systémem. Tato práce je výsledkem teoretických, ale i praktických znalostí v oblasti elektrotechniky, mikropočítačové techniky, teorie automatizace a měřící techniky. Klade důraz na demonstraci funkčnosti dílčích subsystémů jako je: komunikace s nadřazeným řídicím systémem přes USB, komunikace s displejem, multiplexace servomotorů a příprava pro připojení sběrnice TWI. Při hledání vhodného řešení pro hardwarové zapojení jsem nalezl několik způsobů, jak by elektronika pro robotickou paži mohla být realizována. Dva nejlepší návrhy realizace jsou shrnuty v následujících větách. První, která nebyla použita, spočívá v použití sběrnice TWI a ve výrobě dvou oddělených desek – jedna řídicí a jedna pro řízení servomotorů. Jako vhodnější varianta se mi jeví varianta druhá s demultiplexorem a to hlavně díky rychlosti ovládání a jednoduchosti provedení. Nevýhodou této varianty je nemožnost řídit více servomotorů najednou. Ať už se jedná o jakoukoliv implementaci, cíl projektu je jasný: funkčnost, přesnost, stabilita, spolehlivost.
4
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
2.
Hardware Pod kapitolou hardware se ukrývá stručný popis všech použitých obvodů. Hardware je ta část, která je fyzicky použitá pro funkčnost zařízení. Jedná se tedy o ATmegu8, demultiplexor, převodník, displej a napájecí obvody. Pro pochopení dalších kapitol je nezbytné znát hardwarovou část a porozumět jí.
Obr. 2.1 – Fotografie řídicí desky 2.1
Mikropočítač ATmega8
Jednočipový mikropočítač, někdy také označován jako mikrokontrolér ATmega8 firmy ATMEL je osmibitový procesor s architekturou RISC. Tento čip obsahuje všechny komponenty, potřebné pro chod počítače avšak v redukovaném množství. Taktován ve výchozím nastavení je na 1 MHz avšak za pomoci pojistek (fuses) může být přetaktován až na 8 MHz. V našem případě byl použit externí oscilátor s frekvencí 8 Mhz. Použitím externího oscilátoru se vyhneme použití méně přesného vnitřního RC oscilátoru. Také se zbavíme chyby způsobené vnitřním zahříváním čipu. [2] 2.2
Demultiplexor 74HC4067
Šestnácti kanálový analogový demultiplexor je vysokorychlostní Si-gate zařízení se čtyřmi vstupními adresy, jedním vstupním pinem a šestnácti nezávislými výstupními piny. Právě nepoužívané výstupní piny se nacházejí ve stavu vysoké impedance. [1] 2.3
Převodník FT232RL
Komunikaci mikropočítače s osobním počítačem umožňuje vestavěné USB rozhraní realizované převodníkem USB-USART FT232RL. Jedná se o vytvoření virtuálního sériového portu COMx a tím je umožněno připojení přes terminálový program. Tento nejnovější obvod z rodiny FTDI se nachází v mnoha variantách. Pro nedostatek místa byl použit převodník v SMD pouzdře. Může být zapojen ve třech různých napájecích režimech. V prvním případě se bere napájecí napětí pro celou elektroniku přímo z USB. Další variantou je možnost zapojení pro střídání napájecího napětí a to pomocí jumperu. Posledním a zároveň mnou použitým zapojením je zakázání napájecího napětí z USB. Toto zapojení jsem použil, aby nebylo možné přetížit maximální proudový odběr a tím komunikaci ohrozit. Zapojení 5
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
obsahuje rezistory R6 a R7, které jsou zapojeny jako odporový dělič. Jsou zde z důvodu napájení resetovacího pinu převodníku, jehož logická nula odpovídá resetu. Je zřejmé, že tento dělič, jehož výstupní napětí je 3,3 V blokuje reset. Další rezistory R2 a R3 jsou předřadné odpory k použitým LED diodám. Diody slouží jako signalizace probíhající komunikace přes USB. [3] 3.
Software V Kapitola software se zabývá implementací použitých algoritmů a popisem obsluhy periférií pro mikropočítač ATmega8. Software pro mikropočítač byl vyvinut ve vývojovém prostředí Atmel Studio 6.2 v programovacím jazyku ANSI-C. 3.1 Komunikace přes USART Pro komunikaci nadřazeného řídicího systému s mikropočítačem robotické paže byl použit převodník FT232RL popsán v kapitole Hardware. Při zapnutí robotické paže dojde k inicializaci a nastavení příslušných registru pro komunikaci s počítačem. Byl použit asynchroní komunikační režim s rychlostí 9600 baud. Komunikace probíhala posíláním 8 datových bitů, jedním stop bitem bez parity. Pro rychlost komunikace bylo třeba vypočítat hodnotu v registrech UBRRH, UBRRL. Pro povolení příjmu a vysílání byl nastaven registr UCSRB a komunikační vlastnosti se nastavují v registru UCSRC. 3.2 Řízení servomotorů Algoritmus pro řízení servomotorů funguje na základě přerušení od osmibitového čítače/časovače 0. Časovač je nastaven do režimu CTC a porovnávaná hodnota je uložena v registru OCR0. Protože potřebujeme pro každý servomotor impuls dlouhý minimálně 2 ms s periodou 20 ms, budeme generovat přerušení s frekvencí 500 Hz. Mikropočítač je přetaktovaný na vnější oscilátor s frekvencí 8 MHz, je tedy nutné nastavit předděličku tak, aby hodnota v registru OCR0 byla menší než 256. Použijeme-li předděličku 64 hodnota v registru je 250 a předpoklad je splněn. Pro celý rozsah natočení servomotoru tedy máme rozlišení 250 kroků. Použitý algoritmus funguje tak, že každé přerušení je rozděleno do dvou částí. První část přerušení drží logickou nulu po dobu takovou, kterou jsme zadali jako žádoucí úhel natočení a druhá logickou jedničku. Po průchodu demultiplexorem, který na svém vstupu invertuje signál, získáme požadovaný průběh. Při každém obsloužení se inkrementuje adresní registr pro ovládání nového servomotoru. Rezervace času každého servomotoru je 2 ms, a proto je potřeba adresovat 10 servomotorů, i když je reálný počet výstupních pinů na řídicí desce pouze 8. Čtyři milisekundy se tedy adresují servomotory 8 a 9, které nemohou být zapojena. Přesto se tato metoda ukázala jako nejefektivnější, protože nám dovoluje na výstup jednoho servomotoru generovat impulsy 0,5 – 2 ms, což odpovídá rozsahu 135. Již bylo zmíněno, že rozlišení je 250, tudíž je robotická paže schopna pracovat s přesností přibližně 0,5. Možností jak bychom mohli využít celý rozsah servomotoru (180) je realizace přerušení s frekvencí 400 Hz. Nyní nastává přerušení každých 2,5 ms. Adresní registr čítá pouze do 8, což je reálný počet výstupních pinů. Všechny tyto klady ovšem přebíjí skutečnost, že pro potřebnou frekvenci 400 MHz musí být použita předdělička 128 a hodnota v registru OCR0 bude přibližně 156. Použití nižší děličky není možné, protože bychom se nevešli do rozsahu registru OCR0. Ačkoliv tento algoritmus dovoluje efektivně ovládat servomotory v celém svém rozsahu jeho nevýhoda je jasná. Rozlišení s krokem pouze 1,2. [6], [7], [8], [9] 6
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
4.
Počítačová aplikace
4.1 Java Java je programovací jazyk, který se řadí mezi nejrozšířenější programovací jazyky na světě. Díky její přenositelnosti, je použitelná na jakékoliv platformě. Tento jazyk je objektově orientovaný, avšak není pouze objektový. Objektový programovací jazyk zpravidla pracuje výhradně s interakcemi samostatných objektů. Jazyky, které jsou objektově orientované, pracují s imperativním programováním a vlastnosti objektově orientovaného programování přebírají pouze částečně. [4], [5] 4.2 Armini control software Armini control software je řídicí program robotického manipulátoru Armini. Naprogramován byl v jazyce Java a k připojení přes virtuální sériový port využívá knihovnu comm. Programovací jazyk Java byl použit z důvodu multiplatformní přenositelnosti. Program funguje na libovolném operačním systému, kde je nainstalována 32 bitová Java ve verzi 1.7.0.750. Jako vývojové prostředí byl zvolen NetBeans IDE1 8.0.2. Program se skládá z pěti tříd: Gui.java,
NastaveniKomunikace.java,
Pict.java,
Communicator.java,
VychoziPozice.java.
Nejdůležitější třídou, která zprostředkovává komunikaci mezi nadřazeným řídicím systémem a elektronikou robotické paže je Communicator.java. Obsahuje metodu writeString(String s), která pomocí parametru pošle textový řetězec. Odešle ho rychlostí, která je této třídě předávána parametrem konstruktoru. Pro čtení přijatých znaků byl použit akční posluchač, který neustále naslouchá a při události DATA_AVAILABLE vypíše znaky do konzolového okna. Třída, která zajišťuje nastavení komunikační rychlosti, se nazývá NastaveniKomunikace.java. Zde je možné při běhu aplikace měnit komunikační rychlost, počet datových bitů, počet stop bitů a paritu. Program je tedy multifunkční a může sloužit jako grafický terminál k různým zařízením. Třída Gui.java tvoří samotný vzhled aplikace a obsahuje tři režimy ovládání. Všechny režimy jsou důkladně popsány v dalších podkapitolách. Poslední třída Pict.java pouze vytváří obrázek, který je implementován do GUI. Při párování nadřazeného řídicího systému s touto aplikací mikropočítač pošle údaje o natočení všech serv. Posuvníky grafického režimu se tak automaticky nastaví do hodnot, které se právě nacházejí na robotické paži. Při tomto posílání nastávají problémy s přijatými daty. Jelikož se najednou v počítači přijímá 15 bajtů údajů pouze o natočení, reprezentují se jako skupiny přijatých bajtů náhodně. Bylo třeba posílat synchronizační znak „E“ a v aplikaci zajistit čtení bajtů a ukládání do pomocné proměnné dokud znak „E“ nepřišel. Tak je zajištěno, že přijaté hodnoty jsou správné a patří k příslušným servomotorům. [4], [5] 1
IDE – vývojové prostředí (Integrated Development Environment)
7
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
4.3 Konzolový režim První částí aplikace je konzolový režim. Skládá se ze dvou textových polí, které slouží pro komunikaci s elektronikou robotické paže. Velké textové pole slouží jako záznamové okno všech přijatých a odeslaných znaků a není možné jej editovat. Menší textové pole lze editovat a potvrzením tlačítka Poslat nebo stisknutím tlačítka enter se řetězec z tohoto pole odešle na vybraný sériový port.
Obr. 4.1 – Gui, konzolový režim Primárním cílem tohoto režimu je kontrola zaslaných řetězců z počítače. Mohou se zde posílat diagnostické dotazy a přímé příkazy natočení jednotlivých servomotorů. Dialogové okno slouží také jako výpis různých informací nebo výjimek při komunikaci jako např.: port používán, port nedostupný nebo port otevřen. Tlačítko Smazat smaže doposud uloženou historii.
8
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
4.4 Grafický režim Důležitou částí řídicího programu je grafický režim. Skládá se z pěti posuvníků a software jejich hodnotu v reálném čase přeposílá do robotického manipulátoru. Po vybrání určitého posuvníku můžeme jeho hodnotu měnit šipkami nebo kurzorem myši. Číselná hodnota vedle posuvníků udává hodnotu registru OCR0 a úhel přepočítaný na stupně. Údaj je posílán pouze při změně hodnoty posuvníku, aby nedocházelo ke zbytečnému přetěžování komunikace. Každý jednotlivý servomotor má svůj posuvník. Při režimu plynulé regulace je uzamčen posuvník pro druhý servomotor a servomotor s pořadovým číslem 1 a 2 se natáčejí synchronně kupředu. Omezení rozsahu pohybu je možné provést stiskem tlačítka Proveď změnu a vyplněním textových polí Min a Max. Vyplňovaná hodnota pro registr OCR0 je programem automaticky převedena na úhel natočení ve stupních. Pro nutnost převést robotickou paži do klidového režimu slouží tlačítko Reset v pravém horním rohu. Kalibrace výchozí pozice může být upravena, ale při spuštění programu je přednastavena.
Obr. 4.2 – Gui, grafický režim Důležitost grafického režimu je velmi vysoká. Pro potřebu sjednotit odesílání informací do robotického manipulátoru bylo třeba odesílat informace pouze z jednoho místa. Důvodem je přehled o aktuálním stavu servomotorů. Konzolový a plánovací režim tedy komunikují s elektronikou řídicí desky změnou v posuvnících na záložce grafický režim. Je tak umožněno číst aktuální pozice servomotorů, aniž bychom museli komunikovat s mikropočítačem. Tato komunikace je realizována pouze v případě, kdy párujeme aplikaci s řídicí elektronikou. Tehdy mikropočítač odešle údaje o aktuálních pozicích servomotorů. Další možností grafického režimu je zapnutí plynulé regulace. Tento režim propojí servomotory 1 a 2. Ovládány jsou poté synchronně jedním posuvníkem a robotická paže je natahována kupředu plynulým pohybem dvou servomotorů.
9
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
4.5 Plánovací režim Režim budoucího plánování je z hlediska autonomního řízení robotické paže nejdůležitější. Je zde možnost dynamicky nastavovat počet kroků s časovým harmonogramem, počet opakování a plynulost pohybu. Uživatel tak má možnost si sestavit svojí vlastní sekvenci pohybů. Nejsložitější částí tohoto režimu byl návrh algoritmu pro plynulé řízení servomotorů. Algoritmus automaticky dopočítá v závislosti na zvolené plynulosti počet kroků mezi úhlem natočení v čase t a v čase t+1. Děje se tak v cyklu pro všechny servomotory. Kroky jsou rovnoměrně rozděleny do celého prázdného rozsahu. Děje se tak i v případě, když robotická paže najíždí na sekvenční pohyb z jiné pozice. Ta je zjišťována aktuálním stavem posuvníku grafického režimu.
Obr. 4.3 – Gui, plánovací režim Důležitá vlastnost tohoto režimu je možnost ukládání. Uživatel tak může svojí vytvořenou sekvenci uložit do externího textového souboru a pří dalším spuštění opětovně nahrát. Záložka otevřít se nachází pod položkou Soubor a ukládání je realizováno tlačítkem Uložit v kartě plánovacího režimu.
10
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
5.
Konstrukce Při návrhu mechanických dílů robotického manipulátoru byl kladen důraz na co nejjednodušší výrobu a nízké náklady výroby. Servomotory MG995 mají normalizovanou velikost a proto je k dispozici příslušenství v podobě zhotovených dílčích, hliníkových součástí. Před samotnou konstrukcí byla provedena vizualizace pro jasné rozvržení dílů a přehledu o stupních volnosti. 5.1 Návrh Návrh robotického manipulátoru spočíval v provedení vizualizace ve studiu Autodesk Inventor Professional 2012. Veškeré konstrukční komponenty robotického manipulátoru byly vytvořeny jako samostatné díly. Následně bylo vytvořeno plátno, na kterém se všechny komponenty propojily pomocí vazeb. Vazby jsou rozděleny na dvě kategorie. Vazba osy je použita v případě kulatých řezů např. pro šrouby nebo jako hřídel servomotorů. Druhá vazba, tzv. stěnová je využita v případě přiléhajících dílů. Vizualizace je provedena v měřítku 1:1 a veškeré díly mají rozměry převzaté z technických dokumentací. V případě potřeby byl díl přeměřen posuvným měřidlem. Tloušťka dílů je 2 mm. Tloušťka základny je 8 mm. Konstrukce robotického manipulátoru je navržena z následujících dílů: držák tvaru typu „long U“,
držák tvaru typu „L“,
držák tvaru typu „waist“,
multifunkční držák tvaru,
ložisko s pouzdrem,
disk typu „metal horns“,
hliníkový manipulátor,
základna železná.
Téměř všechny konstrukční komponenty ve vizualizaci jsou vytvořeny jako jeden samostatný díl. Výjimka nastává u hliníkového manipulátoru, který je tvořen z třinácti samostatných dílů a je následně složen.
11
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
5.2 Vizualizace robotického manipulátoru Celková vizualizace robotického manipulátoru se skládá ze složení všech konstrukčních dílů. Současně byla provedena vizualizace servomotorů a DPS pro jasné rozvržení jednotlivých komponent. Součástí přílohy je okótovaný technický výkres.
Obr. 5.1 – Vizualizace robotického manipulátoru Armini Závěr Návrh robotického manipulátoru a jeho následná vizualizace přispěli k představě o konečné realizaci. Vizualizace v měřítku 1:1 byla následně okótována a je součástí přílohy. Při realizaci robotického manipulátoru Arminy byly ověřeny výhody a nevýhody všech použitých algoritmů. Algoritmus při obsluze přerušení od Čítače/Časovače 2 v režimu CTC pracuje spolehlivě, ale pro další použití není vhodný z důvodu nízkého rozlišení a maximální délky impulzu pouze 2 ms. To odpovídá úhlu natočení 135. Použití 8bitového čítače tedy není příliš vhodné, avšak pro účely robotického manipulátoru bylo rozlišení i rozsah dostatečné a jeho následná aplikace v jiných robotických systémech není vyloučená. Globální algoritmus, který měl za úkol obsluhovat tlačítka, vykreslovat znaky na displej a komunikovat skrze USART pracuje stabilně a spolehlivě. Počítačová aplikace „Armini control software“ naprogramovaná v jazyce Java využívá výhod objektového programování a přenositelné platformy. Program umožňuje komunikovat s různým komunikačním nastavením a proto je vhodný ke komunikaci s jinými zařízení. Při komunikaci s robotickým manipulátorem nebylo využito žádných paritních bitů, ani nebyly potvrzovány přijaté bity. Přesto komunikace při testování probíhala spolehlivě a nedocházelo ke ztrátám bitů. Všechny body zadání byly úspěšně splněny a otestovány. Robotický manipulátor byl nad rámec zadání inovován modulem bluetooth a plánovacím režimem v aplikaci pro osobní počítač. Armini tak dostatečně demonstruje funkčnost všech dílčích subsystémů a použitých algoritmů. 6.
12
STOČ 2015 - Studentská tvůrčí a odborná činnost 23. dubna 2015, FAI UTB ve Zlíně
Literatura [1] Datasheet 74HC4067. ©2006-2015 NXP SEMICONDUCTORS. Nxp.com [online]. [cit. 2015-04-01]. Dostupné z: http://www.nxp.com/documents/data_sheet/74HC_HCT4067.pdf [2] Datasheet ATmega8A. © 2013 ATMEL CORPORATION. Atmel.com [online]. [cit. 2015-04-01]. Dostupné z: http://www.atmel.com/Images/Atmel-8159-8-bit-AVRmicrocontroller-ATmega8A_datasheet.pdf [3] Datasheet FT232R. © FUTURE TECHNOLOGY DEVICES INTERNATIONAL LTD. 2015. Ftdichip.com [online]. [cit. 2015-04-01]. Dostupné z: http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf [4] HEROUT, P. Java: grafické uživatelské prostředí a čeština. 2. vyd. České Budějovice: Kopp, 2007, 316 s. ISBN 978-80-7232-328-9. [5] HEROUT, Pavel. Učebnice jazyka Java. 5., rozš. vyd. České Budějovice: Kopp, 2010, 386 s. ISBN 978-80-7232-398-2. [6] HROUDA, M. Model linky na rozřazování barevných víček od PET lahví [online]. Bakalářská práce. Praha: České vysoké učení technické v Praze – Fakulta elektrotechnická, katedra řídicí techniky. 2010 [cit. 2015-04-01]. Vedoucí práce: M. Hlinovský. Dostupné z: http://www.micovo.cz/data/files/pidiarm.pdf [7] KUBIČKA, M. Hexapod 2.díl: jak na řadič 16ti modelářských servopohonů. Robotika.cz [online]. 2010 [cit. 2015-04-01]. Dostupné z: http://robotika.cz/articles/hexapod2/cs [8] OBR, V. Multiplexace řízení serv - projekt MMIA [online]. Závěrečná práce. Brno: Vysoké učení technické – Fakulta elektrotechniky, ústav radioelektroniky. 2013 [cit. 2015-04-01]. Dostupné z: http://www.urel.feec.vutbr.cz/MIA/2013/obr/ [9] SAMAIYA, D. Servo Motor Control. Electroons.com [online]. 2013 [cit. 2015-04-01]. Dostupné z: http://www.electroons.com/electroons/site_index.html
13