Arduino Esplora | ATLAS teknomarket

Arduino Esplora

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

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ğeridijital 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.)

Kaynak: http://arduinoturkiye.com/arduino-esploraya-giris

Comments are closed.