Você provavelmente já viu ou ouviu falar de pelo menos um dos seguintes:
- Um carrinho de bagagem inteligente em um aeroporto, estação ferroviária ou rodoviária, movido a motor ou bateria e que segue automaticamente seu “proprietário”.
- Um carrinho inteligente em uma loja de departamentos segue o cliente que o está usando.
- Uma mala inteligente que é pareada com o smartphone do dono e segue automaticamente essa pessoa.
Estes são exemplos de um “robô seguidor de objetos”. Este projeto é baseado neste conceito. O robô será programado para procurar um objeto próximo e, uma vez encontrado, irá segui-lo.
Nosso robô aqui usa um sensor de medição de distância ultrassônica (UDM) para encontrar um objeto e medir sua distância até ele. Ele emprega um servo motor para girar o sensor UDM e é alimentado por dois motores DC. O circuito de controle do nosso robô é construído usando uma placa Arduino Nano.
Confira aqui:
O que é necessário
Aqui está o que você precisa para começar:
1. Rodas
2. Motores de engrenagem CC (200-300 RPM)
3. Mini servomotor DC
4. Módulo de driver de motor DC duplo L298
5. Placa ArduinoNano
6. Sensor UDM HC SR04
7. Bateria A12 V
8. Regulador de tensão 7805
9. Um gerador de tons de melodia UM66
10. Um pequeno alto-falante de 8 ohms
Construção de robô
O robô completo é construído usando compensado ou folhas finas de madeira. Divida o robô em três seções:
1. Base (plataforma) – abriga dois motores DC onde as rodas são fixadas. Duas rodas livres adicionais também estão fixadas nesta base, ajudando a mover o robô na direção necessária.
2. Corpo principal – abriga o circuito principal do robô e a bateria. O servo motor é fixado no topo deste corpo.
3. Cabeça de robô – anexado ao eixo do servo motor e abriga o sensor UDM. Ele pode se mover em diferentes direções.
Esta figura oferece uma representação visual de cada uma das partes do robô:
Depois que o corpo do robô estiver concluído, vamos construir seu circuito de controle.
Diagrama de blocos do sistema:
Conforme mostrado neste diagrama, os principais blocos de construção do robô incluem:
- Sensor UDM HC SR04: usado para encontrar um objeto próximo e medir sua distância do robô
- Módulo de driver de motor DC duplo L298: usado para acionar ambos os motores DC, fornecendo a tensão e a corrente necessárias para cada um
- Regulador de tensão LM7805: usado para fornecer alimentação de 5 V ao sensor UDM e alimentar o servo motor por meio da bateria
- Alto-falante gerador de tom UM66: gera tom de áudio melodioso através de um alto-falante, que é usado para fornecer a saída de áudio
- Dois motores DC: usado para acionar as rodas traseiras do robô, movendo o robô para frente e para trás, bem como para a esquerda e para a direita
- Um servo motor: usado para girar a cabeça do robô (usando o sensor UDM) para frente e para trás (CW e CCW) — de 45 a 135 graus
- Bateria de 12 V: fornece motores DC e o módulo driver do motor, bem como a placa Arduino
- Placa de desenvolvimento Arduino Nano: o principal bloco de construção, ou cérebro do sistema e do programa de software.
A placa Arduino é responsável pela funcionalidade do robô, realizando tarefas como:
- Procurando e detectando um objeto
- Medindo sua distância usando o sensor UDM
- Girando o servo motor no sentido horário (CW) e anti-horário (CCW) para escanear a área usando o UDM
- Acionando os dois motores DC para mover o robô para frente ou para fazer curvas para a esquerda ou direita
- Rastreando continuamente o objeto e sua distância usando o UDM e seguindo-o através dos motores DC
- Reproduzindo um tom de áudio pelo alto-falante usando o UM66
Agora, vamos revisar detalhadamente o sistema, começando pelo diagrama do circuito e depois pelo seu funcionamento.
Diagrama de circuito:
Conforme mostrado neste diagrama, o circuito é construído usando um sensor UDM HC SR04, um módulo de driver de motor CC duplo L298, um regulador de tensão LM7805 e uma placa de desenvolvimento Arduino Nano.
O sensor UDM HC SR04 possui quatro pinos: VCC, GND, Trigger e Echo.
- O pino VCC conecta-se aos 5 V de saída do LM7805
- O pino GND conecta-se ao aterramento comum do circuito
- O pino Trigger é um pino de entrada que se conecta ao pino D7 do Arduino.
- O pino Echo é um pino de saída que se conecta ao pino D6 do Arduino
O servo motor tem uma interface de três fios: VCC, GND e Sinal.
- O LM7805 fornece uma alimentação de 5 V ao VCC.
- O sinal de modulação por largura de pulso (PWM) é fornecido ao pino de sinal do pino D10 do Arduino
Os pinos D2 a D5 do Arduino acionam os dois motores DC por meio do driver L298. Esses pinos se conectam à entrada do módulo do driver do motor e os motores DC se conectam à saída do driver do motor.
O driver do motor requer duas fontes: 12 V da bateria para os motores e 5 V do LM7805 para polarização interna e operação.
O UM66 tem três pinos: entrada, saída e terra.
- O pino de entrada se conecta ao pino D12 do Arduino
- O pino de saída conecta-se ao alto-falante
O LM7805 recebe entrada de 12 V da bateria e gera 5 V de saída regulada. A saída é fornecida ao servo motor, ao sensor UDM e ao módulo driver do motor L298.
A operação
A principal tarefa deste robô é procurar um objeto próximo e segui-lo, mantendo uma distância máxima de 30 cm atrás dele. Se o objeto parar, o robô chegará até 10 cm dele antes de parar também.
Se esse objeto se mover rápido o suficiente a mais de 30 cm de distância do robô, o robô irá parar e procurar um novo objeto mais próximo dele.
- A operação do robô começa com a busca por um objeto próximo.
- A placa Arduino dará o sinal PWM ao servo motor para girá-lo CCW de 45ó para 135ó no passo de 5o (a cabeça do robô se moverá lentamente da direita para a esquerda).
- Conforme a cabeça do robô se move, o microcontrolador busca continuamente por um objeto próximo usando o sensor UDM. Ele oferece um sinal de gatilho ao sensor e espera por um sinal de eco em retorno.
- Se nenhum objeto for localizado após um ciclo completo, o microcontrolador girará o servo motor no sentido anti-horário de 135o para 45o (e a cabeça do robô se moverá da direita para a esquerda) e pesquisará novamente.
- Se um objeto estiver localizado na frente do sensor UDM, ele enviará um sinal de eco de volta ao microcontrolador, que então calcula sua distância do objeto.
- Se a distância for superior a 30 cm, ele irá ignorá-la e continuará a procurar um objeto mais próximo.
- Se a distância for menor que 30 cm, o microcontrolador parará o servomotor e o inclinará na direção do objeto próximo.
- Se o ângulo do servo motor for menor que 90ó (significando entre 45o para 90o), então o robô direcionará ambos os motores DC para virar à direita.
- E se o ângulo do motor for maior que 90oo robô direcionará os motores DC para virar à esquerda.
- Depois de virar à esquerda ou à direita, o microcontrolador acionará ambos os motores para frente para que o robô se aproxime do objeto.
- Enquanto o robô está se movendo para frente, o microcontrolador mede continuamente a distância deste objeto usando o sensor UDM. O robô continuará a se mover para frente até atingir uma distância de menos de 30 cm do objeto.
Neste ponto, pode haver três resultados possíveis:
1. Se o objeto não estiver se movendo – o microcontrolador irá parar os motores (e, portanto, o robô) assim que o robô estiver a 10 cm de distância do objeto. Então, o microcontrolador acionará o sensor para começar a procurar um novo objeto.
2. Se o objeto estiver se movendo – o robô avança e segue o objeto.
3. Se o objeto se afastar mais de 30 cm do robô – o O microcontrolador para os motores e, portanto, o robô e aciona o sensor para começar a procurar um novo objeto.
Essas operações estão disponíveis em um programa que é baixado na memória FLASH interna da placa Arduino ATMega328. Este programa é escrito em linguagem C/C++ na ferramenta de software Arduino IDE. Ele é compilado usando o mesmo software e então baixado na placa Arduino Nano via USB.
Programa de software
(tagsParaTraduzir)Arduino