CZE ENG

Under construction!

Robot v1.1

 

Sorry, but this article is not available in selected language yet.

Robot v1.1

I'am interested in electronics and in very rapidly developing field, which is robotics. So I wanted to make the robot and learn to program microcontrollers in high-level language C. I decided of going into production of my first simple robot, built on an 8-bit and higher language appropriate HC08 microcontroller core.

Main parameters

  • Main parametersí:
    • 8 Ni-MH accumulators (9,6V)
  • Weight
    • with accumulators: 680g
    • without accumulators 875g
  • Consumption
    • Standby: 50mA
    • With running motors: 290mA
    • With starting motors: 400mA

Short description:

Body of the robot is constructed of the LEGO. For completed body was necessary to chose strong enough motors. Best results was brought with reconstructed servos Hi-Tec HS-311. For orientation it space a for the line following was necessary desing needed sensors.Power for whole robot is provided by 8 Ni-MH accumulators. Robot electronics consists of Main board, which is used to control everything, Accessory board, which is featured of headlight and some signalization used to inform about chosen mode. Line following sensors and power board are on the separated board as well.

Main board description:

Robot v1.1

As seen from the schematics the most important part on the Main board and whole robot as well is microcontroler MC68HC08QB8 (IC1) in PDIP package. This microcontroler could by ordered as sample for free on the Freescale website [1]. You may have noticed, that QB8 is similar to more accessible MC68HC08QY4. Firtst experiments have been make with QY4 but it was really unstable from the unknown reasons (Probably it was caused doe to poor power management on the Main board). I was trying to fix this problem but finaly i decided to use later microcontroler of this HC08 family, the above mentioned QB8. The first activity of MCU is to select the appropriate mode using the button SW2 and them run selected mode. Then sand information to Accessory board via software generated I2C bus. After then the motors are controled according to the output values of sensors. Microcontroler is supply over the capacitor C1 with 5 Volts. Its reset is performed by disconnecting power supply button SW1. As clock source was used internal oscillator which is generating frequency 12,8MHz. Its Accuracy is sufficient for this design.

Next periphery situated on the main board is proximity sensor. Its connection I found on the Internet[7]. This sensor is very simple and Its range is from 1cm to 50cm, which was unrealizable with sensors using for example integrated circuits 567 and 555-. Its realized by microcontroler PIC12F508 (IC2 and IC3) generating 50:50 PWM with 36KHz frequency for IR1,IR3, IR2 and IR4 (In one moment only one pair of IR LED is shining. Left LEDs for 2.5ms and right for 2.5ms too). After that is readed the state of the SFH506-36 (IC5,IC6) which are trying to recieve signal from the IR LEDs. When they recieved some IR signal the output of the sensor will turn to high level. On the SV1 a SV2 terminals are connected line following sensors. It was nessecary to isolate sensors outputs. That could be realized by OR gates or by diods (D10 až D12) which take less space on the PCB. Over the resistors R6 až R9 are conected nízkospotrebové LEDs (LED4~LED7) to the sensors outputs. IC1 turning up sensors by the chosen mode trought the transistors T1 (BC327) and T3 (BC337).

Last section of the main board belongs to motors control. First experiments was using just two transistors for turning up motors and to relays for switching polarity and direction of the motor rotation as well. But i realised that final version of my robot have to use something more sofisticated. So i have used specialized motordriver integrated circuit L298 (IC4) which need just filtration capacitor (C4) and diode protection for each motor output realized by 1N4007 diods (D1~D8).Drivers logic is powered with 5V and power section works with 6V.

On the end was nessecary to lead the SV3 terminal, which is connecting accessory board and main board communicating over the I2C bus. On the main board was added piezo which could beep when is found obstacle or detected line.

Robot v1.1 Robot v1.1

Main board parts list:

R1, R6 až R9 2k2 Robot v1.1
R2, R4, R5 1k0
R3, R10 až R13 10k
P1 až P4horizontal trimmer 4k0
C1 100nF
D1 až D8 1N4007
D9 až D12 1N4148
IR1 až IR4 IRS5
T1 BC327
T2, T3 BC337
IC1 MC68HC908QB8CPE
IC2, IC3 PIC12F508
IC4 L298
IC5, IC6 SFH506-36
BUZ1 LP-12SP42
S1 P-B170H
S2 P-B170G
SV1,SV2 4pin RM2,54 header
SV3 5pi RM2,54 header
X1 až X4 ARK500/2

Accessory board description:

Robot v1.1

Main role of the accessory board is displaying selected mode and control of the LED reflectors, as has been mentioned before. All is realized by two I2C expanders. First expander IC1 (PCF8472P) is care about displaying number of the selected mode on the LED display DIS1 (HD-A101). Second expander IC2 is using LED2~LED6 to inform about periperalas which has been used in selected mode. One IC2 output has been used for transistor T1 (BC327), which supply LED7 a LED8 (high shining blue LEDs). Its role is robot headlights. To Main board is this board connected via SV1 terminal. Second terminal SV2 has been OSAZEN for feature VYUŽITÍ.

Robot v1.1 Robot v1.1

Seznam soucástek pro vedlejší desku:

R1 10kRobot v1.1
R2,R3 22k
R4 470R
R5 až R10 2k2
R11,R12 300R
LED1 LED 3MM ZEL 2mA
LED2 až LED6 LED 3MM CER 2mA
LED7, LED8 LED 5MM MODRA 20mA
DIS1 HD-A101
IC1,IC2 PCF8574P
SV1,SV2 5pinový konektor

Popis zapojení cárového cidla

Robot v1.1

Toto cidlo je velice jednoduché. Pomocí trimru R3 se nastavuje proud, který bude protékat IR diodami D1, D2 (IRS5). Tranzistor T2 (BC327) je k fototranzistoru T1 (IRE5) pripojen jako emitorový sledovac. Pomocí trimru R2 se nastavuje citlivost zapojení na infracervené zárení odražené z IR diod do fototranzistoru T1. Cidlo se k hlavní desce pripojuje pomocí konektoru SV1.

Robot v1.1 Robot v1.1

Seznam soucástek pro cárové cidlo:

R1,R4 1k0Robot v1.1
R2,R3 ležatý 1k0
D1,D2 IRS5
D3 LED 3MM ZEL 2MA
T1 IRE5
T2 BC327-16
SV1 4pinový konektor

Popis zapojení zdroje

Robot v1.1

Zdroj je velice jednoduchý. Na svorkovnici X1 se pripojuje napetí z 8mi Ni-MH tužkových baterek. Dioda D1 (1N4007) slouží jako ochrana stabilizátoru proti prepólovaní. Kondenzátor C3 slouží pro pokrytí proudových špicek. Kondenzátory C1 a C2 slouží jako odrušovací kondenzátory. Pro napájení Hlavní desky a cidel, které jsou na ní umístené jsem použil presný stabilizátor IC1 (78T05). Druhý stabilizátor IC2 (7806) stabilizuje napetí pro motory.

Robot v1.1 Robot v1.1

Seznam soucástek pro zdroj:

R12k2 Robot v1.1
C1100nF
C2330nF
C32200uF /16V
D11N4007
D2LED 3MM ZEL
IC1 78T05
IC27806
X1 až X3AK500/

Popis Firmwaru hlavního mikrokontroleru

Hlavní funkcí mikrokontroleru je vyhodnocovat stavy zvolených cidel a podle zvoleného modu jimi rídit dva motory. Mody se volí pomocí tlacítka S2, které je umísteno nad resetovacím tlacítkem S1. Pri krátkém stisknutí, dojde ke zmene programu a na displeji se zobrazí, jaký program je práve zvolen a na LED diodách se zobrazí, jaké periférie se budou soužívat. Tyto diody budou svítit následovne:

Jak už bylo zmíneno, robot muže pracovat v nekolika modech, které se volí již krátkým stisknutím tlacítka. Pro spuštení vybraného modu, který jsme nastavili krátkým klikáním na tlacítko, musíme stejné tlacítko pridržet delší dobu, dokud se robot nerozjede. Robot je schopen pracovat v devíti modech.

  • 1: Prekážkové cidlo
  • 2: Prekážkové cidlo + pípání
  • 3: Prekážkové cidlo + svetlo
  • 4: Prekážkové cidlo + pípání + svetlo
  • 5: Cárové cidlo
  • 6: Cárové cidlo + pípání
  • 7: Cárové cidlo + svetlo
  • 8: Cárové cidlo + pípání + svetlo
  • 9: Predvádecí mód

Jak se Robot rozhoduje podle vstupních stavu je patrné z priloženého programu, a jelikož je ovládací program naprogramován ve vyšším jazyku C, je velmi prehledný a nebude problém jej v budoucnosti ruzne upravovat. Pro ovládání I2C sbernice bylo potreba naprogramovat jednoduchou softwarovou rutinu. Jelikož slouží jenom pro ovládání zobrazovacích prvku není její rychlost kritická.

Popis mechanických cástí robota

Celý robot je postaven ze soucástek LEGO, kterých jsem mel dostatek pro stavbu jednoduchého dvoukolového robota. Pri spojování jednotlivých kostek bylo je bylo ale potreba lepit vterinovým lepidlem, takže další mechanické úpravy budou již nerealizovatelné. Jako pohon pro kola byla díky relativne vysokému tocivému momentu zvolena dve levná modelárská serva Hitec HS-311, která, aby se netocila pouze o 180 stupnu, ale dokola o 360 stupnu, bylo nutno jednoduše upravit. Úprava spocívala ve vyletování polohovací elektroniky a malou úpravou prevodovky serva. Na serva byla rovnou prišroubována kola. (Obr. 19.) Robot nemá, jak se zvykem tretí kolo, ale pouze jakési "sánky". (Obr. 20. a 21.) Ty se ukázali jako nejlepší, protože použití malého kolecka melo, radu nevýhod. Nejhorší vlastností kolecka byla nedotácivost (kolecko se pri zatocení, otocilo, ale, když mel robot jet zase rovne kolecko se nevrátilo nazpátek), což zpusobovalo nekontrolovatelné zatácení robota. Odstranování tohoto problému bylo jenom s pomocí stavebnice LEGO nárocné, a proto bylo jednoduší, prejít k "sánkám" prestože mají vetší trení než jedno kolecko.

Robot v1.1 Robot v1.1
Robot v1.1 Robot v1.1

Konstrukce a oživení

Robot v1.1

Pri konstrukci postupujeme klasickým zpusobem, ale jediné co je neobvyklé je osazení IC5 a IC6 na Hlavní desce. Ty jsou totiž pripájeny k DPS vzhuru nohama (Obr. 20.), aby je bylo možné lépe nastavit pri ladení cidel. Dále postupujeme tak, že osadíme nejprve pasivní soucástky (propojky, následne odpory, kondenzátory, patice pro integrované obvody) a nakonec zbylé aktivní soucástky (diody, LEDky, Integrované obvody). Jelikož nebylo možné osadit desku konektorem ICP, je potreba , pri upravování programu hlavního programu IC1, casto mikrokontroler vyndávat z hlavní desky a dávat jej do programátoru. Proto se mi osvedcilo do hlavní desky priletovat obycejnou patici a na mikrokontroler napevno pridelat precizní patici. Tím predejdeme, pri castém manipulováním se ?švábem?, poškození jeho nožicek. Pro oživení celého robota je nejprve naprogramovat hlavní mikrokontroler Freescale. Ten je možno naprogramovat pomocí programátoru, jehož schéma je nakresleno v Datasheetu nebo pomocí kitu JANUS [8]. Ten je urcen pro variantu mikrokontroler QY, ale díky komptabilite pinu v Q rodine, není problém procesor MC68HC908QB8 kitem JANUS naprogramovat. Pro naprogramování mikrokontroleru PIC12F508 se mi osvedcil JDM programátor [9]. Po naprogramování mikrokontroleru je potreba nastavit trimry na nejvetší odpor, aby nedošlo k poškození IR diody, osadit mikrokontrolery. Zvolit program 1 až 4, nastavit pomocí trimru na hlavní desce rozsah prekážkových cidel. Resetovat mikrokontroler. Zvolit program 5 až 8, natavit pomocí trimru na Cárových cidlech správnou citlivost na cernou a bílou barvu a nakonec pripojíme motory a vše je hotovo. Pro vyzkoušení všech periférií mužeme pro jistotu spustit ješte predvádecí mód 9

Záver

Robot v1.1

Tento robot splnil svuj úcel: naucit se programovat mikrokontrolery v jazyku C, ale také jsem se zároven celkove zlepšil v navrhování a konstruování elektronických obvodu, což je jiste velice užitecné. Zároven doufám, že poslouží jako inspirace dalším?bastlírum?. Popsané obvody je možno pridelat na jakýkoliv jiný podvozek a použít jiné motory a jelikož je software pro hlavní mikrokontroler napsán v jazyku C nebude problém ho doladit ci jej vylepšit. Pri problémech pri stavbe apod. me mužete kontaktovat pomocí emailu (michalhrouda@seznam.cz).

Soubory ke stažení:

Použitá literatura

 

Social networks:

 

Send comment:



Name:   E-mail:    WWW:   

  Check this (antispam check)   

Comments:

Mica
WWW
2011-08-19 09:25:59
Matěj:
Samozřejmě, že ano :)
Matěj
2011-08-18 12:15:53
umí zatáčet???
Mica
2009-10-19 01:59:23
Michal kodera:
Plošné spoje nevyrábím a ani k dispozici jiné nemám, pouze Vám mohu poskytnout zrevidovanou předlohu. A co se týče mikrokontroléru QB8, tak těch ještě pár k dispozici mám. Cena je 130,-Kč + poštovné... Pokud máte zájem, tak mě kontaktujte emailem...
Michal kodera
2009-10-15 17:51:10
Dobrý den.Když sem si přečetl celý tento článek tak mě velice zaujal a je velice pěkně zpracovaný. Za to vám dávám veliké plus. I já sem byl nedávno nováčkem ve stavbě robotů ale na jiném principu. Ale to je jiné téma. Jak sem si přečetl komentáře tak tam píšete, že byste mi mohl poslat navržené plošné spoje a ten mikrokontroler. Za to bych vám byl velice vděčný mám docela problém ho sehnat.Pokud to není teda nějaký problém a kolik by to stálo. Děkuji
Mica
2009-10-11 21:41:39
Jan Hnízdo:
Dobrý den, mikrokontrolér na stránkách výrobce je http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=HC08Q&tab=Buy_Parametric_Tab&fromSearch=false leč v současné době jej už není možné objednat jako vzorek a proto je potřeba se obrátit buď na mě nebo na nějakého většího distributora součástek, např. http://www.farnell.com.

A k QY4. Problém je v tom, že tohle je můj první robot a tudíž z postupem doby vidím, že návrh plošné spoje spoje jsou největším kamen úrazu toho to robota. Na požádání Vám mohu poskytnout lépe navržené plošné spoje. (Chystám se je zveřejnit, ale v současné době nevím jestli poupravit tento článek nebo napsat nový článek, který bude opravovat všechny nešvary staré verze tohoto robota).

Ale pokud již máte vyrobené plošné spoje, tak není potřeba vyrábět zrevidované verze. Hlavním problémem je špatná \\\"distribuce\\\" napětí na hlavní a vedlejší desce. Proto je vhodné obsypat všechny integrované obvody a mikrokontroléry elektrolitickými kondenzátory a případně kladný napájecí vodič připojit k \\\"rozvodu\\\" napájení přes tlumivku (třeba 100uH)...
Jan Hnízdo
2009-10-05 17:21:31
Prosím o pomoc.Hledal jsem všude kde se dalo ale ten mikrokontroler MC68HC08QB8 jsem nemohl nikde najít a na stránkách výrobce jsem ho také nenašel. A při použití toho druhého MC68HC08QY4 se tento robot rozjede na pouhý 1 metr a hned se restartuje. Proto vás chci požádat pokud byste věděl kde tento mikrokontroler MC68HC08QB8 sehnad tak mi prosím poraďte děkuji.
Bazzoka
2009-03-20 09:31:35
V Eagle je knihovna pro L 298? Nebo jste ji tvořili? Nejak jsem ji nenasel :(
Mica
2009-01-17 01:40:33
Jenda:
Ahoj. Já jsem konkrétně použil vlajkovou loď mezi mikrokontroléry s jádrem V1 a to MCF51QE128 a vývojovou desku jsem si koupil DEMOQE128, ale programovat a ladit za běhu by měl dokázat o mnoho levnější OBDM programátor, který se pokusím v nejbližších dnech s V1čkou pokusím otestovat... O tom OBDM se navíc chystám napsat na svoje stránky takovou malinkatou recenzi.
Jenda
2009-01-16 08:54:28
Ahoj, moc fandím. Také chci začít s mikrokontroléry Freescale. Jaký typ s jádrem V1 konkrétně jsi použil? Jakou vývojovou desku - nebo jde použít deska pro "osmibity"?
Mica
2008-11-27 22:30:20
Michal Ličak:
V podstatě ano :)
Michal Ličak
2008-10-03 16:40:28
A chodí to samo kde chce?
Mica
2008-10-03 16:36:00
Michal Ličak:
Jak? Řekl bych že nijak :) Tohodle robota není možné dálkově ovládat...
Michal Ličak
2008-10-02 20:46:43
Ako sa to ovláda?
Mica
2008-06-19 00:41:45
Vlastně to bude vypadat asi takhle:

http://www.youtube.com/watch?v=6q9SDpgVtQg

Teda Robot Biped by měl chodit nesrovnatelně plynuleji a také rychleji
Mica
2008-06-19 00:37:16
Qwertui:
No těmi "kotníkovými" servy a akcelerometrem. Prostě nastavím servo experimentálně zjištěné polohy, akcelerometrem zkontroluji náklon robota a když došlo k přenesení váhy, tak budu dál pohybovat příslušnejma servama, tak aby prostě chodil.
Qwertui
2008-06-16 21:51:07
Ahoj, jak máš vymyšlený přenášení váhy aby mohl robot chodit?
Mica
2007-12-25 14:49:30

 

All right nearly reserved. Copypaste © 2020 Mica
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License