APDS-9960 Proximity RGB Gesture Sensor Arduino Library Kurulumu ve Kullanımı - Turkish Tutorial

in utopian-io •  7 years ago  (edited)

This is a Turkish tutorial of an open source Arduino library, which allows the user to integrate “APDS-9960 Proximity RGB Gesture Sensor” to Arduino. I will show you how to install the library to Arduino IDE and make an example project with the library, throughout this tutorial while giving information about what proximity sensors are and their working principles.

Merhaba, bu yazıda Arduino mikrokontrolörünüze “APDS-9960 Proximity RGB Gesture Sensor” adlı sensörü eklemenize ve bu sensör ile projeler yapmanıza olanak sağlayan, açık kaynak kütüphaneden bahsedeceğim. Yazı boyunca proximity (yakınlık) sensörlerinin ne olduğunu ve nasıl çalıştığını, APDS-9960 Proximity Gesture Sensor kütüphanesinin kurulumunu ve bu sensör ile yapacağımız örnek bir proje kodlarını görebilirsiniz.

ornek.jpg
Proximity sensör ile yapılmış bir Arduino projesi.


Proximity (Yakınlık) Sensörü Nedir ve Nasıl Çalışır?

Proximity yani yakınlık sensörü yakınındaki objelerin varlığını fiziksel bir temas olmaksızın algılayan sensörlere denir. Proximity sensörler elektromanyetik, elektrostatik veya kızılötesi alanlar oluşturarak ve bu alanlardaki değişimleri gözleyerek objeleri algılarlar. Algılanması istenen değişik objeler için değişik türde proximity sensörleri kullanılır. Örneğin plastik bir nesne algılanmak isteniyorsa kapasitif veya fotoelektrik bir proximity sensörü, metal bir nesne algılanmak isteniyorsa endüktif proximity sensörü kullanılması gerekmektedir.

endustriyel.jpg
Çeşitli endüstriyel proximity sensörleri.

Proximity sensörler bir çok endüstriyel alanda kullanılır. Konveyor bantlarda cisim algılanması, titreşim algılayan sistemler, araba park sensörleri buna örnek verilebilir. Proximity sensörlerinin en bilinen uygulamalarından biri de akıllı telefonlarda arama yapıldığında yüzün yakınlığına göre ekranın kapanmasıdır.

kullanim.jpg
Proximity sensörün endüstriyel olarak kullanım örnekleri.

telefon.png
Akıllı telefonlarda proximity sensörün işlevi.


APDS-9960 Proximity Gesture Sensor Kütüphanesinin Arduino IDE’sine Kurulumu

1. https://github.com/sparkfun/APDS-9960_RGB_and_Gesture_Sensor adresinden kütüphaneyi indirin.

indir.png

2. Arduino programını açıp sırasıyla Sketch->Include Library->Add .ZIP Library seçeneklerini seçin.

ekle.png

3. APDS-9960_RGB_and_Gesture_Sensor-master.zip dosyasını seçin ve Open'a tıklayın.


APDS-9960 Proximity Gesture Sensor Kütüphanesinin Kullanımı

Aşağıda APDS-9960 Proximity Gesture Sensor kütüphanesinin kullanımını öğrenmek adına basit bir el hareketi algılayıcı yapılmıştır. APDS-9960 Proximity sensörünüzün Arduino’nuza bağlamak için aşağıdaki şemadan yardım alabilirsiniz. Dikkat etmeniz gereken nokta, sensörün 3.3V gerilim ile beslenmesi gerektiğidir.

baglanti.png
APDS-9960 Proximity sensörünün Arduino'ya bağlantı şeması.

1. Yeni bir sketch açın ve "Proximity_Sensor_Deneme" olarak kaydedin.

2. Öncelikle kütüphanelerimizi sketch’imize eklemek için, kodun en başına, #include <SparkFun_APDS9960.h> ve #include <Wire.h> yazın.

3. Kütüphaneyi ekledikten sonra kullanacağınız APDS-9960 Proximity Gesture sensörünün interrupt bağlantı pinini tanımlayın.

1.PNG

4. APDS-9960 sensörünün değişkenini atayın ve tanımlayın. Ardından Interrupt Service Routine (ISR) işlemi için bir değişken tanımlayın ve değerini sıfır yapın.

2.PNG

5. void setup() fonksiyonunun içine, 9600 baud rate’inde seri haberleşmeyi başlatacak komutu yazın. Ardından sensör interrupt pinini “Input” olarak atayın. Interrupt Service Routine işlemini başlatacak komutu “Falling” yani düşen kenar olacak şekilde başlatın. Daha sonra kullanım kolaylığı açısından önce sensörün I2C protokolü üzerinden konfigürasyonunun yapılıp, yapılmadığını belirten, ardından sensörün devrede olup olmadığını ekrana yansıtan kodları yazın.

3.PNG

6. void loop() fonksiyonunun içine, bir if koşulu atayın. Bu if koşulunu sensörde interrupt olduğu durumda el hareketini başlatacak komutlar yazın. Yani sensör el hareketi algıladığında interrupt olmalı.

4.PNG

7. void interruptIslemi() adında bir fonksiyon oluşturun ve bu fonksiyona sensör el hareketi algıladığında, Interrupt Service Routine işlemini tamamlayacak komutu yazın.

5.PNG

8. elHareketi() adında, el hareketlerini ve el hareketlerinin ekran çıktılarını tanımlayacak bir fonksiyon oluşturun. Bu fonksiyonun içine bir if koşulu ekleyin. If koşulu sensör çalıştığında çalışmalı. Biri default olmak üzere 7 adet case tanımlayın. Bu caseler sırasıyla, “Yukarı”, “Aşağı”, “Sol”, “Sağ”, “Yakın” ve “Uzak” el hareketlerini tanımlasın. Case’lere el hareketlerini kütüphane fonksiyonu ile tanımlayın. Default olan duruma el hareketinin olmadığı ekran çıktısını yazın.

6.PNG


Bu yazımda Arduino mikrokontrolörü için "sparkfun" adlı GitHub kullanıcısı tarafından yazılmış " APDS-9960 RGB and Gesture Sensor" kütüphanesinin kurulumu, proximity (yakınlık) sensörleri hakkında bilgi vererek, basit bir el yakınlık ve hareket algılayıcı yaparak kütüphanenin kullanımını gösterdim. Umuyorum ki vermiş olduğum bilgileri beğenirsiniz, okuduğunuz için teşekkürler. Başka yazılarda görüşmek dileğiyle.

Kütüphane hakkında daha fazla bilgi ve kaynak için aşağıdaki linki kullanabilirsiniz.

GitHub: https://github.com/sparkfun/APDS-9960_RGB_and_Gesture_Sensor

Örnek projenin kaynak kodu:

#include <Wire.h>
#include <SparkFun_APDS9960.h>

#define sensorInterrupt 2 // Sensörün interrupt bağlantı pinini atıyoruz.

SparkFun_APDS9960 apds = SparkFun_APDS9960(); // APDS-9960 sensörünün değişkenini yazıp atıyoruz.
int interruptSR = 0;                          // Interrupt Service Routine (ISR) için tanımladığımız değişken.

void setup() {

  Serial.begin(9600);                  // 9600 baud rate'de seri haberleşmeyi başlatır.
  pinMode(sensorInterrupt, INPUT);     // Sensör interrupt pinini input olarak atar.
  
  attachInterrupt(0, interruptIslemi, FALLING); // "Interrupt service routine" işlemini başlatır.


  if ( apds.init() ) {                       // APDS-9960 Proximity sensörünün konfigürasyon (I2C üzerinden) durumunu ekrana yansıtır.
    Serial.println("Konfigürasyon tamamlandı.");
  } else {
    Serial.println("Hata! Konfigürasyon tamamlanamadı.");
  }
  
 
  if ( apds.enableGesturesensorInterrupt(true) ) {    // APDS-9960 Proximity sensörün çalışıp-çalışmadığını ekrana yazdırır.
    Serial.println("Proximity sensörü devrede.");
  } else {
    Serial.println("Hata! Proximity sensörü devreye alınamadı.");
  }
}


void loop() {
  
  if( interruptSR == 1 ) {      // Sensöre interrupt geldiği durumda 
    detachInterrupt(0);         // el hareketini algılama işlemini başlatır.
    elHareketi();
    interruptSR = 0;
    attachInterrupt(0, interruptIslemi, FALLING);
  }
}

void interruptIslemi() {    // Sensör el hareketi algıladığında, ISR'i tamamlar.
  interruptSR = 1;
}

void elHareketi() {        // El hareketlerini ve ekran çıktılarını tanımlayan fonksiyon.
  
  >   if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP:
        Serial.println("Yukarı");
        break;
      case DIR_DOWN:
        Serial.println("Aşağı");
        break;
      case DIR_LEFT:
        Serial.println("Sol");
        break;
      case DIR_RIGHT:
        Serial.println("Sağ");
        break;
      case DIR_NEAR:
        Serial.println("Yakın");
        break;
      case DIR_FAR:
        Serial.println("Uzak");
        break;
      default:
        Serial.println("El hareketi algılanamadı");
    }
  }
}



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @forkonti, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

bilgilendirici güzel bir post olmuş

Güzel yorumunuz için teşekkür ederim.

Your Post Has Been Featured on @Resteemable!
Feature any Steemit post using resteemit.com!
How It Works:
1. Take Any Steemit URL
2. Erase https://
3. Type re
Get Featured Instantly – Featured Posts are voted every 2.4hrs
Join the Curation Team Here

Hey @drencolha I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • This is your first accepted contribution here in Utopian. Welcome!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

This post has received a 7.59 % upvote from thanks to: @drencolha.
For more information, click here!!!!
Send minimum 0.100 SBD to bid for votes.

Before sending a transfer to @minnowhelper, verify that your publication meets these conditions (http://www.minnowhelper.com/conditions.php). After the transfer is made, no claims will be received.


The Minnowhelper team is still looking for investors (Minimum 10 SP), if you are interested in this, read the conditions of how to invest click here!!!
ROI Calculator for Investors click here!!!

The @OriginalWorks bot has determined this post by @drencolha to be original material and upvoted it!

ezgif.com-resize.gif

To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!

Please note that this is a BETA version. Feel free to leave a reply if you feel this is an error to help improve accuracy.