Ana Sayfa Arduino Konuşma Engelliler İçin El Hareketlerini Yazıya ve Sese Çeviren Eldiven

Konuşma Engelliler İçin El Hareketlerini Yazıya ve Sese Çeviren Eldiven

13 min read
7
1
7,434

Merhaba Arkadaşlar bu yazımda sizlere Sakarya Üniversitesi Mekatronik Mühendisliği Bitirme Tezi olan projemi anlatacağım.Türkiye’de ve Dünya’da engellilerin sahip oldukları fiziksel işlev bozuklukları nedeniyle topluma tam anlamıyla katılmalarında sorunlar oluşmaktadır. Gerek günlük hayatta gerekse iş hayatına sınırlı ölçüde katılabilen engellilerin sınırları aşması, iletişimlerini ve hayatlarını kolaylaştırması için ’El Hareketlerini Yazıya ve Sese Çeviren Eldiven’  projesi yapılması amaçlanmıştır.Bu proje yapılırken işaret dili model alınmıştır. İşaret dili, işitme engellilerin kendi aralarında iletişim kurarken, el hareketlerini ve yüz mimiklerini kullanarak oluşturdukları görsel bir dildir.

 

Proje’de bir G/Ç kartı ve Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından oluşan fiziksel programlama platformu olan Arduino Mega kartı kullanılmıştır. Arduino’nun bu proje’de tercih edilmesini sağlayan en önemli nedeni mikrodenetleyici konusunda detaylı bilgi sahibi olmayı gerektirmeden herkesin programlama yapabilmesini sağlayan Arduino kütüphaneleridir.Proje’de bir çok farklı arduino kütüphanesi kullanılmıştır.Projemiz iki kısımdan oluşmaktadır.

ekran_arduino_mega

 

İlk kısım elimize giyeceğimiz eldivendir.Eldivenin üzerinde her parmak için ayrı ayrı Flex(esneklik) sensörleri bulunmaktadır.Flex(esneklik) sensörleri esnedikçe sensör üzerindeki dirençte artmaktadır.Flex sensörünün direnci metal pedler kıvrımın dışında olduğunda değişmektedir.Eldivenin üzerinde ayrıca bir adet eldivenin sağa,sola,aşağı,yukarı gibi konum değişikliklerinin ayırt edilmesi amacıyla IMU sensörünü de bulunmaktadır.Flex sensör ve IMU’dan alınan ortak verilere göre elimizin hareketi bir kelime olarak ikinci kısım olan Ekran ve Hoparlöre aktarılır.Kelime ekranda yazı olarak , hoparlörden ise ses olarak karşıdaki insana aktarılır.

akıllı_Eldiven

 

Projenin ikinci kısmı Ekran ve Hoparlörden oluşmaktadır. Birinci kısımdaki sensörlerden gelen bilgilere göre bu kısımda çıkış işlemleri yapılmaktadır.Kelimeler ekranda yazı olarak,Hoparlörden ise ses olarak çıkmaktadır.Ses çıkarma işlemini yapabilmek için Sd Karta ihtiyacımız bulunmaktadır.Sd Karta kayıt ettiğimiz  .Wav uzantılı dosyalar sesnsörlerden gelen verilere göre çıkış vermektedir.

eldiven_sayfa

 

 

Kullanılan Malzemeler

  • Arduino Mega
  • Flex Sensörler
  • MPU6050 Sensör
  • SD Card Modulü
  • Hoparlör
  • 3.2 ” TFT Ekran
  • Jumper Kablolar
  • Eldiven
  • 3D Baskı için baski@roboturka.com’a mail atabilirsiniz.

 

 

Projenin kodlarını aklınızda bir fikir olması açısından aşağıda paylaştım.Fikir ve sorularınzı çekinmeden sorabilirsiniz.Bir dahaki yazıda görüşmek üzere:)


#include <UTFT.h> // TFT Ekran Kütüphanesi
#include<Wire.h> // I2C fonksiyonlarını kullanabilmek için Wire.h kütüphanesi
#include <SD.h> // SD Card Kütüphanesi
#include <TMRpcm.h> // Hopörlörü Kullanbilmek için gerekli kütüphane
#include <SPI.h> // SPI fonksiyonlarını kullanabilmek için SPI.h kütüphanesi
 
#define CSpin 4
TMRpcm tmrpcm;
 
const int MPU=0x68;//MPU-6050'nin I2C haberleşme adresi
int AcZ_value;
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;// IMU'dan alınacak değerlerin kaydedileceği değişkenler
 
int sensor1,sensor2,sensor3,sensor4,sensor5; // Her bir parmak için kullanılacak olan flex sensorlerin değerlerinin okunacağı değişkenler
 
extern uint8_t SmallFont[]; //Kullanilan UTFT ekrani icin gerekli tanimlamalar
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
UTFT myGLCD (ITDB32S,38,39,40,41);
 
void setup(){
 
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0); // MPU-6050 çalıştırıldı
Wire.endTransmission(true);
// I2C haberleşmesi başlatıldı ve MPU-6050'nin ilk ayarları yapıldı
 
tmrpcm.speakerPin = 11; //Eğer arduino uno kullanıyorsanız 9, mega ise 11 yazın
Serial.begin(9600); // serial açılıyor
 
if (!SD.begin(CSpin)) { //kart başlatılamazsa
Serial.println("SD Kart yok yada baglanti basarisiz");
return; // programı sonlandırır
}
Serial.println("SD Kart baglandi");
tmrpcm.volume(1); // 1 açık, 0 kapalı (Mute)
tmrpcm.setVolume(7); // Ses düzeyi 0-7 arası olabilir.
 
myGLCD.InitLCD();
myGLCD.clrScr();
 
}
 
void loop(){
 
verileriOku();//IMU'dan değerler okundu
 
Serial.print("ivmeX = ");
Serial.print(AcX);
Serial.print(" | ivmeY = ");
Serial.print(AcY);
Serial.print(" | ivmeZ = ");
Serial.print(AcZ);
Serial.print(" | GyroX = ");
Serial.print(GyX);
Serial.print(" | GyroY = ");
Serial.print(GyY);
Serial.print(" | GyroZ = ");
Serial.println(GyZ);
 
AcZ_value = map(AcZ, 0, 17000, 0,255);
Serial.print(" | AcZ_value = ");
Serial.println( AcZ_value);
 
sensor1= analogRead(0);
sensor1=map(sensor1, 700, 900, 0,255);
Serial.print("analog input1: ");
Serial.print(sensor1,DEC);
 
sensor2= analogRead(1);
sensor2=map(sensor2, 700, 900, 0,255);
Serial.print("analog input2: ");
Serial.print(sensor2,DEC);
 
sensor3= analogRead(2);
sensor3=map(sensor3, 700, 900, 0,255);
Serial.print("analog input3: ");
Serial.print(sensor3,DEC);
 
sensor4= analogRead(3);
sensor4=map(sensor4, 700, 900, 0,255);
Serial.print("analog input4: ");
Serial.print(sensor4,DEC);
 
sensor5= analogRead(4);
sensor5=map(sensor5, 700, 900, 0,255);
Serial.print("analog input5: ");
Serial.print(sensor5,DEC);
 
delay(1000);
 
//Sensorlerden okunan değerlere göre ekrana yazılar yazılıp,Sd Card'a kayıtlı ses dosyaları yürütülmektedir.
 
if (sensor1>150){
 
myGLCD.clrScr();
myGLCD.setColor(65,255,0);
myGLCD.setBackColor(125,35,50);
myGLCD.fillScr(30,60,120);
myGLCD.setFont(BigFont);
myGLCD.print("MERHABA",CENTER,90);
tmrpcm.play("merhaba.wav"); // Wav dosyasını yürüt
delay(1000);
}
 
else if ((sensor2 > 112) && (AcZ_value < 100) ){
 
myGLCD.clrScr();
myGLCD.setColor(65,255,0);
myGLCD.setBackColor(125,35,50);
myGLCD.fillScr(30,60,120);
myGLCD.setFont(BigFont);
myGLCD.print("NASILSIN",CENTER,90);
tmrpcm.play("nasilsin.wav"); // Wav dosyasını yürüt
delay(1000);
}
else if (sensor3 > 112) {
 
myGLCD.clrScr();
myGLCD.setColor(65,255,0);
myGLCD.setBackColor(125,35,50);
myGLCD.fillScr(30,60,120);
myGLCD.setFont(BigFont);
myGLCD.print("IYIYIM",CENTER,90);
tmrpcm.play("iyiyim.wav"); // Wav dosyasını yürüt
delay(1000);
}
else if (sensor4 > 100 ){
 
myGLCD.clrScr();
myGLCD.setColor(65,255,0);
myGLCD.setBackColor(125,35,50);
myGLCD.fillScr(30,60,120);
myGLCD.setFont(BigFont);
myGLCD.print("IYI GUNLER",CENTER,90);
tmrpcm.play("iyignler.wav"); // Wav dosyasını yürüt
delay(1000);
}
else{
Serial.println("boş");
}
}
void verileriOku(){
 
Wire.beginTransmission(MPU);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU,14,true);
 
/*
* Sırası ile okunan her iki byte birleştirilerek sırası ile değişkenlere yazdırıldı
* Böylece IMU'dan tüm değerler okunmuş oldu
* 0X3B adresi imu değerlerinden ilk sensörün değerine denk gelmektedir.
* IMU'dan tüm değerlerin okunabilmesi için bu adresten başlandı
*/
 
AcX=Wire.read()<<8|Wire.read();
AcY=Wire.read()<<8|Wire.read();
AcZ=Wire.read()<<8|Wire.read();
Tmp=Wire.read()<<8|Wire.read();
GyX=Wire.read()<<8|Wire.read();
GyY=Wire.read()<<8|Wire.read();
GyZ=Wire.read()<<8|Wire.read();
 
}
Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Muhammet Özcan
Daha Fazla Göster -  Arduino

7 Yorumlar

  1. Emre

    24 Nisan 2017 at 10:28

    Selam ben namik kemal unuversitesinde elektronik bolumunde ogrenim gormekteyim.bzimde bi bitirme projesine ihtiyac duymakyatim ve bircok proje arastirdim ve olmadi ya hocam kabul etmedi yada ben yapamadim bana onerebileceginiz bi proje varmidir acaba cokk acill ihtiyacim var:-(

    Reply

    • Bilal Kaya

      Bilal Kaya

      24 Nisan 2017 at 14:17

      merhabalar Emre,

      iot konuları ile alakalı bir proje yapabilirsiniz aslında.Akıllı buzdolabı,akıllı otopark gibi projeler olabilir mesela 🙂

      Reply

  2. yusuf

    29 Nisan 2017 at 01:01

    bu projeyi yapmaya calısıyoruz bize yardımcı olabilirmisiniz bazı yerlerde cıkamıyoruz

    Reply

    • Bilal Kaya

      Bilal Kaya

      29 Nisan 2017 at 14:31

      içinden çıkamadığınız yerleri buradan sorabilirsiniz 🙂

      Reply

  3. […] Konuşma Engelliler İçin El Hareketlerini Yazıya ve Sese Çeviren Eldiven […]

    Reply

  4. Tayfun

    22 Eylül 2017 at 14:49

    Merhaba hocam. Bitirme projesi olarak kullanmak istiyorum bu projeyi ama devre şeması konusunda sıkıntı yaşadım devre şeması konusunda yardımcı olabilir misiniz ? Teşekkür ederim.

    Reply

    • Muhammet Özcan

      Muhammet Özcan

      25 Eylül 2017 at 08:37

      Merhabalar elimde şu an için kapsamlı bir devre şeması bulunmamaktadır.Ekran ve Flex sensör bağlantılarıyla ilgili uygulamalar sitemizde mevcuttur.Diğer takıldığın bağlantıları sormak istersen sorabilirsin.Yardımcı olmaya çalışırım.

      Reply

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

LabVİEW Kurulum Ve Aktivasyon

Merhaba Arkadaşlar bu yazımızda Labview 2016 Kurulum ve Aktivasyon işleminin nasıl yapılac…