Vídeo: Robô com motor shield – Parte 2 12

Na segunda parte do projeto do robô móvel autônomo utilizando Arduino UNO e Motor Shield L293D, desenvolveremos o sistema de sensoriamento do mesmo. Na primeira parte deste projeto, no post Robô com Motor Shield – Parte 1, explanamos sobre o controle dos motores e lógica de funcionamento.

A lógica de funcionamento completa do Robô com motor shield 4×4 já foi explanada no primeiro post, porém cabe uma breve revisão da mesma, através do fluxograma da Figura 1.

Robô com motor shield Parte 2

Figura 1 – Fluxograma de funcionamento do Robô

Ao iniciar o programa, o robô move-se para frente lendo o sensor frontal de distância e assim permanecerá até que detecte um obstáculo. Detectando um obstáculo frontal, a unidade pára, vira o sensor para esquerda com auxilio de um servo motor e lê a distância. Após, move o sensor para direita e lê a distância. O robô armazenará estas duas medidas. O próximo passo consiste em comparar as distâncias, para determinar qual é a maior. O robô fará a tomada de decisão, desviando para a maior distância encontrada, pois teoricamente, será o caminho mais simples, não existindo um obstáculo tão próximo.

Sensor Ultrassônico HC-SR04

Quando necessitamos medir alguma distância com precisão de centímetros, o sensor HC-SR04 é um dos dispositivos mais indicados (Figura 2). Gerando-se um pulso de trigger a partir do Arduino, é possível fazer o levantamento das curvas do sensor, que gera um pulso no pino ECHO diretamente proporcional à distância a que se encontra de algum obstáculo.

Sensor-Ultrassonico-HC-SR04

Figura 2 – Sensor Ultrassônico HC-SR04

Na Figura 3 pode-se observar as curvas geradas pelo sensor, que o datasheet do fabricante prevê.

Diagrama de tempo HC-SR04

Figura 3 – Curvas do Sensor Ultrassônico

De acordo com o datasheet, envia-se um pulso de gatilho (trigger) com duração de 10µs, após este pulso, o transmissor do sensor envia 8 pulsos ultrassônicos na frequência de 40kHz que o seu receptor receberá em forma de eco. Após isto, o pino ECHO irá a nível alto por um tempo proporcional à distância a que o sensor encontra-se do obstáculo. A distância em centímetros é o resultado do tempo que o pulso de ECHO permanece em nível alto, dividida por 58 (mais detalhes no datasheet).

O diagrama esquemático completo do Robô pode ser visto na Figura 4.

Diagrama Robô 4x4

Figura 4 – Diagrama esquemático completo do Robô

Como pode-se observar, utilizou-se o Motor Shield L293D como driver para controle dos 4 motores do Robô, adicionando-se o sensor ultrassônico HC-SR04 para verificação de obstáculos e medida de distância e um servo motor de posição, que direciona o sensor adequadamente no momento das medidas. Todos estes componentes para montagem do robô com motor shield estão disponíveis na Loja FILIPEFLOP.

Programa Robô com motor shield – Final

O software completo e comentado pode ser analisado a seguir.

Para mais detalhes, acesse o vídeo disponível no início deste post, e para download dos arquivos utilizados neste post sobre robô com motor shield, acesse este link.

Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

12 Comentários

  1. WAGNER RAMBO, obrigado pelas orientações. vou montar o meu, se tiver dúvidas entrarei em contato.
    Espero que continues a ajudar nos nossos primeiro passos.
    ABÇS!
    Bernardes

    1. Valeu José! Fique sempre ligado aqui no blog da Filipe Flop!

      abraços

  2. Gostei, vou fazer um.

    1. Valeu Thiago! Bons projetos para você!

      abs!

  3. Venho acompanhando filipiflop e WR KIts Engenharia, Adilson…… são feras…… deve ter mais gente (PARABÉNS)….. como faço pra adquirir as peças para montar este projeto? Tenho o arduino já. Me envia contato por e-mail por gentileza. Abraço!

    1. Boa tarde Higor,

      Muito obrigado. O material para construção do robô você encontra na Loja FILIPEFLOP: https://www.filipeflop.com

      Abraço!

      Adilson – Equipe FILIPEFLOP

  4. Gostei do exemplo. Estou trabalhando em um protótipo que irá funcionar de maneira autonoma e também por meio de comandos que enviarei na porta serial através de uma shield wi-fi e uma interface web. Gostaria de ver algum exemplo prático.

    1. Valeu Eugenio! Podemos pensar em projeto assim para daqui uns tempos, fique ligado aqui no blog.
      Abraço!
      Wagner Rambo

  5. Olá, tem como fazer esse robô utilizando o módulo Bluetooth? Estou estudando fazer um robô para projeto de Feira na minha escola… e como ficaria o código se colocasse também o Bluetooth?
    Att, Cheila.

  6. Wagner,
    como sempre muito didático, parabéns. Cara, montei o projeto, usei o programa, porém estou enfrentando 2 problemas:
    1- ao alimentar o arduino com a bateria de 9v (recarregável – 260mAh), o servo e o sensor parecem não estar recebendo energia suficiente para rodar, quando retiro a alimentação por bateria e plugo o cabo USB, funciona normal. A bateria não me parece ser o problema pois já medi e está com a tensão correta (também troquei por uma nova e nada…). O motor shield estou com as 5 pilhas, conforme orientação.
    2- o funcionamento é automático e não autômato, ou seja, ele segue a rotina do programa fazendo o que está lá passo a passo, mas não está medindo ou tomando decisões. Por exemplo: ao ligar, ele gira o servo, supostamente faz as medições e anda para frente por um intervalo de tempo. Então pára, supostamente faz as medições de novo e segue… isto é, se ao seguir tiver um objeto a frente, ele bate até dar o tempo pré estabelecido e supostamente o sensor fazer as medições novamente, mas ao fazer as medições ele segue “cegamente” para frente, não importa se já estava empurrando o objeto ou não.
    Como faço para que o sensor fique constantemente medindo enquanto o robô anda para frente e se encontrar um obstáculo ele efetivamente pare e tome a decisão?! Desculpe se eu estiver errado na conclusão, mas é o que me parece que este robô está fazendo. O que posso estar fazendo de errado?
    Obrigado pela atenção.
    rogerio.

  7. Qual a lista de materiais completa para aquisição do robô?

  8. Muito bom o tutorial, porém estou enfrentando alguns problemas.

    Ao plugar o USB o carrinho funciona perfeitamente, porém, ao usar a bateria de 9V ele fica com uma velocidade muito alta e acaba batendo nos obstáculos, poderia me ajudar a resolver o problema?

    Aguardo seu retorno,
    Att.