Turinys:

Ultragarsu pagrįsta padėties nustatymo sistema: 4 žingsniai (su nuotraukomis)
Ultragarsu pagrįsta padėties nustatymo sistema: 4 žingsniai (su nuotraukomis)

Video: Ultragarsu pagrįsta padėties nustatymo sistema: 4 žingsniai (su nuotraukomis)

Video: Ultragarsu pagrįsta padėties nustatymo sistema: 4 žingsniai (su nuotraukomis)
Video: Высокая плотность 2022 2024, Lapkritis
Anonim
Ultragarsu pagrįsta padėties nustatymo sistema
Ultragarsu pagrįsta padėties nustatymo sistema

Visos mano rastos ultragarso radarų versijos, skirtos arduino įrenginiams („Arduino“- radaras/ultragarso detektorius, „Arduino“ultragarso radaro projektas), yra labai gražūs radarai, tačiau visi jie yra „akli“. Aš turiu galvoje, radaras kažką aptinka, bet ką jis aptinka?

Taigi siūlau sukurti sistemą, galinčią aptikti objektus ir juos identifikuoti. Kitaip tariant, padėties nustatymo sistema nenaudojant GPS prietaisų, bet ultragarso detektorių.

Tikiuosi, kad jums patiks šis rezultatas.

1 žingsnis: kaip tai veikia?

Kaip tai veikia?
Kaip tai veikia?

Padėties nustatymo sistemas sudaro trys jutiklių stotys su ultragarso detektoriais ir 1, 2 ir 3 mazgai, sudarantys stačiakampį arba kvadratą, kuris nukreipia 90 ° kampą ir kur atstumai tarp jų yra žinomi, kaip parodyta 1 paveiksle.

const plūdės atstumas tarp 1 ir 2 = 60,0;

const plūdės atstumas tarp 2 ir 3 = 75,0;

Šie jutikliai matuoja atstumą ir kampą kitiems objektams, kurių „id_node“yra didesnis nei 3 ir kurie taip pat turi ultragarsinį detektorių, kuris nusveria 170 ° kampą.

Visi jie siunčia atstumus, išmatuotus kampus ir id_node į kitą pagrindinę stotį, naudodamiesi belaidžiu ryšiu, kad galėtų analizuoti, apskaičiuoti objektų padėtį, naudodami trigonometrijos skaičiavimą, ir juos identifikuoti.

Siekiant išvengti trukdžių, pagrindinė stotis sinchronizuoja visus ultragarso detektorius taip, kad kiekvieną akimirką matuoja tik vienas ultragarso detektorius

Po to, naudodama nuoseklųjį ryšį, pagrindinė stotis siunčia informaciją (kampą, atstumą, id_objektą) į apdorojimo eskizą, kad būtų nubrėžti rezultatai.

2 veiksmas: kaip sukonfigūruoti tris jutiklių stotis ir objektus

Kaip sukonfigūruoti tris jutiklių stotis ir objektus
Kaip sukonfigūruoti tris jutiklių stotis ir objektus
Kaip sukonfigūruoti tris jutiklių stotis ir objektus
Kaip sukonfigūruoti tris jutiklių stotis ir objektus

Vienintelė kiekvienos jutiklio stoties funkcija yra aptikti objektus ir išsiųsti atstumo, kampo ir identifikavimo mazgo sąrašą pagrindinei stočiai.

Taigi, norėdami pagerinti aptikimą ir apriboti aptikimo zoną, turite atnaujinti didžiausią leistiną aptikimo atstumą („valid_max_distance“) ir mažiausią („valid_min_distance“) (centimetrus):

int valid_max_distance = 80;

int valid_min_distance = 1;

Šių jutiklių stočių identifikavimo mazgas (toliau pateiktame kode „šis_nodas“) yra 1, 2 ir 3, o pagrindinės stoties ID mazgas yra 0.

const uint16_t this_node = 01; // Mūsų mazgo adresas oktaliniu formatu (Node01, Node02, Node03)

const uint16_t other_node = 00; // Pagrindinio mazgo (Node00) adresas oktaliniu formatu

Kiekviena jutiklio stotis šluoja ir 100º kampas (toliau nurodytame kode nurodytas „max_angle“)

#define min_angle 0

#define max_angle 100

Kaip ir aukščiau, vienintelė objekto funkcija yra aptikti objektus ir išsiųsti atstumų, kampų ir identifikuojamų objektų sąrašą į pagrindinę stotį. Vieno objekto ID (toliau nurodytame kode yra „this_node“) turi būti didesnis nei 3.

Kiekvienas objektas šluoja ir 170 ° kampas ir, kaip nurodyta aukščiau, galima atnaujinti didžiausią ir mažiausią aptikimo atstumą.

const uint16_t this_node = 04; // Mūsų mazgo adresas oktaliniu formatu (Node04, Node05,…)

const uint16_t other_node = 00; // Pagrindinio mazgo (Node00) adresas oktaliniu formatu int valid_max_distance = 80; int valid_min_distance = 1; 170

3 veiksmas: kaip sukonfigūruoti pagrindinę stotį

Kaip sukonfigūruoti pagrindinę stotį
Kaip sukonfigūruoti pagrindinę stotį
Kaip sukonfigūruoti pagrindinę stotį
Kaip sukonfigūruoti pagrindinę stotį
Kaip sukonfigūruoti pagrindinę stotį
Kaip sukonfigūruoti pagrindinę stotį

Pagrindinės stoties funkcija yra priimti jutiklių stočių ir objektų perdavimą ir nusiųsti rezultatus naudojant nuoseklųjį prievadą į apdorojimo eskizą, kad būtų galima juos nubrėžti. Be to, sinchronizuojami visi objektai ir trys jutiklių stotys taip, kad tik vienas iš jų matuoja kiekvieną kartą, kad būtų išvengta trukdžių.

Pirmiausia turite atnaujinti atstumą (centimetrais) tarp 1 ir 2 jutiklio ir atstumą tarp 2 ir 3.

const plūdės atstumas tarp 1 ir 2 = 60,0;

const plūdės atstumas tarp 2 ir 3 = 70,0;

Eskizas apskaičiuoja objektų padėtį taip:

  • Visiems objektų perdavimams (id_node didesnis nei 3) ieškokite to paties atstumo kiekviename ultragarso jutiklių perdavime (id_node 1, 2 arba 3).
  • Visi šie taškai sudaro „kandidatų“sąrašą (atstumas, kampas, id_node), kurie yra vieno objekto vieta (eskizo „proceso_pieškobjektas_su_ taškų jutikliu“).
  • Kiekvienam ankstesnio sąrašo „kandidatui“funkcija „kandidatas_pasirinktas_ tarp jutiklio2 ir 3“pagal ultragarso jutiklio 2 ir 3 požiūriu apskaičiuoja, kuris iš jų atitinka šią trigonometrijos sąlygą (žr. 2 ir 3 paveikslėlius)

float distancefroms2 = sin (radianai (kampas)) * atstumas;

float distancefroms3 = cos (radianai (kampas_kandidatas)) * distance_candidate; // Trigonometrijos sąlyga 1 abs (atstumas nuo 2 + atstumas 3 - atstumas tarp 2 ir 3) <= plūdė (maksimalus_diference_distance)

Kaip nurodyta aukščiau, kiekvienam ankstesnio sąrašo „kandidatui“funkcija „kandidatas_sirinktas_betarp_sensorius1 ir 2“pagal 1 ir 2 ultragarso jutiklio požiūriu apskaičiuoja, kuris iš jų atitinka šį trigonometrijos ryšį (žr. 2 ir 3 paveikslėlį)

float distancefroms1 = sin (radianai (kampas)) * atstumas; float distancefroms2 = cos (radianai (kampas_kandidatas)) * distance_candidate; // Trigonometrijos sąlyga 2 abs (atstumas nuo 1 + atstumas 2 - atstumas tarp 1 ir 2) <= plūdė (maksimalus_skirtumas_distance)

Tik kandidatai (atstumas, kampas, id_node), atitinkantys 1 ir 2 trigonometrijos sąlygas, yra identifikuoti objektai, kuriuos aptinka 1, 2 ir 3 jutiklių stotys

Po to pagrindinė stotis siunčia rezultatus į apdorojimo eskizą, kad juos nubrėžtų.

4 žingsnis: medžiagų sąrašas

Image
Image

Medžiagų, reikalingų vienai jutiklių stočiai ar vienam objektui, sąrašas yra toks:

  • Nano plokštė
  • Ultragarsinis jutiklis
  • Mikro servo variklis
  • NRF24L01 belaidis modulis
  • NRF24L01 adapteris

ir pagrindinės stoties medžiagos sąrašas yra toks:

  • Nano plokštė
  • NRF24L01 belaidis modulis
  • NRF24L01 adapteris

Rekomenduojamas: