LineFollower

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 4/10 a [http://robotrevue.cz/2010/5|5/10]])

LineFollower je malý robotek postavený na podvozku UMU-01, kterého stavíme se Zbyňkěm Moravcem. Jeho hlavním úkolem je sledování čáry na soutěži 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 (SOČ) pod názvem „Bender - robot sledující čáru“ (Adam Heinrich, Zbyněk Moravec), kterou si můete stáhnout 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 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ů.

temp.adamh.cz_robot-linefollower_foto_linefollower1-small.jpg temp.adamh.cz_robot-linefollower_foto_linefollower2-small.jpg temp.adamh.cz_robot-linefollower_foto_top-small.jpg

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.

temp.adamh.cz_robot-linefollower_foto_board1-small.jpg

Bluetooth modul je připojen speciálním SMD Board-To-Board konektorem Samtec (obrázek 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):

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 Matěji Kubičkovi.

Senzor čáry

Senzor čáry je popsán na stránce LineSensor.

temp.adamh.cz_line_sensor_foto.jpg

Blokové schéma

(English: block scheme here)

Video

Jeden z prvních pokusů o sledování čáry s velmi primitivním algoritmem.



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 :-) )



Algoritmus použitý v soutěži 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 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 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.

Ovládací program pro PC je napsán v Delphi. Pro upravování zdrojových kódů a kompilaci je potřeba knihovna synaser (soubory *.pas stačí nakopírovat do library adresáře Delphi), více o knihovně v článku na programator.cz.

Soutěže

ISTROBOT 2010

Na soutěži 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 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é 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 zde.

temp.adamh.cz_robot-linefollower_foto_istrobot2010_bender1.jpg temp.adamh.cz_robot-linefollower_foto_istrobot2010_bender2.jpg temp.adamh.cz_robot-linefollower_foto_istrobot2010_bender3.jpg temp.adamh.cz_robot-linefollower_foto_istrobot2010_bender4.jpg

Další zdroje informací

 
linefollower.txt · Poslední úprava: 2017/10/10 17:32 (upraveno mimo DokuWiki)
 
Driven by DokuWiki

© 2008-2012 Adam Heinrich, adamh.cz, adam@adamh.cz