Inhoudsopgave:

Ultrasoon gebaseerd positioneringssysteem - Ajarnpa
Ultrasoon gebaseerd positioneringssysteem - Ajarnpa

Video: Ultrasoon gebaseerd positioneringssysteem - Ajarnpa

Video: Ultrasoon gebaseerd positioneringssysteem - Ajarnpa
Video: Ultraprobe 9000/9000 ATEX - Ultrasoon instrument voor conditie bewaking 2024, November
Anonim
Op ultrasoon gebaseerd positioneringssysteem
Op ultrasoon gebaseerd positioneringssysteem

Alle versies van ultrasone radars die ik heb gevonden voor Arduino-apparaten (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) zijn erg mooie radars, maar ze zijn allemaal "blind". Ik bedoel, de radar detecteert iets, maar wat detecteert het?

Dus stel ik mezelf voor om een systeem te ontwikkelen dat objecten kan detecteren en identificeren. Met andere woorden een plaatsbepalingssysteem zonder gebruik te maken van GPS-apparaten maar met ultrasone detectoren.

Dit is het resultaat waarvan ik hoop dat je het mooi vindt.

Stap 1: Hoe werkt het?

Hoe werkt het?
Hoe werkt het?

Het positioneringssysteem wordt gevormd door drie sensorstations met ultrasone detectoren en id_node 1, 2 en 3 die een rechthoek of vierkant vormen met een hoek van 90º en waarvan de afstanden ertussen bekend zijn zoals weergegeven op afbeelding 1.

const float-afstand tussen 1 en 2 = 60,0;

const float distance between2and3 = 75,0;

Deze sensoren meten de afstand en hoek van andere objecten met id_node groter dan 3 die ook een ultrasone detector hebben die een hoek van 170° aflegt.

Ze sturen allemaal de afstanden, gemeten hoeken en de id_node naar een ander hoofdstation met behulp van draadloze communicatie om te analyseren, de positie van de objecten te berekenen met behulp van trigonometrieberekening en ze te identificeren.

Om interferenties te voorkomen, synchroniseert het hoofdstation alle ultrasone detectoren zodanig dat er op elk moment slechts één ultrasone detector meet

Daarna en met behulp van een seriële communicatie stuurt het hoofdstation de informatie (hoek, afstand, id_object) naar een verwerkingsschets om de resultaten te plotten.

Stap 2: Hoe de drie sensorstations en de objecten te configureren?

Hoe de drie sensorstations en de objecten te configureren
Hoe de drie sensorstations en de objecten te configureren
Hoe de drie sensorstations en de objecten te configureren
Hoe de drie sensorstations en de objecten te configureren

De enige functie van elk sensorstation is om objecten te detecteren en de lijst met gemeten afstand, hoek en ID-knooppunt naar het hoofdstation te sturen.

U moet dus de maximaal toegestane detectieafstand ("valid_max_distance") en de minimale ("valid_min_distance") (centimeter) bijwerken om de detectie te verbeteren en de detectiezone te beperken:

int valid_max_distance = 80;

int valid_min_distance = 1;

Het id-knooppunt van deze sensorstations (“this_node” in de onderstaande code) zijn 1, 2 en 3 en het id-knooppunt van het hoofdstation is 0.

const uint16_t this_node = 01; // Adres van onze node in Octaal formaat (Node01, Node02, Node03)

const uint16_t andere_node = 00; //Adres van het hoofdknooppunt (Node00) in Octaal formaat

Elk sensorstation veegt en hoek van 100º ("max_angle" in de onderstaande code)

#define min_hoek 0

#define max_hoek 100

Zoals hierboven is de enige functie van een object om objecten te detecteren en de lijst met gemeten afstanden, hoeken en id-object naar het hoofdstation te sturen. De id van één object ("this_node" in de onderstaande code) moet groter zijn dan 3.

Elk object veegt en heeft een hoek van 170º en zoals hierboven is het mogelijk om de maximale en minimale detectieafstand bij te werken.

const uint16_t this_node = 04; // Adres van onze node in Octaal formaat (Node04, Node05, …)

const uint16_t andere_node = 00; // Adres van het hoofdknooppunt (Node00) in Octaal formaat int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170

Stap 3: Het hoofdstation configureren

Het hoofdstation configureren
Het hoofdstation configureren
Het hoofdstation configureren
Het hoofdstation configureren
Het hoofdstation configureren
Het hoofdstation configureren

De functie van het hoofdstation is om de transmissies van de sensorstations en de objecten te ontvangen en de resultaten via de seriële poort naar een verwerkingsschets te sturen om ze te plotten. Bovendien worden alle objecten en de drie sensorstations zo gesynchroniseerd dat er telkens slechts één meet om storingen te voorkomen.

Eerst moet je de afstand (centimeter) tussen sensor 1 en 2 en de afstand tussen 2 en 3 bijwerken.

const float-afstand tussen 1 en 2 = 60,0;

const float-afstand tussen 2 en 3 = 70,0;

De schets berekent de positie van de objecten op de volgende manier:

  • Zoek voor alle transmissies van de objecten (id_node groter dan 3) dezelfde afstand in elke transmissie van de ultrasone sensoren (id_node 1, 2 of 3).
  • Al deze punten vormen een lijst met "kandidaten" (afstand, hoek, id_node) om de positie van één object te zijn ("process_pointobject_with_pointssensor" in de schets).
  • Voor elke "kandidaat" van de vorige lijst, berekent de functie "kandidaat_geselecteerde_tussen_sensor2and3" vanuit het oogpunt van de ultrasone sensor 2 en 3 welke van hen overeenkomen met de volgende trigonometrische voorwaarde (zie de afbeeldingen 2 en 3)

float distancefroms2 = sin(radialen(hoek)) * afstand;

float distancefroms3 = cos(radialen(angle_candidate)) * distance_candidate; // Trigonometrie voorwaarde 1 abs (distancefroms2 + distancefroms3 - distance between2and3) <= float (max_diference_distance)

Zoals hierboven, voor elke "kandidaat" van de vorige lijst, berekent de functie "kandidaat_geselecteerde_tussen_sensor1and2" vanuit het oogpunt van de ultrasone sensor 1 en 2 welke van hen overeenkomen met de volgende trigonometrische relatie (zie de afbeelding 2 en 3)

float distancefroms1 = sin(radialen(hoek)) * afstand;float distancefroms2 = cos(radialen(hoek_kandidaat)) * afstand_kandidaat; // Trigonometrie voorwaarde 2 abs (distancefroms1 + distancefroms2 - distance between1and2) <= float (max_diference_distance)

Alleen de kandidaten (afstand, hoek, id_node) die overeenkomen met de trigonometrievoorwaarden 1 en 2 zijn geïdentificeerde objecten die worden gedetecteerd door de sensorstations 1, 2 en 3

Daarna worden de resultaten door het hoofdstation naar een verwerkingsschets gestuurd om ze te plotten.

Stap 4: Lijst met materiaal

Image
Image

De lijst met materiaal dat nodig is voor één sensorstation of één object is als volgt:

  • Nano-bord
  • Ultrasoon sensor
  • Micro-servomotor
  • NRF24L01 draadloze module
  • NRF24L01-adapter

en de lijst met materiaal voor het hoofdstation is als volgt:

  • Nano-bord
  • NRF24L01 draadloze module
  • NRF24L01-adapter

Aanbevolen: