Índice:

Projeto 3: SonarDuino: 9 etapas
Projeto 3: SonarDuino: 9 etapas

Vídeo: Projeto 3: SonarDuino: 9 etapas

Vídeo: Projeto 3: SonarDuino: 9 etapas
Vídeo: Conferencia en Robotica Dr. Francisco J. Triveno Vargas 30/07/2020 2024, Novembro
Anonim
Image
Image

Caro companheiro Hobbyist, Neste projeto iremos explorar a possibilidade de ter um sistema de radar 360 graus para detecção de objetos. Ter este módulo configurado separadamente permitirá que seu robô de locomoção detecte os limites de seus arredores. Ele também pode servir como uma ferramenta de navegação no escuro, mas apenas quando você anda devagar o suficiente; p

Etapa 1: O que você precisa

Prepare o suporte do sensor ultrassônico
Prepare o suporte do sensor ultrassônico

Para fazer esta construção, você precisará comprar o seguinte:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0: rk: 2: pf: 0

Placas de prototipagem: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSw ~ Zbl232: rk: 13: pf: 0

Servo motores: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Sensores ultrassônicos: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~ IAAOSw - xbD5Fp: rk: 2: pf: 0

Etapa 2: Documentação

Como alguns de vocês já devem saber, este projeto é inspirado em outro projeto de código aberto chamado “Arduino Radar Project” feito por Dejan em “How to Mechatronics” no seguinte link: https://howtomechatronics.com/projects/arduino -radar-project /

Outro ponto que requer documentação é fazer o download das duas bibliotecas a seguir em seu ambiente de desenvolvimento:

Adafruit-GFX-Library:

Adafruit_SSD1306:

Dito isso, para realmente entender o código C, você precisará fazer alguma documentação de ambas as bibliotecas acima. Fora isso, as funções que usei em meu código têm nomes que indicam o que fazem.

Etapa 3: Prepare o suporte do sensor ultrassônico

Prepare o suporte do sensor ultrassônico
Prepare o suporte do sensor ultrassônico
Prepare o suporte do sensor ultrassônico
Prepare o suporte do sensor ultrassônico
Prepare o suporte do sensor ultrassônico
Prepare o suporte do sensor ultrassônico

Pegue qualquer pedaço de papelão e corte de acordo com a dimensão dos cabos de conexão presos ao sensor conforme mostrado na primeira foto. Depois disso, dobre esta última e cole no suporte do servo motor. Feito isso, cole os dois sensores ultrassônicos de acordo com a última imagem. Observe que o cabeçalho dos sensores deve ser soldado de forma que os cabos possam sair na frente do sensor. Isso permitirá que os cabos do sensor não interfiram uns com os outros quando a rotação de 360 graus for implementada.

Etapa 4: monte tudo em uma placa de prototipagem

Monte tudo em uma placa de prototipagem
Monte tudo em uma placa de prototipagem
Monte tudo em uma placa de prototipagem
Monte tudo em uma placa de prototipagem
Monte tudo em uma placa de prototipagem
Monte tudo em uma placa de prototipagem

Nesta etapa, você começará montando o cabeçalho preparado na etapa anterior em seu respectivo servo motor. Uma vez que o servo motor esteja cuidadosamente acostumado, você montará tudo junto em uma placa de prototipagem. Você começará soldando o Arduino Nano e, em seguida, colando o servo ao lado dele. Por fim, você soldará o pequeno display OLED na outra borda da placa.

Etapa 5: Fazendo as conexões finais

Fazendo as conexões finais
Fazendo as conexões finais
Fazendo as conexões finais
Fazendo as conexões finais
Fazendo as conexões finais
Fazendo as conexões finais

Esta etapa concluirá o lado do hardware deste projeto. Você precisará seguir os esquemas fornecidos para estabelecer todas as conexões necessárias.

Etapa 6: inicializando o programa

Inicializando o programa
Inicializando o programa

Existem dois códigos que você precisará para inicializar

Arduino (C):

Processando (java):

Ao executar o código, você terá duas opções para escolher:

Opção 1: Usando o display OLED, para isso você precisará definir a variável MODE no código C para 0.

Opção 2: Usando Seu Monitor, para isso você precisará definir a variável MODE no código C para 1. Além disso, você precisará baixar e instalar o ambiente de desenvolvimento de processamento e baixar a fonte do radar neste link: https:// github.com/lastralab/ArduinoRadar/blob/ma…

E adicione esse arquivo ao seu arquivo de código de processamento para que o código Java reconheça a fonte quando chamado.

Etapa 7: Compreendendo o Código C

Compreendendo o Código C
Compreendendo o Código C

O código consiste principalmente em dois loops ‘for’. Um está correlacionado com o passe para frente, enquanto o outro está relacionado com o passe para trás. Dentro de ambos, a função principal draw_scanner (), que desenhará as linhas do radar na tela, é chamada várias vezes. Depois de testar várias configurações, cheguei à conclusão de que precisamos substituir as linhas de radar brancas no tempo t com essas mesmas linhas de radar em preto no tempo t + 1 para excluí-las. Caso contrário, poderá ocorrer tremulação toda vez que você limpar a tela usando a função “clearDisplay ()” antes de inserir a nova grade de pixels. Como eu estava lidando com 7 linhas - para fins de design - tive que continuar salvando e passando array inteiro de 7 elementos, onde cada elemento representa o raio entre o centro do radar e o objeto detectado, se houver. Com isso em mente, o resto do código deve ser simples de entender.

Etapa 8: Compreendendo o código Java

No Processing, tive que ignorar a chamada de função para serialEvent (), que funciona apenas com portas seriais chamadas COM. Como eu estava trabalhando em um Mac, minhas portas seriais tinham um nome diferente. Dito isso, eu descompactei essa função na função principal no processamento de “draw ()”. Em relação a todo o resto, atualizei o aplicativo para atender ao design da revolução completa. Por fim, atualizei todas as formas e textos desenhados no que diz respeito à largura da tela para que o produto final se encaixe em diferentes resoluções de tela. Eu testei pessoalmente para as resoluções 1000X1000 e 500X500 e funcionou bem:).

Etapa 9: Conclusão

Este trabalho pode ser atualizado para ter 3 sensores ultrassônicos, cada um cobrindo 120 ângulos de visão, ou mesmo 4 sensores (90 graus * 4) -> 360 graus mais rápidos Varredura.

Você também pode estender o alcance do radar de 40 cm para 60 cm ou até 80 cm. Eu testei pessoalmente a função pulseIn e ajustei a variável TIMEOUT em relação a 40 cm. Essa variável depende de muitos fatores, incluindo a duração do envio do pulso e a superfície do objeto onde o pulso é refletido.

Finalmente, como afirmado antes, o próximo passo é incorporar o radarDuino com um robô de locomoção para fazer a varredura do perímetro circundante.

Recomendado: