Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
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?
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?
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?
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.