Robotkocsi mikrovezérlővel

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Robotkocsi mikrovezérlővel"

Átírás

1 B é k é s c s a b a i K ö z p o n t i S z a k k é p z ő I s k o l a é s K o l l é g i u m Trefort Ágoston Műszaki Tagiskolája 5600 Békéscsaba, Puskin tér 1. Pf 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

2 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/ , 06-66/ Központi címe: 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: Szabó Zorán Bessenyei Attila Osztály: 11/C 12/C Képzés: Elektronika-elektrotechnika szakmacsoport (hardver orientáció) cím: 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: 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, április

3 Tartalomjegyzék Adatlap Tartalomjegyzék Bevezetés Témaválasztás / Motiváció Miért pont PIC? A kezdet Időhiány Munkamegosztás Feladatom / Célok Működési elv Szervo Ultrahangos szenzorok Karakteres LCD kijelző Kapcsolási rajz A kapcsolásról Blokkvázlat NYÁKterv Beültetési rajz Program kifejlesztése A kezdetek Programíró szoftver Programnyelv Program működése Elektromos paraméterek Alkatrészjegyzék Források

4 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, 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

5 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 fok. Az általam használt típus: Parallax Standard Servo Impulzusvezérlés: - 4 -

6 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: - 5 -

7 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 XXX Változó = 1 Egység - 6 -

8 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

9 PIC16F628A lábkiosztása és bekötése: Blokkvázlat - 8 -

10 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 - 9 -

11 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

12 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

13 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)

14 Elektromos paraméterek Minimum áramfelvétel : 100 ma Maximum áramfelvétel : 500 ma Üzemi feszültség : 5 V HC-SR04 frekvencia : 40 khz PING frekvencia : 40 khz Pontosság : +- 1 cm Minimum táv : 2 cm Hatótávolság : 250 cm LCD betekintési szög : fok Működési hőmérséklet : Celsius Alkatrészjegyzék Ellenállás: 1/4W 220 Ω 2db 10 KΩ 1db 560 Ω 1db Kondenzátor: Kerámia 27pF 2db 100nF 1db Elko 100 µf 1db 1 µf 1db Dióda: Diffúz LED Zöld 5mm 1db Piros 5mm 1db Kvarc: Kristály 20MHz 1db Csatlakozó: Nyák 4-es L 1db 3-es L 3db 2-es L 1db Kijelző: LCD 2x16 1db Modulok: Távolságmérő HC-SR04 1db PING))) 1db Motor: Szervo 180fokos 1db IC: PIC 16F628A 1db Foglalat 18 lábú 1db Távtartó: Fém 1,5cm 4db Csavar: Fém M3 4db Tüskesor: Papa L alakú, 3-as 1db Potméter: Trimmer 25KΩ 1db

15 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