| Předchozí verze |
— | linefollower [2023/06/26 19:25] (aktuální) – adam |
---|
| ====== LineFollower ====== |
| |
| [[http://translate.google.com/translate?prev=hp&hl=cs&js=n&u=http%3A%2F%2Fprojects.adamh.cz%2FLineFollower&sl=auto&tl=en|English version]] |
| |
| **Stránka slouží pouze jako __DOPLNĚNÍ__ článku v časopise Robot revue, ne jako kompletní návod ke stavbě!** (článek vyšel v číslech [[http://robotrevue.cz/2010/4|4/10]] a [[http://robotrevue.cz/2010/5|5/10]]) |
| |
| LineFollower je malý robotek postavený na podvozku [[http://shop.snailinstruments.com/index.php?main_page=product_info&cPath=77&products_id=242|UMU-01]], kterého stavíme se **[[http://zbynek.php5.cz/|Zbyňkěm Moravcem]]**. Jeho hlavním úkolem je sledování čáry na soutěži [[http://www.robotika.sk/contest/2010/|ISTROBOT]] pod jménem **Bender** (ano, ten z Futuramy :-) ). Kromě sledování čáry musí být robot schopen objet překážku, kterou na soutěži může být cihla položená na čáře nebo tunel. |
| |
| Robot byl popsán v práci do Středoškolské odborné činnosti 2010 ([[http://soc.cz|SOČ]]) pod názvem **"Bender - robot sledující čáru"** (Adam Heinrich, Zbyněk Moravec), kterou si můete stáhnout [[http://dir.adamh.cz/soc2010/soc2010.pdf|zde]] (PDF, asi 5,1 MB). |
| |
| Mozkem robota je jednočip **ATmega16**, který spolu s H-můstkem **L293D** s PWM a Bluetooth modulem **OEMSPA310** sídlí na hlavní desce. Bluetooth modul poskytla firma [[http://spezial.cz|Spezial Electronic]] a slouží k dálkovému řízení, monitorování stavu senzorů a také k bezdrátovému programování robota. Robot je dále vybaven infračerveným dálkoměrem **GP2D120**, připevněným na mikroservu. Měří vzdálenost k překážce v rozsahu 4-30 cm a je možné jej natočit v rozsahu 0-180°. Ke snímání čáry robot používá pětici infračervených odrazových senzorů **QRD1114** připevněných na plošném spoji v přední části robota. |
| |
| S řízením také pomáhá panáček ze stavebnice Lego :-) |
| |
| Napáení zajišťuje 6 AAA akumulátorů Eneloop. Když se vybijí, je možné sáhnout po 12 V síťovém zdroji - je ale nutné změnit rychlost motorů. |
| |
| {{http://dir.adamh.cz/robot-linefollower/foto/linefollower1-small.jpg?200x150}} |
| {{http://dir.adamh.cz/robot-linefollower/foto/linefollower2-small.jpg?200x150}} |
| {{http://dir.adamh.cz/robot-linefollower/foto/top-small.jpg?200x150}} |
| |
| |
| ===== Hlavní deska ===== |
| |
| Hlavní deska je navržena jako oboustranný plošný spoj. Diskrétní součástky jsou v pouzdru SMD (vel. 1206), integrované obvody jsou v pouzdrech DIP a v paticích, aby je v případě problémů bylo možné vyměnit. |
| |
| {{http://dir.adamh.cz/robot-linefollower/foto/board1-small.jpg?400x300}} |
| {{http://dir.adamh.cz/robot-linefollower/images/mainboard-schematic.png?400x300}} |
| |
| Bluetooth modul je připojen speciálním SMD Board-To-Board konektorem Samtec (obrázek [[http://www.spezial.cz/connectblue/images/samtec.gif|zde]], který rovněž dodává firma Spezial Electronic (www.spezial.cz). Bluetooth je možné připojit i připájením kablíků, doplněním odporového děliče podle schématu a jejich připojením na konektor UART. Kablíkové řešení ale __nedoporučuji__, na této konkrétní konstrukci není ověřené //(Rx pin BT modulu je připojen na Tx pin mikrokontroléru a naopak)//: |
| |
| {{http://dir.adamh.cz/tank/bluetooth.png?250x200}} |
| |
| Bluetooth modul si nechte nastavit přímo u dodavatele, nastavení doma není příliš pohodlné: |
| |
| * Baudrate: 19200 kbps |
| * PIN: 0 (výchozí) |
| * HW Flow Control: none (Bez kontroly toku dat) |
| * Vzdálená konfigurace: zapnuta (Configuration over Air) |
| |
| |
| Za footprinty konektoru pro Bluetooth modul děkuji [[http://matejk.cz|Matěji Kubičkovi]]. |
| |
| |
| ===== Senzor čáry ===== |
| |
| Senzor čáry je popsán na stránce [[LineSensor]]. |
| |
| |
| {{http://dir.adamh.cz/line_sensor/foto.jpg?350x170}} |
| {{http://dir.adamh.cz/line_sensor/popisky.png?450x120}} |
| |
| |
| ===== Blokové schéma ===== |
| |
| {{http://dir.adamh.cz/robot-linefollower/images/schematic-cz-small.png}} |
| |
| (English: block scheme [[http://dir.adamh.cz/robot-linefollower/images/schematic-en.png|here]]) |
| |
| |
| ===== Video ===== |
| <html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/UpTokIYwrb8&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/UpTokIYwrb8&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html> |
| |
| Jeden z prvních pokusů o sledování čáry s velmi primitivním algoritmem. |
| |
| ------------- |
| <html><br></html> |
| |
| |
| <html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/bKYoy2BibnA&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/bKYoy2BibnA&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html> |
| |
| [[http://zbynek.php5.cz|Zbyňkův]] algoritmus zabraňující robotovi spadnout ze stolu (naprogramovaný po několika zkušenostech s pádem - robot naštěstí pokaždé přežil :-) ) |
| ------------- |
| <html><br></html> |
| |
| |
| <html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gh4xgnkKwIo&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gh4xgnkKwIo&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html> |
| |
| Algoritmus použitý v soutěži [[http://www.robotika.sk/contest/2010/|ISTROBOT 2010]] (sledování čáry, vyhledání a odtlačení kostky a objíždění překážek). |
| |
| ===== Programování robota ===== |
| |
| ==== Nahrání bootloaderu ==== |
| |
| Bootloader umožňuje bezdrátové probramování robota pomocí rozhraní Bluetooth. |
| |
| 1) Stáhněte ZIP archív s bootloaderem uvedený na konci stránky. |
| |
| 2) Postavte si programátor pro AVR - ten nejjednodušší se jmenuje STK200, připojuje se na paralelní port počítače (LPT) a jeho schéma je [[http://robotika.cz/guide/blink/stk200.png|zde]]. Skládá se z konektoru na LPT, čtyř rezistorů a pětižilného kabelu. |
| |
| 3) Nahrajte program do jednočipu. To se dá udělat například programem avrdude, který je obsažen v toolchainu [[http://winavr.sourceforge.net/|WinAvr]]. Příkaz pro naprogramování (v příkazovém řádku) vypadá takto: |
| |
| **avrdude -p m16 -c stk200 -U flash:w:main.hex -U lfuse:w:0xff:m -U hfuse:w:0xd8:m** |
| |
| * m16 je typ mikrokontroléru (ATmega16). |
| * stk200 je typ programátoru. |
| * -U flash:w:main.hex slouží k odeslání programu. |
| * -U lfuse:w:0xff:m slouží k zapsání nižšího bajtu s pojistkami (fuses). |
| * -U hfuse:w:0xd8:m slouží k zapsání vyššího bajtu s pojistkami (fuses) - ty nastavují zdroj hodinového signálu (krystal), vypínají JTAG, povolují bootloader a nastavují velikost paměti pro bootloader. **Pozor, neměňte pojistky, pokud nevíte, co děláte** - můžete tak jednočip nadobro zaseknout. |
| |
| 4) Odpojte programátor a stiskněte tlačítko na desce (PB4) a tlačítko RESET - měla by se rozsvítit červená LED dioda. |
| |
| Autorem původního bootloaderu je Martin Thomasovi (http://www.siwawi.arubi.uni-kl.de/avr_projects). |
| |
| ==== Nahrání programu ==== |
| |
| Pro upload programu přes Bluetooth slouží soubor Makefile v adresářích se zdrojovými kódy robota. Obsahuje tyto příkazy (v příkazovém řádku): |
| |
| 1) make clean - smazání zkompilovaných souborů. |
| |
| 2) make - kompilace. |
| |
| 3) make load - nahrání programu bootloaderem. |
| |
| |
| ===== Zdroje pro stavbu ===== |
| |
| Zdroje pro stavbu robota a **fotografie ve vyšším rozlišení** najdete na http://dir.adamh.cz/robot-linefollower. |
| |
| * Zdrojové kódy: [[http://dir.adamh.cz/robot-linefollower/sources/code-robot-linefollower.zip|example1]] a [[http://dir.adamh.cz/robot-linefollower/sources/code-robot-example1.zip|linefollower]] |
| * Bootloader: [[http://dir.adamh.cz/robot-linefollower/sources/code-bootloader.zip|bootloader]] |
| * Motivy DPS a seznam součástek (partlist): [[http://dir.adamh.cz/robot-linefollower/sources/boards.zip|boards]] |
| * Ovládací program pro PC: [[http://dir.adamh.cz/robot-linefollower/sources/robot-control.zip|robot-control]] |
| |
| //Ovládací program pro PC je napsán v Delphi. Pro upravování zdrojových kódů a kompilaci je potřeba knihovna [[http://www.ararat.cz/synapse/files/synaser.zip|synaser]] (soubory *.pas stačí nakopírovat do library adresáře Delphi), více o knihovně v [[http://casopis.programator.cz/r-art.php?clanek=115|článku na programator.cz]].// |
| |
| ===== Soutěže ===== |
| |
| * [[http://www.fm.tul.cz/cs/kyberrobot09|Kyber robot 2009]] - robot byl prezentován na soutěži středoškolských robotů pořádané Technickou univerzitou v Liberci. |
| * [[http://www.soc.cz|Středoškolská odborná činnost]] (SOČ) 2010 - 3. místo na celostátní přehlídce v Chrudimi. |
| * [[http://www.robotika.sk/contest/2010/|ISTROBOT 2010]] - 9. místo v kategorii Stopař. |
| * [[http://www.robotika.sk/contest/2011/|ISTROBOT 2011]] - 10. místo v kategorii Stopař. |
| |
| ==== ISTROBOT 2010 ==== |
| |
| Na soutěži [[http://www.robotika.sk/contest/2010/|ISTROBOT 2010]] byl Bender jedním ze čtyř robotů, kteří trať projeli napoprvé. Největším zádrhelem byl pant pro zvednutí senzoru čáry, aby robot mohl přejet přes [[http://www.robotika.sk/contest/2009/images/IstrobotMostik2009.png|mostek]] :-) Nakonec se umístil na 9. místě a byl jedním z mála robotů, který splnil všechny úkoly na trati (jedním "dobrovolným" úkolem bylo vyhledání a odstlačení červené [[http://www.robotika.sk/contest/2010/follower2.php|kostky]], která sloužila k otevření dveří na tunelu). |
| |
| Merkurová konstrukce s mikrospínači v přední části sloužila k odtlačení kostky (Zbyňkův vynález), kovové podložky v zadní čáti robota ji vyvažovali, aby se robot při jízdě z mostu nepřevrátil :-) |
| |
| Video soutěžního algoritmu můžete vidět [[http://www.youtube.com/watch?v=gh4xgnkKwIo|zde]]. |
| |
| {{http://dir.adamh.cz/robot-linefollower/foto/istrobot2010/bender1.jpg?200x150}} |
| {{http://dir.adamh.cz/robot-linefollower/foto/istrobot2010/bender2.jpg?200x150}} |
| {{http://dir.adamh.cz/robot-linefollower/foto/istrobot2010/bender3.jpg?200x150}} |
| {{http://dir.adamh.cz/robot-linefollower/foto/istrobot2010/bender4.jpg?200x150}} |
| |
| ===== Další zdroje informací ===== |
| |
| * [[http://dir.adamh.cz/robot-linefollower|Další fotky, schémata atd.]] |
| * [[http://rc.xf.cz/servokonektory.html|Článek o krimpování konektorů]] |
| * [[http://robotika.cz/guide/blink/cs|Blikáme LEDkou]] - úvod do programování jednočipů |
| * [[http://spezial.cz|Spezial Electronic]] - dodavatel Bluetooth modulů ConnectBlue v ČR |
| * [[http://www.robotika.cz|Robotika.cz]] - web věnovaný robotice |
| |