Como construir um robô seguidor de objetos usando Arduino

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

Conteúdo Relacionado

返回博客

发表评论

请注意,评论必须在发布之前获得批准。