Obsah
Robot 2
Druhý pokus o proniknutí do světa robotiky je stejně jako robot první postaven na podvozku závodního RC auta. Cílem je postavit robota, který bude umět autonomně projet zadanou trasu a vyhýbat se překážkám. Při jeho stavbě se chci vyvarovat chyb, které se jeho předchůdce objevily (špatná konstrukce, přehlcení mikrokontroléru, podceňení obecných elektrotechnických pravidel). Robot je popsán na http://dir.adamh.cz/soc/mobilni-robot.pdf jako práce SOČ (3. místo na celostátní přehlídce SOČ 2009).
Blokové schéma
Konstrukce
Jak již bylo zmíněno, základ robota tvoří podvozek závodního RC auta (1:10), na kterém je na dvou ohnutých páscích ze stavebnice Merkur přišroubovaná průhledná plastová bedna, která v sobě skrývá elektroniku. Z krabice je vyvedena zásuvka pro síť (připojení k počítači) a na víku krabice je umístěn 16×2 znakový LCD displej a tři tlačítka, sloužící jako „uživatelské rozhraní“. Jako zdroj energie slouží 6-ti článková baterie, která se běžně v závodních autech používá.
Řídící počítač
Mozkem robota je upravený router Edimax BR-6104KP (vyvedené I/O, sériový port a upravený napájecí zdroj), na kterém šlape systém s jádrem Linux, konkrétně distribuce Midge. Router startuje z připojeného USB flashdisku. Byl vybrán proto, že je relativně levný, dostatečně výkonný a programy se na něm dají spouštět úžasně jednoduše - přes FTP nahraju program v Perlu a během pár sekund jej můžu spustit. Navíc se dají upravovat přímo na routeru. Další příjemnou funkcí je webový server, který umožňuje řzení přes webvé rozhraní.
K počítači je připojeno WiFi AP (rovněž Edimax), díky kterému lze robota řídit bezdrátově z notebooku nebo třeba „chytrého telefonu“ s WiFi a webovým prohlížečem. Na fotografiích není, protože v robotu zabírá výhled na součáskty a ještě není zcela jisté, jak a kde bude uchyceno.
Elektronika
Počítač komunikuje s okolím pomocí znakového LCD displeje (SIC1602A20) připojeného na sériový port. Vzhledem k tomu, že displej vyžaduje invertovaný signál, jsem mezi něj a počítač zapojit ještě invertor s obvodem 7404, který se o úpravu signálu postará. Dálší periferie a senzory (například ultrazvukový měřič vzdálenosti - sonar SRF02 nebo elektronický kompas CMPS03) jsou připojeny přes sběrnici I2C. Infračervený měřič vzdálenosti GP2D120 je připevněn na mikroservo a měření zpracovává deska s mikrokontrolérem ATmega8, podobným způsobem je zpracováván i inkrementlní enkodér pro měření ujeté vzdálenosti, který je tvořen reflexním IR senzorem QRD114 vestavěným do krytu převodovky. O řízení serv se stará deska s jednočipem ATmega8 běžícím na 8 MHz. Další deska s ATmega8 je použita pro zpracování dat z akcelerometru MMA7260, ten ale zatím není v algoritmech použit. Poslední vychytávkou je bzučák (auto prostě musí umět troubit), který sloužil pro nejjednodušší, ale velice efektní algoritmus vyhýbání se překážkám („pokud narazíš na překážku, zastav a trub tak dlouho, dokud neuhne“) Pro jednoduchou diagnostiku stavu baterie je použit panelový voltmetr.
Časem plánuji zapojit kameru, nejžhavějšími kandidáty jsou:
- USB webkamera (bohužel ji použitý kernel 2.4 npodporuje)
- IP kamera (přiliš drahá, nejspíš velká spotřeba)
- přídavná kamera se sériovým rozhraím ze Sony Erricsonu
Dálkové ovládání
[Duben 2009] Dálkové ovládání realizované webovým rozhraním je sice flexibilní, ale velice pomalé (skoro sekundová prodleva způsobená webserverem), proto jsem se v Delphi rozhodl napsat aplikaci, která se telnetem spojí s příkazovým řádkem routeru (něco jako SSH) a přes něj posílá příkazy nebo čte senzory (čtení senzorů je realizováno v samostatné relaci) a zároveň v reálném čase vykresluje trasu pohybu (na obrázku je aplikace nepřipojená a v testovacím režimu):
Vizualizace pohybu pak může vypadat například takto:
Co to umí?
- robot může být řízen pomocí počítače připojeného k LAN
- robot můře být rovněž řízen mobilním telefonem nebo PDA připojeným bezdrátově
- robot je schopen objet překážku
- robot by měl být schpen projet zadanou trať, popřípadě zakreslit mapu pohybu
robot umí úžasně rychle vybít libovolnou baterii(Opraveno výměnou vadného regulátoru otáček motoru)
Odkazy
- Článek o routeru na Robotika.cz Wiki: http://robotika.cz/wiki/RouterLinux
- Web věnovaný routeru [EN]: http://www.sunspot.co.uk/Projects/sweexproject.htm
- Distribuce midge [EN]: http://midge.vlad.org.ua
- Diskuzní fórum k routeru [EN]: http://midge.vlad.org.ua/forum
- Další obrázky: http://dir.adamh.cz/robot2/foto/
- Práce SOČ věnovaná stavbě robota - http://dir.adamh.cz/soc/mobilni-robot.pdf
- Let's Make Robots article [EN]: http://letsmakerobots.com/node/6905