Índice:

Detectar obstáculos de maneira assíncrona com ultrassons: 4 etapas
Detectar obstáculos de maneira assíncrona com ultrassons: 4 etapas

Vídeo: Detectar obstáculos de maneira assíncrona com ultrassons: 4 etapas

Vídeo: Detectar obstáculos de maneira assíncrona com ultrassons: 4 etapas
Vídeo: Sensores de Obstáculos para Projetos Robóticos #MaratonaMaker 2024, Julho
Anonim
Detectar obstáculos de maneira assíncrona com ultrassons
Detectar obstáculos de maneira assíncrona com ultrassons

Estou construindo para me divertir um robô que quero mover autonomamente dentro de uma casa.

É um trabalho longo e estou fazendo passo a passo.

Este foco instrutível na detecção de obstáculos com Arduino Mega

Os sensores ultrassônicos HC-SR04 vs HY-SRF05 são baratos e simples de usar, mas podem se tornar difíceis de integrar no loop do microcontrolador em um robô complexo. Eu queria executar a detecção de obstáculos de forma assíncrona.

_

Já publiquei 3 instrutíveis sobre os recursos deste robô:

  • Faça seu codificador de roda
  • Faça o seu WIFI Gateway
  • Usar unidade de módulo inercial

E uma documentação sobre como combinar inteligência artificial e ultrassom para localizar o robô.

Etapa 1: Qual é exatamente o problema com sensores ultrassônicos e microcontroladores?

Qual é exatamente o problema com sensores ultrassônicos e microcontroladores?
Qual é exatamente o problema com sensores ultrassônicos e microcontroladores?
Qual é exatamente o problema com sensores ultrassônicos e microcontroladores?
Qual é exatamente o problema com sensores ultrassônicos e microcontroladores?

Espera síncrona e limitações do Arduino

O código dos microcontroladores é executado em um loop e não oferece suporte a multithread. Os sensores ultrassônicos são baseados na duração do sinal. Esta duração dura até 30 m s, o que é muito longo para esperar dentro do loop quando os microcontroladores têm que lidar com vários motores e sensores (por exemplo, servo e motores DC com codificadores de roda).

Então, eu queria desenvolver um objeto que rodasse de forma assíncrona.

Etapa 2: Como funciona?

Como funciona ?
Como funciona ?

Ele foi projetado para Atmega para detecção de obstáculos. Suporta até 4 sensores ultrassônicos.

Graças à interrupção periódica do tempo, o sistema pode monitorar até 4 sensores ultrassônicos. O código principal só tem que definir qual sensor ativar com condição e limite. O principal será interrompido apenas no caso de (condição, limite) aparecer.

As principais funções são:

  • Alerta é a detecção básica de obstáculos e fornece interrupção se pelo menos 1 dos 4 sensores detectar uma distância abaixo do limite
  • Monitorar é uma função estendida que fornece interrupção em uma combinação de condição de distância de até 4 sensores. As condições possíveis são acima, abaixo, iguais ou diferentes dos limites.

Etapa 3: detalhes técnicos

Use o temporizador 4 para que o pino 6 7 8 não possa ser usado como PWM.

Para cada sensor, o objeto precisa de um PIN de gatilho e um PIN de interrupção.

Além dos PINs de interrupção de sensores, o objeto precisa de outro PIN de interrupção para uso do software.

Etapa 4: como implementar?

Como implementar?
Como implementar?

Conecte os sensores como acima

Baixe deste repositório GitHub

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • ExampleEchoObstacleDetection.ino

Crie o diretório EchoObstacleDetection dentro de sua biblioteca IDE e mova os arquivos.cpp e.h

Teste-o

Abra ExampleEchoObstacleDetection.ino.

Este é um exemplo simples de detecção de obstáculos em execução com 2 sensores ultrassônicos.

A saída é direcionada ao monitor serial. A princípio, ele imprimirá as distâncias detectadas pelos 2 sensores e, em seguida, imprimirá alertas dependendo das distâncias abaixo dos limites.

Recomendado: