Arduino Esplora’ya GiriÅŸ
M. Hamit YANIK // 9 Eylül 2013 // 8 yorum // kategori: Arduino ÇeÅŸitleriArduino’nun çiçeÄŸi burnunda yeni Esplora‘sının genel özelliklerine daha önceden ÅŸu yazımızda deÄŸinmiÅŸtik. Bu yazımızda daha detaylı bir ÅŸekilde Esplora’yı inceleyeceÄŸiz.
Esplora yapı itibariyle ilginç ve farklı bir Arduino geliştirme kartı. Görüntüsü bir oyun konsoluna benziyor ve hemen hemen üzerine ihtiyacımız olabilecek herşey yerleştirilmiş. Basma butonlu ve iki eksenli joystick, 4 buton, MMA7361L ivme sensörü, TMP36 sıcaklık sensörü, ışık sensörü, RGB led, mikrofon, buzer ve doğrusal potansiyometresi ile birbirinden değişik projeleriniz için tam bir biçilmiş kaftan!
Ayrıca kartın orta kısmına konumlandırılmış header’lara -sol taraftaki header kullanılmıyor- küçük bir renkli LCD ekran takabiliyorsunuz. LCD ekran modülünün üzerinde mikro SD kart soketi de mevcut.
Resimlerin üzerine tıklayarak büyük haline ulaşabilirsiniz.
İsteğe bağlı olarak bu porta LCD modülü takmayıp, genel giriş-çıkış amaçlı da kullanabilirsiniz. Soldaki pin diyagramında da görüldüğü gibi toplam 11 adet giriş çıkış pini -TinkerKit için ayrılanları da sayarsak- kullanımımıza sunulmuş.
Yalnız, üzülerek belirtmeliyim ki; Esplora‘nın üzerinde pili yok! Gücünü üzerindeki Micro-B USB konnektörü üzerinden alıyor veya harici bir 5v kaynağını TinkerKit soketlerinden birine baÄŸlamanız gerekiyor. Ãœzerinde iki adet ince pil yuvası ve 3 volttan 5 volta DC-DC boost konvertörü olsaydı, tadından yenmezdi diyerek, geliÅŸtiricilere buradan bir ipucu vermiÅŸ olalım. Kim bilir? Belki bir gün fırsatım olursa böyle bir modülün tasarımını ben yaparım ve buradan sizlerle paylaşırım. 😉
Fiyatlar & Nasıl temin edebilirim?
Esplora Fiyatı
Esplora‘nın yurtdışı fiyatı yaklaşık 60 Dolar. Ancak eBay üzerinden temin etmek istiyorsanız fiyatlar kargo dahil 84 Dolar‘dan baÅŸlıyor. Henüz yeni bir kart olduÄŸundan ilerleyen zamanlarda eBay fiyatları mutlaka düşecektir.
Robotistan fiyatı ise şu anda yaklaşık 200 TL.
Arduino Esplora‘yı temin etmek istiyorsanız:
- Robotistan için buraya tıklayın »
- eBay için buraya tıklayın »
LCD Fiyatı
Esplora LCD‘sinin fiyatları eBay‘de 19 Dolar‘dan baÅŸlıyor. Kargo ise ücretsiz.
Robotistan fiyatı ise şu anda 64 TL civarında.
Esplora LCD‘sini temin etmek istiyorsanız:
- eBay için buraya tıklayın »
- Robotistan için buraya tıklayın »
Esplora’ya Hızlı BaÅŸlangıç
Esplora‘nızı aldınız; ama nasıl programlanacağı konusunda hiç bir fikriniz yok mu? Yazımızı takip edin!
Öncelikle Arduino‘nun son yazılımının (en az 1.0.3 versiyonu ve üzeri) bilgisayarınıza kurulu olması gerekiyor. Esplora‘nızı eski versiyon Arduino yazılımı ile programlamanız mümkün deÄŸil. Son çıkan versiyonu Arduino‘nun kendi sitesindeki Download bölümünü kullanarak edinebilirsiniz: http://arduino.cc/en/Main/Software
Kurulumu tamamladıktan sonra Arduino yazılımını çalıştırın ve Esplora‘nızı USB portu üzerinden bilgisayarınıza baÄŸlayın.
Menüden “Tools > Board > Arduino Esplora” seçeneÄŸini seçtikten sonra “Tools > Serial Port” menüsünden ilgili seri portu seçmeniz gerekiyor.
Artık ilk programı Esplora’mıza yükleyebiliriz.
“File > Examples > Esplora > Beginners > EsploraBlink” örnek programını açın. Arduino yazılımının üst tarafındaki Upload butonu ile programı Esplora’ya yükleyebilirsiniz.
Esplora’nızın üzerindeki RGB Led renk deÄŸiÅŸtirmeye baÅŸladı mı? Tebrikler! Ä°lk programınızı Esplora’nıza yüklemeyi baÅŸardınız!
Esplora kütüphanesi – Hazır fonksiyonlar
Esplora hazır fonksiyonlarını programınızda kullanabilmeniz için öncelikle kod satırının en üstünde aşağıdaki gibi Esplora.h dosyasını dahil etmeniz gerekiyor.
#include <Esplora.h>
Esplora.h dosyasını skecimize dahil ettikten sonra artık aşağıdaki hazır fonksiyonlardan özgürce faydalanabiliriz:
readSlider() // Doğrusal potansiyometreyi okuma fonksiyonu readLightSensor() // Işık sensörünü okuma fonksiyonu readTemperature() // Sıcaklık sensörünü okuma fonksiyonu readMicrophone() // Mikrofonu (ses sensörünü) okuma fonksiyonu readJoystickSwitch() // Joystick basma butonunu analog okuma fonksiyonu readJoystickButton() // Joystick basma butonunu dijital okuma fonksiyonu readAccelerometer() // İvme sensörünü okuma fonksiyonu readButton() // 4 butonu okuma fonksiyonu readJoystickX() // Joystick'in X ekseni değerini okuma fonksiyonu readJoystickY() // Joystick'in Y ekseni değerini okuma fonksiyonu writeRGB() // RGB Led'e kırmızı, yeşil ve mavi renk değeri girme fonksiyonu writeRed() // RGB Led'in kırmızı rengini ayarlama fonksiyonu writeGreen() // RGB Led'in yeşil rengini ayarlama fonksiyonu writeBlue() // RGB Led'in mavi rengini ayarlama fonksiyonu readRed() // RGB Led'in daha önceden ayarlanmış olan // kırmızı renk değerini okuma fonksiyonu readGreen() // RGB Led'in daha önceden ayarlanmış olan // yeşil renk değerini okuma fonksiyonu readBlue() // RGB Led'in daha önceden ayarlanmış olan // mavi renk değerini okuma fonksiyonu tone() // Buzzer'in ses tonu çıkarma fonksiyonu noTone() // Buzzer'i susturma fonksiyonu
readSlider() Fonksiyonu
Doğrusal potansiyometrenin konumuna göre analog değeri okur ve bir değişkene aktarır.
#include <Esplora.h> void setup() { Serial.begin(9600); // Seri portu başlat } void loop() { // Doğrusal potansiyometreyi oku ve değerini "deger" değişkenine aktar. int deger = Esplora.readSlider(); // Veriyi seri porta gönder Serial.println(deger); // 1 saniye bekle delay(1000); }
readLightSensor() Fonksiyonu
Esplora üzerindeki ışık sensörünün (fotodirenç) analog değerini okuyarak 0 ile 1023 arasında bir sayısal değere çevirir ve tanımlanan bir değişkene aktarır
#include <Esplora.h> void setup() { Serial.begin(9600); // Seri portu başlat } void loop() { // Işık sensörünü oku ve değerini "deger" değişkenine aktar. int deger = Esplora.readLightSensor(); // Veriyi seri porta gönder Serial.println(deger); // 1 saniye bekle delay(1000); }
readTemperature() Fonksiyonu
Esplora üzerindeki sıcaklık sensörünün (TMP36) analog değerini okuyup, bu değeri belirtilen birime (Santigrat derece ya da Fahrenayt) çevirerek tanımlanan bir değişkene aktarır.
Esplora’nın üzerindeki sıcaklık sensörü -40 Santigrat derece ile 150 Santigrat derece arasında sıcaklık ölçümü yapabilir.
#include <Esplora.h> void setup() { // Seri portu başlat Serial.begin(9600); } void loop() { // Sıcaklığı oku ve Santigrat dereceye çevir "celsius" değişkenine aktar. // Fahrenayt için: DEGREES_F int celsius = Esplora.readTemperature(DEGREES_C); // Veriyi seri porta gönder Serial.print(celsius); // 1 saniye bekle delay(1000); }
readMicrophone() Fonksiyonu
Esplora üzerindeki mikrofonu (yani ses sensörünü) okuyarak analog değeri 0 ile 1023 arasındaki sayısal değere çevirir. Bu değeri tanımlanan bir değişkene aktarır.
Aşağıdaki örnekte seri portunuzdan akan sayısal değerlerin ortamdaki gürültüye göre değiştiğini göreceksiniz.
#include <Esplora.h> void setup() { // Seri portu başlat Serial.begin(9600); } void loop() { // Mikrofonu oku ve değeri "deger" değişkenine aktar. int deger = Esplora.readMicrophone(); // Veriyi seri porta gönder Serial.print(deger); // Saniyenin onda biri kadar bekle delay(100); }
readJoystickSwitch() ve readJoystickButton() Fonksiyonları
readJoystickSwitch() ve readJoystickButton() fonksiyonları birbirine çok benzer. İkisi de Joystick butonuna basılıp basılmadığını okur. Aralarındaki küçük fark ise, birisi analog mantıkta çalışır, diğeri dijital mantıkta.
readJoystickSwitch() fonksiyonu 0 ile 1023 arasında bir değer döndürürken, (basıldığında 0, basılmadığında 1023)
readJoystickButton() fonksiyonu 1 ya da 0 şeklinde bir değer döndürür. (basıldığında 0, basılmadığında 1)
#include <Esplora.h> void setup() { } void loop() { // Joystick butonunu analog oku int button = Esplora.readJoystickSwitch(); // eğer butona basılmışsa if(button == 0) { // Kırmızı ledi yak Esplora.writeRed(255); } else { // Butona basılmıyorsa // Kırmızı ledi söndür Esplora.writeRed(0); } }
#include <Esplora.h> void setup() { } void loop() { // Joystick butonunu dijital oku int button = Esplora.readJoystickButton(); // eğer butona basılmışsa if(button == LOW) { // Kırmızı ledi yak Esplora.writeRed(255); } else { // Butona basılmıyorsa // Kırmızı ledi söndür Esplora.writeRed(0); } }
readAccelerometer() Fonksiyonu
Esplora üzerindeki ivme sensörünün belirtilen ekseninin değerini okuyarak tanımlanan bir değişkene aktarır.
#include <Esplora.h> void setup() { // Seri portu başlat Serial.begin(9600); } void loop() { // X Eksenini oku ve bilgiyi "x_ekseni" değişkenine aktar int x_ekseni = Esplora.readAccelerometer(X_AXIS); // Y Eksenini oku ve bilgiyi "y_ekseni" değişkenine aktar int y_ekseni = Esplora.readAccelerometer(Y_AXIS); // Z Eksenini oku ve bilgiyi "z_ekseni" değişkenine aktar int z_ekseni = Esplora.readAccelerometer(Z_AXIS); // Verileri seri porta gönder Serial.print("x: "); Serial.print(x_ekseni); Serial.print("\ty: "); Serial.print(y_ekseni); Serial.print("\tz: "); Serial.println(z_ekseni); // Yarım saniye bekle delay(500); }
readButton() Fonksiyonu
Esplora’nın saÄŸ tarafındaki 4 adet butonu okur. Buna ek olarak Joystick kolunun durumunu da okuyabilir.
readButton() fonksiynuna ÅŸu parametreler girilebilir:
SWITCH_1 ya da SWITCH_DOWN
SWITCH_2 ya da SWITCH_LEFT
SWITCH_3 ya da SWITCH_UP
SWITCH_4 ya da SWITCH_RIGHT
Joystick kolu konumunu okumak için:
JOYSTICK_DOWN
JOYSTICK_LEFT
JOYSTICK_UP
JOYSTICK_RIGHT
#include <Esplora.h> void setup(){} void loop() { // Joystick'in aşağı çekilip çekilmediği oku int joystick_asagi = Esplora.readButton(JOYSTICK_DOWN); // Birinci butona basılıyor mu? int button1 = Esplora.readButton(SWITCH_1); // Birinci butona basılıyorsa kırmızı ledi yak if(button1 == LOW) { Esplora.writeRed(255); } else { Esplora.writeRed(0); } // Joystick kolu aşağı çekiliyorsa yeşil ledi yak if(joystick_asagi == LOW) { Esplora.writeGreen(255); } else { Esplora.writeGreen(0); } }
readJoystickX() ve readJoystickY() Fonksiyonları
Bu fonksiyonlar Joystick kolunun X ve Y eksenlerindeki hareketini okur değeri tanımlanan bir değişkene aktarır.
#include <Esplora.h> void setup() { // Seri portu başlat Serial.begin(9600); } void loop() { // Joystick'in X Ekseni değerini oku int x_ekseni = Esplora.readJoystickX(); // Joystick'in Y Ekseni değerini oku int y_ekseni = Esplora.readJoystickY(); // Veriyi seri porta gönder Serial.print("X Ekseni: "); Serial.print(x_ekseni); Serial.print("\tY Ekseni: "); Serial.println(y_ekseni); // yarım saniye bekle delay(500); }
writeRGB() Fonksiyonu
RGB Led’in rengini belirtilen tonlara göre ayarlar. Fonksiyona girilen deÄŸerler 0 ile 255 arasında olmalıdır.
#include <Esplora.h> void setup() {} void loop() { // Açık mavi Esplora.writeRGB(0, 128, 255); // bir saniye bekle delay(1000); // Pembe Esplora.writeRGB(255, 0, 128); // bir saniye bekle delay(1000); // Açık yeşil Esplora.writeRGB(128, 255, 0); // bir saniye bekle delay(1000); }
writeRed(), writeGreen(), writeBlue() Fonksiyonları
RGB Led’in istediÄŸiniz rengini kontrol etmeye yarar. ÖrneÄŸin sadece kımızı rengi deÄŸiÅŸtirmek istiyorsanız writeRed(deÄŸer) fonksiyonunu kullanabilirsiniz.
Fonksiyona girilen değerler 0 ile 255 arasında olmalıdır.
#include <Esplora.h> void setup() {} void loop() { // 0'dan 255'e sayacak kadar bir döngü oluştur for(int i=0; i<256; i++) { // Kırmızıyı i değerine göre ayarla Esplora.writeRed(i); // saniyenin onda biri kadar bekle delay(100); } }
readRed(), readGreen(), readBlue() Fonksiyonları
Daha önceden tonunu ayarladığımız RGB Led’in daha sonradan tekrar okunması bu fonksiyonlarla yapılır.
Örneğin daha önceden şu fonksiyonla kırmızının tonunu ayarladınız:
Esplora.writeRed(128);
Daha sonra readRed() fonksiyonu ile okuduğumuzda kirmizi değişkenimiz 128 değerini alacaktır:
int kirmizi = Esplora.readRed();
#include <Esplora.h> void setup() { // Seri portu başlat Serial.begin(9600); } void loop() { // Doğrusal potansiyometreyi oku int deger = Esplora.readSlider(); // 0 ile 2023 arasında gelen değeri 0 ile 255 arasına ölçekle deger = map(deger, 0, 1023, 0, 255); // Kırmızı ledi deger'e göre ayarla Esplora.writeRed(deger); // Kırmızı Ledin değerini oku ve seri porta gönder Serial.println(Esplora.readRed()); // Yarım saniye bekle delay(500); }
tone(), noTone() Fonksiyonları
Esplora’nın buzerinden istenen tonda ses çıkartmak için bu fonksiyonları kullanabilirsiniz.
Kullanımı:
Esplora.tone(frekans, uzunluk)
Frekans azaldıkça ses tonu kalınlaşır, arttıkça ses tonu incelir.
Uzunluk ise sesin ne kadar süre çıkarılacağıdır. (opsiyonel)
#include <Esplora.h> void setup(){} void loop() { // Kalın ton Esplora.tone(100); delay(1000); // Sustur Esplora.noTone(); delay(1000); // İnce ton Esplora.tone(3000); delay(1000); // Sustur Esplora.noTone(); delay(1000); }
Arduino Esplora ile yapabilecekleriniz
- Basit oyunlar geliştirebilirsiniz. Renkli LCD ekran bu iş için oldukça uygun.
- Uzaktan kumandalı bir aracın kontrolünü Esplora ile sağlayabilirsiniz. (Bir sonraki yazımda bunu anlatacağım.)
- İçerinin sıcaklığını mı merak ediyorsunuz? Sıcaklığı ölçüp LCD ekranda gösterebilirsiniz.
- Su terazisi yapabilirsiniz.
- Bilgisayarınızın mouse’unu Esplora’nın joystick’i ile kontrol edebilirsiniz. (Arduino yazılımındaki Examples > Esplora > Beginners > EsploraJoystickMouse örneÄŸini inceleyin.)
- Esplora’yı bir PC oyun kolu ÅŸeklinde kullanabilirsiniz. (Arduino yazılımındaki Examples > Esplora > Experts > EsploraKart örneÄŸini inceleyin.)
ArduinoTürkiye’deki ilk yazımın burada sonuna geliyorum. Umarım Arduino meraklısı herkes için faydalı olur. Görüş ve yorumlarınızı eksik etmeyeceÄŸinizi umuyorum.
Kalın sağlıcakla.
Bu galeriden de Esplora’yı daha yakından inceleyebilirsiniz:
Hamit Hocam;
Siz, mezun olunca sizin bilgi ve tecrübelerinizden mahrum kalacağımız düşüncesiyle üzülüyorduk. Yanıldığımızı görmek sevindirici, ayrıntılı ve yararlı bir paylaşım olmuş.
Teşekkürler.
Nokıa 3310 AT Kodlarını Kullanarak Arduino Esplora Ledi Yakma
Merhaba .
Ben Çanakkale 18 Mart Üniversitesi Mekatronik Bölümü Öğrencisiyim Arduino Esplora İle Bunu Yapmam Gerekiyo Ama Tam Bir Bilgiye Sahip olamadım Daha Kodlama Hakkında da Guzel Bı Bılgım yok Yanı Kodlamayı Bastan kendım Yapamam Nokıa 3310 un AT Kodunu Kendım Esplora ya Uyarlıycak kadar Iyı Değilim Yanı. Olay Şu ki Nokı 3310 Telefonundan Mesaj Gönderılınce Arduıno Esploranın Ledi Yanacak Proje Bu Şekilde. Nokı 3310 AT Kodları Kullanılarak Yapılacakmış Bılen Bırısı Bana Kodlama Şeklını Anlatabılırse Uzaktan Kontrol Seklınde Olcakmıs Sevınırım.
[…] Kaynak:Â http://arduinoturkiye.com/arduino-esploraya-giris […]
Merhaba ilk defa Arduino aldım Esploraya taktığım tft lcd ekranda bir uygulama denemek istedim bunu için sitede bulunan Termometre uygulamasını kullandım ama ekranımda siyah yatay çizgiler çıkıyor yardımcı olabilir misiniz şimdiden teşekkür ederim.
yazının içinde geçen lcd kutuphanelerini indirmeniz lazım.
Ä°yi geceler su ana kadar verdiginiz bilgiler icin tesekkur ederim bu urunde isi sansoru stendart ama ben isi ile beraber nemde olcmek istiyorum
Ve gercek zamanli degerler almak ve isiyi o zaman diliminde azaltip cogaltmak istiyorum
Yani fonksiyonel bir kulucka makinasi amacim yardimci olursaniz sevinirim…
sıtede uno ve dht11 le yapılmış proje var onu ınceleyın başlayın yapmaya. takıldıgınız yerı foruma gelin sorun komple proje istemeyın kımse ugrasmaz kendınız yapmanız her zaman ıyıdır.
Iyi aksamlar sabahin erken saatinde vaktinizi ayirip yazdiginiz icin tesekkur ederim
Bn basdan asagi hazir proje istemiyorum her parcasina kadar hakim olabilecegim bir makina ogrenmek icin de guzel olacakdir arastiriyorum takildigim yerlerdede sizden yardim isteyecegim tesekkur ederim hayirli kandiller..