Békéscsabai Központi Szakképző Iskola és Kollégium Trefort Ágoston Műszaki Tagiskolája 5600 Békéscsaba, Puskin tér 1. Pf. 62 www.taszi.hu
XVII. ORSZÁGOS ELEKTRONIKAI KONSTRUKCIÓS VERSENY
2014
Robotkocsi mikrovezérlővel Intelligens robot autó
Versenyzők Szabó Zorán 11/C Bessenyei Attila 12/C
Felkészítő tanár, konzulens Domokos Imre
Adatlap Iskola neve: Békéscsabai Központi Szakképző Iskola és Kollégium Levelezési címe: 5600 Békéscsaba, Gyulai út 32/1. Központi telefonszáma: 06-66/441-314, 06-66/444-679 Központi e-mail címe:
[email protected]
Trefort Ágoston Tagintézménye 5600 Békéscsaba, Puskin tér 1.
Pályamű megnevezése: Robotkocsi mikrovezérlővel Versenyzők: Név: Osztály: Képzés:
Szabó Zorán
Bessenyei Attila
11/C
12/C
Elektronika-elektrotechnika szakmacsoport (hardver orientáció)
E-mail cím:
[email protected]
[email protected]
Feladatok:
Mechanikai megvalósítás, fő irányító egység tervezése, kivitelezése, modulok kommunikációja.
Ultrahangos távolságmérő modul fejlesztése, kivitelezése. Szenzor mozgató szervo vezérlése. LCD kijelző vezérlése.
Konzulens, felkészítő tanár: Domokos Imre
Az alábbi dokumentáció Bessenyei Attila munkáját mutatja be:
• • •
Ultrahangos távolságmérő modul fejlesztése, kivitelezése Szenzor mozgató szervo vezérlése LCD kijelző vezérlése
Készült: Békéscsaba, 2014. április 17.
_________________________ Domokos Imre
-1-
Tartalomjegyzék Adatlap....................................................................................................... 1. Tartalomjegyzék......................................................................................... 2. Bevezetés................................................................................................... 3. Témaválasztás / Motiváció.................................................................. 3. Miért pont PIC?................................................................................... 3. A kezdet.............................................................................................. 3. Időhiány..............................................................................................
3.
Munkamegosztás................................................................................ 3. Feladatom / Célok...................................................................................... 4. Működési elv.............................................................................................. 4. 1. Szervo............................................................................................. 4. 2. Ultrahangos szenzorok................................................................... 5. 3. Karakteres LCD kijelző...................................................................
6.
Kapcsolási rajz........................................................................................... 7. A kapcsolásról..................................................................................... 7. Blokkvázlat................................................................................................. 8. NYÁKterv.................................................................................................... 9. Beültetési rajz............................................................................................. 9. Program kifejlesztése................................................................................. 10. A kezdetek.......................................................................................... 10. Programíró szoftver............................................................................
11.
Programnyelv...................................................................................... 11. Program működése............................................................................. 12. Elektromos paraméterek............................................................................ 13. Alkatrészjegyzék........................................................................................ 13. Források..................................................................................................... 14.
_________________________ Domokos Imre
-2-
Bevezetés Témaválasztás / Motiváció Azért választottam ezt a témát, mert nagyon érdekel az elektronika és régóta foglalkozom analóg technikával. Építettem pár erősítőt, sok kisebb alkotást, egyebeket. Körülbelül 2 éve lehetett, hogy megismertem felkészítő tanárom, Domokos Imre tanár urat az iskolában, aki nagyon sok érdekességet mutatott nekem. Ekkor kezdett el érdekelni a digitális technika. Akkor vetődött fel bennem, hogy beleássam magam a témába. Kezdetben csak figyeltem és tanultam és minél többet láttam annál jobban motivált lettem, hogy meg tanuljak én is programot írni és elvégezni egyszerűbb vagy akár bonyolultabb feladatokat mikrokontroller segítségével. Miért pont PIC? A Microchip vállalat terméke mellett, a PIC-ek mellett döntöttem. Egyszerűen megfogott. Egyre többet és többet szerettem volna tudni a PIC-ek világáról, a programozásról, a belső felépítésükről, a működésükről éppúgy, mint a hardveres részről ezért egyre több órányi szakkört tartottunk hetente. Telt az idő, egyre többet fejlesztgettem és ekkor fogalmazódott meg bennem, hogy nevezzünk a versenyre egy barátommal közösen, akit legalább ennyire érdekel a robotika, mint engem. A kezdet Elkezdtünk megépíteni egy kezdetleges robotot egy átalakított RC autóból. Szerettük volna, hogy mindig többet és többet tudjon, több feladatot elvégezni minél rövidebb idő alatt. Jött az ötlet majd megvalósítottuk, időről időre több funkciót tudott a robot. Időhiány Sok gondot okozott az időhiány. Sokszor akadályba ütköztünk, de végül sikerült elérni célunkat és összeállítani egy működő konstrukciót. Sokat köszönhetünk felkészítő tanárunknak. Munkamegosztás Mivel közösen fejlesztettük a robotot ki kellett találni, hogy miként osszuk fel az egységeket. Nem volt nehéz, mert általában különféle dolgokkal foglalkoztunk otthon, ami éppen megragadta a fantáziánkat. Engem az ultrahangos távolságmérés és az LCD kijelzők világa fogott meg ezért azzal kezdtem el foglalkozni. A társam inkább a rádióhullámú adattovábbítással és a motorszabályzással, mechanikával foglalkozott így adott volt, hogy ki melyik részegységet építi meg. Az én egységem az ultrahangos távolságmérő modul, ebből adódóan ezt fogom bemutatni a következőkben.
_________________________ Domokos Imre
-3-
Feladatom / Célok Az én feladatom az ultrahangos távolságmérő modul megtervezése, programozása és legyártása volt. Célkitűzés a sokrétűség volt. Kérdés, hogy mit is tud pontosan a modul és ezzel milyen funkciókkal gazdagodik a robot. Funkciók: • LCD kijelző vezérlése (2x16 karakteres kijelző, 1. sorban értékek, 2. sorban csík) • Első szervo mozgatása • Első szervón lévő ultrahangos szenzorral távolságmérés • Hátsó ultrahangos szenzorral távolságmérés • Távolságok küldése a fő irányító egységnek
Működési elv 1. Szervo A robot elején található egy szervo által működtetett kis állvány, amin helyet foglal a PING ultrahangos szenzor. Ez a szervo mozgatja folyamatosan a távolság érzékelőt. A programban beállított fokban elforgatja az állványt majd végez egy mérést, tovább forgatja és így tovább. A látószög jelenesetben 90-100 fok. Az általam használt típus: Parallax Standard Servo
Impulzusvezérlés:
_________________________ Domokos Imre
-4-
2. Ultrahangos szenzorok A modulom alapját képezi kettő darab ultrahangos szenzor amelyek típusban eltérőek de működési elvük ugyanaz. A szonár elv alapján mérik a tárgyak távolságát. Ezek a szenzorok az emberi fül számára nem hallható tartományba eső ultrahangokat bocsájtanak ki majd a visszaverődött hangot érzékelik. A kibocsájtás és a visszaérkezés között eltelt idő mérésével, a hang terjedési sebességének ismeretében, a céltárgy távolsága egyszerű számolással meghatározható. A tárgyak távolsága az ultrahang által megtett út fele. Ezek a modulok lényegében egy rövid ultrahang hullámcsomagot kibocsátó hangszóróból és a céltárgyról visszaverődött ultrahang érzékelésére szolgáló mikrofonból állnak. Az általam használt két típus:
HC-SR04
és
PING
PING szemléltető ábra:
_________________________ Domokos Imre
-5-
3. Karakteres LCD kijelző A modulom másik fontos egysége a 2 soros, 16 karakteres alphanumerikus LCD kijelző amin keresztül felhasználóbaráttá válik a robot hisz itt tudjuk nyomon követni, hogy éppen milyen messze van tőle az akadály. Az első sorban centiméter pontossággal kiírja a tárgyak távolságát, ami a robot előtt illetve mögött található. A frissítési gyakoriság 0,2-0,3 másodperc, vagyis elég gyorsan reagál a változásokra. Második sorban egy csík található melynek 3 állapota lehet: (A csík az első szenzor távolságát ábrázolja.) • 16 karakteres kijelző lévén a csík 16 féle értéket vehet fel. 1 egység (egyenlőségjel) jelenik meg 10 centiméterenként. Például 50 centiméter esetén 5 egység lesz látható. • 10 Centiméter alatt „Kis tavolsag !” felirat látható. • 160 Centiméter felett „Nagy tavolsag !” felirat látható.
Példa:
E : 100 cm H : xxx cm ========== E
Elöl
H
Hátul
_________________________ Domokos Imre
XXX
Változó
=
1 Egység
-6-
Kapcsolási rajz A kapcsolási rajz tervezése Proteus programmal történt.
A kapcsolásról Az egész áramkört egy PIC vezéreli melynek típusa PIC16F628A. Azért esett erre a választás mert kéznél volt, továbbá ezen tanultam meg a programozást. Tudása több mint elég ehhez a feladathoz. 20MHz-es külső oszcillátorról működik a mikrokontroller. Tartalmaz még egy LCD kijelzőt is ami 2 soros és 16 karakteres. Ide tartoznak még az állapotjelző LED-ek és a ki/bemeneti perifériák csatlakozói a külvilág felé. A feszültség simítása végett megtalálható két puffer kondenzátor a táp + és GND között. Van egy darab fel nem használt I/O portja a PIC-nek (RB3) ami ki lett vezetve, ezáltal a későbbiekben lehetőség van bővítésre / plusz funkciók hozzáadására.
_________________________ Domokos Imre
-7-
PIC16F628A lábkiosztása és bekötése:
Blokkvázlat
_________________________ Domokos Imre
-8-
NYÁKterv A NYÁKterv elkészítése Sprint Layout programmal történt.
Azért választottam ezt a programot mert ezen tanultam meg a nyáktervezés rejtelmeit, több éves gyakorlatom van benne. Nagyon egyszerű a kezelése, hamar megtanulható és rendkívül sokoldalú program. Egyoldalas lett a terv, így jelentősen leegyszerűsödik az elkészítési folyamat mivel vasalásos technikával dolgozok. Egy oldal lévén került rá elég sok átkötés, de ez csupán esztétika, a működést nem befolyásolja. Az LCD kijelző a panel felett foglal helyet 1,5 centiméteres távtartókon és egy szalagkábellel csatlakozik a panelre. Az összes alkatrész furatszerelt.
Beültetési rajz
_________________________ Domokos Imre
-9-
Program kifejlesztése A kezdetek A modul fejlesztése és a PIC programozása egy saját építésű JDM programozóval történt. Általában ennek segítségével történt az égetés kivéve szakkör idején mivel akkor az iskolában komoly berendezésekkel dolgoztunk. Magam terveztem és készítettem el a NYÁK-ot amin megtalálható a már említett JDM programozó ami soros porton kommunikál a PC-vel, továbbá van rajta egy tápegység is ami stabil feszültséget (5V) állít elő a próba áramkörök számára. Otthoni fejlesztőállomás
JDM Programozó + Tápegység
_________________________ Domokos Imre
- 10 -
Programíró szoftver Programíró szoftverként a MicroCode Studio–t használtam a kifejlesztésre. Letisztult kinézet, egyszerű kezelés jellemzi. Kezdetektől fogva ezt használom, csak ajánlani tudom.
Programnyelv Basic nyelven tanultam programozni ezért ezt a projektet is PicBasic nyelven írtam. Nevéből adódóan egyszerű „basic” és pont ezért szeretik sokan. Mindent nem lehet vele megvalósítani, de közepes nehézségű feladatokhoz kiváló.
MicroCode Studioban megnyitva a program egy kezdetleges verziója
_________________________ Domokos Imre
- 11 -
Program működése Bekapcsolás után minden alaphelyzetbe áll, a szervo középre áll be majd és üdvözlőfelirat jelenik meg a kijelzőn. A készítők neve majd a robot verziója. Ezek után egy rövid tájékoztató, hogy az LCD egyes részein mi fog megjelenni. Az időzítő lejártával elkezdődik a mérés. 1.
Beáll a szervo középállása (0 fok).
2.
Lekérdezi a program mindkét ultrahangos szenzort, hogy éppen milyen távol van tőlük az akadály.
3.
Átkonvertálja centiméterbe. Felvillantja a piros LED-et.
4.
Kiírja az LCD első sorában a mért érékeket 1 cm pontossággal.
5.
Az LCD második sorában kiír egy csíkot az elöl lévő szenzor által mért távolság függvényében. *
6.
Elküldi a mért távolságokat decimálisan centiméterbe a fő irányítóegységnek soros adatkommunikációval.
7.
Beáll a szervo -45 fokos szögbe.
8.
Megismétli a program 2…6 lépéseket.
9.
Beáll a szervo középállása (0 fok).
10. Megismétli a program 2…6 lépéseket. 11. Beáll a szervo +45 fokos szögbe. 12. Megismétli a program 2…6 lépéseket. 13. Ugrik az első lépésre és ebben a hurokban kering a kikapcsolásig.
*A csíkról bővebben a működési elv hármas pontjában. (6. oldal)
_________________________ Domokos Imre
- 12 -
Elektromos paraméterek Minimum áramfelvétel Maximum áramfelvétel Üzemi feszültség HC-SR04 frekvencia PING frekvencia Pontosság Minimum táv Hatótávolság LCD betekintési szög Működési hőmérséklet
: : : : : : : : : :
100 500 5 40 40 +- 1 2 250 +- 40 10-30
mA mA V kHz kHz cm cm cm fok Celsius
Alkatrészjegyzék Ellenállás:
1/4W
Kondenzátor: Kerámia Elko Dióda:
Diffúz LED
Kvarc: Csatlakozó:
Kristály Nyák
Kijelző: Modulok:
LCD Távolságmérő
Motor: IC:
Szervo PIC Foglalat Fém Fém Papa Trimmer
Távtartó: Csavar: Tüskesor: Potméter:
_________________________ Domokos Imre
220 Ω 10 KΩ 560 Ω 27pF 100nF 100 µF 1 µF Zöld 5mm Piros 5mm 20MHz 4-es L 3-es L 2-es L 2x16 HC-SR04 PING))) 180fokos 16F628A 18 lábú 1,5cm M3 L alakú, 3-as 25KΩ
2db 1db 1db 2db 1db 1db 1db 1db 1db 1db 1db 3db 1db 1db 1db 1db 1db 1db 1db 4db 4db 1db 1db
- 13 -
Források [1]
PIC16F628A PIC Adatlap
[2]
HC-SR04 Modul Adatlap
[3]
PING Modul Adatlap
[4]
LCD Kijelző Adatlap
[5]
Szervo Adatlap
[6]
MicroCode Studio
[7]
Hobbielektronika.hu
[8]
Microchip.com
[9]
Sprint Layout
___________________________ Bessenyei Attila
_________________________ Domokos Imre
- 14 -