31
A fizikai számítástechnika óra célja, hogy a művész hallgatók hozzájuthassanak minimális elektronikai alapokhoz, megismerjék az arduino-t, ami egy nyílt forráskódú mikrokontroller. Ki és bemenetei alkalmasak arra hogy vezéreljenek eszközöket, és néhány vizuális programmal is összeköthetőek, így soros portként alkalmazható. Speciálisan művészek számára fejlesztették ki, saját programnyelvvel rendelkezik amit könnyű megérteni. Számos angol nyelvű lecke és könyv áll rendelkezésre ebben a témakörben. Ellenben magyar nyelvű nincs. Fizikai számítástechnika elektronikai alapok és arduino programozás Harsányi Réka és Juhász Márton András (társszerző)

Arduino Prezi (BKF)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Arduino Prezi (BKF)

A fizikai számítástechnika óra célja, hogy a művész hallgatók hozzájuthassanak minimális elektronikai alapokhoz, megismerjék az arduino-t, ami egy nyílt forráskódú mikrokontroller. Ki és bemenetei alkalmasak arra hogy vezéreljenek eszközöket, és néhány vizuális programmal is összeköthetőek, így soros portként alkalmazható. Speciálisan művészek számára fejlesztették ki, saját programnyelvvel rendelkezik amit könnyű megérteni. Számos angol nyelvű lecke és könyv áll rendelkezésre ebben a témakörben. Ellenben magyar nyelvű nincs.

Fizikai számítástechnikaelektronikai alapok és arduino programozás

Harsányi Réka és Juhász Márton András (társszerző)

Page 2: Arduino Prezi (BKF)

[ Mi az a fizikai számítástechnika? ]Nem más mint annak a szemléletmódnak az elsajátítása, hogy miként kommunikálnak az emberekszámítógépeken keresztül, ide értve akár a mikrokontrollereket is, amik vezérlési feladatokraoptimalizált extra kicsi számítógépek. Így könnyen hozhatunk létre interakciókat. Ehhez viszont megkell tanulnunk a megfelelő nyelvezetet, hogy hogyan változik át fény-, hang-, hő- (hatás), stb.elektromos jellé, és hogyan tudunk ezekhez az analóg adatokhoz hozzáférni és digitális jelléalakítani, valamint reagálni rájuk. Tanulunk szenzorokról, alacsony feszültségű motorokról. Ez egyaktív részvételt igénylő tanulási folyamat, ami azt jelenti, hogy sok időt kell eltölteni áramköröképítésével, forrasztással, programozással és mindezek elemzésével, megértésével. Perszemindezekkel párhuzamosan az elektronika alapjait is el kell sajátítaniuk a diákoknak. Azt, hogymelyek a legalapvetőbb alkatrészek és mik a tulajdonságaik, hogyan kell őket áramkörbe kötni.A fizikai számítástechnika fontos részét képezi még a DIY (do it yourself=csináld magad) vonal. Pl.némelyik szenzor otthon is elkészíthető megfelelő anyagokból, lényegesen költséghatékonyabban.

Page 3: Arduino Prezi (BKF)

[ Hogyan épül fel a tananyag? ]

ELEKTRONIKAI ALAPOKAz első 6 fejezet az elektronika alapokra koncentrál:

multiméter használata, Ohm és ellenállás, elektromosság, rövid áramkör, Voltés feszültség, Amper és áramerősség, olvadóbiztosíték használata, potméter, egyenáram ésváltakozó áram, ellenállások és színkódolásuk, kísérletezés a feszültséggel, Watt és teljesítmény,alapvető mérések / mértékek / számítások, elemek soros és párhuzamos kötése, áramköri jelekkapcsolók működése, kondenzátor, Farad és kapacitás fogalma, dugaszolós panel felépítése és használata, nyomógomb: idő és kapacitás viszonya, feszültség ellenállás és kapacitás viszonya, tranzisztor: NPN / PNP, tranzisztor és jelfogó, áramkör ellenőrzése multiméterrel, kísérletezés hangszóróval: oszcillálás, alapvető forrasztási képesség elsajátítása, dióda, hálózati adapter hack,próbapanel használata és típusai, pulzáló fény egyszerű áramkörből, elemek élettartamánakkiszámítása adott áramkörben, mágneses érzékelő/kapcsoló áramkörbe építve, integrált áramkörök, digitális elektronika, logikai kapu alapok és csatlakoztatásának szabályai, mágneses tekercs és indukció, DC stepper és servo motorok, játékokat működtető szerkezetek (hangra aktiválódó lézer, tapsszenzor, elemlámpa, led mátrix, lézerpointer,stb.)

Page 4: Arduino Prezi (BKF)

[ Hogyan épül fel a tananyag? ]

ARDUINO ALAPOKA további fejezetek a hivatalos Arduino leckéket tartalmazzák

7.Arduino: bevezetés, arduino felépítése, program telepítése és használata, programozás lépésrőllépésre, LED nyomógombbal, ki- és bemenetek, PWM, fényszenzor/fotoellenállás, analóg bemenet,soros kommunikáció, serial motor használata, motor meghajtása, hibakeresés

8.Arduino: operátorok, funkciók, szintaxisok; http://www.arduino.cc/en/Tutorial/HomePagehivatalos leckék: 1. alapok: kiolvasás digitális és analóg pinből, 2. digitális pinek: LED villogtatás,nyomógomb, hang, egyszerű nyomógombos billentyűzet

9.Arduino: hivatalos leckék: 3. analóg pinek: be- kimenet serial.print, bemenetbe potméter,LED fadeelése, analóg szenzor kalibrálása, PWM, egyenletes kiolvasás analóg szenzorból

Page 5: Arduino Prezi (BKF)

10.Arduino: hivatalos leckék: 4. kommunikáció, Max MSP-vel, VVVV-vel, Processinggel: ASCIIkarakterkészlet, LED fade egérmozgatással, adat grafikon Processingben, fizikai pixel, virtuális színkeverő, meghívás ás válasz, soros bemenet – igaz vagy hamis állítások

11.Arduino: hivatalos leckék: 5. vezérlő struktúrák: if feltétel, for, array, while, switch állítás

12.Arduino: hivatalos leckék: 6. szenzorok: gyorsulásmérő szenzor kopogás észlelése piezo-val,ultrahangos távolságérzékelő; 7. kijelzők: LED dióda bargraph, 8x8 LED panel

13.Arduino: hivatalos leckék: 8. a string osztály, karakterek

14.Arduino: EEPROM, Ethernet, Firmata, LiquidCrystal, SPI – könyvtárak

15.Arduino: Servo, Software Serial, Stepper motor, Wire, és Arduino ISP - könyvtárak

16.Hivatkozások gyűjteménye

Page 6: Arduino Prezi (BKF)

[ Elektronikai alapok ]A diákok megismerkednek az alapvető alkatrészekkel és eszközökkel, miközben elektronikai eszközöket szerelnek szét és raknak össze utána valamilyen rendhagyó formában. Egyúttal belekóstolnak a koncepció tervezásbe is, mivel adott témakörben kell fiktív alkotásokat létrehozniuk. A BKF történetében már megvalósult ezekből egy kiállítás Rekreátorok címmel. Az erről készült dokumentumfilm itt látható:https://www.youtube.com/watch?v=V6fzfaAOEb4

A fizikai számítástechnika órán belül ez a blokk egy áttekintésre, jobb megértésre szolgál. Mivel a fókusz az arduino programozáson van.

Page 7: Arduino Prezi (BKF)

[ Mi az az Arduino? ]Egyrészt egy mikrokontroller, másrészt a programozási környezet neve.Több fajtája létezik, mi az órán az Arduino Duemilanove-t használjuk.

Az Arduino egy nyílt forrású gyors prototipizáláshoz ideális mikrokontroller modul. Használata a világos felépítésű elektronikának és jól értelmezhető programnyelvnek köszönhetően könnyen és gyorsan elsajátítható. Hirtelen elterjedése interaktív művészeti alkotásokban, hobbi alkalmazásokban és gyors vezérléstechnikai megoldások kivitelezésében egy jól kiépült nemzetközi tudásbázist hozott létre, hozzáférhetővé téve az elektronika egyszerű használatát minden érdeklődő számára.

Sokrétű ki és bemenetein keresztül fel tudja venni a kapcsolatot bármilyen jellegű szenzorral és programjának megfelelő válaszadásra képes, meghajtva lámpákat, motorokat, kijelzőket... A mikrokontrollert Arduino nyelven lehet programozni ami a Wiring nyelvén alapszik, felhasználói felületét pedig a Processing alapja nyújtja. Az Arduino egyedülálló áramkörként is működtethető, vagy összekapcsolható számítógéppel amin Flash, Processing, MaxMSP, GarageBand, illetve egyéb soros kommunikációra képes programokkal képes együttműködni.

Az Arduino a 2006-os Ars Electronica digitális közösségek szekciójában is elismerésben részesült. A csapat: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, és David Mellis. Készült egy dokumentum film is az Arduino fejlesztéséről (angolul elérhető). https://vimeo.com/18539129

Page 8: Arduino Prezi (BKF)

[ Mi az hogy Open Source? ]Az Open Source a számítástechnika világában népszerű kifejezés. Jelentése: nyílt forráskód. Az ilyen programok forráskódjához bárki hozzáférhet és kedvére alakíthatja, módosíthatja, mi több a módosítást üzletileg is termékké teheti. A a programok ingyen letölthetőkhonlapukról (arduino.cc). A kapcsolások és a nyomtatott áramköri tervek szintén hozzáférhetők és magáncélra szabadon felhasználhatók.

“Az Open Source - Nyílt forráskódú szoftver jelentése:

Jelentős vita alakult ki a két tábor között, annak eldöntésére, hogy melyik fogalom létezett előbb és, hogy melyik fogalom illik jobban, gyakorlatilag két nagyon hasonló szoftver kategóriára. A valóságban a Free Software és az Open Source Software fogalmi meghatározása majdnem teljesen fedi egymást. Talán a Free Software nagyobb szabadságfokot enged meg a felhasználóknak, mint az Open Source, ezekre az eltérésekre érdemes odafigyelni, amikor egy adott szoftver felhasználási feltételeit olvassuk.”

forrás: https://sites.google.com/site/szoftvermindenkinek/home/nyilt-forraskodu-szoftverek/tudasbazis-1

Page 9: Arduino Prezi (BKF)

“Az Open Source meghatározása:

Talán a legpontosabb meghatározást az Open Source Initiative - OSI (Nyílt Forráskód kezdeményezés) http://www.opensource.org adja és e szerint a Szabad Forráskódú Rendszereknek 10 követelménynek kell eleget tenniük:

• Szabad terjeszthetőség: A licensz nem tilthatja meg a szoftver ingyenes terjesztését• Forrás kód: A programnak tartalmaznia kell a forráskódot, vagy szabad hozzáférést a forráskódhoz• Származtatott munka: A licensznek lehetővé kell tennie a program megváltoztatását, illetve

származtatott munkák elvégzését.• A szerző forráskódjának integritása: A licensz megkövetelheti, hogy a megváltoztatott programok

az eredetitől eltérő névvel és verziószámmal kerüljenek forgalomba.• Személyek diszkriminációjának tilalma: a licensz egyetlen személyt, vagy személyek csoportját

sem diszkriminálhatja• Felhasználási területek diszkriminációjának tilalma: A licensz nem lehet diszkriminatív egyetlen

felhasnálási területtel szemben sem• Licensz jogainak terjeszthetősége: A licensz jogok mindenkire egyformán vonatkoznak, legyen az

elsődleges felhasználó, vagy továbbfelhasználó• A licensz nem lehet termék specifikus: Az eredeti licensz jogok akkor is érvényesek, ha a program

egy másik programba ágyazva kerül forgalmazásra.• A licensz más szoftverek jogait nem korlátozhatja: Például nem követelhetjük meg, hogy egy

adott, általunk forgalmazott program minden eleme nyílt forráskódú legyen, ha az egyik eleme az.• Technológiai semlegesség: A licensz nem követelhet meghatározott technológiák alkalmazását”

forrás: https://sites.google.com/site/szoftvermindenkinek/home/nyilt-forraskodu-szoftverek/tudasbazis-1

Page 10: Arduino Prezi (BKF)

arduino.cc

Page 11: Arduino Prezi (BKF)

[ Arduino fajtái ]Több fajtája létezik, mi az órán az Arduino Duemilanove-t használjuk. A modulokat készen és KIT-ben is meg lehet vásárolni, a programok ingyen letölthetők honlapunkról. A kapcsolások és a nyomtatott áramköri tervek szintén hozzáférhetők és magáncélra szabadon felhasználhatók.

Page 12: Arduino Prezi (BKF)

[ Arduino shieldek és Könyvtárak ]Speciális kiegészítő modulok is kaphatóak hozzá, ezek egy adott feladat elvégzésére képesek, egy az Arduino szoftverbe telepítendő Könyvtár is tartozik hozzájuk.

Page 13: Arduino Prezi (BKF)

[ Arduino Duemilanove felépítése]• Digitális pinek 14db (In/Out) áramerősségük 40mA. 0 (RX) és 1(TX) TTL soros port kommunimációhoz van, RX fogad, TX küld. 2 és 3 pin külső megszakításhoz, a csatlakozón fellépő fel- vagy lefutó él hatására fellépő megszakításkérés, ami a mikrovezérlő valamelyik bemenetének értékváltozására generálódik. PWM pinek - pulse width modulation = impulzus-szélesség moduláció, 8 biten működik. SPIpinek, 10-13, SPI busz (Serial Peripheral Interface=soros periféria illesztő), az SPI Library-hez. LED 13 pin, a beépített LED van ide kivezetve, HIGH (be) vagy LOW (ki) állapota lehet.

• Analóg pinek 6db. A4 és A5 I2C (TWI) busz kommunikáció, Wire Library-hez.AREF ajánlott feszültség az analóg pinekhez, analogReference() -szel lehet meghívni. Reset ha a shield-en van a reset gomb akkor ezt LOW-ra kell állítani.

• Áramot kezelő pinek: Vin=bemeneti feszültség, ha külső áramforrást használunk (USB is ilyen, vagy ha rákötsz 9V elemet, akkor itt tudsz hozzáférni az áramhoz).Gnd=földelés. 5V=értelemszerűen 5V jön belőle. 3V3=az alaplapra szerelt FTDI chip által termelt 3,3V feszültség, maximális áramerősség 50mA (az összes többinek 40mA).

• USB-n 5V-ton működik, ajánlott bementi feszültség 7-12V között.

• Atmega chip.

• Reset gomb.

Page 14: Arduino Prezi (BKF)

[ Az Arduino szoftver felépítése]Az Arduino Board-hoz egy Arduino nevű open source fejlesztőkörnyezet tartozik, aminek legfrissebb verziója a hivatalos oldalról letölthető, háromféle operációs rendszerhez: Windows-hoz, Mac OS X-hez és Linux-hoz. A letöltött fájlt kicsomagoljuk ha kell, és máris futtathatjuk az Arduino szoftvert, nem kell külön telepíteni.

Letöltés erről a linkről lehetséges: http://arduino.cc/en/Main/Software

Page 15: Arduino Prezi (BKF)

[ Programozás: szükséges minimum kód ]Az Arduino által használ kódok, más néven Sketch-ek kiterjesztése a régebbi vezrióknál .pde volt, de az 1.0 verzió óta már .ino kiterjesztést használ.

Arduino sketch írásnál a szükséges minimum a setup() és a loop() függvények meghívása (persze ehhez írhatunk saját függvényeket, de e nélkül nem fog működni a kódunk). Ezek az úgynevezett dedikált funkciók.A setup funkció a program futtatásakor csak egyszer fut le az elején. Itt adhatjuk meg hogy melyik pin-t hogyan akarjuk használni (bemenetként vagy kimenetként). Itt inicializáljuk a pineket (értékadás 0-val). Itt hívjuk meg a soros portot.

A loop funkció, mint a neve is mutatja, többször fut le egymás után. A bemeneti és kimeneti adatokat itt változtathatjuk.

Ezek dedikált funkciók, tehát be vannak építve a fejlesztőkörnyezetbe. Void-dal kell őket meghívni: void setup(), void loop(). Kapcsos zárójel jelzi a funkcióblokk elejét és végét. Kerek zárójelbe kerülnek a paraméterek. Az utasítások végét pontosvasszővel jelezzük. Ha egysoros kommentet akarsz írni azt dupla perjel // után megteheted, így nem zavar bele a kódba. Ha hosszabb szöveget akarsz akkor azt /* ilyen jelek közé tedd be. */

Page 16: Arduino Prezi (BKF)

harsanyireka.blog.hu

Page 17: Arduino Prezi (BKF)

[ Szimulátor programok]Ha nem rendelkezünk a fizikai eszközökkel, akkor hazsnálhatunk szimulátor programokat. Ezekben lemodellezhetjük a projektünket, a beépített alkatrészek segítségével. Folyamatosan bővítik a lehetőségeit, így érdemes mindig a legújabb verziókat használni. Fizetős és ingyenes verziója egyaránt létezik. Egy példát konkrétan megemlítek, mivel az órán is ezt használjuk: Fritzing a neve.

fritzing.org

Page 18: Arduino Prezi (BKF)

[ Arduino Könyvtárak ]Számítástudományban a könyvtár olyan előre megírt kódrészeket jelent amik meghatározott komplex funkciók elvégzésére képesek. Osztályaik és függvényeik felhasználásával a független programokban nincs szükség ezen feladatok ismételt megoldására. Általánosságban olyan csomagokként értelmezzük őket, amik szolgáltatásként teszik elérhetővé a konfigurációs adatokat, konstansokat és kódokat. Például egy matematikai könyvtár (Arduino esetében a math.h) a programnyelvből közvetlenül nem elérhető függvényeket írja le, mint a tangens, kotangens, logaritmus, gyökvonás. A rendkívül hasznos függvényeken túl, sok esetben bizonyos típusú hardware elemek használatát könnyítik meg – operációs rendszer hiányában ezeket a könyvtárakat felfoghatjuk úgy is mint eszköz-illesztő programokat (device driver). Mivel az Arduino egy nyílt forrású, együttműködő közösség által is fejlesztett rendszer, megkülönböztetünk hivatalos és kontribúciós könyvtárakat. Az előbbieket standard-ként is szokás nevezni, mivel kiforrottságuk miatt a fejlesztőkörnyezet programcsomagjának részét képezik és olyan általános funkciókat írnak le, amik végrehajtására minden Arduino típus képes.

Page 19: Arduino Prezi (BKF)

[ Do It Yourself - irány ]Rövidítése DIY. Jelentése: Csináld magad. A készen kapott modulok helyett magunknak is összerakhatunk funkcionális eszközöket, mivel az őket alkotó alapvető alkatrészek kaphatóak szinte bárhol. Online részletes leírásokat is találhatunk.

Page 20: Arduino Prezi (BKF)

[ Szenzorok, érzékelők ]“Az érzékelő vagy szenzor olyan elem, amely egy mérendő tulajdonságtól függő jelet szolgáltat. A mérendő tulajdonság és a jel egyaránt lehet fizikai, kémiai, biológiai stb. jellegű. Fontos, hogy a mérendő tulajdonság, és az érzékelő által szolgáltatott jel egymásnak kölcsönösen egyértelmű függvényei legyenek.”

http://hu.wikipedia.org/wiki/%C3%89rz%C3%A9kel%C5%91

Amit érzékelhet: fény, mozgás, mágneses tér, távolság, gyorsulás, páratartalom, hőmérséklet, nyomás, érintés, stb. A fizikai, kémiai vagy biológiai változásokat elektromos jelekké alakítják.Az alábbi lista nem teljes, inkább csak ízelítő: http://harsanyireka.blog.hu/2012/11/14/szenzorok

Page 21: Arduino Prezi (BKF)

projektek a nagyvilágból

Page 22: Arduino Prezi (BKF)

http://www.ted.com/talks/massimo_banzi_how_arduino_is_open_sourcing_imagination.html

Page 23: Arduino Prezi (BKF)

8bit Arduino Synth, BKFhttp://www.youtube.com/watch?v=pwz3uDah038

DIY szenzor: Weekend Projects - Infrared Pulse Sensorhttp://www.youtube.com/watch?v=psTa5ZrqAyo

Arduino Air Drumshttp://www.youtube.com/watch?v=jjvy_jzGlAQ

Arduino Wireless Animatronic Handhttp://www.youtube.com/watch?v=ZYKoNi48m9o

Laser Harp Fully Functionalhttp://www.youtube.com/watch?v=sLVXmsbVwUs

Botanicallshttp://www.youtube.com/watch?v=af6cayzWW1Y

AQUAGLTICH documentationhttp://www.youtube.com/watch?v=KSfFE9ejFi8

Noisy Coathttp://www.youtube.com/watch?v=jnPdypKDQQs

Hesitating robot (Süti-nem süti)http://www.youtube.com/watch?v=saTh8yI_eQk

Spacescanhttp://vimeo.com/4588043

Theremuino - an Infrared Arduino Thereminhttp://vimeo.com/13950953

Pufination at Device_art 3.009 in Zagrebhttp://vimeo.com/10216459

Multitouch Music Controllerhttp://vimeo.com/80744781

A Machines Sketchbookhttp://vimeo.com/78110845

Der Kritzler - scribbling “The Chancellor”http://vimeo.com/27950453

Displaying information on the devicehttp://vimeo.com/19782102

Touch Board + MIDIhttp://vimeo.com/79199354

Piano Gloveshttp://vimeo.com/7992026

Page 24: Arduino Prezi (BKF)

weboldalak

Page 25: Arduino Prezi (BKF)

http://playground.arduino.cc/projects/arduinoUsers

Page 26: Arduino Prezi (BKF)

http://makezine.com/category/electronics/arduino/

Page 27: Arduino Prezi (BKF)

http://www.instructables.com/tag/type-id/category-technology/channel-arduino/

Page 28: Arduino Prezi (BKF)

http://fritzing.org/projects/

Page 29: Arduino Prezi (BKF)

http://www.creativeapplications.net/category/arduino-2/

Page 30: Arduino Prezi (BKF)

projektek a BKF media design szakról

Page 31: Arduino Prezi (BKF)

http://prezi.com/grko9ime5q_o/webow-diploma-prezi/?utm_campaign=share&utm_medium=copy

[webow]Roskó Máté munkája

Egyfajta barométerként szolgáló dísztárgy, ami lehetővé teszi a felhasználó számára hogy a valós idejű időjárást vagy akár az előrejelzést megtudja. Az arduinohoz az adatok, egy Máté által programozott applikáción keresztül jutnak el a weboldaltól a tárgyig. A fény színével és kis ikonok fel-le mozgatásával jelzi ki az időjárást. Fő célja az volt ezzel a munkával, hogy ne kelljen az információ megszerzéséhez bekapcsolni semmilyen eszközt. Valamint a design és funkció összekapcsolása.