Arexx RP6-ZÁKLAD User guide [cs]

RP6-ZÁKLAD
©2007 AREXX Engineering
www.arexx.com
Robotický systém
RP6
Příručka
- Čeština -
Version RP6-BASE-CZ-20071029
PŘEDBĚŽNÁ VERZE
DŮLEŽITÁ INFORMACE! Prosím, čtěte pozorně!
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!
2
Právní aspekty
Omezení záruky a závazk
ů
©2007 AREXX Engineering
Nervistraat 16 8013 RS Zwolle The Netherlands Tel.: +31 (0) 38 454 2028 Fax.: +31 (0) 38 452 4482
"Robotický systém RP6" je obchodní známka firmy
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é”.
3
Obsah
1. Úvod ......................................................................................................................................... 6
1.1. Technická podpora .............................................................................................................7
1.2. Obsah balení ......................................................................................................................7
1.3. Vlastnosti a technické údaje ...............................................................................................8
1.4. Co RP6 dokáže? ..............................................................................................................11
1.5. Záměry a plány aplikace ...................................................................................................12
2. RP6 podrobně ........................................................................................................................ 13
2.1. Řídicí systém ....................................................................................................................14
2.1.1. Bootloader ..................................................................................................................16
2.2. Napájecí zdroj ..................................................................................................................16
2.3. Senzorika .........................................................................................................................17
2.3.1. Snímač napětí baterie ................................................................................................17
2.3.2. Světelné snímače (LDR) ............................................................................................17
2.3.3. Anti kolizní systém (ACS) ...........................................................................................18
2.3.4. Nárazníky ...................................................................................................................19
2.3.5. Snímače proudu motoru .............................................................................................19
2.3.6. Enkodéry ....................................................................................................................20
2.4. Pohonný systém ...............................................................................................................21
2.5. Rozšiřující systém ............................................................................................................22
2.5.1. Sběrnice I2C ...............................................................................................................23
2.5.2. Rozšiřující konektory ..................................................................................................24
3. Nastavení hardware a software .............................................................................................. 26
3.1. Bezpečnostní pokyny .......................................................................................................26
3.1.1. Elektrostatické výboje a zkraty ...................................................................................26
3.1.2. Prostředí robotu ..........................................................................................................27
3.1.3. Napájecí napětí ..........................................................................................................27
3.2. Nastavení software ...........................................................................................................28
3.2.1. CD-ROM RP6 .............................................................................................................28
3.2.2. WinAVR pro Windows ................................................................................................29
3.2.3. AVR-GCC, avr-libc a avr-binutils pro Linux.................................................................29
3.2.3.1. Skript automatické instalace .................................................................................31
3.2.3.2. Ruční postup instalace .........................................................................................32
3.2.3.3. Nastavení adresáře ..............................................................................................33
3.2.4. Java 6 .........................................................................................................................34
3.2.4.1. Windows ...............................................................................................................34
3.2.4.2. Linux .....................................................................................................................34
3.2.5. RP6Loader .................................................................................................................35
3.2.6. Knihovna RP6, knihovna RP6 CONTROL a ukázkové programy ...............................35
3.3. Připojení rozhraní USB – Windows ..................................................................................36
3.3.1. Kontrola správné funkce připojeného zařízení............................................................37
3.3.2. Odinstalování ovladače ..............................................................................................37
3.4. Připojení rozhraní USB – Linux ........................................................................................38
3.5. Dokončení instalace software ...........................................................................................38
3.6. Vložení baterií ..................................................................................................................39
3.7. Nabíjení baterie ................................................................................................................41
3.8. První test ..........................................................................................................................41
3.8.1. Připojení rozhraní USB a spuštění RP6Loaderu ........................................................42
4
4. Programování RP6 ................................................................................................................. 51
4.1. Konfigurace editoru zdrojového textu ...............................................................................51
4.1.1. Vytvoření přístupu do menu........................................................................................51
4.1.2. Konfigurace zvýraznění syntaxe .................................................................................54
4.1.3. Otevření a kompilace ukázkových projektů ................................................................56
4.2. Nahrávání programu do RP6 ............................................................................................58
4.3. Proč C? A co to je “GCC”? ...............................................................................................59
4.4. C – Zhuštěný kurz pro začátečníky ..................................................................................60
4.4.1. Literatura ....................................................................................................................60
4.4.2. První program .............................................................................................................61
4.4.3. Základy jazyka C ........................................................................................................63
4.4.4. Proměnné ...................................................................................................................64
4.4.5. Podmíněné příkazy .....................................................................................................66
4.4.6. Switch – Case .............................................................................................................68
4.4.7. Cykly ...........................................................................................................................69
4.4.8. Funkce ........................................................................................................................70
4.4.9. Pole, řetězce, ukazatele... ..........................................................................................73
4.4.10. Tok programu a přerušení ........................................................................................74
4.4.11. Preprocesor jazyka C ...............................................................................................75
4.5. Makefile ............................................................................................................................76
4.6. Knihovna funkcí RP6 (RP6Library) ...................................................................................77
4.6.1. Inicializace mikroprocesoru ........................................................................................77
4.6.2. Funkce UART (sériové rozhraní) ................................................................................78
4.6.2.1. Vysílání dat ...........................................................................................................78
4.6.2.2. Příjem data ...........................................................................................................80
4.6.3. Funkce zpoždění a časovače .....................................................................................81
4.6.4. Stavové LED a nárazníky ...........................................................................................84
4.6.5. Čtení ADC hodnot (baterie, proud motorů a snímače osvětlení) ................................88
4.6.6. ACS – Anti kolizní systém...........................................................................................90
4.6.7. Funkce IRCOMM a RC5 .............................................................................................93
4.6.8. Funkce snižování spotřeby .........................................................................................95
4.6.9. Funkce pohonného systému.......................................................................................95
4.6.10. task_RP6System() .................................................................................................. 101
4.6.11. Funkce sběrnice I2C ............................................................................................... 102
4.6.11.1. I2C slave ........................................................................................................... 102
4.6.11.2. I2C master ......................................................................................................... 105
4.7. Ukázkové programy........................................................................................................ 109
5. Experimentální deska ........................................................................................................... 121
6. Závěrečné slovo ................................................................................................................... 122
PŘÍLOHY.................................................................................................................................. 123
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í!).
Shromažďování předmětů (např. čajových svíček, kuliček, drobných kovových předmětů …).
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é
ří 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ř 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ččá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ě
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č 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