Carro controlado por voz
Componentes e suprimentos
| | × | 1 | |
| | × | 1 | |
| | × | 2 | |
| | × | 1 | |
| Drivers de motor Texas Instruments Dual H-Bridge L293D | | × | 1 | |
| Fios de jumpers (genérico) | | × | 1 | |
| Módulo Bluetooth Low Energy (BLE) (Genérico) | | × | 1 | |
Sobre este projeto
Componentes:
- Chassi (de tamanho apropriado)
- Regulador de tensão LM7805
- bateria de 12 V (fonte de alimentação)
Você pode encontrar o aplicativo aqui:https://play.google.com/store/apps/details?id=appinventor.ai_cempehlivan92.Arduino_Sesli_Kontrol
Idéia:
Conectamos o módulo Bluetooth com o aplicativo móvel. Feito isso, os comandos que damos por meio do celular são enviados ao Arduino por meio do módulo. Aceitamos caractere por caractere do buffer serial enviado pelo aplicativo e os combinamos para formar uma string.
Em seguida, comparamos com o comando. Se corresponder, o comando é executado. Por exemplo, quando a string que recebemos é "Right", o bot vira à direita.
Conexões:
Encontre todas as conexões aqui:https://yainnoware.blogspot.com/p/voice-controlled-car.html
Código:
int motor_input1 =11; int motor_input2 =10; int motor_input3 =5; int motor_input4 =6; voz string; configuração vazia () {Serial.begin (9600); pinMode (motor_input1, OUTPUT); // MOTOR DIREITO pinMode (motor_input2, OUTPUT); // MOTOR DIREITO pinMode (motor_input3, OUTPUT); // LEFT MOTOR pinMode (motor_input4, OUTPUT); // MOTOR ESQUERDO} void loop () {while (Serial.available ()> 0) {delay (10); char c =Serial.read (); if (c =='#') {break; } Voz + =c; } If (voz =="encaminhar") {digitalWrite (motor_input1, LOW); digitalWrite (motor_input2, HIGH); digitalWrite (motor_input3, LOW); digitalWrite (motor_input4, HIGH); atraso (5000); } Else if (voz =="back") {digitalWrite (motor_input1, HIGH); digitalWrite (motor_input2, LOW); digitalWrite (motor_input3, HIGH); digitalWrite (motor_input4, LOW); atraso (5000);} else if (voz =="left") {digitalWrite (motor_input1, LOW); digitalWrite (motor_input2, HIGH); digitalWrite (motor_input3, HIGH); digitalWrite (motor_input4, LOW); atraso (800); } Else if (voice =="right") {digitalWrite (motor_input1, HIGH); digitalWrite (motor_input2, LOW); digitalWrite (motor_input3, LOW); digitalWrite (motor_input4, HIGH); atraso (800); } If (voice.length ()> 0) {Serial.println (voz); voz =""; digitalWrite (motor_input1, LOW); digitalWrite (motor_input2, LOW); digitalWrite (motor_input3, LOW); digitalWrite (motor_input4, LOW); }}