INHOUDSOPGAWE:

Ultrasoniese posisioneringstelsel: 4 stappe (met foto's)
Ultrasoniese posisioneringstelsel: 4 stappe (met foto's)

Video: Ultrasoniese posisioneringstelsel: 4 stappe (met foto's)

Video: Ultrasoniese posisioneringstelsel: 4 stappe (met foto's)
Video: Die Antwoord - Baita Jou Sabela feat. Slagysta (Official Video) 2024, November
Anonim
Ultrasoniese gebaseerde posisioneringstelsel
Ultrasoniese gebaseerde posisioneringstelsel

Al die weergawes van ultrasoniese radars wat ek vir arduino -toestelle gevind het (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) is baie mooi radars, maar almal is "blind". Ek bedoel, die radar bespeur iets, maar wat bespeur dit?

Daarom stel ek myself voor om 'n stelsel te ontwikkel wat voorwerpe kan opspoor en kan identifiseer. Met ander woorde 'n posisioneringstelsel sonder om GPS -toestelle te gebruik, maar ultrasoniese detektore.

Dit is die resultaat waarvan ek hoop dat u daarvan hou.

Stap 1: Hoe werk dit?

Hoe werk dit?
Hoe werk dit?

Die posisioneringstelsels word gevorm deur drie sensorstasies met ultraklankdetektore en id_node 1, 2 en 3 wat 'n reghoek of vierkant vorm wat 'n hoek van 90º sweep en waar die afstande tussen hulle bekend is soos op foto 1 getoon.

const float distancebetween1and2 = 60.0;

const float distancebetween2and3 = 75.0;

Hierdie sensors meet die afstand en hoek van ander voorwerpe met id_node groter as 3 wat ook 'n ultrasoniese detektor het wat 'n hoek van 170 ° vee.

Almal stuur die afstande, gemete hoeke en die id_node na 'n ander hoofstasie met behulp van draadlose kommunikasie om die voorwerpe te analiseer, die posisie van die voorwerpe te bereken met behulp van trigonometrieberekening en dit te identifiseer.

Om inmenging te voorkom, sinchroniseer die hoofstasie al die ultrasoniese detektore op die manier dat slegs een ultrasoniese detektor op elke oomblik meet

Daarna stuur die hoofstasie die inligting (hoek, afstand, id_object) met behulp van 'n seriële kommunikasie na 'n verwerkingskets om die resultate te teken.

Stap 2: Hoe om die drie sensorstasies en die voorwerpe op te stel

Hoe om die drie sensorstasies en die voorwerpe op te stel
Hoe om die drie sensorstasies en die voorwerpe op te stel
Hoe om die drie sensorstasies en die voorwerpe op te stel
Hoe om die drie sensorstasies en die voorwerpe op te stel

Die enigste funksie van elke sensorstasie is om voorwerpe op te spoor en die lys met afstand, hoek en ID -knoop na die hoofstasie te stuur.

U moet dus die maksimum opsporingsafstand ('valid_max_distance') en die minimum ('valid_min_distance') (sentimeter) bywerk om die opsporing te verbeter en die opsporingsgebied te beperk:

int valid_max_distance = 80;

int valid_min_distance = 1;

Die ID -knoop van hierdie sensorstasies ("hierdie_knoop" in die kode hieronder) is 1, 2 en 3 en die ID -knoop van die hoofstasie is 0.

const uint16_t this_node = 01; // Adres van ons node in Octal -formaat (Node01, Node02, Node03)

const uint16_t ander_node = 00; // Adres van die hoofknoop (Node00) in Octal -formaat

Elke sensorstasie sweep en hoek van 100º (“max_angle” in die kode hieronder)

#definieer min_hoek 0

#definieer maksimumhoek 100

Soos hierbo is die enigste funksie van 'n voorwerp om voorwerpe op te spoor en die lys afstande, hoeke en ID -voorwerpe wat gemeet is na die hoofstasie te stuur. Die ID van een voorwerp ('hierdie_node' in die kode hieronder) moet groter as 3 wees.

Elke voorwerp sweep en hoek van 170º, en soos hierbo is dit moontlik om die maksimum en minimum opsporingsafstand op te dateer.

const uint16_t this_node = 04; // Adres van ons node in Octal -formaat (Node04, Node05, …)

const uint16_t ander_node = 00; // Adres van die hoofknoop (Node00) in Octal -formaat int valid_max_distance = 80; int valid_min_distance = 1; #definieer min_hoek 0 #definieer maksimumhoek 170

Stap 3: Hoe om die hoofstasie op te stel

Hoe om die hoofstasie op te stel
Hoe om die hoofstasie op te stel
Hoe om die hoofstasie op te stel
Hoe om die hoofstasie op te stel
Hoe om die hoofstasie op te stel
Hoe om die hoofstasie op te stel

Die hoofstasie se funksie is om die uitsendings van die sensorstasies en die voorwerpe te ontvang en die resultate met behulp van die seriële poort na 'n verwerkingskets te stuur om dit te teken. Boonop sinchroniseer al die voorwerpe en die drie sensorstasies op die manier dat slegs een van hulle elke keer meet om interferensies te vermy.

Eerstens moet u die afstand (sentimeter) tussen sensor 1 en 2 en die afstand tussen 2 en 3 opdateer.

const float distancebetween1and2 = 60.0;

const float distancebetween2and3 = 70.0;

Die skets bereken die posisie van die voorwerpe op die volgende manier:

  • Soek vir alle transmissies van die voorwerpe (id_node groter as 3) dieselfde afstand in elke transmissie van die ultrasoniese sensors (id_node 1, 2 of 3).
  • Al hierdie punte vorm 'n lys van 'kandidate' (afstand, hoek, id_node) om die posisie van een voorwerp te wees ('process_pointobject_with_pointssensor' in die skets).
  • Vir elke 'kandidaat' van die vorige lys, bereken die funksie 'kandidaat_geselekteerde_sensor2en3' vanuit die oogpunt van die ultrasoniese sensor 2 en 3 watter van hulle ooreenstem met die volgende trigonometrie toestand (sien die foto's 2 en 3)

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

float distancefroms3 = cos (radiale (hoek_kandidaat)) * afstand_kandidaat; // Trigonometrie toestand 1 abs (distancefroms2 + distancefroms3 - distancebetween2and3) <= float (max_diference_distance)

Soos hierbo, bereken die funksie "kandidaat_geselekteerde_sensor1en2" vir elke "kandidaat" van die vorige lys, vanuit die oogpunt van die ultrasoniese sensor 1 en 2 watter van hulle ooreenstem met die volgende trigonometrieverhouding (sien prent 2 en 3)

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

Slegs die kandidate (afstand, hoek, id_node) wat ooreenstem met die trigonometrie voorwaardes 1 en 2, word geïdentifiseer voorwerpe wat deur die sensorstasies 1, 2 en 3 opgespoor word

Daarna stuur die resultate deur die hoofstasie na 'n verwerkingskets om dit te teken.

Stap 4: Lys van materiaal

Image
Image

Die lys materiaal wat benodig word vir een sensorstasie of een voorwerp is die volgende:

  • Nano bord
  • Ultrasoniese sensor
  • Mikro servomotor
  • NRF24L01 draadlose module
  • NRF24L01 adapter

en die lys materiaal vir die hoofstasie is die volgende:

  • Nano bord
  • NRF24L01 draadlose module
  • NRF24L01 adapter

Aanbeveel: