Tópicos editado

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

Exibições: 1133

Anexos

Responder esta

Respostas a este tópico

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.

 

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço