Kahve pişince tweet atan demlik,. – İçine mektup atıldığında telefonunuza bildirim
gönderen posta kutusu,. – Bluetooth tartı,. – Çizgi takip eden robot,. – .
Galatasaray Üniversitesi Bilgisayar Mühendisliği Bölümü
INF340 – Mikroişlemciler Arduino'ya Giriş
Ozan Çağlayan
[email protected] ozancaglayan.com
Arduino Nedir? ●
●
Kolay kullanılabilir ve esnek bir donanım/yazılım mimarisine sahip, açık kaynaklı elektronik geliştirme kartı, Açık kaynaklı donanım: –
●
Kartların devre tasarımları tamamen açık, isteyen üretebilir,
Açık kaynaklı yazılım: –
Arduino IDE, platform-bağımsız.
Arduino Nedir?
Arduino == Mikroişlemci?
Arduino != Mikroişlemci
Arduino != Mikroişlemci ●
●
Arduino bir mikroişlemci değildir, Arduino mikroişlemciler için kolaylaştırıcı bir geliştirme ortamı sunar, –
Programlama için USB seri bağlantısı,
–
Entegre LED,
–
Girdi/Çıktı pinleri,
–
Güç girişi,
–
Reset düğmesi, vs. vs.
Arduino Uygulamaları ●
●
Girdi pinlerine bağlayabileceğiniz çeşitli algılayıcılar ile ortamı izleyebilir, Çıktı pinleriyle ortama müdahale edebilirsiniz: Işık, ses, motor kontrolü, vs. –
Kahve pişince tweet atan demlik,
–
İçine mektup atıldığında telefonunuza bildirim gönderen posta kutusu,
–
Bluetooth tartı,
–
Çizgi takip eden robot,
–
...
Arduino Modelleri
Arduino Due
32-bit ARM çekirdekli mikroişlemci içeren yeni Arduino modeli.
LilyPad Arduino
Giyilebilir e-tekstil uygulamaları için geliştirilmiş dikilebilir LilyPad.
LilyPad SimpleSnap
Li-Ion bataryalı, çıtçıtlı LilyPad
Arduino Uno
En popüler ve sık kullanılan Arduino modeli.
Arduino Uno
Arduino Uno ●
Mikroişlemci: ATmega328 (8-bit)
●
SRAM: 2KB
●
Flash Memory: 32KB
●
Saat Hızı: 16MHz
●
Analog Giriş: 6 Adet
●
Sayısal Giriş: 14 (6 tanesi PWM)
Arduino Zırhları (Shield) ●
Arduino kartlarının işlevlerini arttırmak için üstlerine takılan genişleme kartlarıdır.
Arduino Zırhları (Shield) Ethernet
Arduino Zırhları (Shield) GSM
Arduino Zırhları (Shield) Touchscreen
Arduino IDE ●
Platform bağımsız: Linux, Mac, Windows
●
Alt seviyede gcc derleyicisini kullanıyor,
●
IDE Java ile geliştiriliyor,
●
Açık kaynaklı: –
●
https://github.com/arduino/Arduino
Son kararlı sürüm: 1.0.4 (11 Mart 2013)
Arduino Programlama Dili ●
Arduino, Wiring tabanlı C/C++'a çok yakın bir dil ile programlanıyor, –
●
Arduino IDE ortamı ise Processing temel alınarak geliştiriliyor, –
●
http://wiring.org.co
http://www.processing.org
Arduino kaynak kod dosyalarına (*.ino) Sketch (taslak) adı veriliyor.
Arduino İnşa Süreci Arduino Sketch (.ino)
C/C++ (.cpp)
avr-gcc
Object Files (.o)
Linker
USB
HEX
Arduino İnşa Süreci (IDE) Arduino Sketch (.ino)
C/C++ (.cpp)
avr-gcc
Object Files (.o)
Tek tuş! Linker
USB
HEX
Arduino Programlama Dili ●
setup() –
●
Arduino taslağı başlatılırken çağırılan hazırlama fonksiyonudur. Değişkenleri ilklendirmek ve pinleri ayarlamak için kullanılır.
loop() –
çağrısı sonlandıktan mikroişlemci sürekli (kapatılana veya resetlenene kadar) bu fonksiyonu çağırır. setup()
Örnek 1 (Blink)
Örnek 1 (Blink) // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
Örnek 2 (AnalogReadSerial)
Örnek 2 (AnalogReadSerial) // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read Serial.println(sensorValue);
}
// delay in between reads for stability delay(1);
Örnek 2 (volume.py)
Örnek 2 (Devre)
Galatasaray Üniversitesi Bilgisayar Mühendisliği Bölümü
Sorusu olan? Ozan Çağlayan
[email protected] ozancaglayan.com