Olá.
Gostaria de contribuir com a comunidade, apresentando algumas partes de um projeto que venho desenvolvendo há alguns anos.
Sou curioso em robótica e projetos eletrônicos de IOT, sendo que desenvolvo meus projetos só para conhecer a tecnologia de software e hardware por trás das coisas.
Há cerca de 4 anos pensei em desenvolver um robô que faz um mapeamento de ambiente, podendo ser um labirinto, achando uma saída ou ponto pré-determinado.
O robô foi construído na plataforma Tamiya, chassi para o veículo com esteira e caixa de engrenagem com motor duplo. A placa foi utilizada no Garagino VER 1 Básico, com um Dual Motor Garagino, ambos descontinuados.
Um dos módulos é o sensor de obstáculos. Utilizei o sensor ultrassônico ultra-sônico HC-SR04 movimentado por um Micro servo motor SG90.
Para fazer uma comunicação do robô com o celular, use o Módulo Bluetooth RS232 - HC-06.
Desenvolvi um Sketch Arduino para movimentar o radar e ler o sensor. Esse Sketch comunica com um App, desenvolvido para o App Inventor.
1- Montagem Do Hardware
Material:
1 - Protoboard;
1 - Arduino Uno ou genérico;
1 - Sensor ultra-sônico HC-SR04;
2 - Resistores de 10kΩ;
1 - Micro servo motor SG90;
1 - Módulo Bluetooth RS232 - HC06.
As portas TRIG e ECHO do SR04 vão conectadas os pinos A3 e A2 do Arduino, respectivamente.
As portas TX e RX do HC06 se conectam nos pinos D3 e D2 do Arduino, respectivamente.
Entre as portas D3 e RX existem 2 Resistores de 10kΩ ligados entre si e no pino GND do Arduino.
O SG90, se liga ao pino D9 do Arduino.
As portas GND e VCC são conectadas aos seus respectivos pontos.
2- Código Arduino
Agora vamos programar o Arduino de acordo com o fluxo abaixo.
Também segue uma cópia do arquivo ".ino" em anexo.
1º - Inclusão das bibliotecas;
2º - Definições dos pinos de acordo com a descrição da etapa anterior.
3º - Declaração de variáveis para enviar dados via bluetooth.
4º - Declaração de variáveis para o sensor de distancia.
5º - Declaração de variáveis do calculo de distância.
6º - Setup, definindo a saída para o Bluetooth e definindo o pino do servo motor.
7º - No Loop, colocar o servo para frente; fazer a leitura do bluetooth; receber um comando definido no App e ativa o sensor; parar o sensor.
8º - Criar um Void() para a leitura do sensor.
Esse Void() faz a varredura do sensor, dos ângulos 10º ao 170º, colhendo as distancias; estabelece 45 cm como a maior distancia a ser lida; organiza as variáveis diferentes para enviar para o App; gera as saídas formatadas, interpolando variáveis a uma string de formatação; especifica a utilização de buffer para armazenamento; faz a leitura a cada 50 milissegundos, mesma do temporizador do App.
9º - Criar um Void() para parar o sensor.
3 - Código App Inventor
Segue o arquivo ".aia" do App Inventor para análise, alterações e utilização.
No App Inventor vamos primeiro fazer o designer da tela.
Observações importantes:
- Na paleta Desenho e Animação, vamos utilizar a Pintura, com as seguintes propriedades: Cor De Fundo, preto; Imagem De Fundo, nenhum; Tamanho Da Fonte, 14.0; Altura, 150 pixels; Largura, 300 pixels; Largura Da Linha, 2.0; Cor De Pintura, Verde; Alinhamento Do Texto, centro : 1.
- Na paleta Sensores, vamos utilizar o Temporizador, com as propriedades de Disparos Contínuos, marcado; Ativado, marcado e Intervalo, 50 (que significa 50 milissegundos, em acordo com o Sketch do Arduino)
Nos blocos, temos 6 blocos com o controle "Quando" e 4 blocos com declaração de variáveis. 1 bloco trata da tela inicial; 2 blocos controlam a lista de pareados do bluetooth; 1 bloco cuida do temporizador; 1 bloco do botão RADAR e 1 bloco do botão PARAR O RADAR.
A maior dificuldade encontrada foi no desenho das linhas do radar, que deveriam seguir o sensor e apresentar as distâncias.
O robô ainda está em desenvolvimento.
Publicarei demais módulos a medida que forem sendo desenvolvidos.
Quem tiver interesse em participar nesse projeto estou à disposição para sugestões e compartilhamento de informações no desenvolvimento.
Abraços fraternos
Tags:
Olá pessoal.
Observei que o botão "Parar Radar", não estava funcionando.
Assim, inclui o comando no arquivo ".ino".
Agora funciona, contudo ao acioná-lo, as leituras param de aparecer na tela do celular, mas o sensor completa a varredura e para.
Segue o novo arquivo.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por