
Under construction!
Created: 2007-12-23 17:11:34
This construction is a follow-up on previously published Robot 1.1. The aim of this new version is to reduce the overall size, to make easier access to components and utilizing Spezial Electronic's Bluetooth module connectBlue as robot's remote control. So now the robot can avoid obstacles autonomously or can be controlled wirelessly via Bluetooth.
Electronics is distributed between the main board and auxiliary board. The main board handles motor power switching and obstacle detection. The auxiliary board serves mainly as an attachment of the Bluetooth module and the robot can work without it, but of course without the remote control functionality. Mechanical construction is very simple, I tried to use as easily available parts as possible. Robot's body is built out of copper wires, wheels are fixed directly on the axle coming out of the motor-transmission assembly. 4 AAA Ni-MH cells serve as the power source. Wireless remote control application is implemented in Visual Studio, both for desktop Windows and Windows Mobile. Built apps and source codes are available here.
The accupack is connected to terminal X1, LED5 diode indicates presence of supply voltage. Considering the fact that voltage stabilization or other tweaks of the power feed would only lead to necessity of bigger PCB and the fact that accupack's voltage floats only slightly between 4.5V and 5.5V, there are no source voltage adjustments done and there's only the C1 capacitor connected after the S1 switch. Supply voltage around 3.6V is necessary for the microcontroller IC1. This voltage is reached by connecting two 1N4148 diodes (D1, D2) in series, which drops the voltage 1.4V from 5V to desired 3.6V. Because of noise from the motors, it is necessary to insert two chokes L1 and L2 into the supply paths to the receiver and to main processor, to smoothen the voltage/current.
The central component of the main board and also of the whole robot is the microcontroller Freescale MC9S08QG8 in PDIP16 package (IC1). It features (among others) 8 kilobytes of flash memory for the program, 512 bytes of RAM, one 16-bit timer, one 8-bit timer, UART, SPI and I2C communication interfaces. It's core HCS08 is optimized for programs compiled to machine language from C source code. It's possible to run it up to 20MHz when using external clock source. PidiBot uses the maximum frequency attainable on the internal clock, 8.3712 MHz. You need to use the BDM interface to write the firmware (download here) into the flash memory of the microcontroller. The processor handles switching of the motor power using two MOSFET transistors IRF7303, which are both integrated in single SO8 package (T1). The transistors can switch current of up to 3.5A, which is more than necessary, considering the motors used. Terminals JP1 and JP2 attach the motors between the power source and switching transistors.
Receiver and demodulator of IR impulses SFH5110-36 (IC2) is used for obstacle detection. It is connected to the microcontroller via R8 resistor, because the receiver's output signal voltage is higher than IC1 supply voltage, and without the resistor it could damage the controller. The receiver catches infrared rays reflected of obstacles and signals them to the microcontroller. IR rays are alternatively emitted by two IR LEDs (LED1 and LED2). Intensity of emitted IR pulses can be tuned with with two trimmers R1 and R3. When obstacle is registered, LED3 or LED4 lits up. And last, it's necessary to have a connector (SV1) for the BDM interface, which serves for programming and debugging of the microcontroller.
| R1, R3 | PT6HK005 | trimmer 6mm 5kΩ |
| R2, R4 | 47Ω | SMD1206 |
| R5 to R7 | 2,2kΩ | SMD1206 |
| R8 to R10 | 330Ω | SMD1206 |
| R11, R12 | 10kΩ | SMD1206 |
| C1 | 1000uF/16V | electrolytic |
| C2, C3 | 100nF | SMD1206 ceramic |
| L1, L2 | TLEC24-101K | choke 100uH, 185mA |
| D1, D2 | 1N4148 SMD | |
| LED1, LED2 | IRS5 | infrared LED |
| LED3, LED4 | LED 3MM 2MA/R | red LED 2mA |
| LED5 | LED 3MM 2MA/G | green LED 2mA |
| T1 | IRF7303 | N-MOSFET transistors SO8 |
| IC1 | MC9S08QG8CPBE | PDIP16 |
| IC2 | SFH5110-36 | infrared receiver and demodulator |
| JP1, JP2 | PSH02-02W | 2 pin header male 90° |
| SV1 | 2x3 pin header male 90° | |
| X1 | ARK500/2 | |
| S1 | P-KNX125 | lever switch for PCB |
| 1ks | SOKL 16 | simple DIP16 socket for IC1 |
| 2ks | L-REFLEK. 5MM | reflector for 5mm LED |
The most important part of the Auxiliary board is again the microcontroller Freescale MC9S08QG8 in PDIP16 package (IC1), holding the same program as the microcontroller on the main board. As sad before, the auxiliary board serves mainly as an attachment of the Bluetooth module to the microcontroller via the SV1 connector. For PidiBot I used the cheaper variant - OEMSPA310. It's necessary to solder a 9-way ribbon cable on the Bluetooth module itself (or 8-way, because the Reset pin is not used) and attach IDC connector to the cable. Leads are soldered on a terminal/connector designated J6 in the datasheet from module manufacturer. It's also possible to use the terminal J2-J3. Following table shows pin connection of SV1 and Bluetooth module:
| Pin no. SV1 | Pin no. on the BT module | Desc. | ||
| 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 |
Most important leads for communication with the module are RxD a TxD, which carry the data. Green LED/Switch 1 lead is connected to the microcontroller only to check out the functionality of the AT mode, where it's possible to modify miscellaneous parameters of the module. The Reset pin doesn't need to be connected, according to the datasheet. Next it's necessary to connect the input CTS pin, because the Bluetooth module is pre-set to hardware flow control (with CTS and RTS signals). Although it's possible to change this in the AT mode, but it's easier to ground CTS and let the module send data to the microcontroller continuously.
One output pin of the IC1 microcontroller is used for another IR LED (LED2), which enhances the obstacle detection ability. Another output is used for white LED diodes (LED1 and LED4). The output used to switch T1 transistor, feeding current to white LEDs, is also shared with S1 pushbutton, which can turn on the LEDs manually. Switching the white LEDs manually is performed in this way: the microcontroller turns the LED off every 100ms for an imperceptible moment - quickly changes the pin's sense from output to input, tests whether there was a transition to high (from low sampled previously) and with respect to previous state of the LED swiches it on or off.
Attachment of the Auxiliary board to the Main board is done with two-sided socket/header as pictured below on images showing electrical assembly of the robot.
| R1 | 390Ω | SMD1206 |
| R2, R6 | 1kΩ | SMD1206 |
| R3 | PT6HK005 | trimmer 6mm 5kΩ |
| R4 | 47Ω | SMD1206 |
| R5, R7 | 220Ω | SMD1206 |
| R8 | 100kΩ | SMD1206 |
| C1, C2 | 100nF | SMD1206 ceramic |
| LED1, LED4 | LED 3MM WHITE 4500/20° | |
| LED2 | IRS5 | infrared LED |
| LED3 | LED 3MM BLUE 3500/20° | |
| T1 | BCX54-16 | NPN transistor SOT-89 |
| IC1 | MC9S08QG8CPBE | PDIP16 |
| SV1 | MLW10 | 2x3 pin header male |
| S1 | P-B1720 | button |
| 1ks | PRSA16 | two-sided DIP16 male header |
| 1ks | SOKL 16 | simple DIP16 socket for IC1 |
| 1ks | L-REFLEK. 5MM | reflector for 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 |
Comments:
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