Arduino platform és viszonya más platformokhoz

February 17, 2017 | Author: Ruzsinszki Gábor | Category: N/A
Share Embed Donate


Short Description

Download Arduino platform és viszonya más platformokhoz...

Description

Készítette: Ruzsinszki Gábor webmaster442

Szeged SZISZSZI Déri Miksa tagintézményben tanítok mikrovezérlők alkalmazásához kapcsolódó informatikai és elektronikai tárgyakat.  2008 óta foglalkozom mikrovezérlős fejlesztéssel.  A témáról eddig két könyvem jelent meg ebook formátumban. (A harmadik készülőben van) 

Mi is az az Arduino?  Pár szó a mikrovezérlőkről  Klasszikus, zárt rendszerű fejlesztés összehasonlítása az Arduino-val  Népszerűbb modellek bemutatása  Programozás alapismeretei  Tanulás, honnan lehet megtanulni a használatát? 

Egy nyílt forrású hardver és szoftver ökoszisztéma.  Atmel* mikrovezérlőkre épül a platform  A szoftver elérhető: Linux, Windows, OS-X platformokra egyaránt  A platform a nevét Ivrea város történelmi alakjáról kapta. (Arduin of Ivrea) 

A tervező, Massimo Banzi mikrovezérlős rendszerfejlesztést oktatott, de 2005 környékén nem igen volt olyan olcsó mikrovezérlős platform, amit egy tanuló is megengedhetett magának.  Ezért készített egyet, de nem csak a hardvert, hanem egy szoftver környezetet is hozzá.  A szoftver a Processing környezeten alapul, a hardver alapötlet meg a Wiring platformon. 

Ha hardver tervezés nem egyszerű feladat, mivel a való világ nem olyan megbocsájtó, mint egy szoftveres környezet.  Ezért jó dolog az, hogy meg lehet nézni mások terveit egy adott probléma megoldására.  Egy-egy nyílt forráskódú hardverből olyan dolgok alkothatóak, amire a készítők nem is gondoltak. 

A mikrovezérlő egy olyan integrált áramkör, ami egy komplett számítógépet valósít meg Harvard-architektúra segítségével.  Külön adat és kódmemóriája van az eszköznek, amelyek fizikailag elkülönítettek  Program csak a kód memóriából hajtható végre, adat memóriából utasítást nem tud olvasni a processzor* 

A processzorok általában RISC utasítás készletesek, vagyis nem tudnak sok mindent, de azt a kevés mindent viszonylag gyorsan tudják  Minden utasítás fix számú órajel ciklust vesz igénybe.  Az integrált áramkör nem csak a memóriákat és processzort tartalmazza, hanem I/O egységeket is. 

Általában a chip összes funkciójának külön kihasználásához jóval több fizikai kivezetés kellene, mint amennyi adott.  Ebből adódóan a kivezetések működése szoftveresen konfigurálható regiszterek segítségével. 

Szabályzási feladatok megvalósítására kifejezetten alkalmasak, mivel képtelenek arra, hogy tartósan lefagyott állapotban maradjanak.  Ez egy speciális komponenssel, a Watch Dog Timer segítségével van megoldva.  Ha érzékeli azt, hogy a processzor lefagyott, akkor újraindítja. 

Egy mikrovezérlő  Programozó eszköz, feltöltő  Fordító / fejlesztő program  Elektronikai alapismeretek a nyomtatott áramkör megtervezéséhez és legyártásához.  Arduino környezet esetén ez mind adott, ha veszünk egy Arduino lapot. 

Kiválasztott mikrovezérlő adatlapjának elolvasása (50-120 oldal)  Fejlesztőeszköz megismerése, dokumentációjának elolvasása (50-120 oldal)  Kapcsolás megtervezése, összeállítása  Szoftver megírása 

Minden mikrovezérlő típus külön belső felépítéssel rendelkezik, így a konfigurációs regiszterek működésének elsajátítása hosszadalmas és frusztráló.  Ezt minden egyes típus esetén el kell sajátítani, ami nem túl kellemes.  A legtöbb programozó szoftver csak Windows platformra érhető el (Microchip főleg). 

Fejlesztőeszköz megismerése, dokumentációjának elolvasása (50-120 oldal)  A megszerzett tudás bármelyik Arduino modell esetén alkalmazható, mivel a fejlesztő környezet könyvtárai elfedik a hardver egyediségét.  Így a kód nagyon minimális módosítással hordozható a típusok között. 



Az igazi forradalmiság ebben van, mert: ◦ Nem kell foglalkozni a hardver belső lelki világával ◦ A kód ugyan úgy fog működni mindegyik mikrovezérlő esetén ◦ Elég egy sémát megtanulni, nem feltétlen kell többet. ◦ Rövid idő alatt is lehet látványos dolgokat alkotni, amely oktatás szempontjából kifejezetten fontos.



Jelenleg számos modell érhető el, mindegyikről nem lesz szó, csak a népszerűbbek a teljesség igénye nélkül: ◦ Uno ◦ Mega ◦ Leonardo ◦ Due ◦ Yún

ATmega 328 mikrovezérlő  16MHz órajel  13 digitális I/O  6db 10 bites ADC  32Kb kódmemória  2Kb adatmemória 

ATmega 2560 mikrovezérlő  16MHz órajel  54 digitális I/O  16db 10 bites ADC  256Kb kódmemória  8Kb adatmemória 

ATmega32u4 mikrovezérlő  16MHz órajel  13 digitális I/O  6db 10 bites ADC  32Kb kódmemória  2Kb adatmemória  Valódi USB támogatás* 

AT91SAM3X8E mikrovezérlő  32 bites ARM  84MHz órajel  54 digitális I/O  12db 12 bites ADC  2db 12 bites DAC  512Kb kódmemória  96KB adatmemória 

Arduino Leonardo hardver kiegészítve egy Atheros AR9331 processzorral  WLAN képességek  Linux támogatás 







Együttműködés a Beaglebone és az Arduino készítői között Arduino Leonardo mikrovezérlő hardver és 1GHz-en futó ARM Cortex-A8 processzor A tervek szerint jövő áprilisban jelenik meg.

A modellek lábkiosztása* és a lábak távolsága azonos minden modell esetén.  Ez lehetővé teszi azt, hogy egy kiegészítő panel (Shield) kompatibilis legyen minden modellel.  Számos kiegészítő panel lelhető fel, ezek közül pár hivatalos terv és egy jó néhány külső gyártó terve. 



Az előadás rövidsége miatt megint csak a legfontosabb panelekről lesz szó: ◦ Ethernet Shield ◦ GSM Shield ◦ Motor Shield ◦ Adafruit Wave Shield

  



TCP/IP kapcsolatok kezeléséhez. MicroSD kártya foglalatot is tartalmaz Építhető belőle egyszerű HTTP szerver, illetve a kész projekt internetre kapcsolható Opcionális PoE modul

GSM funkciókkal egészíti ki a projektünket  Akár teljes mobil telefon építhető a segítségével: 

◦ SMS ◦ hanghívások ◦ mobilinternet

Egyenáramú és léptető motorok vezérléséhez kialakított modul  Robot építés esetén kifejezetten hasznos 

WAV lejátszási képesség SD kártyáról  12 bites sztereó WAV lejátszására képes a panel.  Teljes méretű SD kártya foglalattal rendelkezik. 

C++ nyelvre épül  Objektum orientált, amit a szoftver könyvtárak ki is használnak.  Az osztály könyvtárak tervezésekor a hangsúly a könnyű használhatóságon volt, hogy a felhasználó ne vesszen el a C++ rejtelmeiben és több idő maradjon tényleges fejlesztésre.  A programok itt vázlatnak (sketch) nevezettek 

Legalább két függvényből áll  Egy setup() függvényből, ami a mikrovezérlő bekapcsolásakor, újraindításakor lefut  Valamint egy loop() függvényből, aminek a végrehajtását a mikrovezérlő ismételgetni 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 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; }

   

Előny: hogy sok minden gyárilag készen van, sokkal egyszerűbb a programozás Hátrány: lassabb, nagyobb a kód, mint ha Assembly-ben fejlesztett lenne. Rengeteg kész kód érhető el az interneten különböző célokra. Minden függvény és könyvtár funkcióra van példaprogram, amiből akár összeollózható a program, különösebb programozási ismeretek nélkül.

Nagyjából mindenre van kész kapcsolás és mintaprogram.  Amire pedig nincs, az nem is létezik   Érdekesebb projektek, amik Arduino-val lettek megvalósítva: 

◦ CNC vezérlő ◦ Sakkozó robot ◦ Saját fejlesztés: Ipari digitális mérleg vezérlő elektronikája



A környezet annyira népszerű lett, hogy a nagyobb gyártók árulnak Arduino kompatibilis fejlesztő lapokat: ◦ Példa:  Texas Instruments Launchpad  Microchip ChipKit  Adafruit Flora, Trinket

http://arduino.cc/ - hivatalos oldal learning szekciója  http://learn.adafruit.com/category/learnarduino - Adafruit hivatalos tanuló oldala, rengeteg projekt és kiegészítő termék  Számos könyv is elérhető 

◦ Getting Started With Arduino ◦ Programing Arduino

A fentebb említett könyvek, leírások leginkább a programozásra fókuszálnak, elektronikai alapismeretekre nem.  Ezért merem ajánlani saját könyveimet: 

◦ Mikrovezérlős Rendszerfejlesztés C/C++ nyelven II. – Arduino Platform. ◦ Mikrovezérlős Rendszerfejlesztés C/C++ nyelven I. – PIC Mikrovezérlők ◦ Beszerzési hely: http://webmaster442.hu/letolthetoirasok/

Kérdések?

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF