Renk, Hareket Yönü ve Uzaklık Algılayan APDS-9960 Sensörü Kullanımı

0 1.400
Sparkfun APDS-9960 sensörü ile projelerinizde renk, hareket yönü ve mesafe ölçümlerini daha kolay ve tek bir kart üzerinden yapabilirsiniz. ZX sensöründen bahsetmiştim. ZX sensörü mesafe ölçümü ve hareket yönünü tek eksen üzerinde yapabilmekteydi. Fakat APDS-9960 sensörü hem renk hem de 3 eksende de hareket algılama yapmaktadır. Üstelik ZX sensörüne göre fiyatı uygun görünüyor.

Özellikleri:

  • Ortam Işığını ve RGB Renk Algılama
  • Mesafe ölçümü
  • İleri, geri, sağa, sola hareket yönlerini algılama
  • Algılama aralığı 10 ile 20 cm arasında
  • I2C iletişim protokolü üzerinden haberleşme
Sensör Kütüphanesi >>  APDS-9960

İndirdiğiniz dosya içinde libraries klasörine girin ve kütüphane dosyasını olduğu gibi arduinonun kütüphane dizinine kopyalayın.

Arduino ile Örnek Uygulama

Arduino İle Pin Bağlantıları
  • VCC – 3.3V
  • GND – GND 
  • SCL – A5
  • SDA – A4
  • INT – D2 

Arduino Hareket Testi Örnek Kodu


#include <Wire.h>
#include <SparkFun_APDS9960.h>
#define APDS9960_INT 2
SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag = 0;

void setup() {

pinMode(APDS9960_INT, INPUT);
Serial.begin(9600);
Serial.println();
Serial.println(F("--------------------------------"));
Serial.println(F("SparkFun APDS-9960 -Hareket Testi"));
Serial.println(F("--------------------------------"));
attachInterrupt(0, interruptRoutine, FALLING);
if ( apds.init() ) {
Serial.println(F("APDS-9960 başlatma tamamlandı"));
} else {
Serial.println(F("APDS-9960 ilk tetikleme sırasında bir şeyler ters gitti!"));
}

if ( apds.enableGestureSensor(true) ) {
Serial.println(F("Hareket sensörü çalışmaya başladı"));
} else {
Serial.println(F("Hareket sensörü başlatma işlemi sırasında bir sorun oluştu!"));
}
}

void loop() {
if( isr_flag == 1 ) {
detachInterrupt(0);
handleGesture();
isr_flag = 0;
attachInterrupt(0, interruptRoutine, FALLING);
}
}

void interruptRoutine() {
isr_flag = 1;
}

void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
Serial.println("ileri");
break;
case DIR_DOWN:
Serial.println("geri");
break;
case DIR_LEFT:
Serial.println("Sola");
break;
case DIR_RIGHT:
Serial.println("Saga");
break;
case DIR_NEAR:
Serial.println("Yakın");
break;
case DIR_FAR:
Serial.println("Uzak");
break;
default:
Serial.println("yok");
}
}
}

Yukarıdaki kodu yükleyip serial monitörü açın. Elinizi sensörün üzerinde hareket ettirdiğinizde hareket yönü ekranda yazacaktır. Ayrıca sensör kütüphanesindeki örnek kodları kullanarak renk ve mesafe algılama işlemlerini de yapabilirsiniz.

Kaynak: SparkFun

Bunlar da İlgini Çekebilir

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.