Mobil Arduino Dikontrol Suara dengan BLE – Panduan DIY
Komponen dan Perlengkapan
- Arduino UNO – 1 unit
- Papan Rohok (generic) – 1 unit
- Motor DC (generic) – 2 unit
- Regulator Linier (7805) – 1 unit
- Driver Motor Dual H-Bridge Texas Instruments L293D – 1 unit
- Kabel Jumper (generic) – 1 set
- Modul Bluetooth Low Energy (BLE) (Generic) – 1 unit
Tentang Proyek Ini
Komponen:
- Arduino Uno
- Papan rohok
- Motor x2
- Roda x2
- Chassis (ukuran yang sesuai)
- Regulator Tegangan LM7805
- L293D
- Baterai 12V (sumber daya)
- Kabel jumper
- Modul Bluetooth HC-05
Anda dapat menemukan aplikasi di sini: https://play.google.com/store/apps/details?id=appinventor.ai_cempehlivan92.Arduino_Sesli_Kontrol
Ide:
Kita menghubungkan modul Bluetooth dengan aplikasi seluler. Setelah selesai, perintah yang kita berikan melalui seluler dikirim ke Arduino melalui modul. Kami menerima karakter demi karakter dari buffer serial yang dikirim oleh aplikasi dan menggabungkannya untuk membentuk string.
Kami kemudian membandingkannya dengan perintah. Jika cocok, perintah dilakukan. Misalnya, ketika string yang kami terima adalah "Right", bot berbelok ke kanan.
Koneksi:
Temukan semua koneksi di sini:https://yainnoware.blogspot.com/p/voice-controlled-car.html
Kode:
int motor_input1=11; int motor_input2=10; int motor_input3=5; int motor_input4=6; String voice; void setup() { Serial.begin(9600); pinMode(motor_input1, OUTPUT); //MOTOR KANAN pinMode(motor_input2, OUTPUT); //MOTOR KANAN pinMode(motor_input3, OUTPUT); //MOTOR KIRI pinMode(motor_input4, OUTPUT); //MOTOR KIRI } void loop() { while(Serial.available()>0) { delay(10); char c=Serial.read(); if(c=='#') { break; } voice+=c; } if(voice=="forward"){ digitalWrite(motor_input1, LOW); digitalWrite(motor_input2, HIGH); digitalWrite(motor_input3, LOW); digitalWrite(motor_input4, HIGH); delay(5000); } else if(voice=="back"){ digitalWrite(motor_input1, HIGH); digitalWrite(motor_input2, LOW); digitalWrite(motor_input3, HIGH); digitalWrite(motor_input4, LOW); delay(5000);} else if(voice=="left"){ digitalWrite(motor_input1, LOW); digitalWrite(motor_input2, HIGH); digitalWrite(motor_input3, HIGH); digitalWrite(motor_input4, LOW); delay(800); } else if(voice=="right"){ digitalWrite(motor_input1, HIGH); digitalWrite(motor_input2, LOW); digitalWrite(motor_input3, LOW); digitalWrite(motor_input4, HIGH); delay(800); } if(voice.length()>0) { Serial.println(voice); voice=""; digitalWrite(motor_input1, LOW); digitalWrite(motor_input2, LOW); digitalWrite(motor_input3, LOW); digitalWrite(motor_input4, LOW); } }