CZE ENG

Robot v1.1

 

Robot v1.1

Upozornění: Následující konstrukce je velice zastaralá a zejména navržené plošné spoje trpí mnoha začátečnickými chybami, které způsobují tvorbu velkého množství měděných můstků při jeho výrobě a cínových můstků při osazovaní součástek, díky příliš blízko umístěným spojům. Pokud máte přesto zájem o tuto konstrukci, tak doporučuji navrhnout vlastní plošný spoj.

 

Již dlouhou dobu se zajímám o elektrotechniku, ale také o velmi rychle se rozvíjející se obor, kterým je robotika. Proto jsem chtel vyrobit robota a zároven se naucit programovat mikrokontrolery ,ve vyšším programovacím jazyku C. Rozhodl jsem se tedy pustit do výroby svého prvního jednoduchého robota, postaveného na 8 bitovém a pro vyšší jazyky vhodném mikrokontroleru s jádrem HC08, který vyrábí firma Freescale.

Základní parametry

  • Napájení:
    • 8x Ni-MH akumulátor (9,6V)
  • Váha
    • bez baterií: 680g
    • s bateriemi: 875g
  • Spotreba
    • v pohotovostním režimu: 50mA
    • pri zapnutých motorech: 290mA
    • pri rozbehu motoru: 400mA

Strucný popis

Na jeho konstrukci jsem použil soucástky ze stavebnice LEGO. Telo bylo hotovo, ale ješte bylo potreba zvolit dostatecne silný motor. Nejlépe se mi osvedcila upravená serva Hi-Tec HS-311. Pro orientaci v prostoru a pro sledování cerné cáry na bílém povrchu bylo potreba navrhnout cidla. Napájení celého robota je zajišteno 8 kusy Ni-MH baterií. Elektronika robota se skládá z hlavní desky, která vše rídí, vedlejší desky, která informuje o zvoleném programu a jsou na ní dve LED diody, které slouží jako reflektory, cárových cidel a zdroje, který stabilizuje napetí z baterií.

Popis zapojení hlavní desky

Robot v1.1

Jak je patrné ze schématu, nejdůležitější součástkou hlavní desky a v podstatě i celého robota, je mikrokontroler IC1 (MC68HC08QB8), v pouzdru PDIP, který si je možno zdarma objednat jako vzorek na stránkách výrobce Freescale[1]. Mohli jste si, ale všimnout, že je naprosto shodný s dostupnějším MC68HC08QY4. Také první pokusy jsem s tímto procesorem uskutečnil, ale z neznámých důvodu se celkem často restartoval. Tento problém jsem se snažil vyřešit. Nakonec jediným řešením bylo vyměnit ho za novější, již zmiňovaný typ QB8. Základní činností mikrokontroleru je nejprve vybrat odpovídající mód pomocí tlačítka SW2, spustit jej, poslat pomocí softwarove generované I2C informace do vedlejší a desky, a nakonec ovládat motory podle výstupních hodnot čidel. Mikrokontroler je napájen přes odrušovací kondenzátor C1 napětím 5V a jeho resetování se provádí odpojením napájecího napětí přepínacím tlačítkem S1. Pro taktování byl použit interní oscilátor, který generuje kmitočet 12,8MHz, jehož přesnost pro jednoduchý program bohaté stačí.

Další periférii umístěnou na hlavní desce je čidlo, které detekuje překážky. Jeho zapojení jsem našel na Internetu [7]. Toto čidlo je velmi jednoduché a zároveň dokáže detekovat překážky vzdálené až 50cm, což u čidel s integrovaným obvody 567 nebo s 555, které jsem s počátku používal, bylo nedosažitelné. Zapojení se skládá pouze z mikrokontroleru IC2 a IC3 (PIC12F508), kteří střídavě posílají impulzy o kmitočtu 36KHz na IR diody IR1,IR3 a IR2,IR4 (2.5ms levá a 2.5ms pravá) a následne zjištují zda IC5,IC6 (SFH506-36) zachytili signál IR diod. Jestli ano, tak na odpovídajících výstupech bude logická 1. Na svorky SV1 a SV2 se pripojují cidla pro sledování car. Výstupy cidel bylo potreba oddelit. Samozrejme by bylo možné je oddelit ORy, ale použití diod D10 až D12 ušetrí místo na DPS. Na výstupy cidel jsou navíc pripojeny pres odpory R6 až R9 nízkospotrebové LED diody LED4 až LED7. Mikrokontroler IC1 spouští cidla, podle zvoleného programu pomocí tranzistoru T1 (BC327) a T3 (BC337).

Poslední cástí hlavní desky je cást, která ovládá motory. Pro první pokusy jsem použil dva tranzistory pro spouštení motoru a relátky jsem prepínal polaritu a zároven tedy i smer otácení motoru. Hned jak jsem zapojení sestavil vedel jsem, že ve finální verzi relátka, díky své hlucnosti a spotrebe urcite nebudou. Proto jsem použil budic motoru IC4 (L298). Ke kterému stacil pridat odrušovací kondenzátor C4 a pro každý motor jeden diodový mustek složený z diod D1 až D8 (1N4007) a vše fungovalo spolehlive a bez problému. Logika budice je napájena napetím 5V a silová cást budice a diodové mustky jsou napájeny napetím 6V. Nakonec bylo potreba vyvést konektor SV3, na který se pripojuje vedlejší deska, s kterou mikrokontroler komunikuje pres I2C. Hlavní deska byla také doplnena piezem, které pípá pri nalezení prekážky, nebo pri detekci cár.

Robot v1.1 Robot v1.1

Seznam soucástek pro hlavní desku:

R1, R6 až R9 2k2Robot v1.1
R2, R4, R5 1k0
R3, R10 až R13 10k
P1 až P4 ležatý trimr 4k0
C1 100nF
D1 až D8 1N4007
D9 až D12 1N4148
IR1 až IR4 IRS5
T1 BC327
T2, T3 BC337
IC1 MC68HC908QB8CPE
IC2, IC3 PIC12F508
IC4 L298
IC5, IC6 SFH506-36
BUZ1 LP-12SP42
S1 P-B170H
S2 P-B170G
SV1,SV2 4pinový konektor
SV3 5pinový konektor
X1 až X4 ARK500/2

Popis zapojení vedlejší desky

Robot v1.1

Hlavní úlohou vedlejší desky je, jak již bylo receno, zobrazovat, jaký program je zvolen a také rozsvecet LED diody, které slouží jako reflektory. Vše se provádí pomocí dvou I2C expandéru. První expandér IC1 (PCF8472P) se stará o zobrazování císla programu na DIS1 (HD-A101). Druhý I2C expandér IC2 se stará o LEDky, které zobrazují, jaké periférie budou aktivní pri zvoleném programu pomocí diod LED2 až LED6 a zároven muže ovládat tranzistor T1 (BC327), který rozsvecí dve vysoce svítivé modré LEDky LED7 a LED8. Tyto diody slouží jako prední svetla robota. K hlavní desce se tato deska pripojuje pomocí konektoru SV1. Druhý konektor SV2 slouží pro pripojení dalších periférií pomocí sbernice I2C.

Robot v1.1 Robot v1.1

Seznam soucástek pro vedlejší desku:

R1 10kRobot v1.1
R2,R3 22k
R4 470R
R5 až R10 2k2
R11,R12 300R
LED1 LED 3MM ZEL 2mA
LED2 až LED6 LED 3MM CER 2mA
LED7, LED8 LED 5MM MODRA 20mA
DIS1 HD-A101
IC1,IC2 PCF8574P
SV1,SV2 5pinový konektor

Popis zapojení cárového cidla

Robot v1.1

Toto cidlo je velice jednoduché. Pomocí trimru R3 se nastavuje proud, který bude protékat IR diodami D1, D2 (IRS5). Tranzistor T2 (BC327) je k fototranzistoru T1 (IRE5) pripojen jako emitorový sledovac. Pomocí trimru R2 se nastavuje citlivost zapojení na infracervené zárení odražené z IR diod do fototranzistoru T1. Cidlo se k hlavní desce pripojuje pomocí konektoru SV1.

Robot v1.1 Robot v1.1

Seznam soucástek pro cárové cidlo:

R1,R4 1k0Robot v1.1
R2,R3 ležatý 1k0
D1,D2 IRS5
D3 LED 3MM ZEL 2MA
T1 IRE5
T2 BC327-16
SV1 4pinový konektor

Popis zapojení zdroje

Robot v1.1

Zdroj je velice jednoduchý. Na svorkovnici X1 se pripojuje napetí z 8mi Ni-MH tužkových baterek. Dioda D1 (1N4007) slouží jako ochrana stabilizátoru proti prepólovaní. Kondenzátor C3 slouží pro pokrytí proudových špicek. Kondenzátory C1 a C2 slouží jako odrušovací kondenzátory. Pro napájení Hlavní desky a cidel, které jsou na ní umístené jsem použil presný stabilizátor IC1 (78T05). Druhý stabilizátor IC2 (7806) stabilizuje napetí pro motory.

Robot v1.1 Robot v1.1

Seznam soucástek pro zdroj:

R12k2 Robot v1.1
C1100nF
C2330nF
C32200uF /16V
D11N4007
D2LED 3MM ZEL
IC1 78T05
IC27806
X1 až X3AK500/

Popis Firmwaru hlavního mikrokontroleru

Hlavní funkcí mikrokontroleru je vyhodnocovat stavy zvolených cidel a podle zvoleného modu jimi rídit dva motory. Mody se volí pomocí tlacítka S2, které je umísteno nad resetovacím tlacítkem S1. Pri krátkém stisknutí, dojde ke zmene programu a na displeji se zobrazí, jaký program je práve zvolen a na LED diodách se zobrazí, jaké periférie se budou soužívat. Tyto diody budou svítit následovne:

Jak už bylo zmíneno, robot muže pracovat v nekolika modech, které se volí již krátkým stisknutím tlacítka. Pro spuštení vybraného modu, který jsme nastavili krátkým klikáním na tlacítko, musíme stejné tlacítko pridržet delší dobu, dokud se robot nerozjede. Robot je schopen pracovat v devíti modech.

  • 1: Prekážkové cidlo
  • 2: Prekážkové cidlo + pípání
  • 3: Prekážkové cidlo + svetlo
  • 4: Prekážkové cidlo + pípání + svetlo
  • 5: Cárové cidlo
  • 6: Cárové cidlo + pípání
  • 7: Cárové cidlo + svetlo
  • 8: Cárové cidlo + pípání + svetlo
  • 9: Predvádecí mód

Jak se Robot rozhoduje podle vstupních stavu je patrné z priloženého programu, a jelikož je ovládací program naprogramován ve vyšším jazyku C, je velmi prehledný a nebude problém jej v budoucnosti ruzne upravovat. Pro ovládání I2C sbernice bylo potreba naprogramovat jednoduchou softwarovou rutinu. Jelikož slouží jenom pro ovládání zobrazovacích prvku není její rychlost kritická.

Popis mechanických cástí robota

Celý robot je postaven ze soucástek LEGO, kterých jsem mel dostatek pro stavbu jednoduchého dvoukolového robota. Pri spojování jednotlivých kostek bylo je bylo ale potreba lepit vterinovým lepidlem, takže další mechanické úpravy budou již nerealizovatelné. Jako pohon pro kola byla díky relativne vysokému tocivému momentu zvolena dve levná modelárská serva Hitec HS-311, která, aby se netocila pouze o 180 stupnu, ale dokola o 360 stupnu, bylo nutno jednoduše upravit. Úprava spocívala ve vyletování polohovací elektroniky a malou úpravou prevodovky serva. Na serva byla rovnou prišroubována kola. (Obr. 19.) Robot nemá, jak se zvykem tretí kolo, ale pouze jakési "sánky". (Obr. 20. a 21.) Ty se ukázali jako nejlepší, protože použití malého kolecka melo, radu nevýhod. Nejhorší vlastností kolecka byla nedotácivost (kolecko se pri zatocení, otocilo, ale, když mel robot jet zase rovne kolecko se nevrátilo nazpátek), což zpusobovalo nekontrolovatelné zatácení robota. Odstranování tohoto problému bylo jenom s pomocí stavebnice LEGO nárocné, a proto bylo jednoduší, prejít k "sánkám" prestože mají vetší trení než jedno kolecko.

Robot v1.1 Robot v1.1
Robot v1.1 Robot v1.1

Konstrukce a oživení

Robot v1.1

Pri konstrukci postupujeme klasickým zpusobem, ale jediné co je neobvyklé je osazení IC5 a IC6 na Hlavní desce. Ty jsou totiž pripájeny k DPS vzhuru nohama (Obr. 20.), aby je bylo možné lépe nastavit pri ladení cidel. Dále postupujeme tak, že osadíme nejprve pasivní soucástky (propojky, následne odpory, kondenzátory, patice pro integrované obvody) a nakonec zbylé aktivní soucástky (diody, LEDky, Integrované obvody). Jelikož nebylo možné osadit desku konektorem ICP, je potreba , pri upravování programu hlavního programu IC1, casto mikrokontroler vyndávat z hlavní desky a dávat jej do programátoru. Proto se mi osvedcilo do hlavní desky priletovat obycejnou patici a na mikrokontroler napevno pridelat precizní patici. Tím predejdeme, pri castém manipulováním se ?švábem?, poškození jeho nožicek. Pro oživení celého robota je nejprve naprogramovat hlavní mikrokontroler Freescale. Ten je možno naprogramovat pomocí programátoru, jehož schéma je nakresleno v Datasheetu nebo pomocí kitu JANUS [8]. Ten je urcen pro variantu mikrokontroler QY, ale díky komptabilite pinu v Q rodine, není problém procesor MC68HC908QB8 kitem JANUS naprogramovat. Pro naprogramování mikrokontroleru PIC12F508 se mi osvedcil JDM programátor [9]. Po naprogramování mikrokontroleru je potreba nastavit trimry na nejvetší odpor, aby nedošlo k poškození IR diody, osadit mikrokontrolery. Zvolit program 1 až 4, nastavit pomocí trimru na hlavní desce rozsah prekážkových cidel. Resetovat mikrokontroler. Zvolit program 5 až 8, natavit pomocí trimru na Cárových cidlech správnou citlivost na cernou a bílou barvu a nakonec pripojíme motory a vše je hotovo. Pro vyzkoušení všech periférií mužeme pro jistotu spustit ješte predvádecí mód 9

Záver

Robot v1.1

Tento robot splnil svuj úcel: naucit se programovat mikrokontrolery v jazyku C, ale také jsem se zároven celkove zlepšil v navrhování a konstruování elektronických obvodu, což je jiste velice užitecné. Zároven doufám, že poslouží jako inspirace dalším?bastlírum?. Popsané obvody je možno pridelat na jakýkoliv jiný podvozek a použít jiné motory a jelikož je software pro hlavní mikrokontroler napsán v jazyku C nebude problém ho doladit ci jej vylepšit. Pri problémech pri stavbe apod. me mužete kontaktovat pomocí emailu (michalhrouda@seznam.cz).

Soubory ke stažení:

Použitá literatura

 

Sociální sítě:

 

Vložit komentář:



Jméno:   E-mail:   WWW:   

  Zaškrtni (Ochrana proti spamu)       

Komentáře:

Mica
WWW
2011-08-19 09:25:59
Matěj:
Samozřejmě, že ano :)
Matěj
2011-08-18 12:15:53
umí zatáčet???
Mica
2009-10-19 01:59:23
Michal kodera:
Plošné spoje nevyrábím a ani k dispozici jiné nemám, pouze Vám mohu poskytnout zrevidovanou předlohu. A co se týče mikrokontroléru QB8, tak těch ještě pár k dispozici mám. Cena je 130,-Kč + poštovné... Pokud máte zájem, tak mě kontaktujte emailem...
Michal kodera
2009-10-15 17:51:10
Dobrý den.Když sem si přečetl celý tento článek tak mě velice zaujal a je velice pěkně zpracovaný. Za to vám dávám veliké plus. I já sem byl nedávno nováčkem ve stavbě robotů ale na jiném principu. Ale to je jiné téma. Jak sem si přečetl komentáře tak tam píšete, že byste mi mohl poslat navržené plošné spoje a ten mikrokontroler. Za to bych vám byl velice vděčný mám docela problém ho sehnat.Pokud to není teda nějaký problém a kolik by to stálo. Děkuji
Mica
2009-10-11 21:41:39
Jan Hnízdo:
Dobrý den, mikrokontrolér na stránkách výrobce je http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=HC08Q&tab=Buy_Parametric_Tab&fromSearch=false leč v současné době jej už není možné objednat jako vzorek a proto je potřeba se obrátit buď na mě nebo na nějakého většího distributora součástek, např. http://www.farnell.com.

A k QY4. Problém je v tom, že tohle je můj první robot a tudíž z postupem doby vidím, že návrh plošné spoje spoje jsou největším kamen úrazu toho to robota. Na požádání Vám mohu poskytnout lépe navržené plošné spoje. (Chystám se je zveřejnit, ale v současné době nevím jestli poupravit tento článek nebo napsat nový článek, který bude opravovat všechny nešvary staré verze tohoto robota).

Ale pokud již máte vyrobené plošné spoje, tak není potřeba vyrábět zrevidované verze. Hlavním problémem je špatná \\\"distribuce\\\" napětí na hlavní a vedlejší desce. Proto je vhodné obsypat všechny integrované obvody a mikrokontroléry elektrolitickými kondenzátory a případně kladný napájecí vodič připojit k \\\"rozvodu\\\" napájení přes tlumivku (třeba 100uH)...
Jan Hnízdo
2009-10-05 17:21:31
Prosím o pomoc.Hledal jsem všude kde se dalo ale ten mikrokontroler MC68HC08QB8 jsem nemohl nikde najít a na stránkách výrobce jsem ho také nenašel. A při použití toho druhého MC68HC08QY4 se tento robot rozjede na pouhý 1 metr a hned se restartuje. Proto vás chci požádat pokud byste věděl kde tento mikrokontroler MC68HC08QB8 sehnad tak mi prosím poraďte děkuji.
Bazzoka
2009-03-20 09:31:35
V Eagle je knihovna pro L 298? Nebo jste ji tvořili? Nejak jsem ji nenasel :(
Mica
2009-01-17 01:40:33
Jenda:
Ahoj. Já jsem konkrétně použil vlajkovou loď mezi mikrokontroléry s jádrem V1 a to MCF51QE128 a vývojovou desku jsem si koupil DEMOQE128, ale programovat a ladit za běhu by měl dokázat o mnoho levnější OBDM programátor, který se pokusím v nejbližších dnech s V1čkou pokusím otestovat... O tom OBDM se navíc chystám napsat na svoje stránky takovou malinkatou recenzi.
Jenda
2009-01-16 08:54:28
Ahoj, moc fandím. Také chci začít s mikrokontroléry Freescale. Jaký typ s jádrem V1 konkrétně jsi použil? Jakou vývojovou desku - nebo jde použít deska pro "osmibity"?
Mica
2008-11-27 22:30:20
Michal Ličak:
V podstatě ano :)
Michal Ličak
2008-10-03 16:40:28
A chodí to samo kde chce?
Mica
2008-10-03 16:36:00
Michal Ličak:
Jak? Řekl bych že nijak :) Tohodle robota není možné dálkově ovládat...
Michal Ličak
2008-10-02 20:46:43
Ako sa to ovláda?
Mica
2008-06-19 00:41:45
Vlastně to bude vypadat asi takhle:

http://www.youtube.com/watch?v=6q9SDpgVtQg

Teda Robot Biped by měl chodit nesrovnatelně plynuleji a také rychleji
Mica
2008-06-19 00:37:16
Qwertui:
No těmi "kotníkovými" servy a akcelerometrem. Prostě nastavím servo experimentálně zjištěné polohy, akcelerometrem zkontroluji náklon robota a když došlo k přenesení váhy, tak budu dál pohybovat příslušnejma servama, tak aby prostě chodil.
Qwertui
2008-06-16 21:51:07
Ahoj, jak máš vymyšlený přenášení váhy aby mohl robot chodit?
Mica
2007-12-25 14:49:30

 

Všechna práva skoro vyhrazena. Copypaste © 2024 Mica
Pokud není uvedeno jinak, je obsah tohoto webu dostupný pod licencí Creative Commons Attribution 3.0 License