Červený trpaslík

Vize

Červený trpaslík je jméno malého diferenčně řízeného dvoukolového robotu s opěrnou kuličkou postaveného na podvozku UMU-01 zakoupeného v shop.snailinstruments.com. Robot by měl být schopen autonomní činnosti, jako je sledování čáry, vyhýbání se překážkám a zároveň by měl být řiditelný z počítače přes bluetooth. Bude obsahovat lištu odrazových infrasenzorů pro sledování čáry, infračervený dálkoměr (Sharp) na mikroservu a enkodéry na obou kolech pro zjišťování ujeté vzdálenosti. Vše bude řízeno mikrokontrolérem ATmega. Zprávy o činnosti robotu se budou zobrazovat na alfanumerickém LCD displeji a v ideálním případě se budou přes bluetooth posílat do pc.

Postup práce

  • 20.1.2011 - předělání senzoru čáry
  • 6.11.2010 - hlavní řídící deska
  • 23.10.2010 - bluetooth modul
  • 15.10.2010 - sharp + servo
  • 30.9.2010 - řízení motorů s L293D
  • 18.9.2010 - senzory na čáru
  • 14.9.2010 - radlice
  • 7.9.2010 - enkodéry
  • 26.6.2010 - rozsvícení LCD
  • 22.6.2010 - vytvořen držák na baterie

Podvozek

Jak již je výše uvedeno, zakoupil jsem podvozek UMU-01, ke kterému jsem vyrobil držák 6-ti AAA baterií. Tři plastové držáky pro dvě AAA baterie jsou přišroubovány do cuprex desky, která po proškrábnutí mědi zároveň zajišťuje propojení jednotlivých držáků. Baterie jsou umístěny blíže k opěrné kuličce, aby měl robot lepší stabilitu.

podvozek bateriový držák

"Rozsvícení" LCD

Na robotu by měl být umístěn alfanumerický LCD displej 16×2 s žlutozeleným podsvícením. Jelikož jsem s takovýmto zobrazovačem ještě nepracoval a potřeboval jsem ho ozkoušet v nepájivém poli, připájel jsem k němu 16-ti žilový plochý kabel a konec jsem opatřil dvěma osmipinovými konektory se zámkem. Protikusy těchto konektoru budou v DPS a nyní pro testování konektor napojím na drátky. Pro rozchození jsem použil čip ATmega48. Využil jsem knihovnu LCD.h, která je součástí CodeVisionAVR C kompilátoru a základ programu jsem použil ze vzorového z nápovědy. Knihovna využívá 4-bitové komunikace namísto 8-mi bitové, proto je pro provoz displeje potřeba k mikrokotroléru připojit „pouze“ 7 vodičů při 8-mi bitové komunikaci 11 vodičů. Samozřejmě je potřeba připojit napájení displeje a podsvícení a rezistor do země pro nastavení kontrastu.

displej zapojeny displej v nepájivém poli

Optické enkodéry

Aby bylo možné zjistit, zda se kola otáčejí, rozhodl jsem se umístit na trpaslíka optické enkodéry. Na kola jsem přilepil černobílé kotouče s rozlišením 64 dílků. Kotouče jsem vytvořil v excelu pomocí kruhového grafu, který jsem našel zde: http://www.societyofrobots.com/sensors/encoderwheel.xls. Upravená a černobíle vybarvená kolečka, jsem natiskl na samolepicí folie.

enkoderové kolečko deska enkodérů

Z původního plánu - vytvoření kvadraturního enkodéru, jsem ustoupil z důvodu jednoduchosti. Na každém kole je pouze jeden optický snímač. Sice nemohu zjistit směr otáčení, ale to v případě plánovaného řízení motorů H-můstkem není až tak důležité. V neposlední řadě jsem přišel o větší rozlišení. Pro snímání jsem využil odrazové infrasenzory QRD1114, na jejichž výstup je připojen komparátor LM358 pro zajištění výstupu s dvěma logickými úrovněmi (0-1, černá - bílá). Na výstup z komparátoru jsou připojeny ochranné rezistory. Deska je opatřena 4-pinovým konektorem se zámkem.

Schéma zapojení

schema zapojení enkoderů

Desku jsem přilepil pomocí oboustranné lepenky k podvozku. Abych ověřil funkčnost enkodérů, využil jsem předchozí zapojení s ATmegou 48 a alfanumerickým displejem, na kterém jsem si zobrazil počitadlo 0-99 z každého kola.

enkodér na podvozku na displeji zobrazený výstup programu

Radlice

Součástí balení podvozku UMU-01 je radlice používaná zejména pro soutěž minisumo. Rozhodl jsem se jí také využít v kombinaci s mikrospínačem umístěným za ní. Pro rychlou montáž jsem mikrospínač i radlici připevnil oboustrannou lepenkou. Uvidíme, jak dlouho to vydrží ;-). Robotu bude dotyková radlice sloužit jako poslední záchrana v případě, že infračervený dálkoměr nevyhodnotí překážku správně.

Podvozek s radlicí

Senzory pro sledování čáry

Rozmístění optočlenů u původního senzoru bylo nevyhovující. V novém rozmístění je vzdálenost středů senzorů 10mm.

Nový senzor čáry na podvozku

Aby byl robot schopný sledovat čáru, použil jsem nejčastěji používané zapojení se třemi odrazovými infrasenzory QRD1114, ke kterým jsem připojil 2 rezistory na senzor. Jeden pro diodu a druhý pro fototranzistor. Zapojení je velmi jednoduché, výstup z tranzistoru pujde rovnou na pin mikrokontroléru.

Schéma zapojení

schema zapojení senzorů pro sledování čáry

Senzor jsem opět přilepil na podvozek oboustrannou lepenkou. Od senzoru vede 5-ti žilový kabel, který je protažen středovým otvorem.

Senzor čáry Podvozek se senzorem čáry

Rozmístění součástek, které je vidět na obrázku, není ideální! Vzdálenost středů optočlenů je 15mm, proto při jízdě dochází k přechodnému stavu mezi středem a jedním z krajů , kdy se čára dostane mezi optočleny. Program musí být upraven tak, aby při ztrátě čáry jel robot rovně. Když je čára na jednom z krajních optočlenů a dojde k její ztrátě, nelze určit na jakou stranu čára odbočila

Řízení motorů

Abych mohl řídit motory z mikrokontroléru, postavil jsem jim „vlastní“ (aby se vešla na už takhle malý podvozek :-D) desku. Využil jsem jeden z nejlevnějších, avšak plně dostačujících H-můstků L293D. Tento obvod, obsahuje 2 můstky, je tedy pro 2 motory. Dále je tam důležité to „D“, které znamená, že jsou v pouzdru integrovány ochranné diody, což minimalizuje počet součástek na desce. Zapojení integrovaného obvodu je provedeno podle datasheetu. Na enable vstupy jsou přivedeny odpory z +U, které zajišťují odblokování H-mostů v případě, že tyto vstupy nepřipojím k mikrokontroléru. Deska obsahuje 5V stabilizátor napětí + kondenzátory podle datasheetu. Napětí je navíc vyvedeno do svorkovnice, protože ho využiji v desce s mikrokontrolérem, kde již tento stabilizátor nebude.

Schéma zapojení

schéma zapojení

Oči robotu

Aby robot viděl dění nejenom před ním, ale i po stranách, bude mít na sobě infračervený dálkoměr Sharp (měřící vzdálenost 4-30 cm), který bude umístěný na mikro servu.

sharp + servo plexi kryt na distančních sloupkách

Bluetooth modul

Pro komunikaci robotu s okolím jsem si vybral technologii bluetooth. Použil jsem bluetooth modul OEMSPA310 vyráběný firmou connectBlue dodávaný firmou Spezial electronic. Modul po spárování s počítačem komunikuje po virtuální sériové lince. Výstup z modulu je 3V UART, lze tedy po jednoduché úpravě připojit k mikrokontroléru pracujícím na 5V napětí.

Pro ověření funkčnosti jsem k modulu připájel několik nejdůležitějších drátů, které jsem zapojil do nepájivého pole s ATmegou48. Vytvořil jsem jednoduchý prográmek, který čeká na přijmutí znaku a když nějaký přijde, ihned ho odešle zpět. Znaky jsem odesílal z terminálu, který je součástí vývojového prostředí codevisionAVR.

bluetooth modul v nepájivém poli

Na pájecí plošky modulu jsem připájel pouze napájení + a GND, modrou indikační diodu, CTS, RxD a TxD. Reset není potřeba, je zvednut do jedničky přímo v modulu. Všechny piny a jejich čísla najdete v datasheetu: http://www.spezial.cz/pdf/em_ds_oemspa_310.pdf

Hlavní řídící deska

Po všech úspěšných i neúspěšných pokusech o rozpohybování a rozchození dílčích částí robotu, nastala chvíle nejdůležitější! Vše spatlat dohromady a připojit k řídícímu obvodu. Použil jsem čip ATmega16 v puzdře DIL 40 pro snadné umístění do desky, na smd se zatím necítím :-). Více o tomto čipu se dozvíte například zde: http://www.gme.cz/_dokumentace/dokumenty/432/432-205/dsh.432-205.1.pdf. Aby tento čip fungoval, stačí ho připojit na napájení 5V. Protože chci z obvodu vyždímat co nejvíc, připojil jsem k němu navíc 16MHz krystal s vazebnými kondenzátory, vše je uvedeno v datasheetu.

Hlavní řídící deska řídící deska s podvozkem

Další důležitá věc na této desce je bluetooth modul OEMSPA310 popsaný výše, který jsem přilepil na desku oboustrannou lepenkou. Několik důležitých drátů je nakrimplováno do společného 6-ti pinového konektoru. Na pin Tx mikrokontroléru je připojen dělič napětí, který upraví signál pro bluetooth modul, který pracuje s 3V logikou. Na desce je zároveň vyveden konektor pro připojení modré LEDky, která signalizuje komunikaci modulu s PC.

Dva 8-mi pinové konektory slouží pro připojení alfanumerického displeje 16×2 znaky. S konektorem jsou spojeny dva rezistory, sloužící pro nastavení kontrastu displeje a pro regulaci proudu do podsvícení displeje. 4 pin a 5 pin konektor přímo připravený pro připojení enkodérů respektive senzorů čáry, jsou taktéž vyvedeny na desce. Dva 3 pin konektory pro připojení k řídící desce motorů. Všechny tyto konektory jsou se zámkem, takže se nedají(doufám, znáte to: když se chce, tak jde všechno) přepólovat.

Na port A, který obsahuje A/D převodníky jsem připojil 3 senzory na čáru a na zbylé piny jsem udělal konektory pro připojení infračerveného dálkoměru a serva. Konektory jsou zapojeny tak, že mají uprostřed +U a na krajích GND a signál. Deska obsahuje DIP switch připojený na dvou pinech a programovací konektory pro připojení ISP programátoru (používám PIC presto). Samozřejmostí je šroubovací svorkovnice pro připojení napájení.

Velikost desky je dána velikostí podvozku Červeného trpaslíka - 9×9 cm. Montážní otvory o průměru 3 mm jsou v rozích desky a pasují na rastr podvozku UMU-01, stačí použít distanční sloupky minimálně 25 mm.

Schéma zapojení

schéma zapojení řídící desky

Sestavený robot

Problém s upevněním senzoru překážek (infračerveného dálkoměru) jsem vyřešil použitím oboustranné lepenky. Na jedné straně servo a na druhé ATmega16. Ideální řešení to rozhodně není, ale funguje to a chodu čipu to nijak nebrání.

řídící deska s podvozkem

Do budoucna mám v plánu udělat snímání napětí baterie a LED efekty pro vizuální vylepšení robotu.

Kam dál?

 
cerveny_trpaslik.txt · Poslední úprava: 2011/01/25 20:44 autor: paulmark
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

© 2010 - 2011 Pavel Marek