Fórum témák

» Több friss téma
Cikkek » WILL-I - Robot, AVR mikrovezérlővel
WILL-I - Robot, AVR mikrovezérlővel
Szerző: Fizikus, idő: Dec 1, 2009, Olvasva: 61068, Oldal olvasási idő: kb. 5 perc
Lapozás: OK   4 / 12

Vezérlő elektronika megépítése (elektronika)

 Ahhoz, hogy programozni tudjuk a mikrovezérlőt, és robotot vezéreljünk vele, szükségünk lesz egy AVR mikrokontrollerre, amely rendelkezik a működéséhez nélkülözhetetlen alap kapcsolatokkal (bekötésekkel) mint például tápfeszültség, oszcillátor, megfelelő Reset jel, és egy ISP csatlakozó a mikrovezérlő programjának beégetéséhez. A vezérlőpanel egy ilyen alapáramkör, ami tartalmazza a mikrokontroller futásához/programozásához szükséges elemeket és a mikrokontroller I/O lábaihoz tartozó csatlakozókat is, amelyek könnyen hozzáköthetők bármilyen külső kapcsoláshoz. Úgy is vehetjük mint egy alap építőelemet. Ha már egyszer építettünk egy vezérlőpanelt és alaposan leteszteltük, hogy jól működik-e, akkor ez egy biztos alap, amire bátran lehet építkezni. Csatlakoztathatunk hozzá további specifikus paneleket (pl. motorvezerlő panel, érzékelőpanelek, stb.). Ezáltal nagymértékben csökkentjük az esetleges hibaforrások számát, és könnyebb lesz a hibakeresés is.

Az alábbiakban láthatjuk az ATmega8 lábkiosztását. A legtöbb lábnak többféle funkciója is van, de csak néhányat fogok használni a robot építése során. Kezdésnek ezen funkciók megismerése is épp elég lesz (akit érdekel a többi, az megtalálhatja az Atmega8 adatlapját tanulmányozva).

 

A könnyebb érthetőség, és az egyes portokhoz tartozó lábak egyszerűbb azonosításának kedvéért a lábakat különböző színekkel ábrázoltam. A zöld szín jelöli a földet, a piros a stabilizált 5V-ot, sárga a PORTC, kék a PORTB, barna a PORTD lábait és lila jelöli a Reset-et.

Az AVR működtetéséhez és programozásához az alábbi lábak bekötése szükséges:

  • A mikrokontroller táplálásához stabilizált 5V-os feszültség a 7, 20, 21-es lábakra (VCC, AVCC, AREF). A föld (GND, 0V) bekötése a 8-as és 22-es lábakra.
  • A pontos időzítéshez külső oszcillátor bekötése, megfelelő nagyságú kondenzátorok használatával együtt, a 9-es és 10-es lábakra (a beépített belső oszcillátor használata esetén ez elhagyható)
  • Megfelelő jel a RESET lábon
  • A programozáshoz a VCC, GND, RESET, SCK, MOSI és MISO lábak rákötése az ISP csatlakozóra (1, 17, 18, 19, 20 és 22-es lábak)

Az alábbi ábrának megfelelően állítsuk össze az alapkapcsolásunkat.

 

Figyeljük meg hogy van egy kis félkör alakú kivágás az AVR-ünk egyik oldalán. Ez mutatja nekünk, hogy melyik vége melyik, honnan kezdődik a lábak számozása.

A PB6 és PB7 lábak közé kellene kötni a külső kristályt (az ábrán szürkével rajzolt rész), de egyelőre ezt a részt szabadon hagytam a vezérlőpanelen, mert az AVR belső, 1 MHz-es oszcillátorát használjuk és külső kristályra nincs most szükség, de később kellhet egy külső stabil kristályoszcillátor, ha esetleg PC-vel akarunk kommunikálni a soros porton keresztül.

Az alapkapcsolást először dugaszolós próbapanelen drótoztam össze, ezt használtam a kezdeti kísérletezés során, később összeraktam egy próbanyákon is, hogy ráférjen az alvázra.

 

Az ábrán lévő vékony vonalak a próbapanelen belül lévő elektromos kapcsolatokat ábrázolják.

 

Ilyen kis próbapanelen is összerakhatjuk a vezérlőpanelt, ami már ráfér a robotalvázra.

 

 

A próbanyákon összerakott kapcsolás elöl és hátulnézeti rajza és képe

A kapcsolásokhoz egy kis magyarázat:

A próbapanelen szerepel bekötve egy LED és egy nyomógomb is, amelyek nem szerepelnek a fenti kapcsoláson, ezek az összeállított próbapanel és a mikrovezerlő teszteléséhez kellettek (LED a mikrokontroller PD0-ás lábára, a nyomógomb pedig a PD4-es lábára lett kötve).

Kialakítottam egy USART csatlakozót is a soros kommunikációhoz (A7-10), ezt nem használjuk most, de később még hasznos lehet.

Stabilizált 5V

Az AVR-nek stabil 5V-os tápfeszültségre van szüksége. Készíthetünk egy kis tápegység áramkört egy LM7805-ös feszültségstabilizátor IC-vel és két puffer kondenzátorral. A kondenzátorok feszültségtűrése legalább a bemenő feszültség kétszerese legyen.

Oszcillátor/Kristály

Ez a mikrokontroller szíve, ez adja a mikrovezerlő lépeseihez a pontos ütemet, és ez határozza meg a processzor sebességét. Az AVR-ek esetében a legtöbbször igaz az 1 órajelciklus = 1 utasítás. Az ATMega8-at gyári beállításokkal fogom használni, a chipet úgy programozták, hogy a belső oszcillátora 1MHz-es órajelet adjon, ezért külső oszcillátor nincs a kapcsoláson.

A RESET láb egy active-low reset, ami azt jelenti hogy akkor reseteli a mikrokontrollert ha a lábon lévő feszültség a digitális 0-val (0V, föld) egyezik meg. Ezért egy 1k Ohm-os ellenálláson keresztül +5V-ra kötjük (felhúzzuk).

A nagyfrekvenciás zajok kiszűrése céljából érdemes a VCC lábhoz a lehető legközelebb a GND és VCC közé kötni egy 0,1 µF-os kondenzátort.

Az elektrolitikus kondenzátorok bültetése folyamán figyeljünk oda, hogy melyik lábat kell a negatív (föld), és melyik lábat a pozitív (5V) pólusra kötni (nem mindegy!). Ezek a kondenzátorok arra kellenek, hogy kisimítsák a feszültségingadozásokat, stabilizáljak a tápfeszültséget.

Egy LED-et is érdemes rárakni a panelünkre, hogy lássuk, mikor van bekapcsolva. Mindig kössünk sorba a LED-el egy ellenállást is! (Ez 220 Ohm és 1k Ohm közötti érték szokott lenni). Az ellenállás azért kell, hogy a LED-en keresztülfolyó áramot korlátozza, ellenállás nélkül könnyen kiégethetjük a LED-ünket. Arra is ügyeljünk, hogy a LED melyik lábát kell a negatív (föld), és melyik lábát a pozitív (5V) pólusra kötni (itt sem mindegy!).

Az ábrákon és a képeken nem nagyon látszik, de az AREF és az AVCC lábak össze vannak kötve (a próbapanelen egy jumperrel a I28-I29, a próbanyákon pedig forrasztással a J15-J16 pontok között)

ISP csatlakozó

Az ATMega8 programozásához szükségünk lesz egy programozóra (égetőre). Az égetővel tudjuk beírni az AVR flash memóriájába a programunkat. Egy USB-s programozó kb. 4000 Ft körül kapható, de nyomtatóportra (LPT) csatlakoztatható STK200 programozó talalható a neten már 800Ft-ért is. A programozás hardveres részéről, a programozó bekötéséről lásd az alábbi cikket: (AVR-Doper, USB-s ISP programozó)

Én egy AVRISP MKII programozót használok. A programozónak 6 kivezetése van, amelyek a következők:
 

  • MISO(1)
  • VCC/5V(2)
  • SCK(3)
  • MOSI(4)
  • RESET(5)
  • GND(6)
     

A programozáshoz össze kell kötnünk az ATMega8 megfelő lábait az égetőnk csatlakozójának megfelelő kivezetésével. Észrevehetjük, hogy az AVRISP MKII égetőnek egy 6 érintkezős csatlakozója van, ami a próbapanellel nem kompatibilis, mert nem lehet egyszerűen csak rádugni. A próbapanelen ugyanis az AVR programozó lábai egymás mellett, egy sorban vannak. Ezért az alábbi ábrán látható csatlakozót készítettem el (egy szalagkábel 2 végére forrasztottam a megfelelő érintkezőket), amit már rádughatunk az AVRISP MKII csatlakozójára és a próbapanelre (H27-H35). Hasonló csatlakozót építettem amit a vezérlőpanel érintkezőtüskéire lehet ráhúzni (L14-L22).

 

Az AVRISP MK II égető csatlakozója és a saját készítésű kábel

Vegyük észre, hogy a csatlakozón ugyan 9 tüske van, de csak 6 vezeték kapcsolódik az égetőhöz. A kábel tehát nem zavarja a PB1 és a PB2 lábakat.

 

A közbeiktatott égetővezeték csatlakoztatása a próbapanelen lévő ATMega8-hoz.

Kapcsoló és LED csatlakoztatása a mikrokontrollerhez

Amikor lenyomunk egy nyomógombot, azt akarjuk hogy a láb állapota digitális magas szintről (+5V) az alacsonyra (0V) váltson. A gombunk ekkor aktív-alacsony , azaz a digitális nullszint jelzi a gomb lenyomását. Azért, hogy egy gomb a digitális magas szintet adja amikor nyitva van, és a digitális alacsony szintet amikor csukva, a kapcsolót rendszerint egy felhúzóellenálláson keresztül csatlakoztatjuk a mikrokontrollerhez. A kapcsoló nyitott állásában a bemenet potenciálját az 1k Ohm-os ellenállás +5V-ra húzza fel (ezert is nevezik felhúzóellenállásnak). Ellenben, ha a kapcsoló zárt állásban van, az áram a legkisebb ellenállás irányába folyik, és a bemenet földelve van.

 

Az AVR mikrokontrollerek már tartalmaznak beépített belső felhúzóellenállásokat , ezért a bemenetnek definiált I/O lábakra nem szükséges felhúzóellenállásokat kötni.

Az ábrának megfelelően csatlakoztatott LED akkor világít, ha a láb alacsony szinten van. Kössünk sorba a LED-el egy áramotkorlátozó ellenállást is! Arra is ügyeljünk, hogy a LED negatív lábat kell a mikrovezerlő kimeneti lábára kötni, a pozitív lábat pedig egy ellenállással kössük +5V-ra.


A cikk még nem ért véget, lapozz!
Következő: »»   4 / 12
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem