Vytvořeno: 2007-12-23 17:11:34
Změněno: 2011-01-25 20:49:09
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.
Elektronická čá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.
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í.
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.
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 |
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.
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.
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 |
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.
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.
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í.
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.
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. A nakonec bych rád podělkoval společnosti Freescale za poskytnutí vzorku mikrokontroléru, potřebného pro vývoj robota a společnosti Spezial Electronic za poskytnutí bluetooth modulu OEMSPA310.
Tweet |
Komentáře:
2013-01-29 16:05:11
2013-01-23 10:05:49
2012-09-05 10:56:39
2012-09-03 03:46:51
2011-09-20 16:28:51
2011-06-02 18:57:50
Mikrokontroléry již neprodávám, mohu Vás pouze odkázat na konstrukci jednoduchého programátoru, kterou najdete na mém webu v sekci "Elektronika"
2011-05-10 19:22:29
2009-05-13 22:41:50
http://www.youtube.com/watch?v=DOT9lQm3Fn8
http://www.youtube.com/watch?v=F6y9IAGEHrI
http://www.youtube.com/watch?v=uXubY_qU7OM
kvalita videí je špatná, protože je to nahráváno narychlo na mobilní telefon. Spěchal jsem s odevzdáním.
2009-03-17 12:49:36
Zdar. Program pro mikrokontroler byl naprogramován v prostředí Freescale CodeWarrior 5.0. Aktuálnější verzi 6.1 je možné zdarma (Special Edition, která má omezenou velikost zkompilovaného kódu 32k) stáhnou přímo na stránkách Freescalu (Je potřeba se zaregistrovat. A pro naprogramování programů pro Windows a Windows Mobile jsem použil Visual Studio 2005, které je zdarma dostupné jenom v Express Edition, ve které je možné upravovat pouze program pro PC. Program pro Windows Mobile bohužel Express edice upravovat nedokáže...
2009-03-10 18:57:32
2009-01-10 14:57:18
2009-01-06 19:48:47
2008-12-14 23:52:13
Já osobně používám tenhle vývojový kit:
DEMO9S08QG8E
,ale pro naprogramování a nebo vyvíjení vlastních aplikací stačí tenhle vývojový kit:USBSPYDER08
Teď mě uplně zarazilo, že dnes stojí už jenom 500Kč :-O
2008-12-13 14:44:13
2008-11-27 22:14:20
Omlouvám se za velmi pozdní reakci, ale bohužel nestíhám. Díky studiu na vysoké škole mám pramálo času, o Vánočních prázdninách se na něj jistě vrhnu.Fyzicky už ho mám programátor navrhnutý a vyrobený, teď jej zprovozňuji, není to tak snadné jak se mi zprvu zdálo, proto se omlouvám, za předčasnéavizování....
Pokud ti to pomůže tady je odkaz ze kterého čerpám, obsahuje docela málo informací.
http://www.ingdubatti.com.ar/
Franta:
Lepší? :)
http://www.youtube.com/watch?v=jPiXPkV9COE
Martingt89:
Na PidiBotovi už bohužel nehodlám nic vylepšovat...
2008-11-27 21:25:07
2008-10-15 20:30:21
2008-10-13 11:57:05
2008-10-05 23:25:05
Ano PidiBota by mělo být možné ovládat i přes jiné ConnectBlue moduly.
2008-10-05 22:10:56
2008-09-24 11:33:16
Bohužel jsem časově dost zaneprázdněn. Můžu Vám odpovědět na konkrétní otázky. Navíc si myslím, že vysoká cena robota na sekání trávy má svůj důvod. :) Ono vyrobit něco opravdu spolehlivého, aby se vyznalo v členitém terénu, není zrovna snadné.
Prodávám pouze naprogramovaný mikrokontrolér. Ostatní součástky k dispozici nemám, ale mohu Vás odkázat na http://www.gme.cz
Plošný spoj je možné si objednat zde http://www.volny.cz/plspoj/. Žádejte plošné spoje na PidiBota z Praktické Elektroniky 5/2008
2008-09-22 17:30:46
2008-09-17 11:16:50
Nic není nerealizovatelné. Možná by to zvládl i ten Bluetooth modul od ConnectBlue. Přece jenom zvládá přenos 1MBaud. Problém však je sehnat kameru, která obraz přenáší po seriové lince...
2008-09-16 21:49:18
2008-09-10 16:22:42
2008-09-02 15:23:46
Ahoj. OK, hned nahodím k dalším souborům i Eagle soubory. Poslat naprogramovaný procík nebude problém.
A k tomu programátoru. Plánuji se přeložit a zveřejnit návod na stavbu velmi jednoduchého a velmi levného BDM programátoru (cena 300kč až 400kč). Dostanu se k tomu ale až ke konci září...
DJ Křowák:Naprogramovaný procík je, jak píšu za 130kč + poštovné (30kč při platbě přes účet 77kč při platbě přes dobírku)
Plošný spoj je možné koupit tadyhttp://www.volny.cz/plspoj/A žádej plošné spoje na PidiBota z Praktické Elektroniky 5/2008
2008-08-31 17:45:25
2008-07-02 21:13:19
Super. Budu rád za každou fotografii cizího hotového robota
2008-07-02 15:05:32
2008-06-29 06:36:04
2008-06-20 05:31:32
2008-06-12 23:56:18
2008-06-12 18:04:59
No ta deska s H-můstkem je docela hodně přepracovaná a součástky jsou na ní dost nahuštěné, ale je pořád stejně velká...
Mr. X:
Ano jde ovládat libovolným Bluetooth adaptérem. Jak integrovaným, třeba v notebooku, nebo přes USB<->Bluetooth adaptér
2008-06-10 14:32:00
2008-06-09 09:08:44
2008-05-29 18:46:33
No na stole už mi nějakou dobu leží verze s H-můstkem, ale jeho výroba nebude pro všechny tak snadná... Součástky jsou na něm víc nahuštěné a DPS je potřeba vyrobit s větší přesností... Možná se někdy o prázdnínách dostanu k jeho dokončení a uveřejnění...
2008-05-28 07:50:46
2008-05-23 19:49:05
Bohužel, momentálně je jediná možnost koupit buď přímo na www.freescale.com nebo na www.hw.cz nějaký vývojový kit, který dispunuje BDM rozhraním.
Rád bych časem publikoval nějaký BDM interface, ale bohužel momentálně nemám moc času :-/
mikisoft:
Microsoft Visual Studio 2005
2008-05-22 14:02:56
2008-05-22 11:48:55
2008-05-21 22:35:55
Na verzi pro PDAčka ještě pracuji. Ale myslím, že je dost jednoduché předělat verzi pro MDA. Zdrojáky už jsou k dispozici....
2008-05-21 12:52:45
2008-05-19 18:36:43
2008-04-27 21:56:54
Zatím neplánuju robůtky prodávat. Mohu zatím poskytnout jenom naprogramovaný mikrokontrolér. Možná při větším zájmubych je prodával jako stavebnici.
A myslim, že tě momentálně nemám co naučit. Proto abys mohl vymyslet takového robota opravdu nestačí jenom základní vzdělání a skoro mi připadá, že někomu nestačí ani střední škola :))
Prozatím ti mohu pomoxt s výrobou mého robota, ale navrhout nějakého budeš schopen až potom co získáš alespoň základní znalosti z elektroniky a pro složitější roboty znalosti z mikroprocesorové techniky.
2008-04-21 18:53:55
Hele,nmohl bys mi udělat Pidibota?Já bych ti ho zaplatil!A hlavně návod,jak ho ovládat!! PS:nemám na to matroš,ani čas!!!
Je mi sice jen 12,ale jednou budu dělat APLIKOVANOU KYBERNETIKU!!!!!
taky ses vyučil Aplikovanou kybernetiku???Jestli jo,tak bys mi něco málo mohl poslat na E-mail!!!PS:za pár dnů ho budu mít :-)
2008-03-13 09:59:18
2008-03-11 15:23:24
2008-03-11 13:06:21
V pohodě. Ten bluetooth modul mě stál něco okolo 900kč. Možná se ti to může zdát moc, ale to fakt bomba. Je to jednoduchý, rychlý a má to dost solidní dosah.
Pomalu začínám přemýšlet, jestli bych to neprodával jako stavebnici :)
2008-03-11 11:27:01
2008-03-11 08:17:17
No rovnou do toho to připojit nepujde, musel bys nejprve RS232 signál prohnat nějakým převodníkem urovní RS232/TLL (třeba MAX232), ale přijde mi skoro neproveditelné ho ovládat po kabelu, jelikož je PidiBot hodně lehký, tak by akorát díky tomu kabelu padal, řekl bych.
Je opravdu lepší si koupit ten bluetooth modul a mít možnost ovládat robota až na 40m bezdrátově
2008-03-11 07:10:37
2008-03-10 22:40:04
tomáš lindovský:
Petr:
Naprogramovaný mikrokotroler budu nejspíš prodávat za cca 100 až 150kč + poštovné. Časem ještě upřesním.
Dušan:
Ano ovládá se "virtuální" COM portem, který zprostředkovává ten bluetooth modul
2008-03-08 19:15:39
2008-03-07 16:42:53
2008-03-05 15:34:33
2008-02-29 19:40:04
2008-02-19 19:00:33