B é k é s c s a b a i K ö z p o n t i S z a kak é 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. 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]
Tagintézmény:
Trefort Ágoston Tagintézménye
Tagintézmény címe:
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
11/C
12/C
Osztály: Képzés:
Elektronika-elektrotechnika szakmacsoport (hardver orientáció)
E-mail cím:
[email protected]
[email protected]
Feladatok:
Mechanikai megvalósítás,
Ultrahangos távolságmérő modul fejlesztése, kivitelezése. Szenzor mozgató szervo vezérlése. LCD kijelző vezérlése.
fő irányító egység tervezése, kivitelezése, firmware program megírása, modulok kommunikációjának megvalósítása.
Konzulens, felkészítő tanár: Domokos Imre
Az alábbi dokumentáció Szabó Zorán munkáját mutatja be:
RC távvezérlős autó átalakítása Hangtároló modul elkészítése, felprogramozása Fő vezérlőpanel elkészítése, felprogramozása Futófény panel felszerelése, programjának megírása
Készült: Békéscsaba, 2014. április 17.
___________________________________
Domokos Imre
1
Tartalomjegyzék
1.
Tartalom ...............................................................................................................................................................3
2.
Bevezetés..............................................................................................................................................................3
3.
Feladatom.............................................................................................................................................................4
4.
Működés ...............................................................................................................................................................4
5.
Általam elkészített modulok.................................................................................................................................4
6.
5.1
Fő vezérlőpanel: ............................................................................................................................................4
5.2
Mikrokontrolleres futófény:..........................................................................................................................9
5.3
Hangtároló modul: ......................................................................................................................................10
Felhasznált irodalom...........................................................................................................................................15
___________________________________
Domokos Imre
2
1. Tartalom Ez a leírás tartalmazza az Országos Elektronikai Konstrukciós versenyre készített Intelligens robot autó részletes leírását, elvi és gyakorlati felépítését.
2. Bevezetés Ki/Mi motivált? Idén indult programozói szakkör alkalmával egyre jobban megszerettette velünk Domokos Imre tanár úr a Basic nyelve. Ez idő alatt egyre bátrabban, és szakszerűbben kezdtük használni ezt a tudásunkat. Ettől felbátorodva amint tudomásunkra jutott a versenyfelhívás rögtön jelentkeztünk is a versenyre, mivel itt valós körülmények között tapasztalhattuk meg hogy milyen egy eszközt határidőre, és ledokumentálva elkészíteni, emellett első magunk által programozott mikrokontrolleres áramkörünket is elkészíthettük.
Miért pont robot autó? Biztos sokan látták már a „Reszkessetek betörők!” című filmet. Akik nem annak pár szós a filmről: Lényege hogy egy kölyök gyerek, akit a szülők otthon felejtettek a nyaralás okozta nagy zavarban. Ez a kisgyerek a családi házba betörni készülő bűnözőktől szeretné megóvni a családi házat. Ehhez a házban található eszközökből ügyes szerkezeteket készít, és az egyik jelenetben egy távvezérlős autóra erősített kamera segítségével figyeli meg a betörőket. Ekkor jött az ihlet.
Nehézségek/előnyök: Nagy nehézséget okozott az időhiány a projekt megalkotása alatt. Emiatt sok funkcióról le kellett mondanunk az elkészítés során, melyeket később be szeretnénk pótolni. Sok alapanyagot, NYÁK panelt, áramkört előző projektekből kellett „kölcsönöznünk” emiatt sajnos nem tudtuk elérni a kellő profizmust a kivitelezés során. Sajnos a kivitelezés során szembesülnünk kellet az alkatrész hiánnyal, de ezt felkészítő tanárunk segített kiküszöbölni. A problémák ellenére örültünk társammal, Bessenyei Attilával a kihívásnak, mivel nagyon sok tapasztalatot szerezhetünk ez idő alatt.
Későbbi tervek:
Számítógépes irányítás Önálló távvezérlő segítségével való irányítás Mozgásérzékelő modul használata Kamera felszerelése Internet alapú kommunikációs kapcsolat Vonalkövető funkció beépítése
Automata akkumulátortöltő beszerelése
___________________________________
Domokos Imre
3
3. Feladatom A feladatok kiosztásánál önálló munkamegosztás valósult meg. Míg társam az ultrahangos távolságmérés iránt érdeklődött, addig én a távvezérlés, motorvezérlés és fényjáték iránt érdeklődtem. Az én feladataim közé tartozik a mechanikai kivitelezés, a fő vezérlő panel elkészítése, kapcsolási és NYÁK rajzának megtervezése, és az autó elején látható „futófény” elkészítése, illetve ezen modulok belső vezérlő programjának megírása, kifejlesztése, a modulok kommunikációjának megvalósítása. Célomnak tekintettem, hogy az autó önállóan is tudjon reagálni az elé kerülő tárgyakra, és önműködően képes legyen bejárni körülötte levő területet. A készülék moduláris felépítésű, ennek köszönhetően lehetőség van a későbbi bővítésre.
4. Működés A készülék e leírás készítésekor még csak automata üzemmódban képes működni, de a jövőben képes lesz az eszköz manuális üzemmódra is, és félautomata üzemre is. Félautomata üzemmód alatt előre meghatározott terv alapján mozgó járművet értek, ami figyeli környezetét az esetleges balesetek elkerülése végett, de számítógépen keresztül kapja az utasításokat, hogy merre kell mennie. Manuális üzemnél a szenzorokra nem hagyatkozik az eszköz, csak a távvezérlő eszköz által küldött utasításokat hajtja végre.
5. Általam elkészített modulok 5.1 Fő vezérlőpanel: Feladata:
körülmények felismerése távoli beavatkozás lebonyolítása kommunikálás a külvilággal modulok stabil áramellátásának a biztosítása felügyelet, és hibakeresés.
A kapcsolási rajz, és a NYÁK rajz megtervezésére, leszimulálására a Proteus 8 nevezetű programot használtam. A magyar nyelv hiánya ellenére nagyon kezelőbarát eszköz, sok funkciót tartalmaz, köztük a kapcsolási és a, NYÁK rajz megtervezése , emellett a kész áramkört le is szimulálhatjuk, így nagy segítséget nyújtva a hibák kiderítésében, ezek mellett még található benne egy assembly nyelvű fejlesztői környezet, képes alkatrészjegyzéket készíteni, 3D-s panelterv, és még sok más funkciót tartalmaz amely segíti a tervező, és kivitelező munkáját. A kapcsolási rajzot igyekeztem átláthatóan, és egyszerűen megtervezni, melyet kisebb nagyobb sikerrel sikerült is megvalósítanom.
___________________________________
Domokos Imre
4
Fő vezérlő kapcsolási rajza.
A fő vezérlőmodul funkciói:
1darab alphanumerikus LCD kijelző, melyen keresztül a PIC vezérlő ki tudja írni a hibajelenségeket (ha van), feszültségállapotokat, és egyéb információkat. 4 darab nyomógomb, az esetleges manuális adatbevitel megkönnyítésére, és a menürendszer használatához. A nyomógombok 4 darab 1N4148 típusú diódán keresztül rá vannak kötve a PIC interrupt (megszakítás kérelmező) lábára, ezzel megkönnyítve a programozó, és a mikrokontroller munkáját, hiszen ha változás áll be a nyomógombok állapotában, akkor úgymond a nyomógomb „szól” a PIC-nek hogy változás történt, és nem kell folytonos programciklussal figyelni azokat. XBee kommunikációs modul, mely segítségével képesek lehetünk egy másik PIC-el, vezérelni a robotot, és esetleg még PC-vel is lehetségessé válik a kommunikáció. 2 darab trimer potenciométer melynek segítségével lehetővé válik az egyes eszközök finombeállítása. 3 db feszültségosztó melyek a két akkumulátor és a tartalék akku feszültégéről tájékoztatnak minket. 1 darab az 5V-os tápellátást jelző LED 1 darab státusz LED, mellyel ellenőrizhetjük a PIC-ben futó program működését. 4 darab BC557-es tranzisztorral megvalósított teljesítmény kimenet a féklámpa, fényszóró, és az index LED-ek meghajtásához. 3.3V-os tápellátást biztosító L1117 típusú IC mely segítségével könnyedén illeszthetjük a 3.3V-os modulokat a PIC-hez. 1 darab reset nyomógomb, a PIC MCLR-lábára kötve, arra az esetre ha a WachDog („Figyelő kutya”) nem működne rendeltetésszerűen a PIC-ünkben (a program újraindítása manuálisan). 1 darab a PIC programozását, megkönnyítő ICSP csatlakozási lehetőség
___________________________________
Domokos Imre
5
1 darab a hibakeresést megkönnyítő ICD csatlakozási felület. A pontos időzítést lehetővé tevő 20MHz-es kvarc kristályt. 1 darab nagy áramerősséget kibíró csatlakozási pont a DC motor H-híd elvű áramkörének illesztéséhez. 8 darab szabadon felhasználható csatlakozó. pl.: szervo motor, ultrahangos modul, futófény modul, stb. 1 darab feszültség stabilizálást biztosító uA7805-típusú IC.
A fő vezérlő nyomtatott áramköri rajza. Igyekeztem a Nyomtatott Áramköri tervemet (később NyÁK terv) a lehető legegyszerűbben kivitelezhető és megtervezhető módon elkészíteni, ezért használok egy oldalas NyÁK lapot, és sok helyen Surface Mounted Devices az az SMD-s, felületszerelt alkatrészeket a minél kevesebb furatpont használata miatt. Néhol ugyan eléggé „szellős” a terv, és akad ahol eléggé össze lett sűrítve a vezetősávok, alkatrészek. Ezt a tervet a már említett Proteus 8 nevezetű programmal terveztem.
Frimware, belső vezérlőprogram: Fejlesztő rendszer programok: MicroCode Studio V3.0.0.5. PicBasic Pro Compliper V2.50a PicKit2 Programmer 2.61 MicroCode Studio: Nagyon egyszerű kezelőbarát program, kis számítógépes alapok és pár perc alatt könnyedén megérthető a használata. Mind emellett sok kezelőbarát eszköz található benne. Integrálhatjuk bele PicKit2 klónunkat is, akár, de tartalmaz „bootloader”-t is mely segítségével bonyolultabb programozó készülék nélkül is könnyedén fejleszthetjük programunkat. Emellett tartalmaz egy teljesen egyedül álló eszközt is mely segítségében valós időben megfigyelhetjük programunk futását.
___________________________________
Domokos Imre
6
PicBasic Pro Compliper: Megbízható, könnyen kezelhető úgynevezett keresztfordító program. A fordítás folyamata oly módon zajlik, hogy először a program leellenőrzi, hogy a Basic nyelvű programunk hibamentes-e, majd ha hibát talál, akkor jelzi azt nekünk, és kéri a javítását, ellenkező esetben átfordítja ezt a programot assembly nyelvre, majd ezt fordítja le gépi kódra, melyet majd a programozó készülék „elküld” a PIC-nek. Igaz ez a módszer nem épp memória takarékos, de itt nem kell több száz oldalas programokat írnunk, szemben az assembly nyelvel. PicKit2 Programmer: Egyszerű letisztult kezelőbarát program. E program kommunikál a @Watt féle PicKit 2 programozó készülékkel, és ez a program vezérli a hexa kód beprogramozását. A fejlesztéshez használt eszközök:
PicKit 2 Klón (Watt féle) USB Kábel Számítógép (Asus A9RP típusú Laptop) Intelligens Robot autó
A fő vezérlő 3D rajza. Fenti tervben is a Proteus 8 nevezetű program volt a segítségemre. Sajnos a tapasztalat hiány miatt helyenként pontatlanul lett generálva a látványterv, de technikai okok, és az időhiány miatt sajnos nem sikerül a kellő színvonalú tervet készítenem.
Alkatrészjegyzék Kondenzátor: SMD: o 100nF o 39pF
4 db 2 db
o 1N4148
3 db
Dióda: DIP:
___________________________________
Domokos Imre
7
o 1N4007 o Piros LED o Zöld LED
3 db 1 db 1 db
o 1N4148
4 db
SMD: Csatlakozó: DIP:
o NSL 25-2 G o NSL 25-3 G o NSL 25-4 G o NSL 25-8 G o NSL 39-4 G o tüskesor „apa” o tüskesor „anya” 2X16 karakteres LCD kijelző modul Fix értékű ellenállás: DIP: o 0 ohm o 10k o 20k o 910 k o 51 ohm o 510 ohm o 330 ohm SMD: o 0 ohm o 10k o 82 ohm o 91 ohm o 4,7k Változtatató értékű ellenállás: Heli: o 20 K Trimmer: o 10 K o 20K Tranzisztor: BC557 Kapcsoló Nyomógomb Stabilizátor IC: o uA7805 o L1117 Mikrokontroller: PIC 16F877 Quartz: 20 MHz
___________________________________
Domokos Imre
3 db 2 db 2 db 1 db 1 db min. 38 db tüske min. 56 db tüske 1 db
3 db 2 db 3 db 3 db 1 db 1 db 2db 8 db 3 db 1 db 2 db 5 db
3 db 1 db 2 db 4db 1 db 5 db 1db 1db 1db 1db
8
5.2 Mikrokontrolleres futófény:
Mikrokontrolleres futófény kapcsolási rajza.
Alkatrészjegyzék. D1 = 1N4001 dióda. C1 = 100µF/16V elektrolit kondenzátor. C4 = 10µF/6V (12V) elektrolit kondenzátor. C2, 3, 5 = 100nF (2,54mm) kerámia kondenzátor. IC1 = 7805 5V-os feszültség stabilizátor.
IC2 = PIC16F628A mikrovezérlő . + 16 lábú IC foglalat R1-8 = 270Ω , (1KΩ, 3,3KΩ) R9, 10 = 10KΩ LD1-8 = Egyszínű 5mm-es LED-ek S1 = kis mikro nyomógomb („egérben” van ilyen).
Mikrokontrolleres futófény beültetési rajza.
___________________________________
Domokos Imre
9
Rövid működési leírás: Az áramkör nagyon egyszerű felépítésű. A bejövő egyenfeszültséget egy a fordított polaritás védelmet adó 1N4001-es diódán (D1) keresztül egy 100uF-os kondenzátor (C1) megszűri és ezt a uA7805-ös stabilizátor IC (IC1) stabilizálja. Innen kapja a PIC a stabil 5V-ot. A stabilizátor IC bemenetén, és kimenetén található 1-1 100nF-os hidegítő kondenzátor (C2, C3) az elektronikus zavarok kiszűrése érdekében. A mikrokontroller 270 ohmos ellenállásokon keresztül kapcsolódik a LED-ekhez, ezáltal korlátozva a LED-eken folyó áramot, ami 10-15 mA lehet maximum. Nagyobb áram esetén károsodhat a mikrovezérlő. A panelen található még egy nyomógomb, melynek helyén a robot autón egy tüskesor kapott helyet. A nyomógombos variációban található még az áramkörben egy 10 k ohmos lehúzó ellenállás is mely a PIC bemenetét stabilizálja, és kiküszöböli a zavarokat.
5.3 Hangtároló modul: Fő feladata (rövid leírása): A vezérlő fő modultól egy vezetéken (soros aszinkron kommunikációval) fogadja az üzenet sorszáma alapján egy számot. A kommunikációs program a legegyszerűbb, 2400 Baud 8bites, 1 stop, nincs paritás, invertáló üzemmódot használja. Adatvesztés ellen nincs sajnos semmilyen védelem. A hangtároló dekódolja a kapott információt, és a PIC vezérlő kiküldi a vezérlő jeleket az ISD hangtárolónak. A kiválasztott cella után a hangszóróban megszólal a kiválasztott üzenet, majd ismét visszaáll a program a soros port figyelésére PIC B port 0-s bitjén. A program kifejlesztése a MicroCode Studio rendszerrel történt, PBASIC programnyelven.
Az ISD2590 IC kétféle üzemmódja van: memóriacímzéses mód, vagy előre beállított üzemmódok szerint. Az IC memória decimálisan 0-tól 599 címtartománya van, bár az A0-tól A9-ig 1023 lenne. A 600-as címtől érhető el az üzemmódok kiválasztása. A 90sec osztva 600-al megkapjuk, hogy egy memória cella 0,15sec ideig tarthat. Ez a legkisebb hang egység ami kiválasztható. Az úgynevezett címzéses üzemmódban tudnunk kellene az üzenetek kezdőhelyét a memóriában, és azt is mennyi ideig tart egy szöveg. A vezérlés bonyolult lenne. Az IC gyártók kifejlesztettek hatféle vezérlési módot. Ha A8 és A9 magas logikai szinten van, akkor az A0/M0-A6/M6 bemenetek, mint üzemmód kiválasztó bemenetek működnek.
___________________________________
Domokos Imre
10
M6-as Nyomógombos üzem lett kiválasztva: A9, A8, A6 lábakat 'H' szintre kell kötni +5V-ra. Üzenetek sorszám szerinti elérése folyamata: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
PR =H lejátszáskor=H (felvételkor=L) PD =L ISD bekapcsolása CE =H CE nem aktív M0 =H CE = Annyi lefutó impulzust kell kiadni, ahányadik helyen van az elérendő üzenet. M0 =L CE = Egy lefutó impulzus üzenet indítása. EOM=0 jel figyelése várakozás (üzenet vége) addig lejátszás történik. PD =H ISD kikapcsolása és címtároló nullázása CE =H CE nem aktív
A konkrét program működésének leírását mellőztem, mert az több oldalnyi lenne az utasítások magyarázatával együtt.
Műszaki leírás a hangtároló IC-ről, az adatlap alapján: A kiválasztott ISD2590 már nem a legmodernebb (már több évvel ezelőtt leálltak a gyártásával), de ilyen állt rendelkezésre mivel ez 5V-ról működik. Létezik modernebb SD1700 típusú SPI buszos, vagy az ISD5116 I2C buszos, de ezek már nem 5V-osak. Az ISD2560/75/90/120 (Information Storage Devices) IC-ket nevezik „analóg EEPROM”-nak is, mivel analóg jelet tudnak tárolni, visszajátszani. A memória 480 Kbit-es - tárral rendelkeznek, a maximális felvételi időtartam összefüggésben van a mintavételezési . A legjobb hangminőséget - 8 KHz-es mintavételezés mellett – az IS2560 adja, a leghosszabb, 120 másodperces lejátszási időt az ISD25120 biztosítja, persze ennek a leggyengébb a hanghűsége, hiszen itt csak 4 KHz-es a mintavételi frekvencia. Általában beszéd - tárolására találták ki. Ez az analóg jel általában hangjel, az IC-k felhasználása a beszélő technikai eszközök kényelmesebb használatát teszi lehetővé. A felhasználónak nem kell LED-eket, bonyolult menürendszert figyelni a készülék kezelése során. Egy adott készülék kezelése során a megfelelő hangutasításokra kell figyelni a kezelőnek. A hangtárolóba programozás előtt az úgynevezett hangmintákat (szavakat, hangokat, mondatokat, effekteket) digitalizálni kell. Az interneten sok ilyen hangminta található pl. állathang, géphang, zaj, stb. gyűjtemények. Saját hangunkkal is megszólalhat a hangtároló. A számítógép hangkártyájához csatlakoztatható mikrofonnal felvesszük a megfelelő hangmintákat. A Goldwave programmal összeszerkesztjük az állományokat, maximum 90sec lehet az ISD2590 típusú integrált áramkörben tárolni. Felvételkor az üzenetek végére berak egy EOM jelet az ISD-be. (EOM : end of message) Röviden az EOM jelről: A tárolást végző analóg EEPROM címezhető, egy-egy hangjel kezdete/vége kijelölhető egy EndOf-Mesage - üzenet vége jellel, ez is tárolódik a memóriában. Az ISD2590-en egy külön kivezetése is van az EOM jelnek. Egy üzenet lejátszásnál az EOM kimeneten egy alacsony impulzus jelzi az EOM jelet. Programozás technikailag azért fontos az EOM jel, mert "gyorstekerés" üzemmódban ezeket meg lehet keresni, így ha mondjuk az ötödik hangmintát, akarjuk lejátszani, akkor megkeresve a negyedik EOM jelet, kezdhetjük a kívánt a kívánt hangok lejátszását.
___________________________________
Domokos Imre
11
Tartalmaz egy belső órajelgenerátort az analóg jel mintavételezéséhez, mikrofon előerősítőt, egy AGC erősítőfokozatot, (Automatic Gain Control: automatikus erősítés szabályzó) egy hangszórót meghajtó végfokot, és persze egy analóg tárat. Az ISD2560/75/90/120 típusok ugyanakkora - A gyártó cég szerint legalább 100 évig őrzi az IC a tárolt információkat, és minimum 100000-szer írhatjuk újra az adatokat. Az ISD2500-as sorozat minden szükséges interfészt tartalmaz, ami egy mikrokontrolleres vezérléshez szükséges. A cím és vezérlő vonalak segítségével számos feladat végrehajtható, benne az egyszerű üzenet felvétel/lejátszás, a címzett üzenet hagyás/visszajátszás, mondatszerkesztés, vagy egy adott eseményhez kapcsolódó figyelmeztető hangjelzés kiváltása.
Az ISD2590 IC kivezetések funkciója: Hat választható üzemmód van, helyesebben öt, mert az M2-es későbbi felhasználásra tartja fenn a gyártó cég. Ebből az is következik, hogy a direkt címzés, és az üzemmód választás egyszerre nem lehetséges. A mikrokontrollernek egy kis segítségre van szüksége ahhoz, hogy az ISD IC valamennyi cím/vezérlővonalát kézben tudja tartani, ezért egy CD4094-es IC-vel növeli meg a vezérlővonalai számát. A CD4094 egy léptető regiszter, párhuzamosan elérhető kimenetekkel. A D bemeneten keresztül a CLK órajellel beléptetett adatok a STR (Strobe) bemenetre adott pozitív impulzus hatására megjelennek a kimeneten, amik - esetünkben - az ISD-t címzik.
ISD2590 belső blokkrajza A hangfelvételt mikrofonnal is elkészíthetünk. Ehhez kondenzátor mikrofont ajánlanak. A mikrofonos hangfelvételnél - de csak akkor - az ANAOUT kimenetet és AIN bemenetet egy soros R/C taggal össze kell kötni.
___________________________________
Domokos Imre
12
Üzenet szövegek ( felhasználva 45sec): 1. A vezérlés bekapcsolva 2. Előre megyek 3. Hátrafelé megyek 4. Fékezem 5. Jobboldalra kanyarodom 6. Baloldalra kanyarodom 7. Akadály van előttem 8. Fényszóró bekapcsolva 9. Fényszóró kikapcsolva 10. Megálltam 11. Indulok 12. Hiba 13. Riasztó bekapcsolva 14. Riasztó kikapcsolva 15. zenei effekt 1 16. zenei effekt 2
Hangtároló vezérlő kapcsolási rajza.
17. zenei effekt 3 18. zenei effekt 4
Hangtároló és a hangerősítő kapcsolási rajza.
___________________________________
Domokos Imre
13
Hangtároló 3D NYÁK terve.
Hangtároló panelterve.
Anyaglista
___________________________________
Domokos Imre
14
6. Felhasznált irodalom [1]
ISD Data Book Voice recorder and Playback ICs 1996.
[2]
Váci Micro klub: Torkos Csaba írása (ISD2560): www.mikroklub.hu
[3]
MicroCode Studio Help
[4]
PicBasic példaprogramok:
www.melabs.com
[5]
Futófény kapcsolási rajz:
www.picproject.org.uk
[6]
Hobbielektronika:
www.hobbielektronika.hu
[7]
ISD2590 adatlap
______________________________ Szabó Zorán
___________________________________
Domokos Imre
15