Como construir um robô seguidor de objetos usando Arduino

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

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.