Taula de continguts:
- Pas 1: Com funciona?
- Pas 2: Com configurar les tres estacions de sensor i els objectes
- Pas 3: Com configurar l'estació principal
- Pas 4: Llista de material
Vídeo: Sistema de posicionament basat en ultrasons: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Totes les versions de radars d'ultrasons que he trobat per a dispositius arduino (Arduino - Detector de radar / ultrasons, Arduino Ultrasonic Radar Project) són radars molt agradables, però tots "cecs". Vull dir, el radar detecta alguna cosa, però què està detectant?
Així que em proposo desenvolupar un sistema capaç de detectar objectes i identificar-los. En altres paraules, un sistema de posicionament sense utilitzar dispositius GPS, sinó detectors d'ultrasons.
Aquest és el resultat que espero que us agradi.
Pas 1: Com funciona?
Els sistemes de posicionament estan formats per tres estacions de sensors amb detectors d'ultrasons i id_node 1, 2 i 3 que formen un rectangle o quadrat que escombra un angle de 90º i on es coneixen les distàncies entre elles com es mostra a la imatge 1.
const float distancebetween1and2 = 60,0;
const float distancebetween2and3 = 75,0;
Aquests sensors mesuren la distància i l'angle d'altres objectes amb id_node superior a 3 que també tenen un detector d'ultrasons que arrossega un angle de 170 °.
Tots ells envien les distàncies, els angles mesurats i l'id_node a una altra estació principal mitjançant comunicacions sense fils per analitzar, calcular la posició dels objectes mitjançant el càlcul de la trigonometria i identificar-los.
Per evitar interferències, l'estació principal sincronitza tots els detectors d'ultrasons de manera que només es mesura un detector d'ultrasons en cada moment
Després d'això i mitjançant una comunicació en sèrie, l'estació principal envia la informació (angle, distància, id_object) a un esbós de processament per representar els resultats.
Pas 2: Com configurar les tres estacions de sensor i els objectes
L'única funció de cada estació de sensor és detectar objectes i enviar la llista de distància, angle i node d'identificació mesurats a l'estació principal.
Per tant, heu d’actualitzar la distància màxima de detecció (“valid_max_distance”) permesa i la mínima (“valid_min_distance”) (centímetres) per millorar la detecció i limitar la zona de detecció:
int valid_max_distance = 80;
int valid_min_distance = 1;
El node d'identificació d'aquestes estacions sensorials ("this_node" al codi següent) són 1, 2 i 3 i el node d'identificació de l'estació principal és 0.
const uint16_t this_node = 01; // Adreça del nostre node en format Octal (Node01, Node02, Node03)
const uint16_t other_node = 00; // Adreça del node mestre (Node00) en format Octal
Cada estació del sensor escombra i angle de 100º ("max_angle" al codi següent)
#define min_angle 0
#define max_angle 100
Com a dalt, l'única funció d'un objecte és detectar objectes i enviar la llista de distàncies, angles i objectes id mesurats a l'estació principal. L'identificador d'un objecte ("this_node" al codi següent) ha de ser superior a 3.
Cada objecte escombra i té un angle de 170º i, tal com s'ha indicat anteriorment, és possible actualitzar la distància de detecció màxima i mínima.
const uint16_t this_node = 04; // Adreça del nostre node en format Octal (Node04, Node05, …)
const uint16_t other_node = 00; // Adreça del node mestre (Node00) en format Octal int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170
Pas 3: Com configurar l'estació principal
La funció de l’estació principal és rebre les transmissions de les estacions sensorials i dels objectes i enviar els resultats mitjançant el port sèrie a un esbós de processament per traçar-los. A més, sincronitza tots els objectes i les tres estacions de sensors de manera que només una mesura cada vegada per evitar interferències.
En primer lloc, cal actualitzar la distància (centímetres) entre el sensor 1 i 2 i la distància entre 2 i 3.
const float distancebetween1and2 = 60,0;
const float distancebetween2and3 = 70,0;
L’esbós calcula la posició dels objectes de la següent manera:
- Per a totes les transmissions dels objectes (id_node superior a 3), busqueu la mateixa distància en cada transmissió dels sensors d'ultrasons (id_node 1, 2 o 3).
- Tots aquests punts formen una llista de "candidats" (distància, angle, id_node) per ser la posició d'un objecte ("process_pointobject_with_pointssensor" a l'esbós).
- Per a cada "candidat" de la llista anterior, la funció "candidate_selected_between_sensor2and3" calcula des del punt de vista del sensor d'ultrasons 2 i 3 quins d'ells coincideixen amb la següent condició de trigonometria (vegeu les imatges 2 i 3)
float distancefroms2 = sin (radians (angle)) * distància;
float distancefroms3 = cos (radians (angle_candidate)) * distance_candidate; // Condició de trigonometria 1 abs (distancefroms2 + distancefroms3 - distancebetween2and3) <= float (max_diference_distance)
Com es va esmentar anteriorment, per a cada "candidat" de la llista anterior, la funció "candidate_selected_between_sensor1and2" calcula des del punt de vista del sensor d'ultrasons 1 i 2 quins d'ells coincideixen amb la següent relació de trigonometria (vegeu la imatge 2 i 3)
float distancefroms1 = sin (radians (angle)) * distance; float distancefroms2 = cos (radians (angle_candidate)) * distance_candidate; // Condició de trigonometria 2 abs (distancefroms1 + distancefroms2 - distancebetween1and2) <= float (max_diference_distance)
Només els candidats (distància, angle, id_node) que coincideixen amb les condicions de trigonometria 1 i 2 són objectes identificats detectats per les estacions de sensors 1, 2 i 3
Després, l'estació principal envia els resultats a un esbós de processament per traçar-los.
Pas 4: Llista de material
La llista de material necessari per a una estació de sensor o un objecte és la següent:
- Taula nano
- Sensor d'ultrasons
- Micro servo motor
- Mòdul sense fils NRF24L01
- Adaptador NRF24L01
i la llista de material per a l'estació principal és la següent:
- Taula nano
- Mòdul sense fils NRF24L01
- Adaptador NRF24L01
Recomanat:
Sistema d'accés basat en ultrasons: 6 passos (amb imatges)
Sistema d’accés basat en ultrasons: aquesta vegada us presento un sistema d’accés basat en ultrasons, crec que podria ser interessant, es basa en ones ultrasòniques, de manera que és un sistema d’accés sense contacte que no necessita cap altre dispositiu electrònic, sinó qualsevol objecte, fins i tot les vostres mans. provar t
Generador de música basat en el temps (generador de midi basat en ESP8266): 4 passos (amb imatges)
Generador de música basat en el temps (generador de midi basat en ESP8266): Hola, avui explicaré com fer el vostre propi generador de música basat en el temps. Es basa en un ESP8266, que és com un Arduino, i respon a la temperatura, a la pluja i intensitat lumínica. No espereu que faci cançons senceres o progrés d’acords
Bot autònom basat en Arduino amb sensor d'ultrasons: 5 passos (amb imatges)
Bot autònom basat en Arduino mitjançant sensor ultrasònic: creeu el vostre propi bot autònom basat en Arduino mitjançant un sensor ultrasònic. Aquest bot es pot moure pràcticament tot sol sense xocar amb cap obstacle. Bàsicament, el que fa és detectar qualsevol tipus d'obstacle en el seu camí i decidir el millor pa
R-PiAlerts: Creeu un sistema de seguretat basat en WiFi amb Raspberry Pis: 8 passos (amb imatges)
R-PiAlerts: creeu un sistema de seguretat basat en WiFi amb Raspberry Pis: mentre treballeu a l'escriptori, de sobte sentiu un soroll llunyà. Algú acaba de tornar a casa? El meu cotxe està aparcat davant de casa, algú em va irrompre? No vols que rebis una notificació al telèfon o al taulell perquè puguis decidir si
Posicionament servo amb teclat: 3 passos
Posicionament de servos amb teclat: en aquesta instrucció, crearem un projecte que controlarà un micro-servo amb un teclat que el faci funcionar amb un Arduino Uno. Materials utilitzats: teclat Arduino UnoBreadboard 4x4 Micro-Servo