Professional Documents
Culture Documents
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.
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.
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:
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
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
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?