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

  
}



Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , ,
Eklenme Tarihi: 2 Eylül 2018

Konu hakkında yorumunuzu yazın

Arduino Renk Tanıma Projesi# Sesli Bildiri (2 Yorum)

  1. 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.

HOŞ GELDİNİZ

Youtube kanalıma Abone Olabilirsiniz.