Jste zde

PidiBot

Tato konstrukce navazuje na již uveřejněnou konstrukci Robot 1.1. Cílem nového provedení byly celkově menší rozměry, snazší dostupnost součástek a možnost použití Bluetooth modulu connectBlue od firmy Spezial Electronic pro dálkové ovládání robota. Robot se tedy dokáže autonomně vyhýbat překážkám a nebo může být ovládán bezdrátově přes Bluetooth.

Stručný popis:

PidiBotElektronická část je rozdělena na hlavní a vedlejší desku. Hlavní deska zajišťuje spouštění motoru a detekci překážek. Vedlejší deska slouží hlavně pro připojení Bluetooth modulu a robot je bez ní plně funkční, ale není ho možné bezdrátově ovládat. Mechanická konstrukce je díky použití co nejdostupnějších dílu velice jednoduchá. Tělo robota je sestaveno z měděných drátů, jako napájení jsou použity čtyři AAA Ni-MH články a kolečka jsou připevněna rovnou na hřídel převodovky, která je již součástí motorku. Pro bezdrátové ovládání robota přes Bluetooth slouží ovládací programy, naprogramované ve Visual Studiu, jak pro operační systém Windows, tak i pro Windows Mobile. Programy i zdrojové kódy jsou k dispozici zde.


Hlavní deska:

PidiBot

Napětí z akumulátoru je připojeno na svorkovnici X1, a dioda LED5 indikuje jeho přítomnost. Vzhledem k tomu, že stabilizace a případně další úpravy napájecího napětí by přinesly pouze nutnost vyrobit vetší DPS a napětí akumulátoru se pohybuje v rozmezí od cca 4,5V až do 5,5V ,bylo od dalších uprav napájecího napětí upuštěno a za vypínač S1 byl připojen pouze kondenzátor C1. Jak je patrné ze schématu LED5 indikuje přítomnost napájecího napětí. Dále bylo potřeba získat napájecí napětí okolo 3,6V pro mikrokontrolér IC1. Požadovaného napětí bylo dosáhnuto zapojením diod 1N4148 (D1 a D2) do série, na kterých dochází k úbytku 1,4V tedy z 5V na požadovaných 3,6V. Kvůli rušení, pocházejícího od motorů, musely být do napájecí cesty přijímače a hlavního procesoru zařazeny tlumivky L1 a L2, které nežádoucí rušení dostatečně eliminují.

PidiBot

Nejdůležitější součástkou hlavní desky a tedy i celého robota je mikrokontrolér Freescale MC9S08QG8 v pouzdru PDIP16 (IC1). Ten disponuje například 8k bajty flash paměti určené pro program, 512 bajty RAM, jedním 16bitovým časovačem, jedním 8bitovým časovačem a komunikačním rozhranním UART, SPI a I2C. Jeho jádro HCS08 optimalizované pro programy přeložené do strojového kódu z jazyka C je možné taktovat z externího zdroje až frekvencí 20MHz. PidiBot, ale využívá maximální frekvence nastavitelného interního zdroje taktování, která činní 8.3712 MHz. Do Flash paměti mikrokontroléru je potřeba pomocí BDM rozhranní nahrát program, který je možné stáhnout zde. Tento program se stará o zapínání motoru pomocí dvojce MOSFET tranzistoru IRF7303 (T1), které jsou integrovány v jednom pouzdře SO8. Tranzistory jsou schopny spínat proud až 3,5A což je vzhledem k použitým motorům více než dostačující.

Pro detekci překážek byl použit přijímač a demodulátor IR impulzu SFH5110-36 (IC2). Ten je připojen k mikrokontroléru přes odpor R8, protože napětí jeho výstupních signálu je vyšší než napájecí napětí mikrokontroléru, a tudíž by mohlo dojít k jeho poškození. Samotný přijímač se snaží zachytávat paprsky odražené od překážky a informovat o nich mikrokontrolér. Paprsky jsou střídavě vysílány dvojicí IR LED (LED1 a LED2). Intenzita s jakou budou IR LED vyzařovat impulzy se nastavuje pomocí trimrů R1 a R3. Pokud dojde k detekci překážky, dojde k rozsvícení LED3 nebo LED4. Nakonec bylo potřeba na hlavní desku umístit konektor pro BDM rozhraní, který slouží k naprogramování a debugování programu mikrokontroléru.

PidiBot PidiBot
PidiBot PidiBot

Seznam součástek hlavní desky:

R1, R3 PT6HK005 Trimr 6mm 5kΩ
R2, R4 47Ω SMD1206
R5 až R7 2,2kΩ SMD1206
R8 až R10 330Ω SMD1206
R11, R12 10kΩ SMD1206
C1 1000uF/16V Elektrolytický
C2, C3 100nF SMD1206 Keramický
L1, L2 TLEC24-101K Tlumivka 100uH, 185mA
D1, D2 1N4148 SMD
LED1, LED2 IRS5 Infračervená LED
LED3, LED4 LED 3MM 2MA/R Červená LED 2mA
LED5 LED 3MM 2MA/G Zelená LED 2mA
T1 IRF7303 N-MOSFET tranzistory SO8
IC1 MC9S08QG8CPBE PDIP16
IC2 SFH5110-36 Infračervený přijímač a demodulátor
JP1, JP2 PSH02-02W 2 pinová vidlice 90°
SV1 6 pinová dvouřadá vidlice 90°
X1 ARK500/2
S1 P-KNX125 Páčkový přepínač do DPS
1ks SOKL 16 Obyčejná patice DIP16 pro IC1
2ks L-REFLEK. 5MM Reflektor pro 5mm LED

Vedlejší deska:

PidiBot

Nejdůležitější součástkou vedlejší desky je opět mikrokontrolér Freescale MC9S08QG8 v pouzdru PDIP16 (IC1) obsahující stejný program jako mikrokontrolér hlavní desky. Jak již bylo řečeno ve stručném úvodu, vedlejší deska slouží zejména k připojení Bluetooth modulu k mikrokontroléru přes konektor SV1. Pro PidiBota byla použita nejlevnější varianta a to OEMSPA310 . Na samotný Bluetooth modul je potřeba připájet plochý 9 žilový kabel (nebo 8 žilový, jelikož Resetovací pin není v zapojení použit) a ten opatřit samořezným konektorem. Vodice byly naletovány na konektor, který výrobce modulu v datasheetu označuje jako J6. Je však možné použít i konektor J2-J3. Zapojení pinů konektoru SV1 a Bluetooth modulu zobrazuje následující tabulka:

Číslo pinů SV1
Číslo pinů BT modulu
Popis
J6
J2
J3
1
2
1 a 2
-
VSS
2
3
3 a 4
-
VCC
3
6
13
-
Green LED/Switch1
4
7
14
-
Blue LED
5
8
15
-
CTS
6
9
16
-
TxD
7
10
17
-
RTS
8
11
18
-
RxD
9
1
-
19
Reset

Pro komunikaci s modulem jsou nejdůležitější vodice RxD a TxD, pomocí kterých dochází k přenosu dat. Vývod Green LED/Switch 1 byl připojen k mikrokontroléru pouze pro vyzkoušení funkcnosti AT modu, ve kterém je možné upravovat různé parametry Bluetooth modulu. Pin Reset podle datasheetu není nutné zapojovat. Dále bylo potřeba zapojit vstupní pin CTS a to z toho důvodu, že Bluetooth modul je z výroby nastaven tak, aby tok dat byl ovládán Hardwarově (pomocí CTS a RTS). Sice je možné, v AT módu Bluetooth modulu, hardwarovou kontrolu toku dat vypnout, ale z hlediska oživování bylo jednodušší CTS uzemnit, tak aby modul posílal data do mikrokontroléru stále.

PidiBot PidiBot

Jeden vývod mikrokontroléru IC1 byl použit pro další IR LED (LED2), která trochu zlepšila schopnost detekce překážek. Další vývod byl použit pro bílé LED diody (LED1 a LED4). Vývod, který je použit pro sepnutí tranzistoru T1,dodávající proud bílým LED, je navíc sdílen tlačítkem S1, které slouží k manuálnímu zapnutí LED. Zapínání bílých LED tlačítkem se provádí tak, že mikrokontrolér jednou za cca 100ms vypne LED na nepozorovatelný okamžik, změní smysl pinu na vstupní, otestuje, zda byla na vstupu náběžná hrana (zda bylo stisknuto tlačítko) a podle předchozího stavu LED dojde k jejich vypnutí nebo zapnutí.

Připojení vedlejší desky k hlavní desce je provedeno pomocí oboustranné patice, která je zobrazena na obrazcích popisující elektrotechnickou část robota.

PidiBot
PidiBot PidiBot

Seznam součástek Vedlejší desky:

R1 390Ω SMD1206
R2, R6 1kΩ SMD1206
R3 PT6HK005 Trimr 6mm 5kΩ
R4 47Ω SMD1206
R5, R7 220Ω SMD1206
R8 100kΩ SMD1206
C1, C2 100nF SMD1206 Keramický
LED1, LED4 LED 3MM WHITE 4500/20°
LED2 IRS5 Infračervená LED
LED3 LED 3MM BLUE 3500/20°
T1 BCX54-16 NPN tranzistor SOT-89
IC1 MC9S08QG8CPBE PDIP16
SV1 MLW10 6 pinová dvouřadá vidlice
S1 P-B1720 Tlačítko
1ks PRSA16 Oboustranná DIP16 vidlice
1ks SOKL 16 Obyčejná patice DIP16 pro IC1
1ks L-REFLEK. 5MM Reflektor pro 5mm LED

Firmware PidiBota:

Hlavním úkolem mikrokontroléru je vyhledávat překážky a vyhýbat se jím. Algoritmus je velice jednoduchý a využívá toho, že přijímač SFH5110 při zachycení impulzu, v našem případě o kmitočtu 36kHz, které mají střídu 1:1 nastaví na svůj výstup na log. 1. A tedy mikrokontrolér pomocí prvního časovače 8ms vysílá impulzy levou IR LED, 8ms se nevysílá nic, 8ms vysílá impulzy pravou IR LED, 8ms se nevysílá, 8ms svítí IR LED na vedlejší desce a nakonec 8ms se nevysílá nic. Takto mikrokontrolér vysílá impulzy pořád dokola a přitom ve smyčce hlavního programu, kontroluje stav čidla SFH5110. Pokud dojde k zachycení signálu přijímače, dojde k rozsvícení příslušné indikační LED (zachycení signálu z IR LED na vedlejší desce není signalizováno).

Druhý časovač je použit k vyhodnocování dat získaných z čidel, podle kterých na přesně daný okamžik vypne příslušný motor, tak aby do překážky nenaboural. Bohužel kvůli požadavkům na velikost a jednoduchost, se na DPS nepodařilo vtěsnat H-můstek, který by byl schopný měnit směr otáčení motoru, a proto robot není schopný couvat. To se podařilo trochu vyvážit zlepšením detekční schopnosti, přidáním další IR LED na vedlejší desku

Další část programu se stará o komunikaci s Bluetooth modulem. Podle toho, jaký znak mikrokontrolér obdržel, zapíná nebo vypíná motory a reflektory. Pokud dojde k jakékoliv změně (zapnutí motoru, detekce překážky) mikrokontrolér vyšle znak, tak aby bylo možné vzdáleně kontrolovat, co se s robotem právě děje. Seznam znaků, které jsou použity při komunikaci s robotem jsou patrné z přiloženého zdrojového kódu ovládacího programu pro Windows.

Program pro bezdrátové ovládání:

Ovládací program pro PC byl otestován pouze pod Windows XP, ale měl by fungovat i na nejnovějších Windows Vista. Uživatelské rozhranní je velice jednoduché. Obsahuje kolonku pro zvolení sériového COM portu, který byl vytvořen po spárování Bluetooth modulu s počítačem, tlačítko pro připojení nebo odpojení, tlačítko pro zvolení Manuálního nebo Autonomního módu a tlačítka pro ovládání robota. Robota je však možné ovládat také pomocí klávesnice. Klávesami I, J, K a L robota řídit a klávesou A zapínat nebo vypínat bílé LED. Stavy motoru a čidel jsou indikovány pomocí LED.

Ovládací program byl také napsán pro operační systém Windows Mobile. U této verze však žádná tlačítka nejsou a robot se tedy musí ovládá pomocí tlačítek na klávesnici. Tlačítky *, #, 0 a 8 se robot řídí, tlačítkem 1 se vypínají bíle LED a tlačítkem 2 se zase zapínají. Program by měl spolupracovat s většinou zařízení disponujících Bluetooth modulem, a operačním systémem Windows Mobile alespoň verze 2003. Otestován byl pouze na smartphonu HP iPaq 514 s operačním systém Windows Mobile 2005. Oba programy je možné stáhnout zde.

PidiBot PidiBot

Konstrukce elektronických součástí robota:

Při konstrukci elektroniky postupujeme běžným způsobem. Nejprve osadíme SMD součástky, dále drátové propojky, patice atd. Jsou zde pouze dvě zvláštnosti. Jednou z nich je tlumivka L2 na hlavní desce připájená ze strany spojů z důvodu úspory místa a další je patice pro propojení hlavní a vedlejší desky. Jediné co je potřeba nastavovat jsou trimry, kterými se mění intenzita vyzařování IR LED. Jinak by robot a všechny jeho funkce měli fungovat na první zapojení.

PidiBot PidiBot

Mechanická konstrukce robota:

PidiBot

Po dokončení a odzkoušeni hlavní desky, můžeme přejít ke konstrukci mechanických dílu. Konstrukce je velice jednoduchá a zvládne jí kdokoliv, kdo umí používat kleště, štípačky a pájku. Nejprve je potřeba vyrobit si z měděného drátu, alespoň 1,5mm tlustého, díly podle výkresu. Jejich přesnost nemusí být příliš vysoká. Začíná se drátky 1 a 2, které se připájejí přímo k hlavní desce. Dále přiložíme akumulátor, abychom mohli přiletovat díl 3, který baterku drží. Poté je potřeba upevnit kolečka k motoru a k nim ještě připájet vodice opatřené konektory pro připojení motoru k hlavní desce. Pro PidiBota byl použil motor F-GM12-N20VA110, který je díky vestavené předovce dostatečně silný a jeho otáčky 100ot / min při napájení 5V jsou dostačující. Kolečka byla použita ze starší stavebnice LEGO. Hřídelka motoru byla pocínována. Do díry kolečka bylo napájeno dostatečné množství cínu a strčením pocínované hřídele motoru do díry roztaveného plné cínu došlo k velice dobrému spojení motoru s kolečkem. Popsaný způsob se určitě nemůže zdát moc profesionální, ale byl to nejjednodušší a nejpevnější způsob přichycení koleček. Nakonec přiložíme motory opatřené kolečky na akumulátor, připravíme si díl 4 umístíme jej, tak aby přidržoval motorek na akumulátoru a po přiletování dílu 4 k dílům 1 a 2, připájíme motor k dílu 4. Tím je konstrukce a tedy i celý robot hotov.


PidiBot PidiBot
PidiBot PidiBot

Závěr:

Myslím, že se mi konstrukce povedla, avšak stále je co zlepšovat. V budoucnu by bylo vhodné pokusit se robota přepracovat tak, aby byl schopný i couvat. A dále by stálo za pokus vyrobit další, odlišnou vedlejší desku, která by robotovy umožnila například sledovat černou cáru na bílém podkladu.Celková cena robota bez Bluetooth modulu nepřesáhla 1000kc. Naprogramovaný mikrokontrolér je možné získat po domluvě po emailu michalhrouda@ seznam.cz za 130Kč + poštovné. A nakonec bych rád podělkoval firmě Freescale za poskytnutí vzorku mikrokontroléru, potřebného pro vývoj robota a firmě Spezial Electronic za poskytnutí bluetooth modulu OEMSPA310.

Download & Odkazy

Hodnocení článku: