Tabla de contenido:
- Paso 1: ¿Cómo funciona?
- Paso 2: Cómo configurar las tres estaciones de sensor y los objetos
- Paso 3: Cómo configurar la estación maestra
- Paso 4: Lista de material
Video: Sistema de posicionamiento basado en ultrasonidos: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Todas las versiones de radares ultrasónicos que he encontrado para dispositivos arduino (Arduino - Radar / Ultrasonic Detector, Arduino Ultrasonic Radar Project) son radares muy agradables, pero todos son "ciegos". Quiero decir, el radar detecta algo, pero ¿qué detecta?
Entonces me propongo desarrollar un sistema capaz de detectar objetos e identificarlos. En otras palabras, un sistema de posicionamiento sin utilizar dispositivos GPS sino detectores ultrasónicos.
Este es el resultado que espero les guste.
Paso 1: ¿Cómo funciona?
El sistema de posicionamiento está formado por tres estaciones de sensores con detectores ultrasónicos e id_node 1, 2 y 3 formando un rectángulo o cuadrado que barre un ángulo de 90º y donde se conocen las distancias entre ellos como se muestra en la imagen 1.
distancia de flotación constante entre 1 y 2 = 60,0;
distancia de flotación constante entre 2 y 3 = 75,0;
Estos sensores miden la distancia y el ángulo de otros objetos con id_node mayor que 3 que también tienen un detector ultrasónico que barre un ángulo de 170 °.
Todos ellos envían las distancias, ángulos medidos y el id_node a otra estación maestra mediante comunicaciones inalámbricas para analizar, calcular la posición de los objetos mediante cálculo de trigonometría e identificarlos.
Para evitar interferencias, la estación maestra sincroniza todos los detectores ultrasónicos de tal manera que solo un detector ultrasónico está midiendo en cada momento.
Después de eso y usando una comunicación en serie, la estación maestra envía la información (ángulo, distancia, id_object) a un boceto de procesamiento para trazar los resultados.
Paso 2: Cómo configurar las tres estaciones de sensor y los objetos
La única función de cada estación de sensor es detectar objetos y enviar la lista de distancia, ángulo y nodo de identificación medidos a la estación maestra.
Por lo tanto, debe actualizar la distancia máxima de detección ("valid_max_distance") permitida y la mínima ("valid_min_distance") (centímetros) para mejorar la detección y limitar la zona de detección:
int valid_max_distance = 80;
int valid_min_distance = 1;
El nodo de identificación de estas estaciones de sensores ("this_node" en el código a continuación) son 1, 2 y 3 y el nodo de identificación de la estación maestra es 0.
const uint16_t this_node = 01; // Dirección de nuestro nodo en formato Octal (Node01, Node02, Node03)
const uint16_t otro_nodo = 00; // Dirección del nodo maestro (Node00) en formato Octal
Cada estación de sensores realiza un barrido y un ángulo de 100º ("max_angle" en el código a continuación)
#define min_angle 0
#define max_angle 100
Como se indicó anteriormente, la única función de un objeto es detectar objetos y enviar la lista de distancias, ángulos y objetos de identificación medidos a la estación maestra. La identificación de un objeto ("this_node" en el código siguiente) debe ser mayor que 3.
Cada objeto tiene un barrido y un ángulo de 170º y, como se indicó anteriormente, es posible actualizar la distancia de detección máxima y mínima.
const uint16_t this_node = 04; // Dirección de nuestro nodo en formato Octal (Node04, Node05,…)
const uint16_t otro_nodo = 00; // Dirección del nodo maestro (Node00) en formato Octal int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170
Paso 3: Cómo configurar la estación maestra
La función de la estación maestra es recibir las transmisiones de las estaciones sensoras y los objetos y enviar los resultados utilizando el puerto serie a un boceto de procesamiento para trazarlos. Además sincroniza todos los objetos y las tres estaciones sensoras de forma que solo uno de ellos esté midiendo en cada momento para evitar interferencias.
Primero tienes que actualizar la distancia (centímetros) entre el sensor 1 y 2 y la distancia entre 2 y 3.
distancia de flotación constante entre 1 y 2 = 60,0;
distancia de flotación constante entre 2 y 3 = 70,0;
El boceto calcula la posición de los objetos de la siguiente manera:
- Para todas las transmisiones de los objetos (id_node mayor que 3) busque la misma distancia en cada transmisión de los sensores ultrasónicos (id_node 1, 2 o 3).
- Todos estos puntos forman una lista de "candidatos" (distancia, ángulo, id_node) para ser la posición de un objeto ("process_pointobject_with_pointssensor" en el croquis).
- Para cada "candidato" de la lista anterior, la función "candidato_seleccionado_entre_sensor2y3" calcula desde el punto de vista del sensor ultrasónico 2 y 3 cuál de ellos coincide con la siguiente condición de trigonometría (ver imágenes 2 y 3)
distancia flotante froms2 = sin (radianes (ángulo)) * distancia;
flotar distanciafroms3 = cos (radianes (ángulo_candidato)) * distancia_candidato; // Condición de trigonometría 1 abs (distancia de 2 + distancia de 3 - distancia entre 2 y 3) <= float (distancia_de_diferencia_máx)
Como arriba, para cada "candidato" de la lista anterior, la función "candidato_seleccionado_entre_sensor1 y 2" calcula desde el punto de vista del sensor ultrasónico 1 y 2 cuál de ellos coincide con la siguiente relación de trigonometría (ver imagen 2 y 3)
distancia flotantefroms1 = sin (radianes (ángulo)) * distancia; distancia flotantefroms2 = cos (radianes (ángulo_candidato)) * distancia_candidato; // Condición de trigonometría 2 abs (distancia de 1 + distancia de 2 - distancia entre 1 y 2) <= float (distancia_de_diferencia_máx)
Solo los candidatos (distancia, ángulo, id_node) que coinciden con las condiciones de trigonometría 1 y 2 son objetos identificados detectados por las estaciones de sensores 1, 2 y 3
Después de eso, la estación maestra envía los resultados a un boceto de procesamiento para trazarlos.
Paso 4: Lista de material
La lista de material necesario para una estación de sensor o un objeto es la siguiente:
- Tablero nano
- Sensor ultrasónico
- Micro servomotor
- Módulo inalámbrico NRF24L01
- Adaptador NRF24L01
y la lista de material para la estación maestra es la siguiente:
- Tablero nano
- Módulo inalámbrico NRF24L01
- Adaptador NRF24L01
Recomendado:
Detecta obstáculos de forma asincrónica con ultrasonidos: 4 pasos
Detectar 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 instructivo se enfoca en la detección de obstáculos con Arduino Mega. Los sensores ultrasónicos HC-SR04 vs HY-SRF05 son baratos y
Sistema de acceso basado en ultrasonidos: 6 pasos (con imágenes)
Sistema de acceso basado en ultrasonidos: En esta ocasión les presento un sistema de acceso basado en ultrasonidos que creo que podría ser interesante, se basa en ondas ultrasónicas por lo que es un sistema de acceso sin contacto que no necesita ningún otro dispositivo electrónico, sino cualquier objeto, incluso sus manos. para intentar t
Detector de ladrones con ultrasonidos y NodeMCU: 5 pasos
Detector de ladrones con ultrasonido y NodeMCU: este dispositivo puede detectar a los ladrones e informarle sobre ellos. Como las ondas ultrasónicas no son visibles para los humanos, el ladrón no lo sabe y puede ser atrapado fácilmente
Generador de música basado en el clima (generador Midi basado en ESP8266): 4 pasos (con imágenes)
Generador de música basado en el clima (Generador Midi basado en ESP8266): Hola, hoy explicaré cómo hacer tu propio generador de música basado en el clima. Está basado en un ESP8266, que es como un Arduino, y responde a la temperatura, la lluvia y la intensidad de la luz. No espere que haga canciones completas o programas de acordes
R-PiAlerts: Cree un sistema de seguridad basado en WiFi con Raspberry Pis: 8 pasos (con imágenes)
R-PiAlerts: cree un sistema de seguridad basado en WiFi con Raspberry Pis: mientras trabaja en su escritorio, de repente oye un ruido distante. ¿Alguien acaba de llegar a casa? Mi auto está estacionado frente a mi casa, ¿alguien entró en mi auto? ¿No le gustaría recibir una notificación en su teléfono o en su escritorio para poder decidir si