<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3c.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title> STOPWATCH01B </title><meta name="keywords" content="stavebnice MLAB stopky"><meta name="description" content="Projekt MLAB, Stopky STOPWATCH01B"><!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --><link rel="StyleSheet" href="../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"><link rel="shortcut icon" type="image/x-icon" href="../../../../Web/PIC/MLAB.ico"><script type="text/javascript" src="../../../../Web/JS/MLAB_Menu.js"></script><!-- AUTOINCLUDE END --></head><body lang="cs"><!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --><!-- ============== HLAVICKA ============== --><div class="Header"><script type="text/javascript"><!--SetRelativePath("../../../../");DrawHeader();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --><!-- ============== MENU ============== --><div class="Menu"><script type="text/javascript"><!--SetRelativePath("../../../../");DrawMenu();// --></script><noscript><p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- ============== TEXT ============== --><div class="Text"><p class="Title">Stopky</p><p class=Autor>Milan Horkel</p><p class="Subtitle">Zařízení STOPWATCH je časomíra určená pro měření časůprůjezdu solárních robotů určenou dráhou. Kromě vlastního měření časůpomocí laserové závory na startu a cíli odesílá naměřený časprostřednictvím sériové linky do nadřazeného počítače.</p><p class="Center"><img width=398 height=357 src="Pictures/image001.jpg"alt="Obrázek stopek"></p><p><a href="../STOPWATCH01B.cs.pdf"><img class="NoBorder"src="../../../../Web/PIC/FileIco_PDF.ico"alt="Acrobat"> PDF verze</a></p><h1> Technické údaje </h1><table><tr><th> Parametr </th><th> Hodnota </th><th> Poznámka </th></tr><tr><td> Napájení </td><td> 9 až 15V </td><td> cca 40mA včetně laserů </td></tr><tr><td> Čidla </td><td> Start / Stop </td><td> Laser a fototranzistor </td></tr><tr><td> Měření času </td><td> Do 1000s </td><td> Rozlišení 1ms </td></tr><tr><td> Přenos dat </td><td> RS232 </td><td> Textový formát </td></tr><tr><td> Rozměry </td><td> 102 x 81 x 21 mm </td><td> Bez přečnívajících konektorů, výška nad základnou. </td></tr></table><h1> Popis konstrukce </h1><h2> Úvodem </h2><p>Časomíra je řízena jednočipovým procesorem U3 PIC16F84. K procesoruje přímo připojen dvouřádkový LCD modul pro zobrazení časů, piezo elementpro akustickou indikaci a obvod MAX232 pro převod úrovní na sériovou linkuRS232.</p><p>Napájení zajišťuje stabilizátor 7805 s ochrannou diodou. Pro napájeníje možno použít libovolný stejnosměrný zdroj o napětí v rozmezí 9 až 15V.Celková spotřeba je cca 40mA. Větší část proudu teče do připojenýchlaserových ukazovátek optické závory, vlastní spotřeba je cca 15mA.</p><h2> Laserová optická závora </h2><p>Vzhledem k tomu, že se soutěže solárních robotů odehrávají při velmisilném osvětlení bylo nutné použít pro optickou závoru dostatečně silnéhozdroje světla. Při použití LED diody by bylo nutné použít pomocné optikya to by značně komplikovalo konstrukci. Proto byly použity jakozdroje světla laserová ukazovátka. V současné době jsou již laserováukazovátka natolik levná, že stojí asi jako levnější lupa a navíc poskytujívelmi intenzivní úzký paprsek, který se poměrně málo rozbíhá. Není pakproblém asi se vzdáleností ani s okolním osvětlením.</p><p>Na přijímací straně je použit fototranzistor umístěný v kousku měděnétrubky (stínění).</p><p>Optická závora s laserem je schopna detekovat všechny objekty tlustšínež 1mm na vzdálenost několika metrů.</p><h3> Laserová dioda </h3><p>Samotná laserová dioda je neobyčejně choulostivá součástka, kterou lzevelmi snadno zničit:</p><ul><li> Příliš intenzivním generovaným světlem </li><li> Napětím v závěrném směru </li><li> Přehřátím </li></ul><p><i>Laserová dioda se zničí velmi rychle a stačí k tomu jediný impulsstatické elektřiny, proto pozor při pájení. Je lépe použít mikropáječkumísto oblíbené pistolové páječky. Kromě toho při přetížení se velmizkracuje životnost diody. Při příliš velkém proudu se dioda „vysvítí“za pár desítek sekund. Patrně hlavním místem, kde dochází k poškozeníje plocha, kde generované světlo vystupuje z čipu laserové diody.Tato plocha je rozměru řádu setin až desetin milimetru a je pokrytaspeciální vrstvou, která se chová jako polopropustné zrcadlo.</i></p><p>Proto je vhodné použít už hotové laserové ukazovátko (které je navíclevnější než samostatně koupená laserová dioda, o optice nemluvě).Některá laserová ukazovátka mají v sobě ochranný obvod s tranzistoryale jiná mají v sobě jen omezovací odpor a je tedy lepší na ochranu vůbecnespoléhat. Z ukazovátka odstraníme tlačítko a vstup napájení (tam kdebyla připojena baterie, ne přímo na diodě) pro jistotu překleneme keramickýmkondenzátorem 100nF. Původní ochranné obvody nebo omezovací odporv ukazovátku ponecháme.</p><p>Na desce časomíry je omezovací odpor a trimr, kterým se nastavuje proudlaserem. Proud je vhodné nastavit kousek nad úroveň, kdy dioda začnelaserovat. To se pozná podle toho, že při postupném zvyšování proudu diodazpočátku svítí jen velmi málo ale po překročení prahového proudu se přidalším zvětšování proudu začne velmi rychle zvyšovat intenzita generovanéhosvětla. Pro běžné laserové diody z ukazovátek je prahový proud řádu10 až 20mA.</p><p>Prahový proud se mění s teplotou a dioda se obvykle nezničí proudemale příliš silným generovaným zářením. Proto doporučuji nastavit proudna maximálně cca 1.5 násobek prahového proudu aby ani při změně teplotynedošlo ke zničení laserové diody.</p><h3> Mechanická konstrukce závory </h3><p>Fotototranzistor opatrně připájíme na třípinový hřebínek a teni s diodou připájíme na konec měděné trubičky vhodného průměru. Jájsem použil 5cm dlouhý kousek chladírenské trubičky o vnějším průměru 6mm.Konec trubky ve opatřen zářezem (na šířku plochého pilníku) do kterého jekonektorový hřebínek zapájen. Konektor je k trubce ještě přilepenkapkou rychlého epoxidového lepidla.</p><p>Z laserového ukazovátka opatrně vykucháme vnitřek (v novějšíchukazovátkách je vnitřek vlepen do trubky ukazovátka), odstranímetlačítko, mikropáječkou připájíme ochranný kondenzátor a přívodní konektor.Konektor opět přilepíme rychlým epoxidovým lepidlem aby byl mechanickydobře fixovaný a nakonec přes celé ukazovátko přetáhneme smšťovací bužírku(laser má obvykle na kostře plus).</p><p>Mechanické umístění a nasměrování čidel je již věcí uživatele. Jakozákladnu lze použít kousek ocelové páskoviny ze spodní stranyopatřené třemi nožičkami. Lasery jsou na jedné straně nastavitelné pomocíšroubu pro nasměrování ve svislém směru. Více napoví obrázky.</p><p><img width=291 height=189 src="Pictures/image002.jpg"alt="Čidlo s fototranzistorem"> <img width=324 height=189 src="Pictures/image003.jpg"alt="Čidlo s fototranzistorem"></p><p><img width=290 height=189 src="Pictures/image004.jpg"alt="Zdroj světla s laserem"> <img width=272 height=189 src="Pictures/image005.jpg"alt="Zdroj světla s laserem"></p><p>Celá časomíra může být složena do cestovního balení. Kabely profototranzistory je vhodné použít stíněné, pro lasery to není třeba.</p><p><img width=384 height=287 src="Pictures/image006.jpg"alt="Cestovní balení časomíry"></p><h2> Mechanická konstrukce </h2><p>Časomíra je realizována na jednostranné desce plošného spoje a částečněosazena SMD součástkami. Pod displejem jsou 2 drátové propojky apřilepený piezo element.</p><p>Programovací hřebínek J7 je zahnutý směrem k okraji desky, vypínačSW0 rovněž.</p><p>Stabilizátor a elektrolytický kondenzátor je osazen naležato.</p><p>Displej je přišroubován čtyřmi šrouby M2.5 k desce. Pro vymezenívzdálenosti displeje od plošného spoje se použijí distanční sloupkydlouhé 5mm. Hřebínek displeje se pájí až po přišroubování displeje.</p><p>Konektor pro připojení čidel je upravený takto:</p><ul><li> Na dvojice pinů 1-2, 11-12 a 19-20 jsou nasazeny apřipájeny juperové propojky </li><li> Dvojice pinů 7-8 je uštípnutá a slouží jako klíč propřipojení laserů. </li></ul><p>Při programování procesoru musí být čidla neaktivní. Pokud nejsou čidlapřipojená je nutné buď nastavit trimry P3 a P4 úplně vlevo nebo místočidel dát na vstupy zkratové propjky.</p><h2> Schéma zapojení </h2><p>Srdcem zařízení je procesor U3 PIC16F84. Tento konkrétní typ jsem zvolilprotože jsem jej měl v šuplíku ale po přeložení je možné použíti jiný typ procesoru PIC v pouzdru s 18 vývody. Procesor jemožné naprogramovat přímo v zapojení pomocí ISP konektoru J7 azresetovat tlačítkem SW4. Procesor běží na 4.0MHz.</p><p><img width=662 height=506 src="Pictures/image007.gif"alt="Schéma procesorové části"></p><p>Piezo element je přímo přilepený na plošný spoj pod LCD displejem.Pod elementem je vhodné vyvrtat otvor skrz plošný spoj (pozor naspoje) o průměru cca. 2mm a piezo element přilepíme prostřednictvímmezikruží z oboustranně lepící samolepky na plošný spoj.</p><p>Napájení zajišťuje stabilizátor U1 s ochrannou diodou D1, kteráchrání časomíru před přepólováním.</p><p><img width=526 height=137 src="Pictures/image008.gif"alt="Schéma zdrojové části"></p><p>K procesoru je připojen dvouřádkový LCD displej U2 pro zobrazenínaměřených časů a piezo element (na konektor J6) pro akustickouindikaci. Displej se kupuje na <a href="http://www.hw.cz/">www.hw.cz</a>s označením SC1602A ale je možné přímo použít libovolný dvouřádkovýLCD modul, který bude na plošný spoj pasovat a bude používat „standardní“Hitachi řadič. Kontrast se nastavuje trimrem P5.</p><p><img width=398 height=266 src="Pictures/image009.gif"alt="Připojení displeje"></p><p>Komunikaci s osobním počítačem probíhá prostřednictvím rozhraní RS232.Napěťové úrovně převádí obvod U4 MAX232. Komunikace nevyužívá hardwarovéhořízení toku dat.</p><p><img width=350 height=357 src="Pictures/image010.gif"alt="Převodník pro RS232"></p><p>Pro zjištění průjezdu robota startem a cílem je použita laserová závorasestávající z laserového ukazovátka jako zdroje světla na jedné straněa fototranzistoru na straně protější. Laserové ukazovátko je napájenoz časomíry přes odpor R1+P1 a R2+P2 pro nastavení pracovníhoproudu.</p><p>Příjem signálu z fototranzistorů zajišťují zesilovače s tranzistoryQ1 a Q2. Trimry P3 a P4 slouží pro nastavení rozhodovací úrovně pro rozlišenísvětla a tmy. Pro snadné nastavení slouží testovací režim při kterém časomíravydává tón po dobu přerušení jednoho z paprsků. Kondenzátor C4 a C5slouží k omezení případného vstupujícího rušní.</p><p>Časomíru je možné také ovládat ručně prostřednictvím tlačítek SW1 a SW2.Tlačítko SW3 slouží pro spuštění testovacího režimu (testuje se jen přizapnutí aby se nemohlo stát, že bude testovací režim spuštěn omylem).</p><p><img width=600 height=526 src="Pictures/image011.gif"alt="Vstupní obvody"></p><h1> Osazení a oživení </h1><h2> Osazení </h2><p><img width=454 height=384 src="Pictures/image012.jpg"alt="Osazení - strana součástek"></p><p><img width=454 height=363 src="Pictures/image013.jpg"alt="Osazení - strana spojů"></p><table class="Soupiska"><tr><th> Reference </th><th> Hodnota </th></tr><tr><th colspan="2"> Odpory </th></tr><tr><td> R1, R2, R3, R4, R6, R7, R14 </td><td> 100 </td></tr><tr><td> R10 </td><td> 1k </td></tr><tr><td> R5, R8, R9, R11, R12, R13 </td><td> 10k </td></tr><tr><th colspan="2"> Odporové trimry </th></tr><tr><td> P1, P2 </td><td> 250/PT10MVE250 </td></tr><tr><td> P3, P4, P5 </td><td> 10k/PT10MVK010 </td></tr><tr><th colspan="2"> Kondenzátory </th></tr><tr><td> C8, C9 </td><td> 22pF </td></tr><tr><td> C4, C5 </td><td> 33nF </td></tr><tr><td> C2, C3, C6, C7, C10, C11, C12, C13, C14 </td><td> 100nF </td></tr><tr><td> C1 </td><td> 1000uF/16V </td></tr><tr><th colspan="2"> Diody </th></tr><tr><td> D1 </td><td> 1N4007 </td></tr><tr><th colspan="2"> Tranzistory </th></tr><tr><td> Q1, Q2 </td><td> BC846SMD </td></tr><tr><th colspan="2"> Integrované obvody</th></tr><tr><td> U1 </td><td> 7805 </td></tr><tr><td> U2 </td><td> LCD_SC1602A </td></tr><tr><td> U3 </td><td> PIC16F84/SO </td></tr><tr><td> U4 </td><td> MAX232SMD (úzký) </td></tr><tr><th colspan="2"> Krystaly </th></tr><tr><td> X1 </td><td> QM4.0MHz </td></tr><tr><th colspan="2"> Mechanické součásti </th></tr><tr><td> J1 </td><td> K375A </td></tr><tr><td> J2 </td><td> JUMP2X10_90 </td></tr><tr><td> J3 </td><td> CANNON9M_90 </td></tr><tr><td> J6 </td><td> JUMP2 </td></tr><tr><td> J7 </td><td> JUMP6 </td></tr><tr><td> SW0 </td><td> P-B143 </td></tr><tr><td> SW1, SW2, SW3 </td><td> P-DT6BL </td></tr><tr><td> SW4 </td><td> P-B1720 </td></tr><tr><th colspan="2"> Konstrukční součásti </th></tr><tr><td> 5ks </td><td> JUMPER </td></tr><tr><td> 4ks </td><td> Šroub M2.5x8, válcová hlava </td></tr><tr><td> 4ks </td><td> Matice M2.5 </td></tr><tr><td> 4ks </td><td> Matice M3 </td></tr><tr><td> 4ks </td><td> Šroub M3x12, křížový, válcová hlava </td></tr><tr><td> 4ks </td><td> Podložka M3 </td></tr><tr><td> 4ks </td><td> Sloupek M3x5 </td></tr></table><h2> Oživení a nastavení </h2><p>Nejprve kontrolujeme napájecí napětí za stabilizátorem (+5V). Ponaprogramování procesoru by měla časomíra ožít. Místo fototranzistorůprovizorně dáme propojky a otestujeme, zda časomíra reaguje na tlačítkaSTART a STOP a zda posílá data prostřednictvím rozhraní RS232.</p><p>Nastavení čidel se provádí v testovacím režimu. Nejdříve nastavíme(trimry P1 a P2) proud lasery kousek nad bod, kdy začínají laserovat(od tohoto bodu se rychle zvětšuje svítivost se vzrůstajícím proudem).Nastavujeme raději menší proud.</p><p>Poté nasměrujeme lasery a čidla proti sobě a připojíme čidlas elektronikou. Při zapnutí tržíme tlačítko TEST a tím přejdeme dotestovacího režimu, kdy časomíra vydává tón jakmile je paprsek přerušený.Trimry P3 a P4 nastavují rozhodovací úroveň čidel. Správně nastavená čidlareagují na předmět o tloušťce cca 1mm i při vzdálenosti čidel 5m od sebe.</p><p>Po zresetování je časomíra připravena k činnosti.</p><h1> Programové vybavení </h1><h2> Uživatelský popis </h2><p>Časomíra má jediný úkol. Při aktivaci čidla START spustit měření časua při aktivaci čidla STOP zobrazit změřený čas a výsledek odeslatnadřazenému počítači přes sériovou linku RS232 (rychlostí 9600Bd 8 bitůbez parity a bez řízení přenosu). Kromě toho časomíra při každé aktivacičidla krátce pípne.</p><p>Aby bylo možné snadno seřídit čidla má program ještě testovací režim,při kterém vydává tón po celou dobu aktivace čidel. Do testovacího režimuse vstupuje tehdy, pokud je stlačeno tlačítko TEST (SW3) v okamžikuzapnutí časomíry. Testovací režim se ukončuje vypnutím časomíry.</p><h2> Jak program funguje vevnitř </h2><p>Program pro procesor PIC byl napsán v jazyce C a přeložen pomocípřekladače CCS (viz <a href="http://www.ccsinfo.com/">http://www.ccsinfo.com</a>).</p><p>Program je řízen přerušením od změny stavu portu B na který jsou připojenačidla (a tlačítka). Stav programu je uložen ve stavové proměnné State_runa jsou celkem 3 stavy:</p><ul><li> 0) stav klidu (čeká se na signál START)</li><li> 1) Stav běhu stopek (stopky běží a čeká se na signál STOP)</li><li> 2) Stav po ukončení běhu stopek (stopky změřily čas a obsluhuje sezobrazení a přenos)</li></ul><p>V režimu běhu stopek se čas čítá na základě přerušení od časovače.Perioda přerušení je 256us a čítač času je realizován tak, aby se právě1x za hodinu protočil. Čas se průběžně zobrazuje v sekundácha milisekundách.</p><p>Při aktivaci signálu START nebo STOP se nastaví do proměnné Beep početpůlperiod pro pípnutí. Vlastní pípnutí se provádí v obsluzepřerušení od časovače.</p><p>Protože procedura pro zobrazení času je velmi dlouhá (obsahuje převodyčísel na řetězce a dělení) je tato procedura společná jak pro výpisna displej tak i pro přenos přes sériovou linku. Na které výstupyzobrazení půjde řídí stavová proměnná PutCharMode.</p><p>Testovací režim nepoužívá přerušení, je to obyčejná smyčka opakovanéhočtení a generování pípání pomocí programově realizovaného zpoždění.Do testovacího režimu se vstupuje pokud při zapnutí stlačeno tlačítko TEST,testovací režim nelze ukončit jinak než vypnutím časomíry (resetem).</p><p>Hlavní program provádí tyto činnosti:</p><ul><li> Inicializace LCD a výpis verze jak na LCD tak i na RS232 </li><li> Inicializace vstupů s stavových proměnných </li><li> Test a případné spuštění testovacího režimu </li><li> Inicializace časovače </li><li> Spuštění nekonečné hlavní smyčky </li><li><ul><li> Nulování čítače a stavové proměnné State_run </li><li> Povolení obsluhy přerušení </li><li> Čekání dokud nedojde k přechodu k jinému než klidovému stavu </li><li> Po dobu běhu průběžné opakované vypisování času </li><li> Po ukončení režimu běhu okamžité vypsání změřeného času </li><li> Pauza (v této době ještě zní pípnutí od signálu STOP) </li><li> Výpis změřeného času na RS232 </li></ul></li></ul><p>Program je bohatě komentovaný a je proto snadné se v něm orientovat.Proto je podrobnější popis zbytečný.</p></div><!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --><!-- ============== PATIČKA ============== --><div class="Footer"><script type="text/javascript"><!--SetRelativePath("../../../../");DrawFooter();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --></body></html>