JAK STAVÍM KAPESNÍHO ROBOTA

Cíl projektu:

Postavit miniaturního robota, který se vejde do krabičky od sirek.

Motivace:

Co bude robot umět:

A kdo jsem já?

ostan2008.jpg, 23 kB

Jmenuju se Ondřej Staněk, jsem student předmaturitního ročníku gymnázia Na Vítězné pláni. (edit: úspěšně jsem odmaturoval) Kromě robotiky a elektrotechniky mě baví programování a tvorba webových aplikací. Svého prvního robota (v textu zmíněn jako pRobot [p ~ primus ~ první]) jsem začal stavět v červenci 2007. Od té doby se v podstatě soustavně věnuji mikrokontrolérům. O robotech jsem kromě této stránky napsal ještě jednu větší práci do Studentské vědecké soutěže 2008 a submission do konference VIASL (v angličtině). V následujících odstavcích je popsán můj "profesní růst" v oblasti MCU. Omlouvám se za některé výkřiky, které asi nezasvěcenému čtenáři nic moc neřeknou. Píšu tento deník zkrátka tak, jak mi to přijde pod ruku:

Návrh pocketBota

Na schématu je znázorněno rozmístění senzorů čáry, MCU, H-Bridge a koleček. Naopak motory pro jednoduchost zobrazeny nejsou. Vypadá to, že se součástky překrývají - ve skutečnosti budou ale baterie na horní straně, zatímco integrované obvody, senzory a motory umístím na spodek robota. pocketBot_plan.gif, 12 kB

Development diary:

11.12.2007 - nápad: zvýšení rozlišení sensorů interpolací

12.12.2007 - úžasnej úspěch! Podařilo se mi sehnat klíčovou součástku pro kapesního robota - malé motorky z mobilního telefonu. Stavil jsem se v prodejně a opravně mobilů na Bělohorský. Když jsem vyložil prodavači, co sháním, dostal jsem rovnou tři vibrační motorky. A ještě k tomu zadarmo. =) Hned večer jsem si ověřil, že směr motorků jde změnit přepólováním, takže robot bude umět i couvat a otáčet se na místě. Zkrátka to bude plnohodnotná verze proBota :D vibration_motors.jpg, 28 kB

14.12.2007 - V mé oblíbené elektro prodejně na Smíchově jsem sehnal miniaturní fototranzistory BPX81 za úplně směšnou cenu: 2,50 za kus. :) Vzhledem k běžné ceně 16Kč za senzor náklady na výrobu značně poklesnou :)fototransistor BPX81.jpg, 15 kB

16.12.2007 - nápad: nový způsob interpretace dat ze senzorů čáry. Moje nová metoda zjišťování okraje čáry funguje pro senzorový modul s libovolným rozlišením a podle všeho nebude ovlivněna křížením čar. A v neposlední řadě je programátorsky daleko čistější! :)

~23.12.2007 - Rozchodil jsem integrovaný A/D převodník v ATmega8 a sestavil prototyp dvoubitového sensoru čáry s jedním fototransistorem a dvěma IR LED. Vypadá to slibně a sensor se dá použít i na měření vzdálenosti. To se bude hodit při konstrukci objíždějícího sensoru. Narazil jsem na problém s rušením. Sensory jsou rušeny světlem ze žárovky. Je to spíš asi způsobený "modulací" žárovkového světla na 50Hz. Okolního světlo by měření nijak vadit nemělo (je odečteno). To, co dělá problém, je změna intenzity okolního světla v čase. Řešením bude zkrátit dobu jednotlivých měření. Musim si dohledat odezvu IR součástek v datasheetech a podle toho upravit čekací smyčky v kódu.

~.12.2007 - Hotový prototyp osmibitového senzoru čáry (3x fototransitor & 4x IR led, vyšší rozlišení dosaženo jakousi "interpolací"). Zarazilo mě, že jednotlivé fototransistory BPX81 mají různou závislost odporu na dopadajícím IR světle. To zkomplikuje autokalibraci sensorů (ani ne tak u senzorů čáry jako u čidel na objíždění překážek).

4.1.2008 - Konečně jsem rozchodil debugger v AVR Studiu. Až doteď jsem program v céčku psal v podstatě "naslepo" a krokovat jsem ho mohl tak akorát v hlavě.. Chyba byla ve staré verzi AVR Studia, stačilo nainstalovat novější verzi (4.13.528) a vše funguje tak jak má. Našel jsem na internetu výbornej zdroj (http://www.solarskit.wz.cz/). Škoda, že jsem na ten web nenarazil před půl rokem, ušetřilo by mi to spoustu pokusů a omylů při programování mikrokontrolérů. Ale aspoň jsem si užil, když jsem si tu trnitou cestu vyšlapával sám :D. Objevil jsem dissasembler. Překladač mě naplňuje údivem a respektem. :-o

~.1.2008 Pořád ne a ne sehnat ty správný kolečka pro pocketBota. :(

16~17.1.2008 - Podařilo se mi dekódvat protokol dálkového ovladače Sony, a to hlavně díky stránce http://www.ustr.net/infrared/sony.shtml. Každý ovladač je trochu jiný, tak jsem musel změřit periody jednotlivých impulzů na mém konkrétním ovladači. Nemám osciloskop, musel jsem si napsat prográmek pro ATmega8, který zobrazoval délku period binárně pomocí osmi LED. Pořád se potýkám s rušením od zářivky, co mám v pokoji. Radši už jí ani nezapínám. Nepomohlo ani když jsem začal přísnějc kontrolovat a měřit startbit. Zářivka ruší pořád stejně, ale aspoň nebude tolik zatěžovat procesor - díky kontrole startbitu už vyhodnocuje jen platné signály. Všechny klávesy byly detekovány správně, až na jedničku, ta pořád ne a ne fungovat.. Čim více jsem dekódování zpřesňoval, tím častěji to jedničku vůbec nedetekovalo. A pak jsem na to přišel! Jednička je kódována jako 0x00; takže ani při jejím rozpoznávání se vůbec žádná LED nerozsvítila. Teda, mohlo mě to napadnout dřív. Druhý den jsem si z pRobota udělal autíčko na dálkové ovládání - funguje úžasně, má jen jednu chybku: můj IR ovladač neumí vysílat současně víc jak jedenu klávesu, proto neni ovládání až zas tak pohodlné. Ale funguje a to je hlavní. Jestli seženu dost malej SMD kondenzátor na odrušení, dám IR přijímač i do pocketBota, aby se necítil méněcenej ;).

19.1.2008 - V knize Atmel AVR Programování v jazyce C (Váňa, Vladimír) jsem objevil příklady na sériovou komunikaci čipu s počítačem přes jednotku USART. To by umožnilo přehledné nastavování a kalibrování senzorů pomocí počítače. Když jsem si zkoušel nanečisto pájet SMD součástky na jeden tišťák ze starý HP tiskárny, náhodou jsem na něm objevil SMD H-Bridge, bohužel je ale skoro stejně velkej jako L293D a je určenej pro krokový motory, i když by se určitě dal použít i na řízení SS motorků. Škoda, že musí být napájenej minimálně 10V.. Takže asi zůstanu u klasickýho L293D. Jeho SMD verze je totiž bohužel moc drahá.

Odladil jsem dálkové ovládání pRobota, funguje to úplně úžasně =). Přidány byly tyto funkce:

21.1.2008 - Rozchodil jsem fázově korigované PWM. Díky hardwarovému řízení střídy signálu pro motorky jsem uvolnil spoustu výpočetního času pro důležitější operace.. Mám teď tedy daleko volnější ruce - rychlost motorků nastavuji pouze zápisem do registru OCR1A (resp OCR1B pro druhý motor) a generování signálu nemusí tedy řešit přímo jádro, všechna práce se přesouvá na integrovaný časovač. Rychlost robota lze nyní měnit dálkovým ovladačem.

22.1.2008 - Ani ve snu by mě nenapadlo, že sehnat kolečka pro robota bude takovej problém. Všechno ostatní už mám, jen ty kolečky chybí. Můj nápad použít miniaturní kuličková ložiska ztroskotal na jejich ceně. Prodávají se za 220,-/kus, což je přece jenom moc.. Původní odhadované náklady na stavbu celého robota se pohybovaly okolo 400,-

4.2.2008 - Diagnostika procesoru přes osm LEDek mi přestává vyhovovat (nebaví mě neustále přepočítávat binární kód zobrazený na LED diodovém modulu, nehledně na to, že takto můžu číst vždy jen jednu bajtovou informaci). Ideální by bylo propojit mikrokontrolér s počítačem, pak bych z něj mohl číst libovolné množství dat (např. aktuální stav každého senzoru) a také do MCU posílat příkazy. ATmega8 má integrovanou hardwarovou jednotku USART (jednotka pro univerzální synchroní a asynchroní přenos dat), takže propojení s PC by teoreticky neměl být problém. Veškerá komunikace bude vyřešena na úrovni hardwaru a data vyslaná od MCU se zobrazí v běžném terminálu. Stačí jen připojit mikrokontrolér k sériovému portu a bude to. Jenže..

6.2.2008 - Jenže zjišťuju, že to zas tak jednoduché nebude. Zatímco MCU komunikuje v TTL úrovních (5V), sériový port má napětí daleko vyšší (15V). Propojení je možné, ale je k tomu nutný převodník úrovní. Nalezl jsem spoustu schémat, ve většině byl použit převodník MAX232, který pracuje na principu "nábojové pumpy". Od konstrukce převodníku mě neodradila ani tak složitost schématu, ale spíše neschopnost pochopit, jak zařízení vlastně funguje. Nechci se slepě pouštět do konstrukce něčeho, do čeho nevidím. A slovo "nábojová pumpa" ve mě vyvolává jakýsi posvátný respekt.

9.2.2008 - Sériový port jsem tedy zavrhl. Co takhle použít ke komunikaci sběrnici USB? Je napájena pěti volty, stejně jako MCU, takže s kompatibilitou by neměl být problém. A koneckonců je to také sériové rozhraní. Jen ten protokol je nějakej moc složitej.. Naštěstí existují integrované USB/RS232 převodníky. Je to v postatě zařízení, které emuluje další sériové rozhraní COM1x přes USB. Výstup je v podstatě stejný jako u klasického sériového portu, ale protože je čip napájený z USB, na výstupu je sympatických 5V (volitelně i 3.3V) TTL, takže je možné MCU připojit přímo k převodníku. Integrovaný převodník FT232RL stojí 140Kč, což je o trochu více, než náklady na stavbu TTL převodníku pro sériový port, zato ale získám moderní kompatibilní zařízení a jistotu, že bude fungovat i na notebookách a novějších počítačích bez klasického sériového portu.

10.2.2008 - Jenže.. Nebude to tak jednoduché, jak se na první pohled zdálo. Čip je k dispozici pouze v pouzdře SSOP, které je neuvěřitelně malé. Je totiž navrženo pro SMD montáž a pájení vlnou. Převodník v klasickém DIP pouzdře se ani nevyrábí. Redukce ze SSOP na DIP také ne. Co teď? Váhal jsem, zda nezakoupit již hotový převodník s naletovaným čipem, USBéčkem a podpůrnými součástkami. Ale ta cena: 400Kč + poštovné. Vlastně nejde ani tak o cenu, jako spíš o mojí ctižádost a potřebu si všechnu elektroniku vlastnoručně vyrobit a nekupovat jen hotové polotovary. A tak jsem se pustil do výroby svého prvního SMD deskového plošného spoje:

vyroba_DPS_fotocestou.jpg, 16 kB

10.2.2008 - Je mi až trapné sem psát, jak jsem byl ze začátku najivní; myslel jsem si, že plošný spoj zvládnu nakreslit ručně. Ale jen do té doby, než jsem spatřil skutečnou velikost SMD čipu. Nezbývá tedy, než vyrobit spoj fotocestou. Desku jsem navrhl v programu EAGLE a vytisknul na průhlednou fólii. Toner bohužel není stoprocentně černý, trochu prosvítá. Proto jsem si spoj vytisnkul ve dvou kopiích a dal potištěné fólie přes sebe, čímž jsem dosáhl skutečně černočerné neprůsvitné barvy. Předlohu jsem prosvítil běžným horským sluníčkem na fotocitlivý kuprexit. Předloha musí být na kuprexit úplně přimáčknutá, vhodné je zatížit ji sklem. Doporučená doba osvitu je 5-7 minut. Poté je potřeba kuprexit vyvolat v 1.5% roztoku NaOH. Neosvícené části (budoucí vodivé spoje) mírně ztmavnou a začnou tmavě zbarvovat vývojku. Nenechávejte kuprexit ve vývojce moc dlouho - mě se na poprvé odstranil i neosvícený fotocitlivý lak a spoj byl poté nepoužitelný. Jakmile se na desce objeví všechy spoje, vyndejte ji z vývojky a opláchněte horkou vodou. Nyní je možné spoj leptat běžnou metodou, místa, na kterých zbyla vrstva laku, zůstanou zachována. Musim říct, že jsem byl profesionálním vzhledem výsledného plošného spoje přímo unesen. Ostaně, podívejte se na obrázky.

11.2.2008 - Pájení SMD součástek chce hodně trpělivosti, ale jde to. Mikropáječka, pinzeta a lupa je nutností. Nejobtížnější bylo přiletování samotného čipu. Kontakty na DPS jsou dost malé a jdou těžce pocínovat. Také hrozí nebezpečí, že se čip při pájení moc zahřeje a poškodí. Proto jsem čip nejdříve přitlačil ke spoji gumičkou a vyzkušel, zda zařízení funguje. Vyvynete-li dostatečný tlak, funguje čip aniž by bylo potřeba jej k desce pájet. Podmínkou jsou samozřejmě bezchybné kontakty jednotlivých pinů s deskou. Řešení s gumičkou je ale pouze test, zda vše funguje jak má, rozhodně se nedá takto vyhnout konečnému letování (Čip připevněný gumičkou nedrží moc pevně, jakýkoliv drobný posun může vést ke ztrátě kontaktů, zkratu a dokonce zničení čipu!).

pajeni_DPS.jpg, 43 kB

13.2.2008 - Když jsem převodník odladil, čekal mě nelehký úkol - přidělat čip k desce napevno. Cín se nechtěl při nižších teplotách (250°C) na miniaturní měděné plošky vůbec chytat. Při vyšších teplotách ale hrozilo poškození čipu. Nejprve jsem tedy pocínoval plošný spoj bez čipu. Aby cín dobře chytal, je potřeba vysoká teplota, až 400°C. Poté jsem hrotem mikropájky jemně vmačkával jednotlivé piny do připravených cínových kopečků. Teplotu nastavte co nejnižší (250°C) a hrot nechávejte na pinu vždy co nejratší nutnou dobu.

ostan_usb2uart_interface.jpg

Funkčnost převodníku jsem si ověřil v Hyperterminálu. Udělal jsem smyčku, aby se vysílaná data vracela na vstup. (Stačí vstup a výstup zkratovat jumperem.) Pak už jen píšete v terminálu a pokud se vám data vracejí zpět, je vyhráno.

24.2.2008 - Velice hezký popis řízení pohybu pomocí zpětné vazby na serveru Robotika.

10.3.2008 - Mobilní robot řízený jednočipovým počítačem [doc, 3.56MB], moje práce do Studentské vědecké konfrence. Věnoval jsem se v ní především teorii programování mikročipů, dálkovému ovládání a proBotovi. Obsahuje zdrojový kód a schémata. Trochu jsem zmínil i USART a A/D převodník, i když to s proBotem vlastně nemá nic společného. Původně měl být totiž rozsah práce ještě větší; chtěl jsem vysvětlit pokročilou metodu sledování čáry včetně popisu senzorového modulu s vyšším rozlišením. Předpřipravil jsem si proto půdu popisem sériové komunikace a A/D převodníku, ale k samotnému popisu senzoru jsem se už bohužel z časových důvodů nedostal; termín odevzdání byl totiž dost šibeniční. Tak snad někdy příště. ;)

11.3.2008 - Detailnější návrh robota:

pocketBot_schema.png, 9 kB

14.3.2008 - Problém s pohony vyřešen! Velice děkuji Pepovi Vandělíkovi za skvělý podvozek, který pro pocketBota navrhnul a vyrobil:

podvozek.jpg, 55 kB

Třecí převod vyřešil Pepa elegantně, kolečka nejsou přitlačovány k osám motorků pružinami, ale magnetem. Sílu přítlaku je možné nastavit změnou vzdálenosti hřídelky kola od magnetu umístěného ve střední části mosazného válečku. Geniální! Více o podvozku se dovíte na stránkách Josefa Vandělíka.

28.3.2008 - Dlouho jsem si lámal hlavu, jak propojím pocketBota s počítačem. Sehnat dostatečně malý osmipinový konektor není vůbec jednoduché. Naštěstí přišel Pepa s dobrým nápadem; nechat na okraji plošného spoje z každé strany pouze čtyři měděné kontakty, na které se nasadí zkrácený konektor z počítačové sběrnice. Nejvhodnější se ukázala sběrnice pro RAM, která má stejnou rozteč pinů jako PCI, ale není tak hluboká a tím pádem nezabere tolik místa. Také je těsnější a na plošném spoji lépe drží.

konektor.jpg, 23 kB

30.3.2008 – Už se začínají scházet všechny potřebné hardwarové součástky, je čas zase trochu zapracovat na softwaru robota. Na kontaktním poli jsem si sestavil téměř kompletní zapojení robota. Doprogramoval jsem funkce pro vysílání znakových řetězců a čísel v desítkové soustavě, aby šly snadno číst. Robot dokáže komunikovat s počítačem rychlostí až 38400 baudů (4.8kB/s). Informace jsou snadno přístupné přes HyperTerminál. Pomocí terminálu je možné robota přímo ovládat.

terminal.png, 4 kB konaktni_pole.JPG, 346 kB

3.4.2008 - Požádal jsem o zaslání vzorků IR přijímače Vishay v SMD provedení, protože v ČR nejsou k dostání. ..a dnes mi opravdu přišly, až z Německa. :)

9.4.2008 - Na Studentské vědecké soutěži jsem předvedl pRobota a zatím nepojízdný prototyp pocketBota postaveného na kontaktním poli (včetně plně funkčního senzorového modulu). Soutěž jsem vyhrál. Níže se můžete podívat na ukázku výstupu senzorového modulu. (černá vodící čára je umístěna uprostřed, proto dva prostřední senzory téměř vůbec nedetekují odraz IR paprsku):

terminal2.png, 6 kB

12.4.2008 - Podle návodu Jaroslava Belzy jsem si postavil nabíječku Li-ion akumulátorů.

nabijecka.jpg, 26 kB

27.4.2008 - Rozložení součástek - finální návrh. Musel jsem se vzdát objížděcích senzorů (nevešly se) a H-můstku (byly na něm moc velké ztráty).

pocketBot_board.png, 15 kB

Samotný tištěný spoj:

pocketBot_board2.png, 27 kB

Ještě se obrnit trpělivostí a můžu se pustit do pájení součástek..

foto_pocketBot.jpg, 75 kB

A je to. Po hardwarové stránce zcela hotový pocketBot. Motorky jsou spínány tranzistory. I když nelze měnit směr jejich otáčení, je robot velmi pohyblivý a dokáže se otočit téměř na místě. (vypne jeden motor a otáčí se po kružnici o poloměru pouhých 3cm). Zatím toho moc neumí, pouze čeká na pokyny z dálkového ovladače. Ale aspoň jsem mu naprogramoval pud sebezáchovy; okamžitě zastaví, jakmile se před ním ocitne překážka. Velmi přibližně se mi podařilo změřit rychlost 0.6m/s

30.5.2008 - Video pocketBota na YouTube:
2.9.2009 - Video pocketBota na Vimeo:

Algoritmus sledování čáry zatím využívá pouze proporcionální (P) regulaci, proto robot trochu překmitává. Věřím, že s kompletním PID (proporcionálně integračně derivačním, nebo možná přesněji: proporcionálně-sumačně-diferenčním) regulátorem bude robot sledovat čáru daleko plynuleji a hlavně rychleji.

14.6.2008 - První crash test - pocketBot přežil pád ze stolu na dlažbu.

24.6.2008 - Ondrej STANEK presented a paper titled Line following robots at the international conference Valuing individual and shared learning: the role of ICT, organised by Charles University in Prague on the occation of the 660th anniversary of the foundation of Charles University in Prague.
IFIP WG 3.5 Informatics & Elementary Education in association with the Czech Society for Cybernetics and Informatics, Prague, June 23-26, 2008

30.5.2008 - Sledování čáry s PD regulátorem (YouTube video):

Výrazně jsem zpřesnil určování pozice čáry, takže proporcionální regulátor funguje lépe. Překmity se mi podařilo do značné míry potlačit přidáním diferenční složky regulátoru. Robot sleduje čáru rychlostí 0.35m/s.

Děkuji Robertovi za odkaz a propagaci pocketBota na svých stránkách o robotice.

2.9.2008 - Robot postupně po spirále prozkoumává své okolí, dokud nenajde vodící čáru

5.9.2008 - Natáčení do pořadu Futuroskop. PocketBot bude v televizi :)

14.9.2008 - Monitorování sensorů přes terminál sice fungovalo dobře, ale v Delphi to přece jen vypadá lépe a můžu si dovolit vyšší obnovovací frekvenci.

control_panel.png, 7 kB

Obslužný program v Delphi; zárodek mého maturitního projektu z programování

28.10. 2008 - 10.2.2009 Robert Asaftei z Rumunska postavil s mojí pomocí kopii pocketBota

IR_remote_F-IR18K2.jpg, 11 kB12.2.2009 - Až doposud jsem ovládal pocketBota klasickým dálkovým ovladačem od CD přehrávače (a ten se kvůli svým rozměrům v kapse nosí dost špatně). Rozhodl jsem se s tím něco udělat; vyrazil jsem do GME pro ultratenký dálkový ovladač, který měl stát podle katalogu (jen!) 30Kč. Jenže na místě jsem se dozvěděl, že mi samotný ovladač bez PIC dekodéru neprodají. Takže nakonec jsem musel koupit celou sadu za 130,-. Nový ovladač je dvakrát menší než ten původní a pohodlně se vejde do kapsy. :)

osciloscop.jpg, 14 kB 13.2.2009 - Na školním osciloskopu jsem změřil průběh signálu na senzorech. Potřebuju znát přesnou charakteristiku fototransistorů a IR LED, abych mohl lépe naprogramovat algoritmus sbírající data ze senzorů. Plánuji kompletně předělat firmware pocketBota. Především obsluha AD převodníku a dekódování dálkového ovladače musí být realizováno asynchronně. Současný kód je plný čekacích smyček, které jsou zbytečené (dají se nahradit přerušením, případně kombinací přerušení+timer [v případě dálkového ovladače] ).
Z grafu je krásně vidět pomalá odezva dvojice fototransistor-LED. Dolní ("hranatý") signál triggeroval měření. Zobrazuje napětí na IR LED. Horní graf je reakce LED a fototransistoru (touto metodou nelze určit charakteristiku pro každý element zvlášť, ale to vlastně ani nebylo cílem mého snažení, mě zajímá celkové chování senzoru..) Led byla zapnutá po dobu T=120us. Jak je vidět, teprve po této době se napětí na fototransistoru ustálí na svém maximu. LED by tedy měla svítit minimálně po dobu T a pak by se teprve mělo zahájit měření (to už bude napětí stabilní). Stejně tak po vypnutí by se měla dvojice PHTT+IRLED nechat "chvilku vyhchladnout", než dojde k dalšímu měření. Ještě bych měl zmínit, že naměřené hodnoty řádově neodpovídají hodnotám uvedeným v datasheetu.

20.2.2009 - Nový dálkový ovladač má velice zvláštní protokol. Bity jsou kódovány délkou pulsu podobně jako u Sony protokolu. Narozdíl od Sony je však při prvním stisku přenášeno 32bitů (ano, tolik! Odhaduji, že scankód klávesy jde až poslední, to před tím bude asi adresa zařízení). Při držení tlačítka je dále vysílán pouze startbit a první bit, jinak už žádná další informace. Vysílání je opakováno s frekvencí 10Hz, což je značně méně než u původního Sony. Jsem z toho trochu zklamaný, protože při manuálním řízení už nebude robot reagovat tak pohotově. (Nejmenší časový interval, ve kterém bude možné změnit rychlost a směr pohybu, je 100ms. Uvažujme-li rychlost robota 50cm/s, nejmenší dráhový úsek na kterém bude možné změnit směr je 5cm. A to není moc velké rozlišení.)

Maturitní projekt

Abych mohl pocketBota uplatnit jako svůj maturitní projekt, rozhodl jsem se vytvořit USB zařízení, které umožní bezdrátové řízení pocketBota z programu v Delphi. A tak vedle pocketBota vznikla ještě jeho mateřská USBdockStation a obslužný program pocketBot ControlPanel.

connections2.jpg, 50kB

USBdockStation je založená na projektu AVR-CDC. AVR-CDC zprostředkovává softwarovou podporu rozhraní USB pro mikrokontrolér ATmega8, přesněji řečeno zajišťuje emulaci sériového portu. Po připojení do počítače se vytvoří virtuální seriový port a aplikace ControlPanel tímto "tunelem" komunikuje s pocketBotem i se samotnou USBdockStation. Pro komunikaci jsem navrhnul vlastní protokol. Krom toho dokáže USBdockStation také emulovat dálkový ovladač, a tak je možné ovládat pocketBota bezdrátově přímo z počítače. Plošný spoj jsem si tentokrát nechal vyrobit u PragoBoardu (A odteď už plošné spoje ručně vyrábět nikdy nechci :) Podívejte se na foto..)

dockStation.jpg, 39kB

29.3.2009 - Oživil jsem pocketBot dockStation, místo 12MHz krystalu jsem naletoval nakonec 16MHz (firmware podporuje i tuto frekvenci a SMD 12MHz nebyl k sehnání)

USBdockStation_installation.jpg, 22kB

Funguje dokonce i ve Vistách =)

30.3.2009 - Snažil jsem se programovat pocketBota když nebyl napájený a tím jsem spálil Megu. Výměna čipu v pocketBotovi, zabrala asi 2 hodiny včetně flashování firmware. "Plíškovou metodou" šel starý čip docela dobře dolů, ale musel jsem předtím sundat podvozek a odletovat cívku s kondenzátorem. Piny na dvou sousedních stranách jsem úplně oddělil od desky. Nejdřív jsem je zalil velkou kapkou cínu, tak aby se všechny piny na jedné straně spojili. Při letování se pak zahřívají všechny piny najednou a je možné je snadno oddělit od desky vsunutím kovového plíšku. Pak jsem čip v rohu páčil špendlíkem a zahříval ostatní piny, až se mi podařilo ho úplně sundat z desky. Je asi zřejmé, že po tomhle zásahu se starý čip úplně zničil (ohnuté piny, slité cínem). Deska to ale více méně přežila, jen tři kontakty (jeden nekritický) se trochu odchlíply od desky, ale po vyčištení a naletování nové Megy funguje vše jak má.

-.4.2009 Sestavil jsem si pocketBota na kontaktním poli, protože už nechci riskovat, že by se znovu poškodil čip v pocketBotovi. Teprve až budu mít vše otestované, flashnu finální verzi do pocketBota a pak jen doladím parametry..

10.4.2009 - Funkční NEC vysílač v USBdockStation, asynchronní implementace, ale stejně jsem musel povolit interrupty v interruptě (nested interrupts), USB stack je totiž hodně náročný na časování.

15.4.2009 - Kompletně dokončena UBSdockStation! Obousměrná podpora pocketBotího protokolu (ale nemá vlastní vysílací buffer, je použit ten z USBcdc)

6.5.2009 - Přehlídka maturitních programů:

controlPanel_sensors.png, 103kB
controlPanel_sensors.png, 103kB

18.3.2010 - RobotChallenge 2010 poster: pocketBot_poster.jpg, 116kB

21.3.2010 - PocketBot se umístil na prvním místě v kategorii freestyle exhibition na soutěži RobotChallenge. :]

29.3.2010 - PocketBot abstract (PDF, 863kB) for the InfoMatrix competition in Romania.

10.4.2010 - Nový web o PocketBotovi (anglicky, vzniknul z předchozích dvou dokumentů)

22.-26.4.2010 - Nezapomenutelný výlet do Bukurešti na soutěž infoMatrix. PocketBot vyhrál první cenu!

květen 2010 - PocketBot na webu robotika.cz

2.6.2010 - Letáček pro veřejnost (PDF, 2.7MB) pocketBot_letak.jpg, 92kB

18.9.2010 - Ze zkušenosti jsem tušil, že PocketBot vydrží jezdit na jedno nabití přibližně půl hodiny. Dnes jsem poprvé udělal test výdrže - s úplně novými akumulátory vydržel robot jezdit 40 minut, poté se sám vypnul, neboť napětí článků kleslo pod 3.3V.

29.10.2010 - Robot se vejde do krabičky od sirek - článek sličné publicistsky Kateřiny Adamcové na blog.idnes.cz :)