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.
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.
Ç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.
Proximity sensörün endüstriyel olarak kullanım örnekleri.
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.
2. Arduino programını açıp sırasıyla Sketch->Include Library->Add .ZIP Library seçeneklerini seçin.
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.
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.
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.
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.
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ı.
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.
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.
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
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
bilgilendirici güzel bir post olmuş
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Güzel yorumunuz için teşekkür ederim.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @drencolha I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
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
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
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!!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@originalworks
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
The @OriginalWorks bot has determined this post by @drencolha to be original material and upvoted it!
To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit