Robô controlado por fala
Componentes e suprimentos
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 |
Ferramentas e máquinas necessárias
![]() |
|
Aplicativos e serviços online
![]() |
|
Sobre este projeto
Robôs são legais. Ter um robô que pode se mover ouvindo seus comandos de voz é mais legal. Fazer um robô controlado por fala ou voz com o Arduino é cada vez mais legal. Porque os Arduino são baratos e fáceis de ajustar.
Vamos começar a fazer, você também pode assistir ao vídeo tutorial.
Etapa 1:peças necessárias



O robô é baseado em PCB. Um PCB que eu projetei para usar em diferentes robôs. Vamos ver quais outros componentes eu usei -
Eletrônica:
- Arduino Nano - 1x
- Módulo driver do motor L298n - 1x
- Módulo Bluetooth Hc05 - 1x
- motor DC e roda compatível - 2x
- Robô multifuncional PCB - 1x (link)
- Alguns cabeçalhos masculinos e femininos
Para fazer corpo:
- Folha de PVC
- pistola de cola quente
Software:
- Arduino.ide
- Um aplicativo que eu fiz
É isso, agora estamos prontos.
Etapa 2:Princípio:como funcionará?
É sempre bom ter uma compreensão clara do que você vai fazer antes de começar a bagunçar as coisas. Pode ser que você não bagunce, mas eu faço.
Então, o Arduino é um mini computador ou, digamos, microcontrolador. Ele não tem potência ou capacidade suficiente para realizar o reconhecimento de fala (a partir de agora). Mas, para minha sorte, minha placa PCB tem uma porta para conectar o módulo Bluetooth. Significa que posso conectar nosso Arduino sem fio a outros dispositivos. E estou aproveitando isso. Então, terei que fazer um aplicativo Android que possa realizar a operação "Speech to Text" usando a API do google (requer internet) e após receber o texto, ele irá comandar o Arduino via Bluetooth.
Portanto, se eu disser 'Avançar', o robô obterá 'F' e se moverá para frente. Esse é o conceito. Agora vamos fazer isso.
Etapa 3:faça o corpo
Fiz o chassi / carroceria deste robô com uma folha de PVC de 13cm / 13,5cm. É mais fácil de cortar com uma lâmina / faca e funciona muito bem com colas também.
Como você pode ver no vídeo, cortei peças para montar dois motores e rodas dentro da área do tabuleiro. E então os colou.
Quando você fizer o seu, não precisa torná-lo exatamente assim. Seu bot é sua escolha.
Etapa 4:construir circuito ou usar PCB?




Mais uma vez, chegamos ao ponto em que a escolha é sua. Mas, para fazer um circuito como este requer um monte de fiação, e se você fizer isso usando placa de ensaio, uma conexão incorreta pode atrapalhar todo o projeto. É por isso que gosto de usar PCBs em meus projetos.
Eu projetei este PCB usando EasyEDA e o encomendei de PCBWay.com. O PCBWay oferece qualidade a um preço mais barato. Você pode obter 10 PCB multicamadas com apenas 5 $. Eles também patrocinam projetos de alunos, o que é ótimo para mim.
De qualquer forma, fui para a seção Quick Order onde tudo que eu precisava fazer é fazer o upload do meu PCB, o sistema detectou automaticamente todos os parâmetros da minha placa e eu apenas selecionei as cores. Preto é o meu favorito e veja como ficou brilhante e legal. É melhor porque eles não aceitam dinheiro até que sua equipe de engenharia inspecione seu PCB, bem o suficiente!
Obtenha a placa PCB daqui.
No entanto, se você não pode pedir ou usar este PCB, você pode fazê-lo na placa de pão ou placa vero. Eu carreguei o circuito ruim para você. Faça o download abaixo ou obtenha aqui.
discurso-controlado-robô-esquemático.fzz
Etapa 5:conectar os eletrônicos



A conexão é direta. Conecte todas as coisas conforme mostrado no diagrama do circuito. Vou começar conectando os motores ao driver do motor -
Motor para motor,
- Os fios do Motor1 vão para uma extremidade do driver,
- Motor2 vai para o outro lado.
Para controlar os motores,
- Os pinos do Motor1 no driver do motor L298n se conectam aos pinos do Arduino 2 e 3 (digital).
- Motor2 conecta em 4 e 5
Módulo Bluetooth,
- Tx para Arduino Rx
- Rx para TX
- VCC para 5V / VCC
- Gnd para GND (Terrestre)
Bateria,
Usei bateria de 7,4V para os motores, que se conecta a entrada do driver do motor e Arduino VIN e pino de aterramento. É necessária uma conexão de aterramento comum.
Aí conectei a bateria em todas as coisas acesas. Quer dizer, eu não me enganei.
Etapa 6:Programação do Arduino
É um programa simples. O programa verifica os caracteres e, se forem recebidos, vai da esquerda para a direita etc. A lista é -
- 'F' - Avançar
- 'B' - Retroceder
- 'L' - Esquerda
- 'R' - Direito
O módulo Bluetooth está conectado na porta serial, então o Arduino está se comunicando por serial em 9600 bps.
Eu configurei a seção Eu defini os pinos e a taxa buad -
void setup () {// inicializar o modo do pinspinMode (lm1, OUTPUT); pinMode (lm2, OUTPUT); pinMode (rm1, OUTPUT); pinMode (rm2, OUTPUT); // definir o comunicação serial rateSerial.begin (9600);}
O in mainloop verificava os dados recebidos em série
// verifica se o arduino está recebendo sinal ou não (Serial.available () ==0); val =Serial.read (); // lê o signalSerial.print (val);
E então o código principal, baixe-o aqui. Colei o código inteiro abaixo -
/ **** Arduino Speech / voice Controlled robot **** por Ashraf Minhaj * mande um e-mail para [email protected]* tutorial- ashrafminhajfb.blogspot.com * /// Declare the arduino pinsint lm1 =4; // declara o 1º motor pinsint lm2 =5; int rm1 =2; // pinsint do motor direito rm2 =3; char val; void setup () {// initlize o modo do pinspinMode (lm1, OUTPUT); pinMode (lm2, OUTPUT); pinMode (rm1, OUTPUT); pinMode (rm2, OUTPUT ); // definir a taxa de comunicação serialSerial.begin (9600);} void loop () {// verificar se o Arduino está recebendo o sinal ou não (Serial.available () ==0); val =Serial.read (); // lê o sinal // Serial.print (val); / ********* Para movimento para a frente ********* / if (val =='F') {// Serial .println ("FORWARD"); digitalWrite (lm1, HIGH); digitalWrite (rm1, HIGH); digitalWrite (lm2, LOW); digitalWrite (rm2, LOW);} / ********* Para retrocesso ********* / else if (val =='B') {digitalWrite (lm2, HIGH); digitalWrite (rm2, HIGH); digitalWrite (lm1, LOW); digitalWrite (rm1, LOW);} / ********* Right ********* / else if (val =='R') {digitalWrite (lm1, HIGH); digitalWrite (rm2, HIGH); digitalWrite (lm2, LOW); digitalWrite (rm1, LOW);} / ********* Left ********* / else if (val =='L') {digitalWrite (lm2, HIGH); digitalWrite (rm1, HIGH); digitalWrite (lm1, LOW); digitalWrite (rm2, LOW);} / ********* PARAR ********* / else {digitalWrite (lm1, LOW) ); digitalWrite (rm1, LOW); digitalWrite (lm2, LOW); digitalWrite (rm2, LOW);} atraso (10);}
Faça upload do código e crie o aplicativo.
Etapa 7:aplicativo para SPEECH to TEXT








Eu fiz o aplicativo usando o inventor de aplicativos do MIT. Você pode editar e personalizar este aplicativo de acordo com seus requisitos. Pegue o aia fie daqui.
Este aplicativo usa conectividade Bluetooth para controlar o robô. Para isso, precisei emparelhar o módulo Bluetooth HC05 com meu telefone. A senha padrão é 1234 ou 0000.
Este aplicativo usa o Google Speech to Text API para converter o que eu digo em forma de texto. Em seguida, torna a frase em minúsculas, é mais fácil processar dessa forma. E corresponde ao uso de instruções if else. Se o usuário disser 'encaminhar', envie ao Arduono a letra 'F' e ele avançará. É isso.
Crie e salve como arquivo APK, ou use o meu para instalá-lo em seu telefone.
discurso-controlado-robô-esquemático.fzz
Etapa 8:Power the Bot, Run App and Go!
Agora é só conectar a bateria e usar o aplicativo Android para brincar com seu novo robô!
Obrigado por ler. Confira meu projeto posterior -
Código
- Snippet de código # 1
- Snippet de código # 3
Snippet de código # 1 Texto simples
void setup () {// inicializa o modo dos pinos pinMode (lm1, OUTPUT); pinMode (lm2, OUTPUT); pinMode (rm1, OUTPUT); pinMode (rm2, OUTPUT); // definir a taxa de comunicação serial Serial.begin (9600);}
Snippet de código # 3 Texto simples
/ **** Arduino Speech / voice Controlled robot *** * por Ashraf Minhaj * mande um e-mail para [email protected] * tutorial- ashrafminhajfb.blogspot.com * /// Declare the arduino pinsint lm1 =4; // declara o 1º motor pinsint lm2 =5; int rm1 =2; // pinsint do motor direito rm2 =3; char val; void setup () {// inicializa o modo dos pinos pinMode (lm1, OUTPUT); pinMode (lm2, OUTPUT); pinMode (rm1, OUTPUT); pinMode (rm2, OUTPUT); // definir a taxa de comunicação serial Serial.begin (9600);} void loop () {// verificar se o Arduino está recebendo sinal ou não while (Serial.available () ==0); val =Serial.read (); // lê o sinal //Serial.print(val); / ********* Para movimento para a frente ********* / if (val =='F') {//Serial.println("FORWARD "); digitalWrite (lm1, HIGH); digitalWrite (rm1, HIGH); digitalWrite (lm2, LOW); digitalWrite (rm2, LOW); } / ********* Para retrocesso ********* / else if (val =='B') {digitalWrite (lm2, HIGH); digitalWrite (rm2, HIGH); digitalWrite (lm1, LOW); digitalWrite (rm1, LOW); } / ********* Right ********* / else if (val =='R') {digitalWrite (lm1, HIGH); digitalWrite (rm2, HIGH); digitalWrite (lm2, LOW); digitalWrite (rm1, LOW); } / ********* Left ********* / else if (val =='L') {digitalWrite (lm2, HIGH); digitalWrite (rm1, HIGH); digitalWrite (lm1, LOW); digitalWrite (rm2, LOW); } / ********* PARAR ********* / else {digitalWrite (lm1, LOW); digitalWrite (rm1, LOW); digitalWrite (lm2, LOW); digitalWrite (rm2, LOW); } atraso (10); }
Github
https://github.com/ashraf-minhaj/speech-controlled-robothttps://github.com/ashraf-minhaj/speech-controlled-robotEsquemas
discurso-controlado-robô-esquemático_hUoWKpapKe.fzzProcesso de manufatura
- Robô Raspberry Pi controlado por Bluetooth
- Construa seu robô de streaming de vídeo controlado pela Internet com Arduino e Raspberry Pi
- Núcleo IoT do Windows 10:robô controlado por fala
- Robô controlado por Wi-Fi usando Raspberry Pi
- Carro RC controlado por joystick
- Robô seguidor de linha
- Braço robótico controlado por Nunchuk (com Arduino)
- Braço do robô controlado por Ethernet
- MobBob:DIY Arduino Robot Controlado por Smartphone Android
- Robô de piano controlado por Arduino:PiBot