Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
— |
linefollower [2017/10/10 00:00] (aktuální) |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== 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://temp.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://temp.adamh.cz/robot-linefollower/foto/linefollower1-small.jpg?200x150}} | ||
+ | {{http://temp.adamh.cz/robot-linefollower/foto/linefollower2-small.jpg?200x150}} | ||
+ | {{http://temp.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://temp.adamh.cz/robot-linefollower/foto/board1-small.jpg?400x300}} | ||
+ | {{http://temp.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://lib.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://temp.adamh.cz/line_sensor/foto.jpg?350x170}} | ||
+ | {{http://temp.adamh.cz/line_sensor/popisky.png?450x120}} | ||
+ | |||
+ | |||
+ | ===== Blokové schéma ===== | ||
+ | |||
+ | {{http://temp.adamh.cz/robot-linefollower/images/schematic-cz-small.png}} | ||
+ | |||
+ | (English: block scheme [[http://temp.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://temp.adamh.cz/robot-linefollower. | ||
+ | |||
+ | * Zdrojové kódy: [[http://temp.adamh.cz/robot-linefollower/sources/code-robot-linefollower.zip|example1]] a [[http://temp.adamh.cz/robot-linefollower/sources/code-robot-example1.zip|linefollower]] | ||
+ | * Bootloader: [[http://temp.adamh.cz/robot-linefollower/sources/code-bootloader.zip|bootloader]] | ||
+ | * Motivy DPS a seznam součástek (partlist): [[http://temp.adamh.cz/robot-linefollower/sources/boards.zip|boards]] | ||
+ | * Ovládací program pro PC: [[http://temp.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://temp.adamh.cz/robot-linefollower/foto/istrobot2010/bender1.jpg?200x150}} | ||
+ | {{http://temp.adamh.cz/robot-linefollower/foto/istrobot2010/bender2.jpg?200x150}} | ||
+ | {{http://temp.adamh.cz/robot-linefollower/foto/istrobot2010/bender3.jpg?200x150}} | ||
+ | {{http://temp.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 | ||
© 2008-2012 Adam Heinrich, adamh.cz, adam@adamh.cz