MĚŘENÍ ČASU PRŮJEZDU TRASY Rok vypracování: 2017 Předmět: Název projektu: Vedoucí projektu: Konzultant: BROB Robotika Měření času průjezdu trasy prof. Ing. Luděk Žalud, Ph.D. Bc. Tomáš Lázna Autor 1: Martin Mičulka (183 137) Autor 2: Rostislav Moravec (186 143)
Zadání projektu: Navrhněte a realizujte systém pro měření času průjezdu trasy robotem založený na principu optické závory. Při návrhu uvažujte dvě varianty trasy okruh a z bodu A do bodu B. Realizujte rovněž komunikační interface s PC a vytvořte demonstrační aplikaci, která umožní vyčítat měřené časy. Volitelně doplňte systém o displej, který bude přímo vizualizovat výsledek měření. 1
Obsah 1. Úvod 3 2. Optická závora 4 2.1. Princip 4 2.2. Využití 4 2.2.1. Zabezpečení 4 2.2.2. Detektor výrobku 4 2.3. Schéma zapojení optické závory 5 2.4. Rozmístění součástek na plošném spoji přijímače a vysílače 6 2.5. Seznam součástek 7 3. Raspberry Pi 8 3.1. Raspberry Pi 2 Model B 8 4. Software 10 4.1. Ubuntu 10 4.2. Python 2.7 10 4.3. RPi.GPIO 10 4.4. Tkinter 10 5. Programová část 11 5.1. Okno programu 11 5.2. Funkce měření trasy z bodu A do bodu B 12 5.5 Funkce měření trasy na okruhu 5 kol 13 5.6 Hlavní funkce main 14 6. Závěr 15 Použitá literatura 16 Seznam obrázků 17 2
1. Úvod Tento projekt je zaměřen na řešení problematiky měření času průjezdu trasy založeném na principu optické závory. Při řešení tohoto problému je nutno zohlednit o jakou trasu se jedná. Jestli se jedná o trasu z bodu A do bodu B nebo o klasický okruh s jednou bránou. V prvním případu z bodu A do bodu B je nutné použití dvou optických závor, přičemž první generuje start impulz a druhá stop impulz. V druhém případě, kdy se jedná o okruh, je řešení jednodušší. Zde je potřeba pouze jedná závora která snímá oba impulzy (start a stop) a poté může vyhodnocovat i počty kol. Případně poté lze doplnit porovnávání jednotlivých průjezdu, který byl nejrychlejší. V první kapitole se věnujeme popisu optické závory, kterou jsme zvolili pro tento projekt. Je zde popsaný princip a zapojení této optické závory. Druhá kapitola je zaměřená na popis softwarové časti, která vyhodnocuje dané měření pomocí počítače Raspberry Pi 2. 3
2. Optická závora Jako optickou závoru jsme použili elektronickou stavebnici od firmy FLAJZAR s.r.o. Základem této závory je laser a fototranzistor. Přerušení paprsku je vyhodnocováno mikroprocesorem PIC12F629. Závora je umístěna na dvou deskách: řídící (deska přijímače) a na desce vysilače. Obě jsou propojeny dvojlinkou. 2.1. Princip V klidovém stavu laser svití na fototranzistor a relé drží. Když dojde k přerušení paprsku relé rozepne. Díky nastavení propojky je rozepnuté pouze na dobu 0,8 sek. Tímto přerušením se zároveň aktivuje měření času. Pro správnou funkčnost této závory musí být splněno pár podmínek: - vzájemná stabilita světelného zdroje a přijímače - mezi přijímačem a snímačem nesmí být jiná překážka než snímaný objekt - přijímač a vysilač musí být v jedné ose proti sobě 2.2. Využití Optické závory, které jsme zhotovili, mají i další praktické využití. 2.2.1. Zabezpečení Díky velkému dosahu laseru, který je podle výrobce až 100m, je možné použít optickou závoru i na zabezpečení většího objektu, jako jsou zahrady nebo vjezdy. Systém obsahuje možnost synchronizovaného blikání a příjmu o frekvenci 5Hz, což skoro znemožňuje obelhání systému, jako v případě trvalého svitu. 2.2.2. Detektor výrobku Při změně programu a kódu, by se dal náš systém použít i pro detekci chybějících výrobků na pásu, kdy by čekal na přerušení, které by se nedostavil, tím by detekoval, že výrobek chybí. 4
2.3. Schéma zapojení optické závory Obr. 1. Schéma zapojení 5
2.4. Rozmístění součástek na plošném spoji přijímače a vysílače Obr. 2. Rozložení součástek na plošném spoji 6
2.5. Seznam součástek IO1 naprogramovaný procesor PIC12F629 I/P IO2 stabilizátor 78L05 TO92 R1, R2 1k, RM5mm R3 10k, RM5mm R4 47R, RM5mm LASER FL5MW T1 BC557 nebo podobný T2 BC547 nebo podobný C1 100M / 16V C2, C3 100nF, RM2,5mm C4 47M / 10V D1 fototranzistor LTR4206 D2, D3 1N4148 J1,J2 2x2kolík + 2propojky SV1 svorkovnice 3 x 2pin, RM3,5mm SV2 svorkovnice 1 x 2pin, RM3,5mm Patice DIL8 pro IO1 Držák laseru kabelová příchytka + šroub RE1 KUAN S1A120000 Plošný spoj LASZV1 7
3. Raspberry Pi Raspberry Pi je jednodeskový počítač s deskou plošných spojů o velikosti platební karty. Vyvinula ho společnost Raspberry Pi Foundantion s cílem podpořit výuku informatiky na školách a používá ji mnoho amatérských programátorů. Výkon tohoto jednočipového počítače je srovnatelný se slabšími stolními počítači. Dá se k němu připojit monitor přes HDMI, dále taky myš a klávesnice, jelikož obsahuje USB porty. Je zde řada operačních systému podobných Linuxu, ale dá i Microsoft vyvinul vlastní OS(Windows 10 IoT Core) pro tyto přístroje. Na Raspberry Pi jdou také vyvíjet aplikace nebo ho můžeme použít jako multimediální přehrávač hudby a videa. Internet je samozřejmostí. 3.1. Raspberry Pi 2 Model B My máme k dispozici model Raspberry Pi 2 Model B. Jeho základem je SoC BCM2836 z rodiny ARM Cortex-A7 opět od firmy Broadcom, který obsahuje čtveřici procesorových jader s taktem 900 MHz, posílenou jednotkou SIMD a 1 GiB paměti RAM. Je zde grafický procesor VideoCore IV. Model obsahuje slot pro microsd kartu, čtyři porty USB 2.0, HDMI, ethernetový adaptér, a 4-pólový jack pro připojení stereo audio výstupu a kompozitního video výstupu. Obr. 3. Rozložení PINů 8
Obr. 4. Raspberry Pi 2 Model B 9
4. Software 4.1. Ubuntu Ubuntu je linuxová distribuce pro založená na Debian GNU/Linux pro servery a osobní počítače. Ubuntu rozděluje software na čtyři základní sekce, nazývané komponenty, které odrážejí rozdíly v licencování a úroveň poskytované podpory. Komponenta main obsahuje jen balíčky, které vyhovují licenčním podmínkám Ubuntu a jejichž podpora je zabezpečená týmem Ubuntu. Další komponenta restricted obsahuje software, který je podporovaný Ubuntu vývojáři, protože je důležitý, ale není dostupný pod vhodnou svobodnou licencí a proto není zahrnutý v main. Následuje komponenta universe obsahuje široký záběr softwaru, který může a nemusí mít restriktivní licenci, ale není podporovaný Ubuntu týmem. Nakonec existuje komponenta multiverse, která obsahuje nepodporované balíčky, nesplňující požadavky na svobodný software. 4.2. Python 2.7 Python je skriptovací jazyk, který vznikl v roce 1991. Python je implementován v jazyce C(CPython). A je dostupný jak ve zdrojovém kódu, tak i v přeložených instalačních balíčků. Podporuje více programovacích paradigmat, které jsou třeba objektově orientované programování, imperativní programování, procedurální programování nebo funkcionální programování. Je to zcela open source projekt, který běží na běžných platformách jako Unix nebo Windows. 4.3. RPi.GPIO Je modul pro komunikaci a kontrolu GPIO na Raspberry Pi. Tkinter se definuje na začátku programu import RPi.GPIO as GPIO. 4.4. Tkinter Je modul pro pro vytváření rozhraní skriptovacího jazyka Python pro Tk GUI toolkit. Tkinter se definuje na začátku programu from Tkinter import *. Díky němu, jsme byli schopni si grafické rozhraní našeho programu, rozvrhnout podle sebe. 10
5. Programová část 5.1. Okno programu Na levé části okna je časomíra pro měření trati z bodu A do bodu B, pomocí dvou optických závor. Část měření na okruhu měří postupně čas 5 ti kol a vypisuje je. Následně vypíše celkový čas. Pro spuštění měření se používají tlačítka start. Poté už stačí, aby objekt projel startem a dorazil do další brány. Funkce reset, vynulují změřené hodnoty a je možné další měření. 11
5.2. Funkce měření trasy z bodu A do bodu B 12
5.5 Funkce měření trasy na okruhu 5 kol 13
5.6 Hlavní funkce main 14
6. Závěr Tento projekt jsme si vybrali z důvodu velkého využití. Jedná se tedy o velice praktický projekt, který si vždy najde uplatnění. Bohužel se nám nepovedlo tento projekt dotáhnout do úplného konce, jelikož jsme měli velké problémy s pochopením jazyku Python, proto jsme nezvládli, vše co jsme měli v plánu. Navíc jsme chtěli naprogramovat manuální zadávání počtu kol, ale setkali jsme se s problémem načtení hodnoty do proměnné z textového pole. Přesto že tento projekt nedopadl podle našich představ, zadání jsme z větší míry splnili, tak v konečném důsledku jsme za něj moc rádi, jelikož nám umožnil nahlédnout do problematiky věcí, použitelných pro každodenní život. Díky němu jsme si prohloubili znalosti programování. Dozvěděli jsme se o možnostech využití počítače Raspberry Pi a určitě to není naposled, kdy jsme s ním pracovali. 15
Použitá literatura RIPKA, Pavel. Senzory a převodníky. 1. vydání. Praha: Vydavatelství ČVUT, 2005. 136 s. ISBN 80-01-03123-3 KUBIAS, Jaroslav. Učíme se programovat v jazyce Python [online]. In:. 2008. Dostupné z: http://howto.py.cz/index.htm In: Raspberry Pi Blog [online]. 2012 [cit. 2017-05-11]. Dostupné z: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/ In: TRÁVNÍK, A. Raspberry Pi [online]. 2013. Dostupné z: http://raspberrypi.webnode.cz/navody/casomira/ 16
Seznam obrázků Obr.1 : Schéma zapojení..5 Obr.2 : Rozložení součástek na plošném spoji 6 Obr.3 : Rozložení PINů na Raspbrry Pi...8 Obr.4 : Raspberry Pi 2 Model B..9 17