Arduino Renk Tanıma Projesi# Sesli Bildiri
Arduino ile renk tanıma projelerime sesli bildiri ekleyerek bir çeşidini yapmaya çalıştım. Sd karta yüklediğim sesleri renklere göre hoparlöre aktarıyorum.
#include <SD.h> // sd kart kütüphanesi #define Sd_Chip_pin 4 #include <TMRpcm.h> // melodi çalma kütüphanesi #include <SPI.h> TMRpcm tmrpcm; // melodi fonksiyonu oluşturma #define S2 7 #define S3 6 #define sensorOut 5 // int yogunluk = 0; // sıklık int ortalama = 15; // ortalama int kirmizi, yesil, mavi; void setup() { Serial.begin(9600); //iletişim ayarı pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pinMode(sensorOut, INPUT); // Frekans ölçeklendirme değerini% 20 olarak ayarlama tmrpcm.speakerPin = 9; // hoparlör + bacağı digital 9. pine tak if (!SD.begin(Sd_Chip_pin)) { // sd module bağlanma return; } tmrpcm.play("Proje.wav"); delay (3000); } void loop() { // Okunacak kırmızı filtrelenmiş fotodiyotların ayarlanması digitalWrite(S2, LOW); digitalWrite(S3, LOW); // Çıkış frekansını okuma yogunluk = pulseIn(sensorOut, LOW); kirmizi= yogunluk; // Seri monitörde değeri yazdırma Serial.print("Kirmizi= ");// baskı adı Serial.print(yogunluk);// Kırmızı renk sıklığı yazdırma Serial.print(" "); delay(100); /*if(yogunluk>50 && yogunluk<200) { servo1.write(30); }*/ // Okunacak yeşil filtrelenmiş fotodiyotları ayarlama digitalWrite(S2, HIGH); digitalWrite(S3, HIGH); // Çıkış frekansını okuma yogunluk = pulseIn(sensorOut, LOW); yesil= yogunluk; // Seri monitörde değeri yazdırma Serial.print("Yesil= ");// baskı adı Serial.print(yogunluk);// Yeşil renk sıklığı yazdırma Serial.print(" "); delay(100); /*if(yogunluk>100 && yogunluk<150) { servo1.write(60); }*/ // Okunacak mavi filtrelenmiş fotodiyotları ayarlama digitalWrite(S2, LOW); digitalWrite(S3, HIGH); // Çıkış frekansını okuma yogunluk = pulseIn(sensorOut, LOW); mavi= yogunluk; // Seri monitörde değeri yazdırma Serial.print("Mavi= ");// baskı adı Serial.print(yogunluk);// Mavi renk sıklığı yazdırma Serial.println(" "); delay(1000); if ( ( kirmizi- ortalama < 22 && kirmizi+ ortalama > 22 ) && ( yesil- ortalama < 32 && yesil+ ortalama > 32 ) && ( mavi- ortalama < 45 && mavi+ ortalama > 45) ) { Serial.println("------SARI------"); tmrpcm.play("Sari.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 24 && kirmizi+ ortalama > 24 ) && ( yesil- ortalama < 46 && yesil+ ortalama > 46 ) && ( mavi- ortalama < 29 && mavi+ ortalama > 29) ) { Serial.println("------PEMBE-----"); tmrpcm.play("Pembe.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 26 && kirmizi+ ortalama > 26 ) && ( yesil- ortalama < 60 && yesil+ ortalama > 60 ) && ( mavi- ortalama < 55 && mavi+ ortalama > 55) ) { Serial.println("-----TURUNCU----"); tmrpcm.play("Turuncu.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 28 && kirmizi+ ortalama > 28 ) && ( yesil- ortalama < 79 && yesil+ ortalama > 79) && ( mavi- ortalama < 61 && mavi+ ortalama > 61) ) { Serial.println("-----KIRMIZI----"); tmrpcm.play("Kirmizi.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 45 && kirmizi+ ortalama > 45 ) && ( yesil- ortalama < 48 && yesil+ ortalama > 48 ) && ( mavi- ortalama < 60 && mavi+ ortalama > 60) ) { Serial.println("------YESIL-----"); tmrpcm.play("Yesil.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 29 && kirmizi+ ortalama > 29 ) && ( yesil- ortalama < 26 && yesil+ ortalama > 26 ) && ( mavi- ortalama < 20 && mavi+ ortalama > 20) ) { Serial.println("---ACIK MAVI---"); tmrpcm.play("Turkuaz.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 66 && kirmizi+ ortalama > 66 ) && ( yesil- ortalama < 40 && yesil+ ortalama > 40 ) && ( mavi- ortalama < 25 && mavi+ ortalama > 25) ) { Serial.println("------MAVI------"); tmrpcm.play("Mavi.wav"); delay (3000); } else if ( ( kirmizi- ortalama < 62 && kirmizi+ ortalama > 62 ) && ( yesil- ortalama < 87 && yesil+ ortalama > 87 ) && ( mavi- ortalama < 49 && mavi+ ortalama > 49) ) { Serial.println("------MOR-------"); tmrpcm.play("Mor.wav"); delay (3000); } }
Etiketler: arduino renk sensörü, renk okuma projesi, renk tanıma projesi
Eklenme Tarihi: 2 Eylül 2018
merhaba ben bu projeyi uyguladım ama sensörden aldığım değerler birbirine çok yakın bu nedenlede bir rengi başka bir yerden okuttuğumda tanımıyor tonlarını algılamıyor. Bunun için yapmam gereken bir ayar va mı
Ilk olarak kendi reklerinizi okuyun çıkan değerleri not alın . Her renk için
R g b deki değerleri.
Sonra yazılımda ilgili yerlerdeki değerler ile değiştirin.