İyi akşamlar arkadaşlar ses tanıma modülü için linkteki kütüphaneyi kullanıyorum https://github.com/elechouse/VoiceRecognitionV3 örnekler kısmındaki vr_sample_train kodunu arduinoya upload ettiğimde Check system settings error or timeout hatasını alıyorum tx-rx pinlerinde sıkıntı yok yardımlarınızı bekliyorum.
Bu modülü çok kullandım. İlk olarak USB-TTL dönüştürücü ile modülü bilgisayara bağlayıp linkteki AccessPort programı ile HEX formatında istediğin komutu(sesi) kolayca modüle yükleyebilirsin. Modül manual’i: http://cxem.net/arduino/files/arduino98\_Manual\_elechouse1.pdf Program: http://www.sudt.com/en/ap/ Daha sonra bu kodları kullanabilirsin. Case durumları modüle kaydettiğin herbir komutu temsil ediyor. Aşağıdaki örnek, bağlı olan kırmızı, yeşil ve mavi ledleri yakmak için kullanılıyor. KODLAR ----------- int redPin = 35; int greenPin = 37; int bluePin = 39; byte com = 0; //RX0 VE TX0 void setup() { Serial.begin(9600); pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); delay(2000); Serial.write(0xAA); Serial.write(0x37); delay(1000); Serial.write(0xAA); Serial.write(0x21); } void loop() { while(Serial.available()) { com = Serial.read(); switch(com) { case 0x11: digitalWrite(redPin, HIGH); break; case 0x12: digitalWrite(greenPin, HIGH); break; case 0x13: digitalWrite(bluePin, HIGH); break; case 0x14: digitalWrite(redPin, HIGH); digitalWrite(greenPin, HIGH); digitalWrite(bluePin, HIGH); break; case 0x15: digitalWrite(redPin, LOW); digitalWrite(greenPin, LOW); digitalWrite(bluePin, LOW); break; } } }
3 grubun hepsini yani 15 komutu kullanmam gerekiyor bu kodlarda 5 komut destekliyor
21,22… 31,32… şeklinde devam ettirebilirsin.
Olmuyor denedim
bu yüzden kütüphaneyle devam etmek istedim yardımcı olursanız sevinirim
Peki, 1. grup çalışıyor mu? Yani o da çalışmıyor ise, modülün baud ratesi farklı olabilir. Eğer 1. grup çalışıyor diğerleri çalışmıyor ise, Serial.write(0xAA); Serial.write(0x37); delay(1000); Serial.write(0xAA); Serial.write(0x21); yerine, Serial.write(0xAA); Serial.write(0x37); delay(500); Serial.write(0xAA); Serial.write(0x21); delay(500); Serial.write(0xAA); Serial.write(0x22); delay(500); Serial.write(0xAA); Serial.write(0x23); yazıp dener misin? Her bir grubu import etmek gerekiyor.
hemen deniyorum
olmadı hocam ilk 5 led 2.ve 3.gruptaki kelimelerle yanıyor ama diğerleri yanmıyor
Kullandığın kodu yazarmısın, daha iyi anlaşılır. Sorunun nerede olduğunu görebiliriz.
int a = 2; int b = 3; int c = 4; int d = 5; int e = 6; int f = 7; int g = 8; int m = 9; int n = 10; int k= 11; int l = 12; int o = 13; byte com = 0; //RX0 VE TX0 void setup() { Serial.begin(9600); pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(m, OUTPUT); pinMode(n, OUTPUT); pinMode(k, OUTPUT); pinMode(l, OUTPUT); pinMode(o, OUTPUT); Serial.write(0xAA); Serial.write(0x37); delay(500); Serial.write(0xAA); Serial.write(0x21); delay(500); Serial.write(0xAA); Serial.write(0x22); delay(500); Serial.write(0xAA); Serial.write(0x23); } void loop() { while(Serial.available()) { com = Serial.read(); switch(com) { case 0x11: digitalWrite(a, HIGH); break; case 0x12: digitalWrite(b, HIGH); break; case 0x13: digitalWrite(c, HIGH); break; case 0x14: digitalWrite(d, HIGH); break; case 0x15: digitalWrite(e, HIGH); break; case 0x21: digitalWrite(f, HIGH); break; case 0x22: digitalWrite(g, HIGH); break; case 0x23: digitalWrite(m, HIGH); break; case 0x24: digitalWrite(n, HIGH); break; case 0x25: digitalWrite(k, HIGH); break; case 0x31: digitalWrite(l, HIGH); break; case 0x32: digitalWrite(o, HIGH); break; } } }
2.gruptaki kelimeleri sırasıyla söyleyince 1den itibaren yanmaya başlıyor ama sadece ilk 5 led yanıyor
Kodların doğru gibi, eğer 2. grupdaki kelimeleri söylediğine tepki veriyorsa case 0x2x durumlarının içine girdiğini gösterir. Bu kodların çalıştığından eminim çünkü önceden kullanmıştım bu şekilde. Bağlantılarında sıkıntı yok değilmi?. Bazen modül algılamada da sıkıntı çıkarabiliyor. Örneğin, bende 6 sayısını söylediğimde, 4 söylemiş gibi aynı tepkiyi verebiliyor. Kaydettiğin kelimeler birbirine benzer mi karıştırıyor olabilir modül.
Hocam şimdi şöyle bir durum var ikinci grup calisiyor ama bu sefer diger gruplar çalısmıyor bağlantida sıkıntı yok kelimelerde çok farklı
Tamamdır, sorunu anladım. Ben önceden senin gibi çoklu denemediğim için bu sorunla karşılaşmamıştım, modül manual’ini okuyunca gördüm. Bu modülde, aynı zamanda yalnızca 1 grup kullnılabiliyor. Diğer grupları kullanabilmen için ilk import ettiğin grup içerisinde herhangi bir case 0xXX’yi aşağıdaki gibi kodlaman gerekiyor. Örneğin ilk 1.grubu import ettin, 1. grup içinde ilk kelimede 2. grubu çağırabilirsin. Ama bu durumda 1. grubu kullanmak istediğinde 2. grubu çağırdığın için tekrar ordan atama yapıp 1. grubu çağırmalısın. Sayende bende öğrendim
Fakat kütüphane kullanımıyla bu sorun ortadan kalkar mı orasını bilemiyorum, kütüphane kullanarak hiç çalıştırmadım. case 0x11: Serial1.write(0xAA); Serial1.write(0x00); delay(200); Serial1.write(0xAA); Serial1.write(0x22); break;
Çok teşekkürler ilgilendiginiz için iyi geceler yarin deniyecegim. ![]()
Denedim malesef gene olmadı ikinci gruba geçiyor fakat gene ilk 5 led yanıyor.