Arduino ve ses tanıma uygulamasını kullanan Ses Kontrollü Robot
Arduino kullanan ses kontrollü robotun Blok Şeması
Ses kontrollü robot için gerekli bileşenler
Arduino Uno: Arduino Uno, motor sürücü kalkanını içine monte edebildiğimiz için kullanılmaktadır. Ayrıca her şeyi kasaya yerleştirmemiz gerektiğinden ucuz, kullanımı kolay ve daha az yer kaplıyor.
Motor Sürücü Kalkanı : Motor Sürücü Kalkanı, çift tam köprü sürücüsü olan L293 IC'ye dayanmaktadır . Bu, röleler, solenoidler, DC ve kademeli motorlar gibi endüktif yükleri sürmek için kullanılır. Arduino'nuzla dört DC motor ve 2 servo sürmenizi sağlar. Her motorun hızını ve yönünü bağımsız olarak kontrol edebiliriz.HC-05 Bluetooth Modülü: Bu, Master veya Slave olarak yapılandırılabilen Seri Port Profiline sahip bir sınıf-2 Bluetooth modülüdür. Bunu, MCU, PC ile gömülü projeniz arasında bir bağlantı kurmak için seri port değişimi için kullanabiliriz.
HC-05 Özellikleri:
- Bluetooth protokolü: Bluetooth Spesifikasyonu v2.0 + EDR
- Frekans: 2.4GHz ISM bandı
- Modülasyon: GFSK (Gaussian Frequency Shift Keying)
- Emisyon gücü: ≤4dBm, Sınıf 2
- Hassasiyet:% 0.1 BER'de ≤-84dBm
- Hız: Asenkron: 2.1Mbps (Maks) / 160 kbps, Senkron: 1Mbps / 1Mbps
- Güvenlik: Kimlik doğrulama ve şifreleme
- Profiller: Bluetooth seri bağlantı noktası
- Güç kaynağı: + 3.3VDC 50mA
- Çalışma sıcaklığı: -20 ~ + 75Centigrade
- Boyut: 26,9 mm x 13 mm x 2,2 mm
4-WD Araç Şasisi: Akrilikten oluşan 2 platform içerir. Hız enkoderli 4 dc motor içerir. Montajı kolaydır ve Arduino, Bluetooth modülü ve pil takımını yerleştirmek için çok fazla alan sağlar.
Batarya: Her motor 200mA'ya kadar akım kullandı. Üç adet 3.7v, 2200mA kullandım.Li-ion hücreler paralel. Pil paketi 12,1 volt sağlar. Li-ion pil, şarj edilebilir bir pil türüdür. Böylece bu hücreleri tekrar tekrar kullanabiliriz.
Arduino kullanan ses kontrollü robotun devre şeması
Bağlantılar:
Öncelikle Arduino Uno üzerine Motor Sürücü kalkanı monte edin.
HC-05 veya HC-06 Bağlantıları:
- Vcc'yi 5 volta bağlayın.
- GND'yi Toprağa bağlayın.
- Modül Rx - Arduino Tx.
- Modül Tx - Arduino Rx.
Bluetooth modülü çalışmazsa 1K ve 2K dirençler kullanarak voltaj bölücü yapın ve 5v'yi 3.3v'ye dönüştürmek için modülün Rx pinine bağlayın.
Motordan Motora Sürücü Kalkanı:
- Sol taraf motorları M3 ve M4 terminallerine.
- Sağ taraf motorlar M1 ve M2 terminallerine.
Motor ters yönde dönüyorsa, tüm motorları aynı yönde döndürmek için kablo bağlantısını değiştirin.
Arduino kullanan ses kontrollü robotun kodu
#include<AFMotor.h> AF_DCMotor motor1(1, MOTOR12_1KHZ); AF_DCMotor motor2(2, MOTOR12_1KHZ); AF_DCMotor motor3(3, MOTOR12_1KHZ); AF_DCMotor motor4(4, MOTOR12_1KHZ); int tx=1; int rx=0; char inSerial[15]; char command; void setup() { Serial.begin(9600); //Set the baud rate to your Bluetooth module. } void loop(){ int i=0; int m=0; delay(500); if (Serial.available() > 0) { while (Serial.available() > 0) { inSerial[i]=Serial.read(); i++; } inSerial[i]='\0'; Check_Protocol(inSerial); } } void Check_Protocol(char inStr[]){ int i=0; int m=0; Serial.println(inStr); if(!strcmp(inStr,"*forward#")){ forward(); delay(1200); Stop(); for(m=0;m<11;m++){ inStr[m]=0;} i=0;} if(!strcmp(inStr,"*back#")){ back(); delay(1200); Stop(); for(m=0;m<11;m++){ inStr[m]=0;} i=0;} if(!strcmp(inStr,"*left#")){ left(); delay(350); Stop(); for(m=0;m<11;m++){ inStr[m]=0;} i=0;} if(!strcmp(inStr,"*right#")){ right(); delay(350); Stop(); for(m=0;m<11;m++){ inStr[m]=0;} i=0;} if(!strcmp(inStr,"*stop#")){ Stop(); for(m=0;m<11;m++){ inStr[m]=0;} i=0;} else{ for(m=0;m<11;m++){ inStr[m]=0; } i=0; }} void forward() { motor1.setSpeed(255); motor1.run(FORWARD); motor2.setSpeed(255); motor2.run(FORWARD); motor3.setSpeed(255); motor3.run(FORWARD); motor4.setSpeed(255); motor4.run(FORWARD); } void back() { motor1.setSpeed(255); motor1.run(BACKWARD); motor2.setSpeed(255); motor2.run(BACKWARD); motor3.setSpeed(255); motor3.run(BACKWARD); motor4.setSpeed(255); motor4.run(BACKWARD); } void left() { motor1.setSpeed(255); motor1.run(FORWARD); motor2.setSpeed(255); motor2.run(FORWARD); motor3.setSpeed(0); motor3.run(RELEASE); motor4.setSpeed(0); motor4.run(RELEASE); } void right() { motor1.setSpeed(0); motor1.run(RELEASE); motor2.setSpeed(0); motor2.run(RELEASE); motor3.setSpeed(255); motor3.run(FORWARD); motor4.setSpeed(255); motor4.run(FORWARD); } void Stop() { motor1.setSpeed(0); motor1.run(RELEASE); motor2.setSpeed(0); motor2.run(RELEASE); motor3.setSpeed(0); motor3.run(RELEASE); motor4.setSpeed(0); motor4.run(RELEASE); }
Arduino kullanarak ses kontrollü robotun çalışması
Tüm bağlantıları doğru bir şekilde yaparsanız , Play Store'dan AMR_Voice uygulamasını indirin . Uygulamayı açın, robotu çalıştırın ve uygulamayı Bluetooth modülüne bağlayın. Belirtilen komutları söylediğimizde, uygulama talimatı Bluetooth üzerinden Arduino'ya gönderir ve ardından Arduino tanımlanan işlemi gerçekleştirir.
Not: Arduino'ya kod yüklerken Bluetooth modülünün Rx ve Tx pinlerini daima çıkarın, aksi takdirde bazı hatalar gösterir ve kod yüklenmez. Bluetooth modülünü cep telefonunuza ilk kez bağladığınızda “1234” veya “0000” şifresini deneyin. Tekerlekler ters yönde dönüyorsa, motor bağlantısını Motor Sürücü Kalkanı terminalinden değiştirir. Robotu sesle kontrol etmek etkili bir yol değildir. Kontrol etmesi eğlenceli ama Gesture kontrol uygulamasını tavsiye ederim.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.