Vous êtes sur la page 1sur 42

Ksztette: Ruzsinszki Gbor webmaster442

Szeged SZISZSZI Dri Miksa tagintzmnyben tantok mikrovezrlk alkalmazshoz kapcsold informatikai s elektronikai trgyakat. 2008 ta foglalkozom mikrovezrls fejlesztssel. A tmrl eddig kt knyvem jelent meg ebook formtumban. (A harmadik kszlben van)

Mi is az az Arduino? Pr sz a mikrovezrlkrl Klasszikus, zrt rendszer fejleszts sszehasonltsa az Arduino-val Npszerbb modellek bemutatsa Programozs alapismeretei Tanuls, honnan lehet megtanulni a hasznlatt?

Egy nylt forrs hardver s szoftver koszisztma. Atmel* mikrovezrlkre pl a platform A szoftver elrhet: Linux, Windows, OS-X platformokra egyarnt A platform a nevt Ivrea vros trtnelmi alakjrl kapta. (Arduin of Ivrea)

A tervez, Massimo Banzi mikrovezrls rendszerfejlesztst oktatott, de 2005 krnykn nem igen volt olyan olcs mikrovezrls platform, amit egy tanul is megengedhetett magnak. Ezrt ksztett egyet, de nem csak a hardvert, hanem egy szoftver krnyezetet is hozz. A szoftver a Processing krnyezeten alapul, a hardver alaptlet meg a Wiring platformon.

Ha hardver tervezs nem egyszer feladat, mivel a val vilg nem olyan megbocsjt, mint egy szoftveres krnyezet. Ezrt j dolog az, hogy meg lehet nzni msok terveit egy adott problma megoldsra. Egy-egy nylt forrskd hardverbl olyan dolgok alkothatak, amire a ksztk nem is gondoltak.

A mikrovezrl egy olyan integrlt ramkr, ami egy komplett szmtgpet valst meg Harvard-architektra segtsgvel. Kln adat s kdmemrija van az eszkznek, amelyek fizikailag elklntettek Program csak a kd memribl hajthat vgre, adat memribl utastst nem tud olvasni a processzor*

A processzorok ltalban RISC utasts kszletesek, vagyis nem tudnak sok mindent, de azt a kevs mindent viszonylag gyorsan tudjk Minden utasts fix szm rajel ciklust vesz ignybe. Az integrlt ramkr nem csak a memrikat s processzort tartalmazza, hanem I/O egysgeket is.

ltalban a chip sszes funkcijnak kln kihasznlshoz jval tbb fizikai kivezets kellene, mint amennyi adott. Ebbl addan a kivezetsek mkdse szoftveresen konfigurlhat regiszterek segtsgvel.

Szablyzsi feladatok megvalstsra kifejezetten alkalmasak, mivel kptelenek arra, hogy tartsan lefagyott llapotban maradjanak. Ez egy specilis komponenssel, a Watch Dog Timer segtsgvel van megoldva. Ha rzkeli azt, hogy a processzor lefagyott, akkor jraindtja.

Egy mikrovezrl Programoz eszkz, feltlt Fordt / fejleszt program Elektronikai alapismeretek a nyomtatott ramkr megtervezshez s legyrtshoz. Arduino krnyezet esetn ez mind adott, ha vesznk egy Arduino lapot.

Kivlasztott mikrovezrl adatlapjnak elolvassa (50-120 oldal) Fejleszteszkz megismerse, dokumentcijnak elolvassa (50-120 oldal) Kapcsols megtervezse, sszelltsa Szoftver megrsa

Minden mikrovezrl tpus kln bels felptssel rendelkezik, gy a konfigurcis regiszterek mkdsnek elsajttsa hosszadalmas s frusztrl. Ezt minden egyes tpus esetn el kell sajttani, ami nem tl kellemes. A legtbb programoz szoftver csak Windows platformra rhet el (Microchip fleg).

Fejleszteszkz megismerse, dokumentcijnak elolvassa (50-120 oldal) A megszerzett tuds brmelyik Arduino modell esetn alkalmazhat, mivel a fejleszt krnyezet knyvtrai elfedik a hardver egyedisgt. gy a kd nagyon minimlis mdostssal hordozhat a tpusok kztt.

Az igazi forradalmisg ebben van, mert:


Nem kell foglalkozni a hardver bels lelki vilgval A kd ugyan gy fog mkdni mindegyik mikrovezrl esetn Elg egy smt megtanulni, nem felttlen kell tbbet. Rvid id alatt is lehet ltvnyos dolgokat alkotni, amely oktats szempontjbl kifejezetten fontos.

Jelenleg szmos modell rhet el, mindegyikrl nem lesz sz, csak a npszerbbek a teljessg ignye nlkl:
Uno Mega Leonardo Due Yn

ATmega 328 mikrovezrl 16MHz rajel 13 digitlis I/O 6db 10 bites ADC 32Kb kdmemria 2Kb adatmemria

ATmega 2560 mikrovezrl 16MHz rajel 54 digitlis I/O 16db 10 bites ADC 256Kb kdmemria 8Kb adatmemria

ATmega32u4 mikrovezrl 16MHz rajel 13 digitlis I/O 6db 10 bites ADC 32Kb kdmemria 2Kb adatmemria Valdi USB tmogats*

AT91SAM3X8E mikrovezrl 32 bites ARM 84MHz rajel 54 digitlis I/O 12db 12 bites ADC 2db 12 bites DAC 512Kb kdmemria 96KB adatmemria

Arduino Leonardo hardver kiegsztve egy Atheros AR9331 processzorral WLAN kpessgek Linux tmogats

Egyttmkds a Beaglebone s az Arduino kszti kztt Arduino Leonardo mikrovezrl hardver s 1GHz-en fut ARM Cortex-A8 processzor A tervek szerint jv prilisban jelenik meg.

A modellek lbkiosztsa* s a lbak tvolsga azonos minden modell esetn. Ez lehetv teszi azt, hogy egy kiegszt panel (Shield) kompatibilis legyen minden modellel. Szmos kiegszt panel lelhet fel, ezek kzl pr hivatalos terv s egy j nhny kls gyrt terve.

Az elads rvidsge miatt megint csak a legfontosabb panelekrl lesz sz:


Ethernet Shield GSM Shield Motor Shield Adafruit Wave Shield

TCP/IP kapcsolatok kezelshez. MicroSD krtya foglalatot is tartalmaz pthet belle egyszer HTTP szerver, illetve a ksz projekt internetre kapcsolhat Opcionlis PoE modul

GSM funkcikkal egszti ki a projektnket Akr teljes mobil telefon pthet a segtsgvel:

SMS hanghvsok mobilinternet

Egyenram s lptet motorok vezrlshez kialaktott modul Robot pts esetn kifejezetten hasznos

WAV lejtszsi kpessg SD krtyrl 12 bites sztere WAV lejtszsra kpes a panel. Teljes mret SD krtya foglalattal rendelkezik.

C++ nyelvre pl Objektum orientlt, amit a szoftver knyvtrak ki is hasznlnak. Az osztly knyvtrak tervezsekor a hangsly a knny hasznlhatsgon volt, hogy a felhasznl ne vesszen el a C++ rejtelmeiben s tbb id maradjon tnyleges fejlesztsre. A programok itt vzlatnak (sketch) nevezettek

Legalbb kt fggvnybl ll Egy setup() fggvnybl, ami a mikrovezrl bekapcsolsakor, jraindtsakor lefut Valamint egy loop() fggvnybl, aminek a vgrehajtst a mikrovezrl ismtelgetni fogja

void setup() { pinMode(13, OUTPUT); }

void loop() { digitalWrite(13, HIGH); delay(250); digitalWrite(13, LOW); delay(250); }

#define #define #define #define

F_CPU 16000000; MICROSECONDS_PER_TIMER0_OVERFLOW ((64 * 256) / F_CPU / 1000000L) FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) FRACT_MAX (1000 >> 3)

volatile unsigned long timer0_overflow_count = 0; volatile unsigned long timer0_millis = 0; static unsigned char timer0_fract = 0; SIGNAL(TIMER0_OVF_vect) { unsigned long m = timer0_millis; unsigned char f = timer0_fract; m += MILLIS_INC; f += FRACT_INC; if (f >= FRACT_MAX)

{
f -= FRACT_MAX; m += 1; } timer0_fract = f; timer0_millis = m; timer0_overflow_count++; }

unsigned long micros() { unsigned long m; uint8_t oldSREG = SREG, t; cli(); m = timer0_overflow_count; t = TCNT0; if ((TIFR0 & _BV(TOV0)) && (t < 255)) m++; SREG = oldSREG; return ((m << 8) + t) * (64 / (F_CPU/1000000L)); } void delay(unsigned long ms) { uint16_t start = (uint16_t)micros(); while (ms > 0) { if (((uint16_t)micros() - start) >= 1000) { ms--; start += 1000; } } }

int main() { DDRB = 0; PORTB = 0; while(1) { PORTB = 0x10; delay(250); PORTB = 0x0; delay(250); } return 0; }

Elny: hogy sok minden gyrilag kszen van, sokkal egyszerbb a programozs Htrny: lassabb, nagyobb a kd, mint ha Assembly-ben fejlesztett lenne. Rengeteg ksz kd rhet el az interneten klnbz clokra. Minden fggvny s knyvtr funkcira van pldaprogram, amibl akr sszeollzhat a program, klnsebb programozsi ismeretek nlkl.

Nagyjbl mindenre van ksz kapcsols s mintaprogram. Amire pedig nincs, az nem is ltezik rdekesebb projektek, amik Arduino-val lettek megvalstva:

CNC vezrl Sakkoz robot Sajt fejleszts: Ipari digitlis mrleg vezrl elektronikja

A krnyezet annyira npszer lett, hogy a nagyobb gyrtk rulnak Arduino kompatibilis fejleszt lapokat:
Plda: Texas Instruments Launchpad Microchip ChipKit Adafruit Flora, Trinket

http://arduino.cc/ - hivatalos oldal learning szekcija http://learn.adafruit.com/category/learnarduino - Adafruit hivatalos tanul oldala, rengeteg projekt s kiegszt termk Szmos knyv is elrhet

Getting Started With Arduino Programing Arduino

A fentebb emltett knyvek, lersok leginkbb a programozsra fkuszlnak, elektronikai alapismeretekre nem. Ezrt merem ajnlani sajt knyveimet:

Mikrovezrls Rendszerfejleszts C/C++ nyelven II. Arduino Platform. Mikrovezrls Rendszerfejleszts C/C++ nyelven I. PIC Mikrovezrlk Beszerzsi hely: http://webmaster442.hu/letolthetoirasok/

Krdsek?