Arduino Esplora’ya GiriÅŸ

DSC09195Arduino’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.

Arduino Esplora LCD Arduino Esplora LCD modülü arkası ve SD kart yuvası

DSC09197
Resimlerin üzerine tıklayarak büyük haline ulaşabilirsiniz.

Esplora Pin Diyagramı

İ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:

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:

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.

esplora1 esplora2

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.

Blink Programı EsploraBlink Upload

“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:

M. Hamit YANIK

Makine öğretmeni, elektronik meraklısı, gömülü sistemler hastası, Arduino seveni, web geliştiricisi.

8 comments

  1. Recep KARATAÅž dedi ki:

    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.

  2. oguzhan dedi ki:

    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.

  3. […] Kaynak: http://arduinoturkiye.com/arduino-esploraya-giris […]

  4. meric dedi ki:

    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.

  5. çetin dedi ki:

    Ä°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…

    • Ömer Koman dedi ki:

      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.

  6. çetin dedi ki:

    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..

E-posta adresiniz gösterilmeyecek. Gerekli alanlar * ile işaretlidir.

*



Sosyal AÄŸlar