Tabla de contenido:

Detecta obstáculos de forma asincrónica con ultrasonidos: 4 pasos
Detecta obstáculos de forma asincrónica con ultrasonidos: 4 pasos

Video: Detecta obstáculos de forma asincrónica con ultrasonidos: 4 pasos

Video: Detecta obstáculos de forma asincrónica con ultrasonidos: 4 pasos
Video: Como hacer Carro que EVITA OBSTÁCULOS | ARDUINO | Obstacle Avoiding Car | ARDUINO 2024, Noviembre
Anonim
Detecta obstáculos de forma asincrónica con ultrasonidos
Detecta obstáculos de forma asincrónica con ultrasonidos

Estoy construyendo por diversión un robot que quiero mover de forma autónoma dentro de una casa.

Es un trabajo largo y lo estoy haciendo paso a paso.

Este instructable se centra en la detección de obstáculos con Arduino Mega

Los sensores ultrasónicos HC-SR04 vs HY-SRF05 son baratos y fáciles de usar, pero pueden resultar difíciles de integrar en el circuito del microcontrolador en un robot complejo. Quería ejecutar la detección de obstáculos de forma asincrónica.

_

Ya publiqué 3 instructivos sobre las características de este robot:

  • Haz tu codificador de rueda
  • Haz tu puerta de enlace WIFI
  • Usar unidad de módulo inercial

Y una documentación sobre la combinación de inteligencia artificial y ultrasonidos para localizar el robot.

Paso 1: ¿Cuál es exactamente el problema con los sensores ultrasónicos y los microcontroladores?

¿Cuál es exactamente el problema con los sensores ultrasónicos y los microcontroladores?
¿Cuál es exactamente el problema con los sensores ultrasónicos y los microcontroladores?
¿Cuál es exactamente el problema con los sensores ultrasónicos y los microcontroladores?
¿Cuál es exactamente el problema con los sensores ultrasónicos y los microcontroladores?

Espera sincrónica y limitaciones de Arduino

El código de los microcontroladores se ejecuta en un bucle y no admite subprocesos múltiples. Los sensores ultrasónicos se basan en la duración de la señal. Esta duración dura hasta 30 m s, lo que es muy largo dentro del circuito cuando los microcontroladores tienen que lidiar con múltiples motores y sensores (por ejemplo, servomotores y motores de CC con codificadores de rueda).

Así que quería desarrollar un objeto que se ejecutara de forma asincrónica.

Paso 2: ¿Cómo funciona?

Como funciona ?
Como funciona ?

Ha sido diseñado para Atmega para la detección de obstáculos. Admite hasta 4 sensores ultrasónicos.

Gracias a la interrupción periódica del tiempo, el sistema puede monitorear hasta 4 sensores ultrasónicos. El código principal solo tiene que definir qué sensor activar con condición y umbral. El principal solo se interrumpirá en caso de que aparezca (condición, umbral).

Las funciones principales son:

  • La alerta es la detección básica de obstáculos y proporciona una interrupción si al menos 1 de los 4 sensores detecta una distancia por debajo de su umbral
  • El monitor es una función extendida que proporciona interrupciones en una combinación de condición de distancia de hasta 4 sensores. Las posibles condiciones son superiores, inferiores, iguales o no iguales a los umbrales.

Paso 3: Detalles técnicos

Use timer4 para que el pin 6 7 8 no se pueda usar como PWM.

Para cada sensor, el objeto necesita un PIN de activación y un PIN de interrupción.

Además de los PIN de interrupción de los sensores, el objeto necesita otro PIN de interrupción para el uso del software.

Paso 4: ¿Cómo implementar?

¿Cómo implementar?
¿Cómo implementar?

Conecte los sensores como arriba

Descarga desde este repositorio de GitHub

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

Cree el directorio EchoObstacleDetection dentro de su biblioteca IDE y mueva el.cpp y.h

Pruébalo

Abra ExampleEchoObstacleDetection.ino.

Este es un ejemplo simple de detección de obstáculos que se ejecuta con 2 sensores ultrasónicos.

La salida se dirige al monitor en serie. Al principio, imprimirá las distancias detectadas por los 2 sensores y luego imprimirá alertas según las distancias por debajo de los umbrales.

Recomendado: