Před zahájením provozu RP6 nebo jiných rozšiřujících přístrojů musíte kompletně přečíst
příručku základního modulu i příručky rozšiřujících modulů! Dokumentace obsahuje
informace o tom, jak systém správně funguje a jak se vyhnout nebezpečným situacím!
Příručky dále poskytují další důležité detaily, které běžný uživatel nemusí znát.
Důsledkem nedodržení upozornění uvedených v této příručce bude ztráta záruky! Firma
AREXX Engineering nemůže odpovídat za škody způsobené zanedbáním pokynů z této
příručky!
Zvláštní pozornost věnujte kapitole “Bezpečnostní pokyny”!
Nepřipojujte rozhraní USB k osobnímu počítači PC před prostudováním
kapitoly 3 – “Nastavení Hardware a Software” a kompletní instalací
software!
Tato příručka je chráněna autorským právem.
Žádná část nesmí být kopírována, přetisknuta
nebo šířena bez písemného souhlasu editora!
Změny technických parametrů a obsahu
balení jsou vyhrazeny. Obsah této příručky se
může kdykoliv změnit bez upozornění.
Nová verze příručky bude publikována na
našich webových stránkách:
http://www.arexx.com/
AREXX Engineering.
Všechny další obchodní známky použité
v tomto dokumentu jsou registrovány svými
vlastníky.
Přestože jsme pečlivě kontrolovali obsah, nemůžeme ovlivnit obsah externích webových
stránek uvedených v odkazech. Za obsah jednotlivých stránek odpovídají jejich správci.
Záruka je firmou AREXX Engineering je omezena výlučně na výměnu přístroje během zákonné
záruční doby v případě poruchy hardware, mechanického poškození přístroje, chybějící nebo
špatné montáži elektronických součástek včetně součástek umístěných v patici. Rozšířená
záruka neumožňuje aplikovat zákonnou odpovědnost firmy AREXX Engineering na libovolné
poškození přímo nebo nepřímo způsobené používáním přístroje.
Nevratné modifikace (tj. připájení dalších součástek, vrtání otvorů atd.) nebo poškození
přístroje způsobené nedodržením pokynů uvedených v této příručce ukončí platnost záruky.
Záruka se nemůže vztahovat na dílčí požadavky včetně software a bezchybného
a nepřerušovaného běhu programu. Program nejvíce může modifikovat a nahrávat uživatel.
Proto uživatel plně odpovídá za kvalitu software a celkové chování robotu.
Firma AREXX Engineering ručí za funkčnost dodávaných příkladů programů pokud budou
dodržovány předepsané provozní podmínky. Pokud přístroj pracuje mimo rozsah těchto
podmínek nebo se na PC používá poškozený či nefunkční program, uhradí zákazník všechny
náklady spojené s výměnou, opravou a náhradou. Pamatujte, prosím, také na licenční ujednání
uvedené na CD-ROM!
Symboly
V příručce se používají následující symboly:
Symbol “Výstraha!” se používá k označení důležitých detailů.
Nedodržení těchto pokynů může poškodit nebo zničit robot nebo
dalších dílů a může ohrozit vaše zdraví!
Symbol “Informace” se používá k označení užitečných tipů a triků
nebo základních informací. V tomto případě lze informace označit
jako “užitečné, ale ne nezbytné”.
A – Vyhledávání a odstraňování problémů ............................................................................ 123
B – Kalibrace enkodérů ......................................................................................................... 130
C – Rozmístění kontaktů na konektorech .............................................................................. 132
D – Recyklace a bezpečnostní pokyny .................................................................................. 134
5
1. Úvod
RP6 je levný autonomní mobilní robotický systém, navržený pro začátečníky, kteří mají
zkušenosti s elektronikou a vývojem software, jako úvod do fascinujícího světa robotiky.
Robot se dodává kompletně sestavený. To znamená, že je vhodný pro všechny uživatele bez
praxe s pájením a mechanickým zpracováním, kteří se chtějí soustředit na vývoj software.
Můžete však také implementovat vlastní obvody a přidávat další části robotu! Ve skutečnosti je
RP6 otevřený pro řadu rozšiřování a může se používat jako platforma pro širokou škálu
zajímavých elektronických experimentů!
RP6 je následník velmi úspěšného "C-Control Robby RP5", který byl představen roku 2003
společností Conrad Electronic SE. Zkratka “RP5” se může interpretovat jako "Robotický Projekt
5". Nový robot a předchozí systém nemají příliš mnoho společného s výjimkou shodné
mechanické části. Mikrokontrolér C-Control od firmy Conrad Electronic byl zaměněn a proto se
nadále nemůže nový robot programovat v interpretu jazyka Basic. Místo toho je aplikován
mnohem výkonnější mikroprocesor ATMEGA32 od výrobce Atmel, který se programuje pomocí
jazyka C. Do budoucna plánujeme nabídnout rozšiřující modul pro přizpůsobení robotu
k nejnovějším modulům řady C-Control (tj. CC-PRO MEGA 128). Tento modul bude umožňovat
programování v mnohem jednodušším jazyku Basic a nabízí velké množství rozšiřujících
rozhraní a větší paměť.
Nová konstrukce obsahuje rozhraní USB a nové rozšíření systému se zdokonalenou montáží,
odometrické snímače s velkým rozlišením (rozlišení je 150x vyšší ve srovnání s předchozím
systémem), přesný stabilizátor napětí (který byl u staršího systému nabízený jen jako rozšiřující
modul), nárazníky sestavené ze dvou mikrospínačů s dlouhými rameny a mnoho dalších
zdokonalení. Výhodnou součástí systému je i experimentální rozšiřující modul pro sestavení
vlastních elektronických obvodů. Ve srovnání s předchozím systémem je mnohem výhodnější
poměr ceny a výkonu.
Základní mechanické koncepce byla odvozena ze systému RP5. Konstrukci je však
optimalizovaná na nižší provozní hluk a nyní poskytuje další otvory pro mechanické rozšiřování
systému.
Robot RP6 byl navržen tak, aby byl kompatibilní s našimi předchozími roboty ASURO a YETI,
které používají menší mikroprocesor ATMEGA8 a identické vývojové nástroje (WinAVR,
avrgcc). Systémy ASURO a YETI se dodávaly jako konstrukční stavebnice, které si musel
sestavit uživatel. S ohledem na to, že byl RP6 navržen pro mnohem náročnější uživatele,
umožňuje větší možnosti rozšiřování, obsahuje větší mikroprocesor a více snímačů.
Momentálně je k dispozici několik rozšiřujících modulů, které se mohou použít na rozšíření
možností robotu. Například to bude rozšíření systému na předchozí řízení C-Control, rozšiřující
modul nabízející zvláštní MEGA32 a samozřejmě experimentální rozšiřující deska pro sestavení
vlastních elektronických obvodů, která se dá přikoupit samostatně. Na robot je možné umístit
několik modulů.
V blízké době se připravuje několik dalších zajímavých modulů a samozřejmě je možné vyvíjet
vlastní rozšiřující obvody!
Přejeme vám mnoho zábavy a úspěchů s robotickým systémem RP6!
6
1.1. Technická podpora
Na následující adrese můžete prostřednictvím internetu kontaktovat náš
podpůrný tým (Před vyžádáním technické podpory si pečlivě prostudujte
návod, abychom mohli co nejlépe odpovědět na vaše dotazy! Přečtěte si
pozorně také dodatek A – Řešení problémů):
- prostřednictvím našeho fóra: http://www.arexx.com/forum/
- e-mailem: info@arexx.nl
Na začátku příručky najdete poštovní adresu firmy. Všechny aktualizace
software, nové verze příručky a další informace budou publikovány na
domovské stránce:
http://www.arexx.com/
a stránce věnované robotu:
http://www.arexx.com/rp6
1.2. Obsah balení
V krabici s robotem RP6 byste měli najít následující položky:
• Kompletně sestavený robot
• Rozhraní RP6 USB
• USB kabel A->B
• 10 žilový plochý kabel
• CD-ROM RP6
• Příručka pro rychlý začátek
• Experimentální deska RP6
• 4 ks. šroub M3 x 25 mm
• 4 ks. matice M3
• 4 ks. podložka M3
• 4 ks. 14 vývodový konektor
• 2 ks.14 žilový plochý kabel
7
1.3. Vlastnosti a technické údaje
Tato část podává přehled vlastností robotu a zavádí některá základní klíčová slova, abyste se
seznámili s terminologií používanou v této příručce. Většina těchto klíčových slov bude
vysvětlena v následujících kapitolách.
Vlastnosti, jednotlivé části a technické údaje ROBOTICKÉHO SYSTÉMU RP6:
• Výkonný 8-bitový mikroprocesor Atmel ATmega32
◊ Rychlost 8 MIPS (= 8 milionů instrukcí za sekundu) při hodinové frekvenci 8 MHz
◊ Paměť: 32 kB Flash ROM, 2 kB SRAM, 1 kB EEPROM
◊ Volně programovatelný v jazyku C (používá WinAVR/avr-gcc)!
◊ … mnoho dalších předností! Další podrobnosti budou uvedeny v kapitole 2
• Flexibilní rozšiřující systém, založený na sběrnici I2C
◊ Potřebuje pouze dva signály (TWI -> "Dvou vodičové rozhraní")
◊ Přenosová rychlost až 400 kbit/s
◊ Architektura Master->Slave
◊ Na sběrnici se může připojit až 127 zařízení typu Slave
◊ Velmi populární sběrnicový systém. Na trhu je nabízeno mnoho standardních
integrovaných obvodů, snímačů a dalších modulů, které stačí jen přímo připojit na
sběrnici
• Je možná symetrická montáž rozšiřujících modulů na přední a zadní část robotu
◊ Teoreticky je možné na robot umístit řada rozšiřujících modulů, ale možnosti
napájecího zdroje a přetížení podvozku umožňuje montáž maximálně 6 až 8 modulů
(3 až 4 moduly na přední a zadní straně robotu).
◊ Základní deska poskytuje 22 volných montážních otvorů s průměrem 3,2 mm
a podvozek nabízí dalších 16 otvorů. Celkem je to 38 montážních otvorů – dále je na
podvozku volný prostor pro individuální otvory.
• Balení obsahuje experimentální desku plošných spojů(viz fotografie obsahu balení)
• USB rozhraní pro programování mikroprocesoru přímo z PC.
◊ Kabelové připojení zajistí maximální přenosovou rychlost. Nahrávání aktualizace
programu obvykle probíhá rychlostí 500 kBaud a celý paměťový prostor (30 kB, 2 kB
jsou vyhrazeny pro bootloader) se naplní během několika sekund.
◊ Rozhraní se může používat k programování všech dostupných rozšiřujících modulů
systému RP6 s mikroprocesorem AVR.
◊ Rozhraní se může použít také pro komunikaci mezi robotem a rozšiřujícími moduly.
Připojení můžete například využít k ladění, přenosu textových zpráv a dalších dat do
PC.
◊ Ovladač rozhraní umožňuje vytvořit virtuální COM port (VCP) pro všechny populární
operační systémy včetně Windows 2K/XP/Vista a Linux. VCP se může používat
v běžných terminálových programech a aplikačních programech.
◊ Program RP6Loader pro Windows a Linux umožňuje pohodlné nahrávání
aktualizovaného programu. Obsahuje také malý terminál pro komunikaci s robotem
prostřednictvím textových zpráv.
•Výkonná jednotka pásového pohonu v kombinaci s novou převodovkou s minimální
hlučností (ve srovnání s předchozím systémem CCRP5…)
◊ Dva výkonné stejnosměrné motory 7,2 V.
◊ Maximální rychlost cca 25 cm/s – závisí na stavu nabití a kvalitě baterií, celkové
hmotnosti a dalších podmínkách!
◊ Samo mazná, zapouzdřená ložiska pro všechny 4 hřídele kol.
◊ Dva gumové pásy.
◊ Robot je schopen překonávat malé překážky (s výškou do cca 2 cm), například hrany
koberců, práh nebo šikmou plochu se sklonem až do 30% (s namontovanými
nárazníkovými spínači). Při odstranění nárazníku a omezením počtu modulů na
2 dokáže robot šplhat do sklonu až 40%.
• Dva výkonné budiče motorů s tranzistory MOSFET (H-Bridges)
◊ Rychlost a směr otáčení se může řídit přímo mikroprocesorovým systémem.
◊ Dva proudové snímače provádí měření proudu jednotlivých motorů až do velikosti
1,8 A. To umožňuje rychlé rozpoznání zablokování nebo přetížení motorů.
• Dva enkodéry s vysokým rozlišením pro řízení rychlosti a trajektorie.
◊ Rozlišení 625CPR ("přírustků na otáčku"), které znamená, že systém napočítá 625
segmentů během jediné otáčky kola! Rozlišení je 150x vyšší než u předchozího
systému CCRP5, který měl pouze 4 CPR.
◊ Přesné a rychlé měření a regulace rychlosti!
◊ Velké rozlišení umožňuje měření vzdálenosti cca 0,25 mm na jeden segment
snímače.
•Anti kolizní systém (ACS), který může detekovat překážky pomocí integrovaného IR
přijímače a dvou IR diod umístěných na levé a přední straně robotu.
◊ Detekuje překážky přímo před robotem, vlevo i vpravo od robota.
◊ Nastavení citlivosti a výkonu vysílače umožňuje spolehlivou detekci předmětů se
špatným odrazem.
• Infračervený komunikační systém (IRCOMM)
◊ Dokáže přijímat signály standardního univerzálního infračerveného dálkového
ovladače televize nebo videa. Robot můžete ovládat dálkovým ovladačem se
systémem RC5! Protokol se může změnit v software, ale poskytována je pouze
implementace standardního protokolu RC5.
◊ Dálkové ovládání se může používat ke komunikaci s více roboty (pomocí přímého
dosahu nebo odrazem od stropu a stěn) nebo pro vysílání telemetrických dat.
• Dva světelné snímače – tj. pro měření intenzity světla a vyhledávání světelného zdroje.
• Dva nárazníkové snímače pro detekci kolize.
• 6 stavových LED – pro zobrazení stavů snímačů a programu.
◊ Pokud je nezbytné, mohou se pro další funkce použít čtyři LED porty.
9
•Dva volné kanály analogově/číslicového převodníku (ADC) pro externí senzorické
systémy (alternativně se mohou použít jako standardní I/O vývody).
• Přesný stabilizátor napětí 5 V.
◊ Maximální napájecí proud: 1,5 A.
◊ Rozsáhlá měděná plocha pro odvod tepla do desky plošných spojů.
◊ Trvalý odběr proudu nesmí překročit 1A. Vyšší proud vyžaduje zvláštní chlazení!
Doporučujeme, aby byla maximální hodnota trvalého odběru proudu pod 800 mA.
• Výměnná pojistka 2,5 A.
• Nízký klidový proud menší než 5 mA (typicky 4 mA a přibližně 17 až 40 mA při používání,
který samozřejmě závisí na zatížení a aktivitě systému (LED, snímače atd.). Tyto hodnoty
zahrnují pouze spotřebu elektronických obvodů a neberou v úvahu motory a rozšiřující
moduly!
• Napájecí zdroj tvořený baterií 6 nabíjecích článků NiMH (nejsou obsaženy v balení!).
◊ Doporučené články Panasonic nebo Sanyo (NiMH 1,2 V, 2500 mAh, HR-3U, velikost
AA HR6) nebo Energizer (NiMH 1,2V, 2500 mAh, NH15-AA).
◊ Provozní doba přibližně 3 až 6 hodin, závisí na způsobu používání a kvalitě/kapacitě
baterie (pokud se příliš často nepoužívají motory, může robot fungovat mnohem déle.
Tento údaj o provozní době je uvedena pro vlastní robotický systém bez rozšiřujících
modulů).
•Připojení externí nabíječky baterie – hlavní spínač napájení se přepíná mezi dvěma
polohami “Nabíjení/Vyp” a “Provoz/Zap”.
◊ Pomocí několika pájecích propojek na DPS je možné robot připojit k externímu
napájecímu zdroji nebo přídavné baterii.
◊ K nabíjení 6 článků NiMH baterie se může použít libovolný nabíječ. Různé externí
nabíječky, které se drasticky liší výkonem a provozními možnostmi, dovedou nabít
baterii během 3 až 14 hodin. K nabíjení robotu je potřeba nabíječka s kulatým
konektorem o průměru 5,5 mm.
• Hlavní deska poskytuje 6 malých rozšiřujících oblastí (a dále 2 velmi drobné políčka na
malých DPS snímačů v přední části robotu) pro další senzorické obvody tj. k implementaci
dalších IR snímačů pro zlepšení detekce překážek. Rozšiřující oblasti se mohou také použít
k montáži mechanických součástí.
•Umožňuje vytvořit velké množství rozšíření!
Dále dodáváme docela velké množství ukázkových programů v jazyku C a rozsáhlou knihovnu
funkcí pro pohodlný vývoj software.
Webové stránky robotu budou brzy nabízet další programy a aktualizaci software určeného pro
robotický systém a rozšiřující moduly. Samozřejmě uvítáme nabídku vašich vlastních programů,
které zařadíme na internet ke sdílení s ostatními uživateli RP6. Knihovna RP6Library a soubory
ukázkových programů jsou šířeny na základě licence Open Source Licence GPL!
10
1.4. Co RP6 dokáže?
No tak – vyjměte obsah krabice!
Software určuje skutečné chování robotu RP6 - co to přesně bude, to záleží jen na vás a vaší
kreativitě naučit robota správně fungovat. Přitažlivost základů robotiky spočívá ve fascinujícím
procesu implementace nových nápadůči optimalizaci a zdokonalování existujících věci!
Samozřejmě můžete začít tím, že jednoduše spustíte a postupně úpravíte připravené ukázkové
programy, které předvádí standardní funkce, ale neomezujte se pouze na to!
Následující seznam zmiňuje pouze několik příkladů dovedností RP6, které můžete dále
rozšiřovat. Existují stovky možností (viz příklady na následující stránce).
Základní provedení robotu RP6 může …:
• … autonomní pohyb v prostoru (to znamená nezávislý, bez dálkového ovládání),
• … vyhýbat překážkám,
• … sledovat světelné zdroje a měřit intenzitu osvětlení,
• … detekovat kolize, blokovat motory, sledovat stav baterie a správně reagovat na podněty,
• … měřit a regulovat rychlost otáčení motorů – prakticky nezávisle na stavu baterie,
hmotnosti atd. (umožňují to enkodéry s vysokým rozlišením),
• … přesun na určenou, otáčení o zadaný úhel a měření ujeté vzdálenosti (podrobnosti viz
kapitola 2),
• … projíždění geometrických obrazců tj. kruhů, polygonů a dalších,
• … výměnu dat s dalšími roboty nebo zařízeními. Povely mohou být přijímány ze
standardního TV/video/HiFi dálkového ovládání a robot budete jednoduše ovládat podobně
jako dálkově ovládané autíčko.
• … přenos senzorických a dalších dat do PC prostřednictvím rozhraní USB,
• … snadné rozšiřování pomocí flexibilního sběrnicového systému!
• … modifikaci podle vlastních návrhů. Stačí prostudovat schéma a osazení DPS na CD! Při
realizaci modifikací dávejte pozor na úplné zvládnutí problematiky! Obvykle je vhodnější
projekt realizovat na rozšiřující desce – zvláště pokud nemáte dostatečnou praxi s pájením
a sestavováním běžných elektronických obvodů.
11
1.5. Záměry a plány aplikace
Robot RP6 byl konstruován tak, aby dobře umožňoval rozšiřování. Pokud RP6 vybavíte dalšími
senzorickými obvody, můžete robot “naučit” některé z následujících dovedností (některé
z následujících úloh jsou docela komplikované a seznam je uspořádán podle složitosti):
• Rozšíření robotu o další ovladače zvyšuje výkon CPU, rozšiřuje paměť nebo jednoduše
přidává další I/O porty a ADC, jak bude probráno v ukázkových programech pro snadné
rozšíření pomocí I2C portu a ADC.
• Výstup senzorických dat a textu na LCD displej.
• Reakce na hluk a generované akustické signály.
• Měření vzdálenosti k překážce pomocí ultrazvukových snímačů, infračervených snímačů
nebo jiných podobných zařízení, které zajišťuje lepší předvídání kolize.
• Sledování černých čar na podlaze.
• Sledování a následování dalších robotů nebo objektů.
• Ovládání robotu z PC pomocí infračervených signálů (k tomu je třeba speciální hardware,
robot bohužel nedokáže spolupracovat se standardním rozhraním IRDA). Alternativně
můžete začít přímo používat bezdrátové VF moduly.
• Ovládání RP6 pomocí PDA nebo Smartphone (v takovém případě doporučujeme zabudovat
tato zařízení přímo do robotu místo používání jako dálkového ovladače, jsou však možné
oběřešení!).
• Připevnění malého robotického ramene k uchopení předmětů.
• Navigace pomocí elektronického kompasu nebo infračervených paprsků (realizované malou
věžičkou s řadou IR LED a polohování do známých směrů) pro určení polohy robotu
a vyhledání zadané polohy.
• Nabízí řadu robotické výbavy včetně kopání do balónu, obslužných mechanismů a nějakých
zvláštních snímačů, které umožňují zařazení do závodních týmů pro soutěže v robotickém
fotbalu!
• … mnoho dalšího, co vás může napadnout!
Nejdříve byste však měli přečíst příručku a seznámit se s robotikou a programováním.
Předchozí seznam nápadů je pouze zlomek možností a základ motivace.
A pokud se vám programování nepodaří na poprvé, hned to nevzdávejte a nevyhazujte z okna:
každý začátek je těžký!
12
2. RP6 podrobně
Tato kapitola popisuje nejdůležitější části hardware ROBOTICKÉHO SYSTÉMU RP6.
Probereme zde elektroniku, mikroprocesor a propojení software a hardware. Pokud již ovládáte
technologii mikropočítače a elektroniky, pravděpodobně tuto kapitolu pouze letmo prohlédnete.
Začátečník by však měl tuto kapitolu pečlivě prostudovat, aby získal základní poznatky o RP6.
Pokud nechcete čekat a raději otestujete robot, přejděte na kapitolu 3, ale k této kapitole se
později vraťte, protože obsahuje řadu užitečných vysvětlení podrobností programování robotu.
A vy přece chcete znát, co se řídí pomocí software a jak vše funguje, že ano?
Nebudeme se nořit do detailů, ale několik témat v této kapitole může být složitější na pochopení
– autor se pokoušel vše vysvětlit co nejlépe.
Pokud chcete podrobně studovat některou problematiku, můžete vyhledat další informace na
webových stránkách http://www.wikipedia.org/, která poskytují dobrou výchozí pozici pro většinu
témat.
Obrázky často řeknou více než slova a proto začneme s přehledným blokovým schématem
RP6. Obrázek ukazuje drasticky zjednodušené schéma elektronické části robotu a vzájemné
propojení:
13
Robot můžeme rozdělit na pět hlavních funkčních jednotek:
• Řídicí systém
• Napájecí zdroj
• Snímače, IR komunikace a displeje (senzorika) – vše komunikuje s okolním světem a měří
fyzikální veličiny
• Systém pohonu
• Rozšiřující systém
2.1. Řídicí systém
Jak vidíte na blokovém schématu, centrální jednotkou robotu je
8-bitový mikrokontrolér ATMEL ATmega32.
Mikrokontrolér je kompletní jednočipový mikropočítač. Tento
mikroprocesor se liší od velkých počítačů (jako je třeba PC) tím,
že poskytuje méně periferií. Malý mikroprocesor samozřejmě
nemůže obsahovat mechaniku normálního hard disku a paměť
RAM o velikosti několika GB. Mikrokontrolér nepotřebuje příliš
velkou paměť. MEGA32 nabízí “pouze” 32 kB (32768 byte) Flash
ROM – který můžeme srovnat s normální “mechanikou hard
disku” nebo nověji s flashdrive. Flash ROM se používá k uložení
všech programových dat. Velikost paměti s libovolným přístupem (RAM) je omezena na 2 kB
(2048 byte) a přitom bude dostate čná pro vaše potřeby. Pro představu srovnání s řadičem
staršího robotu CCRP5 s pouhými 240 byte RAM, která byla celá vyhrazena pro interpret jazyka
Basic.
Ale proboha, jak může mikroprocesor fungovat s tak malou kapacitou paměti? Je to
jednoduché: procesor nikdy nezpracovává velké množství dat jako operační systém Linux nebo
Windows a nedokáže realizovat složité grafické rozhraní nebo podobné úkoly. Zde poběží
pouze jeden program a bude to vás vlastní software!
Toto omezení není žádná nevýhoda, ale jedna ze základních předností mikroprocesorových
systémů ve srovnání s velkými počítači (dále můžeme zmínit spotřebu energie, velikost a cenu)!
Mikroprocesor je navržen pro zpracování úloh ve známých časových intervalech (často se
označuje jako zpracování “v reálném čase”). Obvykle mikroprocesor nesdílí napájení s řadou
dalších mikroprocesorů jako je tomu v běžném PC a programátor se nemusí zabývat určením
časového rozložení speciálního funkčního modulu.
Řídící jednotka RP6 běží na frekvenci 8 MHz, která dovoluje zpracování programu rychlostí
8 milionu instrukcí za sekundu. Mikroprocesor sice umožňuje časování frekvencí až 16 MHz,
ale nižší frekvence se používá kvůli snížení spotřeby systému. Stoj zůstává dostatečně rychlý
pro zpracování všech standardních úloh! Rychlost můžeme opět porovnat se starším
předchůdcem CCRP5 s hodinami 4 MHz, které umožňovaly zpracování pouze 1000
(interpretovaných) instrukcí jazyka Basic během jedné sekundy. Z tohoto důvodu bylo ACS řízení staršího robotu koncipováno s dalším slave řadičem – už nikdy nebudeme potřebovat
tento podružný mikroprocesor! Více procesorů má navíc větší spotřebu energie a rozsáhlejší
rozhraní. Na RP6 je možné přidat rozšiřující řídící modul M32, který obsahuje další MEGA32 časovaný maximálně frekvencí 16 MHz.
14
Mikrokontrolér komunikuje s okolním světem přes 32 I/O vývodů ("vstup/výstupní piny"),
uspořádaných do "portů" po 8 I/O vývodech. Tímto způsobem poskytuje MEGA32 4 "porty":
PORTA až PORTD. Mikroprocesor je schopen číst logické stavy těchto portů a získanou
informaci zpracovat programem. Mikroprocesor bude samozřejmě používat také výstup
logických signálů na portech pro ovládání malých zátěží do maximálního proudu 20 mA
(například LED).
Mikroprocesor dále poskytuje řadu integrovaných hardwarových modulů určených pro speciální
úlohy. Implementace těchto úloh v software může být velmi komplikované nebo nemožné.
Jednou z takových speciálních funkcí je časovač. K dispozici jsou tři časovače na čítání
hodinových period. Časovače jsou naprosto nezávislé na běhu programu. Ve skutečnosti může
mikroprocesor zpracovávat jinou práci, dokud nenastane požadovaný stav čítače.
RP6 používá jeden časovač na generování PWM signálů (PWM = "pulsně šířková modulace")
pro regulaci rychlosti motorů a tak časovač může přijímat příslušné vstupní parametry, které
zvládnou tuto úlohu na pozadí. Generování PWM signálu podrobně probereme v kapitole
“Systém pohonu”.
Další moduly MEGA32 například jsou:
• Sériové rozhraní (UART) pro komunikaci RP6 s PC přes sběrnici USB. Pokud není zapojena
sběrnice USB, může se pomocí tohoto rozhraní připojit další mikroprocesor s USART.
• Modul "TWI" (= "dvou vodičové rozhraní") poskytuje sběrnici I2C pro rozšiřující moduly.
• Analogově-číslicový převodník (ADC) poskytuje 8 vstupních kanálů pro měření napětí s 10-
bitovým rozlišením. RP6 používá ADC ke sledování napětí baterie, snímačů proudu motorů
a intenzitu světla se dvěma fotorezistory.
• Tři vstupy externího přerušení pro generování signálů, které budou přerušovat chod
programu v řídící jednotce a vynutí skok do speciální "obsluhy přerušení". Mikroprocesor
zpracuje obsluhu přerušení a okamžitě se vrátí do normálního programu. Tuto programovou
vychytávku budeme používat pro snímače orometrie. Tento snímač podrobně probereme
později.
Integrované hardwarové moduly nemají vlastní individuální vývody, ale mohou se použít
alternativně místo standardních I/O vývodů. Běžně se tyto speciální funkce volně mapují na I/O
vývody, ale RP6 je téměř všechny vývody standardně nakonfigurovány (protože jsou trvale
připojené k ostatním elektronickým obvodům) a modifikace bude komplikovaná.
MEGA32 nabízí řadu dalších možností, které nemohou být podrobně
popsané v této příručce. Více informací získáte v katalogových listech
jednotlivých výrobců (které můžete najít na RP6 CD-ROM).
15
2.1.1. Bootloader
Ve speciální části paměti mikroprocesoru je umístěn tzv. bootloader. Tento krátký program
zajišťuje nahrávání uživatelských programů do paměti počítače přes sériové rozhraní.
Bootloader komunikuje s programem RP6Loader, který běží na nadřízeném PC. Při takovém
programování není potřeba další hardware. USB rozhraní se může použít ke komunikaci
s mikroprocesorem pomocí textových zpráv a dále pro programování mikroprocesoru.
Používání bootloaderu má však jednu nevýhodu: zabírá 2 kB paměti FLASH a pro vlastní
program zbývá 30 kB volné paměti. Toto omezení nijak neomezuje, protože je dostatek místa i
pro velmi složité programy (v porovnání s robotem ASURO, kde je k dispozici 7 kB volné
paměti)!
2.2. Napájecí zdroj
Robot samozřejmě potřebuje energii. RP6 získává tuto energii v podobě baterie složené ze
šesti akumulátorů. Provozní čas bude velmi záviset na kapacitě baterie, a protože elektronické
systémy budou spotřebovávat relativně malé množství energie bude hlavní spotřeba energie
v motorech, která závisí na zatížení. Dostatečně dlouhou provozní dobu můžete zajistit
oblíbenými bateriemi s kapacitou vyšší než 2500 mAh. Dostatečné budou i baterie s kapacitou
2000 mAh. Velmi kvalitní baterie umožní provozní dobu 3 až 6 hodin, podle zatížení motorů a
kvality nabití. Budete potřebovat 6 kusů baterií, které společně dávají napětí 6 x 1,2 V = 7,2 V.
V blokovém schématu je toto napětí označeno jako "UB" (= "U-baterie", U je standardní
písmeno používané v elektrotechnických vzorcích pro napětí). "UB" je definováno jako
jmenovité napětí, které se může časem měnit. Úplně nabitá NIMH baterie může dodávat až 8,5
V! Při vybíjení baterie se napětí snižuje a může se prudce změnit podle zátěže a kvality článků.
Kritický faktor kvality článků je vnitřní odpor.
Proměnné napětí samozřejmě není vhodné pro senzorická měření. Mnohem důležitější je však
omezený rozsah provozního napětí polovodičových obvodů. Například mikroprocesor se
poškodí při napájecím napětí větším než 5 V. Proto se musí napájecí napětí snížit a stabilizovat
na přesně definovanou hodnotu.
Napájení elektroniky je vyřešeno pomocí integrovaného
stabilizátoru napětí, který je schopen dodávat proud až 1,5 A (viz
obrázek). Při odběru 1,5 A se tento stabilizátor zahřívá, proto je
umístěn na velké měděné ploše DPS Toto chlazení však omezuje
odběr proudu na maximálně 1A po dobu několika sekund. Pro
větší odběry proudu se musí instalovat přídavný chladič. Trvalý
odběr proudu je omezen přibližně na 800 mA. Větší zátěž navíc
rychle vybije baterii.
Při normální zátěži elektronikou bez rozšiřujících modulů nebude
robot odebírat více než 40 mA, který se sníží vyřazením vysílače
IRCOMM. Tato hodnota proudu není žádný problém pro
stabilizátor a tak je možné připojit řadu experimentálních desek.
Rozšíření elektroniky obvykle zvýší odběr proudu o maximálně 50
mA, pokud neobsahuje zátěže jako jsou motory nebo LED.
16
2.3. Senzorika
Většina snímačů byla zmíněna v předchozích kapitolách, ale nyní se na ně víc zaměříme.
V přehledném schématu najdete snímače v krajní modré oblasti “Senzory”. Některé snímače
zasahují do dalších modulů. I když mezi ně patří odometrické enkodéry, snímače proudu a
napětí baterie budou také probrány v této kapitole!
2.3.1. Snímač napětí baterie
Základem tohoto snímače je jednoduchý dělič napětí složený ze dvou rezistorů. Můžeme
předpokládat, že maximální napětí baterie bude 10 V. Šest NiMH článků bude mít zaručeně
menší hodnotu. Referenční napětí ADC, které se při měření porovnává, je nastaveno na 5 V.
Vstup nikdy nesmí překročit napájecí napětí mikroprocesoru 5 V. Z tohoto důvodu se musí
sledované napětí dělit dvěma. Dělič napětí musí zajistit, aby sledované napětí odpovídalo
napěťovému rozsahu převodníku.
AD převodník měří napětí s rozlišením na 10 bitů (10 V se převede na hodnotu v rozsahu 0 až
1023 jednotek), výsledkem je rozlišení napětí 10V/1024 = 9.765625mV. Změřená hodnota 512
jednotek odpovídá hodnotě 5 V a 1023 přibližně 10V. Tuto hodnotu nemůže 6 běžných NiMH
baterií překročit!
Měření není příliš přesné, protože nepoužíváme přesné rezistory. Přesnost se pohybuje
v jednotkách procent. Referenční napětí není přesné a může kolísat podle zatížení napájecího
zdroje. Tato nepřesnost nás neznepokojuje, protože potřebujeme pouze rozpoznat hranici vybití
baterie. Pokud potřebujete přesně určit napětí, musíte pomocí altimetru změřit přesnou hodnotu
napětí a pak upravit hodnoty v software.
Pokud akceptujete tolerance, můžete napětí určit přímo z hodnot AD převodníku: 720 jednotek
zhruba odpovídá 7,2 V; 700 na 7,0 V a 650 na 6,5 V. Konstantní hodnota 560 se může chápat
jako prázdná baterie.
2.3.2. Světelné snímače (LDR)
Malá destička plošných spojů snímače na přední straně robotu
obsahuje dva tak zvané LDR (= "rezistor citlivý na světlo"), které
míří na levou respektive pravou stranu. Mezi dvěma senzory je
černá přepážka, která brání dopadu světla na “špatnou” stranu
systému světelného snímače. Jelikož má snímač napěťový
výstup, tvoří oba světelné snímače společně s pevnými rezistory
napěťové děliče, určující intenzitu osvětlení. V tomto případě se 5
V dělí na hodnotu určenou proměnným rezistorem. Dělicí poměr se mění podle intenzity
dopadajícího světla a poskytuje napětí závislé na světle, které se přivádí na jeden z kanálů
ADC!
Rozdíl napětí mezi oběma snímači se může použít k určení, na které straně robotu je umístěn
jasnější zdroj světla: vlevo, vpravo nebo uprostřed. Vhodný program může sledovat jasnou
svítilnu ve tmavé místnosti nebo navádět robota do nejvíce osvětlené části podlahy.
17
Samozřejmě se můžete pokusit o opak: robot můžete naprogramovat tak, aby se skrýval před
světlem.
Systém světelného snímání můžete zdokonalit montáží jednoho nebo dvou dalších LDR na
boční strany robotu. Výchozí používání pouze dvou snímačů nemusí dobře rozlišit světlo na
přední a zadní straně. Dva kanály AD převodníku jsou stále volné…
2.3.3. Anti kolizní systém (ACS)
Z pohledu software je nejsložitější snímač ACS - “Anti kolizní systém”!
ACS tvoří integrovaný obvod infračerveného (IR) přijímače (viz obrázek)
a dvě IR LED umístěné na levé a pravé straně přední senzorické DPS.
Mikroprocesor přímo ovládá IR LED. Obslužná funkce se může změnit a
upravit přesně podle vašich potřeb! Předchozí model robotu měl
k tomuto účelu speciální řadič a uživatel nemohl modifikovat software
tohoto zařízení.
IR LED vysílají krátké infračervené impulsy modulované na kmitočtu 36
kHz, které může detekovat IR přijímač. Jakmile se IR impulsy odrazí od
předmětu zpět a zachytí je IR přijímač, může mikroprocesor reagovat na
tuto situaci a spustit únikový manévr. Aby se potlačila příliš velká
citlivost, zpozdí ACS rutina detekci událostí dokud systém nepřijme
definovaný počet impulsů během krátké časové periody. Dále ACS
synchronizuje detekci pomocí rutiny pro příjem kódování RC5 a robot nebude reagovat na
signály z televizního dálkového ovladače. Jiné kódy však mohou se systémem ACS interferovat
a robot se může pokusit vyhnout neexistující překážce!
Díky tomu, že má ACS systém umístěnu jednu IR LED na levé a druhou na pravé straně, může
snadno určit, zda se překážka nachází vlevo, vpravo nebo přímo před robotem.
Systém umožňuje změnu intenzity impulsů obou IR LED ve třech úrovních. Ale při nejvyšší
hodnotě proudu nemůže ACS spolehlivě detekovat všechny překážky. To velmi závisí na
odrazových vlastnostech povrchu překážek!
Černý předmět bude samozřejmě IR světlo odrážet méně než bílá překážka a předmět
s reflexními hranami může nasměrovat IR světlo přímo do několika zvláštních směrů. Z těchto
důvodů dosah ACS drasticky závisí na povrchu překážek! Tato závislost musí být považována
za základní nevýhodu všech infračervených senzorických systémů (obzvlášť v této cenové
kategorii).
Robot přesto může bezvadně rozpoznávat a obcházet překážky. Pokud selže ACS detekce,
zůstávají v činnosti nárazníky s dotykovými snímači. A když selžou i dotykové snímače, může
robot pomocí snímače proudu nebo enkodéru zjistit zablokování motoru!
Pokud nebudete spokojeni s tímto senzorickým systémem, můžete na robot namontovat
například nějaké ultrazvukové snímače.
18
2.3.4. Nárazníky
Malá destička osazená dvěma mikrospínači s dlouhými páčkami je umístěná na přední části
robotu. Tato destička chrání IR LED snímače před mechanickým poškozením, pokud robot
nešťastně narazí na překážku. Pomocí mikrospínačů může mikropočítač detekovat kolize,
couvnout nebo zatočit a pak znovu jet dopředu.
Spínače jsou připojeny na porty již používané pro LED. Proto nezabírají volné porty
mikroprocesoru. Toto dvojité využití způsobí, že se LED rozsvítí, jakmile se sepne některý
spínač! Spínače se však stisknou jen občas a aktivace LED nebude rušit.
Destička nárazníků se může odmontovat a příležitostně nahradit například
kopacím/záchytávacím zařízením pro balóny.
2.3.5. Snímače proudu motoru
Každý ze dvou snímačů proudu motoru obsahuje
výkonový rezistor. Ohmův zákon U = R•I říká, že úbytek
napětí na rezistoru je přímo úměrný proudu, který přes něj
protéká!
Aby nebyl úbytek napětí příliš velký, musí se zvolit velmi
malá hodnota odporu. Zde jsme použili 0,1 ohmu.
Při tak nízké hodnotě je úbytek napětí velmi malý (0,1
V při proudu 1 A) a před přivedením na vstup AD
převodníku se musí zesílit. Zesílení se realizuje pomocí
operačního zesilovače. RP6 používá samostatný operační zesilovač pro každý individuální
proudový snímač. Měřicí rozsah proudu je přibližně 1,8 A. Výsledkem tohoto proudu je úbytek
napětí na výkonovém rezistoru 0,18 V a na výstupu operačního zesilovače napětí asi 4 V. To je
maximální výstupní napětí operačního zesilovače napájeného ze zdroje napětí 5 V.
Použité typy výkonových rezistorů mají toleranci hodnoty 10 %, rezistory u operačních
zesilovačů 5 %. Všechny součástky jsou nepřesné, a pokud neprovedete kalibraci, můžete
zjistit odchylku měřené hodnoty až 270 mA! My však potřebujeme pouze zjistit úroveň proudu,
která odpovídá podmínkám kritického zatížení motoru. Robot bude schopen detekovat
blokování/přetížení motoru popřípadě poruchu motoru nebo odometrických snímačů!
Stejnosměrné motory odebírají při větší zátěži (momentu) větší proud. Při zablokovaných
motorech se rapidně zvýší protékající proud. Tento stav se rozpozná v software a spustí se
nouzové odpojení. Pokud by se tak nestalo, budou se motory velmi zahřívat
(a také přetěžovat) a časem dojde k jejich poškození.
Pokud selžou enkodéry – jakýmkoliv způsobem – může systém tento stav také spolehlivě
rozpoznat. Měření rychlosti samozřejmě spadne na nulu. Ale pokud se motor pohání plným
výkonem a proudové snímače detekují pouze malý proudy (které značí, že motor není
zablokován) můžete vyvodit závěr, že je poškozen motor, enkodér nebo obě zařízení. Tento
stav může například nastat, když se v programu zapomenou aktivovat snímače…
19
2.3.6. Enkodéry
36
36
125012
Enkodéry fungují naprosto jinak než dříve probrané
snímače. Tvoří je reflexní optické snímače a kódovací kola
připevněná na jednom převodovém kolu v každé
převodovce. Tato sestava se používá k určení rychlosti
otáčení motorů. Obě kola enkodérů mají 36 segmentů (jak
ukazuje obrázek, jedná se o 18 černých a 18 bílých
políček). Jakmile se převodovky otáčí, pohybují se tyto
segmenty před reflexním snímačem. Bílé segmenty odráží
IR světlo, zatímco černé budou odrážet jen zanedbatelné
množství světla. Stejně jako u ostatních snímačů produkují
enkodéry analogový signál, který ale bude interpretován
číslicově. Nejprve se signál zesílí a následně se
Schmitovým klopným obvodem tvaruje na pravoúhlý signál.
Náběžná i sestupná hrana signálu (změny z 5 V na 0 V a
z 0 V na 5 V) spustí přerušení tato událost se započítá programem. Tímto způsobem se může
měřit vzdálenost a společně s časovačem se může vypočítat rychlost.
Určení rychlosti je hlavní aplikace enkodérů. Zpětná vazba z enkodérů je jediný spolehlivý
způsob regulace rychlosti motoru. V neřízeném systému by mohla rychlost motoru záviset na
napětí baterie, zatíženi a parametrech motoru.
Vysoké rozlišení enkodérů umožňuje spolehlivou
regulaci i při docela malých rychlostech.
V každém z obou převodových složení má
střední převodový systém 50 zubů a malé vnitřní
převodové kolo 12 zubů (viz obrázek). Kódovací
kolečka jsou umístěna na převodovém kole, které
je umístěno za pastorkem motoru, tak lze
vypočítat:
50
17
13
17;
62536
==•
13
Přestože je zde 36 segmentů musí být výsledek
pro celou otáčku kola celé číslo bez zlomkové části. Enkodéry generují 625 hran na jednu
otáčku a každá hrana představuje jeden segment.
Rozměr kola včetně gumového pásu je kolem 50 mm a teoreticky získáme, při obvodu cca 157
mm, krok 0,2512 mm na každou započítanou jednotku enkodéru. Sledování dráhy však může
být deformováno díky tlaku nebo nedostatečně poddajným povrchem. Proto můžeme uvažovat
maximálně 0,25 mm na každou započítanou jednotku. Často bude lepší aplikovat 0,24 mm
nebo 0,23 mm. Kalibrační hodnoty se mohou určit pohonem na přesně definovanou vzdálenost,
jak je popsáno v dodatku. Měření není příliš přesné díky prokluzu nebo podobným vlivům. Při
přímé jízdě vpřed bude mít enkodér minimální chybu přesnosti, ale při zatáčení robotu budou
růst odchylky výsledku. Největší odchylku způsobí speciálně otáčení robotu na místě.
Odchylky mohou být zjištěny a opraveny testováním, zkoušením a chybami. Je to nevýhoda
všech pásových pohonů – v našem robotu i mnohem dražších systémech. V porovnání s roboty
se standardní diferenciální pohonnou jednotkou se dvěma koly a přídavným podpůrným
kolečkem umožňují pásové systémy lepší chování při jízdě v různorodém prostředí. Pásový
pohon bude snadno překonávat malé překážky, šikmé plochy a hrbolaté podlahy. Na každém
povrchu jsou extrémně užitečné enkodéry, protože umožňují regulaci rychlosti při všemožném
zatížení, kompletně nezávislé na kvalitě povrchu, zátěži motoru a napětí baterie.
20
Pokud budeme uvažovat hodnotu 0,25 mm na segment, pak při rychlosti 50 segmentů za
sekundu dostaneme rychlost 1,25 cm/s. Tato rychlost je minimální, která se může spolehlivě
regulovat (při implementaci nejnovější verze standardního software). Přesná hodnota se může
u jednotlivých robotů lišit. Rychlost 1200 segmentů za sekundu odpovídá maximální dosažitelné
rychlosti 30 cm/s (rozlišení 0,25 mm, kdežto 0,23 mm koresponduje s 27,6 cm/s). Maximální
rychlost závisí na stavu nabití baterie a při běžných bateriích nelze 30 cm/s dosáhnout na delší
dobu. Z tohoto důvodu je knihovní funkce omezena na 1000 segmentů/sekundu, která udržuje
konstantní maximální rychlost během delší doby vybíjení baterie. Dále se při nižších rychlostech
prodlužuje životnost převodovek a motorů!
Jakmile robot napočítá 4000 segmentů, urazí se vzdálenost přibližně jeden metr. Jak již bylo
vysvětleno, tato specifikace je platná pro rozlišení přesně 0,25 mm – bez správné kalibrace
musíme uvažovat větší či menší odchylky. Pokud vás nezajímá přesný výpočet vzdálenosti,
nemusíte kalibrovat enkodéry a jednoduše uvažovat hodnotu 0,25 mm nebo ještě lépe 0,24
mm!
Dobré navigační systémy nespoléhají při řízení vzdálenosti a úhlovém natočení zcela na
enkodérech, ale používá externí pevné značky, jako jsou infračervené majáky a přesné
elektronické kompasy. Používání externích systémů je obvykle dobrý nápad pro častou korekci
odchylek orometrie.
2.4. Pohonný systém
Pohonný systém RP6 se skládá ze dvou stejnosměrných motorů s přídavnou převodovkou pro
pohon pásových kol (viz předchozí obrázek). Motory mohou spotřebovat docela velké množství
energie a mikroprocesor nemůže přímo dodávat tak velké proudy.
Z tohoto důvodu potřebujeme výkonný budič
motoru. Pro řízení motorů v robotu RP6
používáme dva tak zvané H-můstky. Schéma na
pravé straně ukazuje základní princip budiče.
Můžete zde také vidět, že spínače a motor
společně tvoří písmeno “H”.
Nyní uvažujeme všechny spínače jako otevřené,
Pokud sepneme spínače S1 a S4 (červené) bude
se na motor přivádět napětí a ten se začne otáčet,
řekněme doprava. Pokud nyní znovu otevřeme
spínače S1 a S4 a následně sepneme spínače S2
a S3 (zelené), přivede se napětí s opačnou
polaritou a motor se začne otáčet opačným
směrem (doleva). Samozřejmě musíme dávat
pozor na to, aby se současně neseply spínače S1 a S2 nebo S3 a S4. Každá tato kombinace
může mít za výsledek zkrat obvodu a může poškodit spínače.
21
Konstrukce RP6 samozřejmě nebude používat mechanické spínače, ale tranzistory MOSFET,
které vedou, pokud je na jejich hradlo přivedeno vhodné napětí. MOSFET může spínat velkou
rychlostí v řádu několika kHz.
Nyní jsme nalezli způsob jak měnit směr otáčení motoru, A jak můžeme realizovat zrychlování
nebo zpomalování motoru? Stejnosměrný motor se bude otáčet rychleji, když se přivede vyšší
napětí a rychlost motoru můžeme regulovat zvyšováním nebo snižováním napětí. Podívejme se
znovu podrobně na H-můstek.
Obrázek ukazuje, co můžeme dělat,
Generujeme pravoúhlý průběh s pevným
kmitočtem a zavedeme pulsně šířkovou
modulaci, která mění střídu. “Střída” znamená
poměr mezi vysokou a nízkou periodou
signálu.
Nyní bude motor dostávat menší střední
hodnotu stejnosměrného napětí, která
odpovídá střídě.
Na grafu je toto chování vyznačeno červenou
čarou (Ug) a červenou plochou pod čarou.
Pokud je například na řídící obvod motoru
přivedeno napětí baterie 7 V a motor se
reguluje PWM signálem se střídou 50 %, bude
průměrná hodnota stejnosměrného napětí 3,5
V. Tento výklad přesně neodpovídá podmínkách reálného elektronického obvodu, ale je dobrou
vizualizací principu.
Robot RP6 výhodně používá převodovku s velkým redukčním poměrem (~ 1:72). Díky tomu
dostává robot skutečně silný pohon, který umožňuje, ve srovnáním s malými roboty typu
ASURO, převoz větších zátěží. Při zvyšování hmotnosti se však musí počítat s větším
zatížením napájecího zdroje, jehož důsledkem se zkrátí doba vybíjení baterie…
V porovnání s dálkově ovládaným závodním autem můžeme se domnívat, že je robot RP6
pomalé vozítko – což je naprostá pravda – ale robot byl záměrně konstruován pro pomalou
jízdu. Robot je postaven pro ovládání mikroprocesorem a pokud programátor vytvoří chyby
v software, může být nevýhodné, kdyby robot narazil do zdi rychlostí třeba 10 m/s. Díky volnější
rychlosti se robot nedostane do problémů, protože pomalejší pohyb poskytne dostatek času pro
reakci snímačů na překážky. Robot je navíc výkonnější a získá přesnější regulaci rychlosti.
Menší rychlost umožňuje pomalý pohyb robotu RP6 konstantní rychlostí.
2.5. Rozšiřující systém
Jednou z nejužitečnějších vlastností RP6 je rozšiřující
systém, který umožňuje snadné přidávání dalších komponent
na základ robotu. Základní platforma RP6 obsahuje dostatek
snímačů. Stávající počet snímačů přesahuje běžné vybavení
srovnatelných robotů v dané cenové kategorii, ale robot se
po přidání několika senzorických modulů stane mnohem
zajímavější. Systém ACS pak bude například pouze
detekovat existenci překážek před robotem. Použití
ultrazvukových snímačů nebo dokonalejších IR snímačů
můžete být schopni určit vzdálenost a zahájit sofistikované
manévrování při obcházení překážek.
22
Vzdálené senzorické obvody může řídit další mikroprocesor, který je užitečný pro zpracování
dalších úloh, např. RP6 CONTROL M32 poskytuje další mikroprocesor ATmega32.
Rozšiřovací systém samozřejmě umožňuje připojení několika rozšiřujících modulů (viz obrázek),
které používají minimální počet signálových vodičů a přitom poskytuje dostatečně velkou
komunikační rychlost.
2.5.1. Sběrnice I2C
Tyto požadavky splňuje sběrnice I2C. Název tohoto standardu vnitřní sběrnice integrovaných
obvodů je odvozen z I kvadrát C. Někdy se místo “I2C” píše “I2C”, protože symbol druhé
mocniny “2” není možné vložit do názvu proměnných a podobně. Sběrnice potřebuje pouze dva
signálové vodiče a může se na ni připojit 127 dílčích zařízení komunikujících rychlostí 400
kbit/s.
Velmi populární sběrnici I2C, navržená firmou Philips Semiconductors v průběhu osmdesátých a
devadesátých let minulého století, je aplikována ve velkém počtu elektronických přístrojů,
například video rekordérech, televizních přijímačích, ale také v průmyslových systémech. Řada
moderních PC a notebooků používá variantu této sběrnice, která se nazývá SMBus, pro
regulaci ventilace a teploty vnitřních zařízení. Sběrnicový systém I2C používá také velký počet
robotů. Z tohoto důvodu je sběrnicí I2C vybavena řada senzorických modulů jako jsou
ultrazvukové snímače, elektronické kompasy, teplotní čidla a podobná zařízení dostupná na
trhu.
Sběrnice I2C má master/slave orientaci. Jeden nebo více zařízení typu master řídí komunikaci
s až 127 zařízeními typu slave. I když tato sběrnice dokáže zpracovat multi masterovou
komunikaci, budeme popisovat sběrnicovou komunikaci s jediným zařízením typu master.
Topologie multi-master je jen složitější variantou.
Dvě nezbytné datové linky se nazývají SDA a SCL. SDA se může číst jako "sériová data" a SCL
se nazývá "sériové hodiny" – které již vysvětlují používání datového a hodinového signálového
vodiče. SDA se používá jako obousměrný signál a proto jsou schopna přenášet data zařízení
typu master i slave. SCL je zcela ovládán zařízením typu master.
Datové bity se vždy přenášejí synchronně s hodinovým signálem odvozeným v zařízení typu
master. Úroveň signálu SDA se může měnit pouze, pokud je signál SCL v low (s výjimkou
podmínky START a STOP, viz dále). Přenosová rychlost se může, kdykoliv během přenosu dat,
měnit mezi 0 a 400 kbit/s.
Předchozí obrázky ukazují obvyklé přenosové protokoly. Na prvním je přenos z masteru do
zařízení slave. Bílá políčka odkazují na přenos dat z master do slave a tmavá políčka
představují odezvu od zařízení typu slave.
Každý přenos začíná inicializační podmínkou START a musí být ukončen podmínkou STOP.
Podmínka START se vytvoří pokaždé, když se při vysoké úrovni SCL přitáhne linka SDA
z vysoké do nízké úrovně. Opačná podoba signálových úrovní se aplikuje při podmínce STOP:
když se při vysoké úrovni SCL vytáhne linka SDA z nízké do vysoké úrovně dostaneme
podmínku STOP.
23
Bezprostředně po podmínce START vyšleme 7 bitů dlouhou slave adresu, která adresuje
zařízení, následovanou bitem, který definuje, zda se budou zapisovat nebo číst data. Zařízení
typu slave odpoví vysláním ACK ("Acknowledge = potvrzení"). Následovat může libovolný počet
datových byte a každý jednotlivě přijatý byte bude potvrzen od slave (pomocí signálu ACK).
Komunikace se ukončí podmínkou STOP.
Tento popis je pouze velmi stručné vysvětlení sběrnice I2C. Hloubaví čtenáři si mohou vyhledat
další informace ve specifikaci sběrnice I2C od firmy Philips. Mnoho informací obsahuje také
dokumentace mikroprocesoru ATmega32.
Ukázkové programy názorně ukazují, jak se používá hardware sběrnice. Knihovna RP6 již
nabízí funkce pro ovládání sběrnice I2C. Nebudeme zabíhat do detailů protokolu, ale je užitečné
porozumět základní funkci komunikace po sběrnici.
2.5.2. Rozšiřující konektory
Hlavní deska poskytuje čtyři rozšiřující konektory.
Dva jsou označeny “XBUS1” respektive “XBUS2”.
“XBUS” je zkratka “eXpansion BUS = rozšiřující
sběrnice”. “XBUS1” a “XBUS2” jsou kompletně
propojené a na hlavní desce jsou uspořádány
symetricky. Z tohoto důvodu budete moci umístit
rozšiřující moduly na přední i zadní stranu robotu.
Každý rozšiřující modul poskytuje na jedné straně
modulu dva konektory XBUS. K vzájemnému
propojení modulů a hlavní desky slouží 14 žilový plochý kabel. K propojení nabízí každý
rozšiřující modul dva shodné propojovací konektory. Vnější konektor se použije k propojení
směrem dolů, kdežto vnitřní konektor slouží k propojení směrem nahoru. Tento způsob
umožňuje (teoreticky) skládat na sebe řadu modulů (viz obrázek, který ukazuje tři rozšiřující
moduly s jednotlivými obvody sestavenými na univerzální desce RP6).
Konektory XBUS poskytují napájecí napětí, dříve popsanou sběrnici I2C, reset hlavního
mikroprocesoru a přerušovací signály.
Napájecí zdroj tvoří dvě napětí: nejprve je to stabilizovaných 5 V ze stabilizátoru, ale také napětí
přímo z baterie. Napětí se bude během zatížení měnit – obvykle od 5,5 V (vybité baterie) až do
přibližně 8,5 V (nové nabité baterie – tato hodnota se u jednotlivých výrobců liší). Hodnota
napětí se však může překročit tyto limity podle zátěže, typu a stavu nabití baterie.
Signál master reset je důležitý pro resetování všech mikroprocesorových obvodů, když se
stiskne tlačítko Start/Stop nebo při programování. Programování pomocí bootloaderu
v mikroprocesoru spustí uživatelský program low impulsem (high-low-high) na lince SDA. Tímto
způsobem se spustí všechny programy na mikroprocesorech (AVR) současně po stisknutí a
uvolnění tlačítka Start/Stop nebo start programu bootloaderem … (bootloader negeneruje
pouze low impuls pro start, ale také úplné všeobecné volání na sběrnici I2C s datovým byte =
0).
24
Několik modulů může využívat linky přerušení pro signalizaci příchodu nových dat nebo
dokončení práce a očekávání nových povelů od hlavního procesoru. Tyto linky nejsou určeny
pro vynucené opakované dotazování některých speciálních rozšiřovacích modulů na nová data.
Tato metoda je samozřejmě možná, ale alternativní návrh s dalšími linkami přerušení budou
obvykle omezovat provoz sběrnice a zatěžovat CPU. Přestože je počet linek přerušení
omezený na 3 signály a jednu volnou linku vyhrazenou pro uživatelské
signály, můžeme přiřadit jednu linku několika modulům (například
všem ultrazvukovým snímačům) a oslovovat všechny moduly na
základě jediné signalizace přerušení.
Další dva rozšiřující konektory na hlavní desce označené “USRBUS1”
a “USRBUS2” nejsou vzájemně propojené. Všechny linky jsou
přivedeny na pájecí plošky všech rozšiřujících modulů a na tyto plošky
můžete aplikovat svoje vlastní signály.
“USRBUS” je zkratka “uživatelské-sběrnice”. Tento 14 vývodový
rozšiřující konektor můžete použít pro cokoliv chcete – pro vlastní
sběrnicový systém, další napájecí vodiče (ale musíte být opatrní,
protože spoje dovolují maximální proud pouze 500 mA) nebo pro
cokoliv jiného. Uvedeme příklad: jste schopni propojit dva rozšiřující
moduly bez možnosti připojení k dalšímu modulu. To může být
užitečné pro řadu složitých obvodů nebo snímačů, které se namohou
umístit na jediný rozšiřující modul. Tato metoda bude čistější pro
vlastní zapojení.
Samozřejmě nemůžete přidávat libovolný počet rozšiřovacích modulů
– pokud nechcete přetížit vozidlo, můžete na přední nebo zadní stranu
robotu navršit 6 modulů. Příliš velký počet modulů způsobí také problémy s přetěžování
bateriového zdroje. Běžným pravidlem je připojení maximálně 8 modulů na RP6: 4 na přední
stranu a 4 na zadní stranu.
Obrázek ukazuje zapojení obou rozšiřujících konektorů. Na hlavní
desce je špička 1 vždy umístěna blízko nápisu XBUS1 respektive
XBUS2. Alternativně je špička označena “1” na značce umístění
konektoru.
+UB je napětí baterie, VDD je rozvod +5V, GND označuje “minus”
neboli “zem” (GND = uzemnění), MRESET označuje signál
Master Reset, INTx jsou linky přerušení, SCL jsou hodiny a SDA
datová linka sběrnice I2C.
Jediné, co musíte udělat, je zapájení konektoru USRBUS.
Důležité upozornění: nepřetěžujte napájecí vodiče VDD a +UB! Tyto vodiče mohou
dodávat maximální proud 1 A (aplikovaný na obě špičky DOHROMADY. To znamená
spojení špiček 4+6 (+UB) a 3+5 (VDD) na konektorech!
25
3. Nastavení hardware a software
Dříve než začnete nastavovat robot RP6 nebo příslušenství, přečtěte si
pozorně následující bezpečnostní pokyny. Zvláště to platí, pokud budou
RP6 později používat děti!
Tuto kapitolu čtěte obzvlášť pozorně!
3.1. Bezpečnostní pokyny
Díky otevřené architektuře RP6, existuje na konstrukci několik ostrých hran. Proto by robot
neměly používat děti mladší 8 let! Hlídejte, prosím děti, když se v místnosti pohybuje RP6
a informujte děti o možném nebezpečí!
Neprovozujte robot v místech, kde se volně pohybují zvířata, například křečci, protože by je
mohl RP6 poranit. Naopak velká zvířata jako psi a kočky mohou poškodit robot…
Pásový systém pohonu má nějaké nebezpečné části mezi pásy a koly, kam může pás vtáhnout prsty. Tyto oblasti jsou z velké části zakryté koly, přesto však dávejte pozor. Hlavně
nestrkejte prsty mezi točící se kolo a pásy. Motory jsou skutečně výkonné a mohou vás snadno
zranit. Prsty nestrkejte ani mezi pásy a desku plošných spojů!
POZOR: v případě, že používáte standardní software, mohou motory automaticky zvyšovat
výkon! Podle způsobu naprogramování, mohou motory začít fungovat kdykoliv a nečekaně
reagovat pohybem!
Robot nikdy neprovozujte bez dozoru!
3.1.1. Elektrostatické výboje a zkraty
Povrch hlavní desky plošných spojů, rozhraní USB a všech rozšiřujících modulů není nijak
chráněn a odhaluje velké množství nechráněných součástek a vodivých cest. Nezpůsobte,
prosím, zkrat tím, že na povrch robotu položíte kovové předměty nebo nástroje!
Napájecí napětí se mění ve velkém rozsahu, je však pro člověka bezpečné. Řadu součástek
může poškodit elektrostatický výboj (ESD) a proto se jich nedotýkejte, pokud to není nezbytné!
Speciálně v kombinaci se syntetickými textiliemi a suchým vzduchem se může vytvořit
elektrostatický výboj při pohybu člověka. Také robot může získat náboj pohybem po některém
povrchu podlahy. Při dotyku na kovové části se může náboj vybít přes tělo a vytvořit malé jiskry.
Při manipulaci s robotem mohou tyto výboje poškodit nebo zničit elektronické součástky.
Poškození vlivem ESD se vyhnete tím, že před manipulací s elektronickými obvody vybijete
náboj z těla dotykem na velké uzemněné předměty (například kovová skříň PC, vodovodní
potrubí nebo ústřední topení). Dotyk s uzemněným předmětem vybije elektrostatický náboj
z těla. Neřízené vybití robotu při dotyku s uzemněnou překážkou nepoškodí robot, ale může
porušit program nebo způsobit neočekávané chování.
26
Všechny elektrické linky vedoucí do systému musí být zapojeny, před přivedením napájecího
napětí.
Neočekávané zapojení nebo odpojení konektorů, kabelů nebo modulu do spuštěného robotu
může poškodit nebo zničit součástky elektronického systému a další díly.
3.1.2. Prostředí robotu
Neprovozujte robot na horní desce stolu nebo plochách s velkým převýšením, které mohou
způsobit pád robotu na zem. Seznamte se, prosím, s možnostmi šplhání pásového vozidla!
Robot může snadno přejet přes malé překážky a odtlačit lehké předměty. Z provozní oblasti
robota odstraňte všechny předměty, které obsahují tekutiny tj. pohárky, sklenice a vázy.
Šasi robotu bude chránit mechanické díly před řadou účinků okolního prostředí, ale není
vodotěsné a prachotěsné. Elektronika není chráněna vůbec. Robot byste měli provozovat
pouze v čistém a suchém domácím prostředí. Nečistota, malé mechanické drobky a vlhkost
mohou poškodit nebo zničit mechanické a elektronické části robotu. Provozní teplota je
omezena na rozsah od 0°C do 40°C.
Provoz vnitřních stejnosměrných motorů generuje drobné jiskření. Robot se nesmí používat
v prostředí s nebezpečím požáru nebo výbuchu (tekuté, plynné nebo prašné).
Pokud se robot nepoužívá delší dobu, neměl by se skladovat na místě s vyšší vlhkostí. Také,
prosím, vyjměte baterie, aby nedošlo k poškození vytékajícím elektrolytem.
3.1.3. Napájecí napětí
Robot byl konstruován na napájení ze zdroje s napětím 7,2 V, který tvoří 6 nabíjecích NiMH
článků. Maximální napětí zdroje je 10 V a nesmí být nikdy překročeno. Používejte pouze
nabíjecí články s platnou bezpečnostní certifikací pro nabíjení.
Jako náhradu můžete robot provozovat se šesti kvalitními alkalickými bateriemi. Normální
baterie se však velmi rychle vybijí, důsledkem je dražší provoz a zatěžování životního prostředí.
Pokud je to možné, používejte vždy jen nabíjecí články. Nabíjecí články dodávají větší
maximální proud a mohou se snadno nabíjet uvnitř robotu!
Dodržujte, prosím, bezpečnostní a provozní podmínky pro baterie uvedené v dodatku!
Modifikace robotu by měli provádět pouze zkušení uživatelé, kteří úplně ovládají
problematiku. Nevhodná modifikace může poškodit robot nebo zranit obsluhu (například
přehřívání součástek může způsobit požár bytu…).
27
3.2. Nastavení software
Následuje nastavení software. Pro všechny následující kapitoly je nezbytná
správná instalace software.
Při instalaci musíte mít přístupová práva administrátora, přihlaste se proto
jako administrátor počítačového systému.
Doporučujeme nejprve přečíst celou kapitolu a pak procházet jednotlivé
pokyny krok za krokem.
Musíme předpokládat, že máte základní znalosti pro práci s počítači, které používají operační
systémy Windows nebo Linux a standardní softwarové balíčky jako je souborový manažer,
prohlížeč webových stránek, komprimační programy (WinZip, WinRAR, unzip atd.) a adekvátní
Linux-Shell! Pokud neovládáte práci s počítačem, měli byste se před používáním RP6,
seznámit se základními znalostmi tohoto oboru. Tato příručka nemůže poskytnout úvodní kurz
používání osobního počítače a na toto problematiku se text příručky nezaměřuje. Tato příručka
bude popisovat robotický systém RP6, programování RP6 a specializovaný systémový
software.
3.2.1. CD-ROM RP6
Pravděpodobně jste již CD-ROM RP6 vložili do mechaniky CD-ROM ve vašem PC – pokud ne,
vložte CD nyní. V systému by se měla spustit akce automatického spuštění a v okně
prohledávače by se měla objevit nabídka. Pokud ne, můžete ve webovém prohlížeči např.
Firefox otevřít soubor "start.htm" umístěný v hlavním adresáři CD. Pokud PC nedisponuje
moderním prohlížečem, můžete najít instalační balíček Firefox ve složce CD:
<CD-ROM-Drive>:\Software\Firefox
Měli byste používat poslední verzi Firefox 1.x nebo Internet Explorer 6.
Zvolte váš národní jazyk a CD menu vám nabídne řadu užitečných informací a software. Mimo
tuto příručku (kterou můžete stáhnout z našich domácích stránek) si můžete prohlédnout
například katalogových součástek použitých v robotu. Nabídka označená “software” poskytuje
přístup ke všem softwarovým nástrojům, ovladač USB a ukázkové programy včetně zdrojových
textů pro RP6.
Podle bezpečnostního nastavení vašeho webového prohlížeče můžete spustit instalační balíčky
přímo z CD. Pokud to nastavení prohlížeče neumožňuje, nepokoušejte se instalaci dokončit.
Zkopírujte soubory na pevný disk a instalaci proveďte z pevného disku PC. Podrobnosti tohoto
postupu najdete na softwarové stránce CD nabídky. Alternativně můžete prozkoumat kořenový
adresář CD souborovým manažerem a spustit instalaci přímo z CD. Názvy adresářů můžete
vybrat podle názvu příslušného softwarového balíčku a operačního systému.
28
3.2.2. WinAVR pro Windows
Nejdříve nainstalujete WinAVR. WinAVR je však – jak již napovídá název – dostupný jen pro
Windows.
Uživatelé Linuxu mohou tuto část přeskočit.
WinAVR (vyslovuje se “whenever”) je balíček užitečných a nezbytných nástrojů pro vývoj
software pro mikroprocesory AVR v programovacím jazyce C. Více informací o samotném GCC
pro cílovou platformu AVR (který se nazývá "AVR-GCC") bude následovat později. Prostředí
WinAVR také poskytuje komfortní editor zdrojových textů, nazvaný "Programmers Notepad 2",
který je vhodný i pro vývoj software pro RP6. WinAVR má vnitřní projektové uspořádání a
programový balíček je volně dostupný na internetu. Nové verze a další informace můžete najít
na oficiálních webových stránkách projektu:
http://winavr.sourceforge.net/
Teprve nedávno zahájila firma ATMEL oficiální podporu projektu a AVRGCC se nyní může
integrovat do jejich integrovaného vývojového prostředí AVRStudio. Editor Programmers
Notepad 2 je pro vaše vlastní projekty mnohem výhodnější, proto zde nebudeme popisovat
prostředí AVRStudio. Přesto můžete při vývoji programů pro RP6 používat i AVRStudio.
Instalaci WinAVR můžete najít na CD:
<CD-ROM-Drive>:\Software\AVR-GCC\Windows\WinAVR\
Instalace WinAVR je velmi jednoduchá a samo vysvětlující – obvykle nemusíte měnit nastavení
– vždy jen kliknete pokračovat. Pokud budete mít problémy se spuštění nejnovější verze
WinAVR, jsou na CD k dispozici také starší verze tohoto programu. Pokud se objeví nějaké
problémy se standardní verzí programu, je zde také složka pro Win x64.
3.2.3. AVR-GCC, avr-libc a avr-binutils pro Linux
Uživatelé Windows mohou tuto část přeskočit.
Instalace avr-gcc v prostředí Linux může být o něco komplikovanější. Několik distribucí již
poskytuje potřebnou podporu, ale programové balíčky často obsahují nepodporované verze bez
nezbytných složek.
Pravděpodobně budete muset kompilovat a instalovat nejnovější verze.
Nemůžeme zmiňovat detaily všech známých rozdílných variant distribucí operačního systému
Linux jako jsou SuSE, Ubuntu, RedHat/Fedora, Debian, Gentoo, Slackware, Mandriva atd. a
jejich odlišnosti. Seznámíme vás pouze s obecnou instalací.
Platí to také pro všechny ostatní Linux témata uvedená v této kapitole!
Pro specifické nastavení systému nemusí být následující seznámení automaticky dostačující.
Často budete muset hledat pomoc pomocí hesla "<LinuxDistribution> avr gcc" a modifikací
fráze v tomto řetězci. Je to také dobrý postup pro všechny další potíže, které se mohou objevit
v operačním systému Linux. Pokud se při instalaci avr-gcc vyskytnou nějaké potíže, můžete se
pokusit najít řešení návštěvou našeho fóra nebo řady dalších diskusí věnovaných systému
Linux.
29
Nejdříve musíte odinstalovat předchozí verze avr-gcc – zpravidla již nepodporované – totéž
platí pro nástroje avr-binutils a avr-libc. Odinstalování spustíte z nástroje správy souborů,
vyhledáním “avr” a odstraněním programového balíčku ze systému. Pokud nástroj najde
příslušné objekty, spustí “avr-gcc”.
Snadno můžete zkontrolovat, zda je avr-gcc instalován či ne. Pokud existuje, můžete zjistit
umístění programu pomocí následujícího příkazového řádku:
> which avr-gcc
Pokud systém reaguje názvem adresáře, bude pravděpodobně ve vašem systému již existovat
nějaká verze avr-gcc. V takovém případě zkontrolujte verzi:
> avr-gcc --version
Pokud je číslo verze nižší než 3.4.6, pak ji definitivně odinstalujte. Pokud je verze mezi 3.4.6 a
4.1.0 můžete ji vyzkoušet kompilací programů (viz následující kapitola). Pokud kompilace selže,
odinstalujte starší verze a instalujte avr-gcc verzi z CD. Následující kapitola se opírá o
nejnovější verzi 4.1.1 (uvolněnou v březnu 2007), která obshuje nějaké důležité záplaty aby se
shodovala s WinAVR.
Pozor: před zahájením kompilace a instalací zkontrolujte možnosti standardního vývojového
balíku pro Linux tj. GCC, make, binutils, libc atd. Použijte manažer distribučního balíku. Každá
distribuce systému Linux by měla na instalačním CD poskytovat potřebnou podporu.
Alternativně můžete poslední verzi získat přes internet.
Dávejte pozor, aby byl nainstalován program “texinfo”. Pokud program chybí, musíte ho vložit
před instalací – jinak instalační proces selže.
Pokud dokončíte přípravy, můžete zahájit aktuální instalaci.
Můžete si vybrat ze dvou možností: buď ruční kompilaci a instalaci všech balíčků, nebo můžete
použít jednoduchý skript automatické instalace.
Doporučujeme, aby jste se nejprve pokusili spustit skrip a ruční istalaci použít pouze když se
objeví problémy.
Pozor: Zkontrolujte, prosím, zda je na disku dostatek místa. Budete potřebovat více než 400 MB
volného prostoru. Více než 300 MB těchto dat je potřeba pouze dočasně pro kompilaci a
můžete je později odstranit.
Řada instalací požaduje přesné umístění adresářů a doporučujeme přihlášení kořenového
adresáře “su” nebo alternativně spustit kritické úlohy s parametrem “sudo” (jak je to obvyklé u
distribuce Ubuntu) nebo příslušným příkazem. Instalační skript mkdir v adresářích /usr/local/ a
make file vytvoří při instalaci správnou strukturu adresářů.
Dávejte pozor na SPRÁVNÉ psaní následujících příkazů. Všechny symboly jsou důležité a
některé příkazy se mohou zablokovat –tyto řádky přepisujte správně, aby neobsahovaly chyby
(samozřejmě můžete nahradit řetězec <CD-ROM-drive> názvem vaší mechaniky CD-ROM).
30
Loading...
+ 104 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.