Studentská tvůrčí a odborná činnost STOČ 2017 HW vývojový systém pro robotiku Bc. David Wunderlich FAI UTB ve Zlíně 20. dubna 2017 FAI UTB ve Zlíně
Klíčová slova: Espruino, Lego, STM32, Altium, JavaScript. Anotace: Cílem práce je vyvinout HW systém s centrální řídicí jednotkou, senzorovými moduly a aktuátory, který bude používán ve výuce kroužků a kurzů robotiky. Řešení musí umožňovat jednoduché a spolehlivé propojování jednotlivých komponent odolné vůči chybám obsluhy tak, aby systém mohl být používán i pro výuku na středních a základních školách. 2
Obsah 1. Požadavky pro vývoj SW... 4 2. Hlavní vývojová deska... 5 3. Bateriový modul... 6 4. DC motor... 7 5. Senzor čáry... 8 6. Bzučák... 9 7. Ostatní moduly... 10 7.1 Tlačítko... 10 7.2 Potenciometr... 10 7.3 Ultrazvukový modul... 10 8. Cena výroby... 10 9. Závěr... 11 Literatura... 11 3
1. Požadavky pro vývoj SW Pro vytvoření hw systému, určenému k vývoji robotických řešení, bylo nejdříve nutné stanovit požadavky pro možnosti vývoje na daném systému. Systém pro výuku programování musí být navržen tak, aby se s ním uživatel jednoduše a rychle seznámil. Tento systém bude také používán při výuce dětí ve věkové skupině 9 až 15 let, proto je jeden z hlavních požadavků možnost vytváření kódu pomocí grafického prostředí, které nebude vyžadovat psaní zdrojového kódu na klávesnici. Z na základě těchto požadavků bylo vybráno vývojové prostředí Espruino, které umožňuje psaní kódu v Javascriptu tak i pomocí grafických bloků. Espruino pracuje jako Javasciptový interpretr na mikroprocesorech. Tento systém obsahuje kompletní vývojové prostředí, které se instaluje jako aplikace do internetového prohlížeče Google Chrome. Další výhodou je, že se jedná o projekt s otevřeným zdrojovým kódem a nemá žádné poplatky za jeho využívání. [1] Obr. 1: Vývojové prostředí Espruino Na obrázku je zobrazeno vývojové prostředí, kdy na levé straně je konzole a v pravé části je okno pro psaní kódu, toto okno lze přepnout do grafického režimu pomocí spodního prostředního tlačítka. Levé horní tlačítko slouží k připojení vývojového prostředí k desce. Třetí prostřední tlačítko nahrává vytvořený kód do mikropočítače. [1] 4
2. Hlavní vývojová deska Při rozhodnutí o využití Espruina byly zmenšeny možnosti výběru vhodného mikroprocesoru. Ze zbylých možností byl vybrán mikroprocesor STM32 F407VET6 v pouzdře LPQF100, který má v poměru ke své ceně velkou hw výbavu. Bohužel, nelze využít všech možností daného mikroprocesoru, což je zapříčiněno požadavkem na jednoduché a spolehlivé propojení jednotlivých komponent, proto je pevně specifikována funkce každého pinu mikroprocesoru. Samotný vývoj hw probíhal v prostředí Altium Designer. Obr. 2: Zobrazení hlavní desky v programu Altium Pro bezpečné připojení modulů byl zvolen konektor RJ11, který má robustní konstrukci a nelze zaměnit jeho zapojení. Levá řada konektorů slouží, jako výstupní, kdy každý konektor může ovládat stejnosměrný motor a zpětně číst hodnotu kvadratického enkodéru. Pravá řada slouží k připojení senzorových modulů, kdy každý konektor umožňuje měření analogové hodnoty. Pro bezpečné čtení analogové hodnoty je využito napěťového děliče, který zvyšuje rozsah měřeného napětí a také operační zesilovač v zapojení napěťového sledovače. Není podmínkou vždy využít pouze tyto možnosti zapojení, ale je vždy třeba brát ohled na funkcionalitu jednotlivých konektorů, pro příklad ultrazvukový senzor lze zapojit i na výstupní konektor, protože využívá pouze 2 digitální signály. Na senzorové konektory je připojena i komunikace UART, která umožňuje komunikaci například s moduly stavebnice Lego Mindstorm, využití komunikace jako je UART a I2C má velký potenciál pro další moduly do systému. [2] Ve spodní části jsou pinové lišty, které umožňují připojení až šestnácti servomotorů, při využití standardních servomotorových konektorů může nastat situace, kdy je konektor zapojen obráceně a posunut, při čemž dojde k poškození servomotoru. Z tohoto důvodu je plánován kryt hlavní desky, který této situaci zamezí. V horní části se nachází ovládací panel s pěti tlačítky. Espruino v současné verzi neumožňuje nastavení pull up a pull down rezistorů a proto je nutné na desku osadit pull 5
down rezistory. U tlačítek je osazeno také osm signalizačních diod čtyři červené a čtyři zelené. Z důvodu velkého odběru proudu nelze napájet diody přímo z mikroprocesoru a je využito tranzistorového pole, které jednotlivé diody spíná. Deska také obsahuje další dvě signalizační diody, kdy první značí napájení a druhá úspěšné spuštění Espruina. USB konektor umístěný v pravé horní části slouží k propojení s vývojovým prostředím, také je využíván k napájení hlavní desky, Tento konektor také podporuje USB OTG a možnost napájení externího zařízení pomocí spínače napájení. Tento konektor je také vybaven ochranou proti elektrostatickým výbojům na napájecím a datových vodičích. Obr. 3: Zapojení USB Další dva konektory nacházející se v levé horní části slouží pro připojení SWD a WiFi modulu. Poslední z konektoru osazený uprostřed desky obsahuje nevyužité piny mikroprocesoru a v budoucnu bude využit k řízení displeje. Bateriové napájení je připojeno pomocí distančních sloupků, kdy každý sloupek představuje jednu napájecí větev a uzemnění. Rozdělení napájecích větví umožňuje napájet drivery motorů vyšším napětím, což umožní využití výkonnějších motorů. Samostatnou větev mají také servo konektory, které můžou mít velký proudový odběr. Oddělení jednotlivých napájecích větví pro napájení z USB je realizováno pomocí zapojení mosfet tranzistorů jako diody, výhoda tohoto zapojení je v malých výkonových ztrátách a nízkém úbytku napětí, ve srovnání s diodou. 3. Bateriový modul V prvních verzích bateriových modulů se uvažovalo nad dvěma variantami první s využitím dvoučlánkové Li-Pol baterie včetně nabíječky a balancování jednotlivých článků a druhá varianta s využitím čtyř NiMH článků včetně nabíjení a balancování článků. Vzhledem k finanční náročnosti těchto řešení z obou variant sešlo a byl vytvořen pouze modul s NiMH články bez nabíjení. 6
Důvody pro toto řešení jsou bezpečnost NiMH článků ve srovnání s Li-Pol, cena a jednoduché nabíjení. V současné době má téměř každý doma nabíječku tužkových baterii a tím také odpadá nutnost nabíječky přímo osazené na modulu. Bateriový modul je osazen mosfet tranzistorem, který slouží jako ochrana a napěťovým regulátorem pro 5V napájecí větev, servomotory a motor drivery jsou napájeny přímo z baterií. 4. DC motor Pro stejnosměrný motor byl vytvořen modul, který umožňuje jeho bezpečné zapojení pomocí RJ11 konektoru. Na modulu se také nachází kompletní elektronika pro kvadratický enkodér, který je realizován pomocí led diody a fototranzistorů. Úprava výstupního signálu je zajištěna pomocí PNP tranzistorů, které zesilují signál z fototranzistorů a schmittova klopného obvodu, který vyhladí signál na přesný obdélníkový.[3] Obr. 4: Schéma modulu DC motoru 7
5. Senzor čáry Obr. 5: Model DC modulu První senzory čáry byly vytvořeny s použitím levných senzorů, které rozeznávaly čáru jako binární hodnotu, tento způsob měření se ukázal jako nedostatečný, protože nebylo možné určit vzdálenost senzoru od čáry. Proto byl vytvořen modul, který snímá hodnotu i analogovou. Pomocí nově měřené hodnoty lze určovat vzdálenost senzoru od čáry a tím jemněji regulovat pohyb motorů. 8
Obr. 6: Schéma zapojení senzoru čáry Obr. 7: Model senzoru čáry 6. Bzučák Bzučák je jeden z jednodušších modulů, připojuje se na konektory určené pro servomotory a je řízen PWM signálem, což umožňuje zkušenějším uživatelům například zahrát melodii písničky. Nejdůležitější částí modulu je tranzistor, zajišťující spínání bzučáku a ochranná dioda, která je zapojena paralelně k bzučáku.[3] 9
Obr. 8: Zapojení bzučáku 7. Ostatní moduly Pro vytvoření dostatečné funkcionality systému do výuky robotiky byly vytvořeny další jednoduché moduly. 7.1 Tlačítko V některých případech není ideální používat tlačítka přímo osazená na hlavní desce, proto je vytvořen tlačítkový modul, který může fungovat například jako koncový spínač. 7.2 Potenciometr Jedná se o jednoduchý analogový modul, který je vhodný například pro nastavení regulace rychlosti motoru. 7.3 Ultrazvukový modul Pro ultrazvukový modul jsou vytvořeny pouze redukční destičky, pro připojení do systému, vytvoření vlastního návrhu ztrácí smysl při porovnání ceny výroby a nákupu kompletních modulů. 8. Cena výroby Výrobní cenu jde velmi těžce stanovit, protože zásadní vliv na cenu má počet vyráběných kusů. Při výrobě větších množství desek dojde k rozložení paušálních poplatků a tím klesá cena s každým navíc objednaným kusem. Při objednávání součástek má také velký vliv počet součástek, protože při přesáhnutí větších počtů u některých součástek dochází k výrazným slevám. Z těchto důvodů je potřeba kalkulovat cenu podle objednaných kusů. Při výrobě 30ks desek plošných spojů jsou náklady na výrobu v následující tabulce. 10
Gatema Výroba Příprava kus 30 ks Hlavní deska 1370 179,3 6749 Bateriový modul 1370 111,1 5369 Ultrazvukový senzor 0 61,2 1836,08 Potenciometr 0 61,2 1836,08 Senzor čáry 1 kanál 0 37,2 1116,83 Senzor čáry 2 kanál 0 103,692 3110,76 Tlačítko 0 70,49 2114,7 Stejnosměrný motor 0 104,2 3126,5 Celkem 2740 728,382 25258,95 Tabulka 1: Cena výroby desek plošných spojů 9. Závěr Cílem práce bylo vyvinout hardware pro výuku robotiky s využitím vývojového systému Espruino. Pro práci s vývojovým prostředím byla vytvořena centrální jednotka, která obsluhuje všechny připojené moduly. Návrh byl vytvořen s ohledem na odolnost konstrukce a výrobní náklady. Dále byly vyvinuty základní připojitelné moduly pro výuku robotiky. V současné době je tento hardware používán pro výuku kroužku robotiky. Vyvinutý systém je připraven pro vývoj nových modulů, které budou potřeba pro další ročníky kroužků robotiky. Literatura [1] Javascript for Microcontrollers. Espruino [online]. [cit. 2016-04-07]. Dostupné z: http://www.espruino.com [2] PINKER, Jiří. Mikroprocesory a mikropočítače. Praha: BEN - technická literatura, 2004. ISBN 80-730-0110-1. [3] ZÁHLAVA, Vít. Návrh a konstrukce desek plošných spojů: principy a pravidla praktického návrhu. 1. vyd. Praha: BEN - technická literatura, 2010, 123 s. ISBN 978-80- 7300-266-4. 11