Sisukord:

Ultrahelipõhine positsioneerimissüsteem: 4 sammu (piltidega)
Ultrahelipõhine positsioneerimissüsteem: 4 sammu (piltidega)

Video: Ultrahelipõhine positsioneerimissüsteem: 4 sammu (piltidega)

Video: Ultrahelipõhine positsioneerimissüsteem: 4 sammu (piltidega)
Video: Autonomic Dysfunction in ME/CSF 2024, November
Anonim
Ultrahelipõhine positsioneerimissüsteem
Ultrahelipõhine positsioneerimissüsteem

Kõik minu leitud ultraheliradarite versioonid arduino seadmete jaoks (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) on väga toredad radarid, kuid kõik on "pimedad". Ma mõtlen, et radar tuvastab midagi, kuid mida see tuvastab?

Seega teen ettepaneku töötada välja süsteem, mis suudab objekte tuvastada ja neid tuvastada. Teisisõnu, positsioneerimissüsteem, mis ei kasuta GPS -seadmeid, vaid ultraheli detektoreid.

See on tulemus, mis loodetavasti teile meeldib.

Samm: kuidas see toimib?

Kuidas see töötab?
Kuidas see töötab?

Positsioneerimissüsteemid moodustavad kolm andurjaama, millel on ultrahelidetektorid ja id_node 1, 2 ja 3, mis moodustavad ristküliku või ruudu, mis ulatuvad 90 ° nurga alla ja kus nendevahelised kaugused on teada, nagu näidatud pildil 1.

const ujuki kaugus1 ja 2 vahel = 60,0;

const ujuki kaugus2 ja 3 vahel = 75,0;

Need andurid mõõdavad teiste objektide kaugust ja nurka, mille id_node on suurem kui 3 ja millel on ka ultraheli detektor, mis pühib 170 ° nurga.

Kõik nad saadavad kaugused, mõõdetud nurgad ja id_node traadita side abil teisele jaama, et analüüsida, trigonomeetria arvutuste abil objektide asukohta arvutada ja neid tuvastada.

Häirete vältimiseks sünkroniseerib peajaam kõik ultrahelidetektorid selliselt, et igal hetkel mõõdab ainult üks ultrahelidetektor

Pärast seda ja jadaühendust kasutades saadab peajaam teabe (nurk, kaugus, id_objekt) töötlusvisandile tulemuste joonistamiseks.

2. samm: kolme andurijaama ja objektide konfigureerimine

Kuidas seadistada kolme andurijaama ja objekte
Kuidas seadistada kolme andurijaama ja objekte
Kuidas seadistada kolme andurijaama ja objekte
Kuidas seadistada kolme andurijaama ja objekte

Iga andurijaama ainus ülesanne on tuvastada objekte ja saata põhijaamale mõõdetud kauguse, nurga ja id -sõlme loend.

Nii et avastamise parandamiseks ja tuvastustsooni piiramiseks peate uuendama lubatud maksimaalset tuvastuskaugust („valid_max_distance“) ja minimaalset („valid_min_distance“) (sentimeetrit).

int valid_max_distance = 80;

int valid_min_distance = 1;

Nende andurjaamade id -sõlm (allpool olevas koodis „this_node”) on 1, 2 ja 3 ning põhijaama id -sõlm on 0.

const uint16_t see_sõlm = 01; // Meie sõlme aadress oktalvormingus (Node01, Node02, Node03)

const uint16_t muu_sõlm = 00; // Põhisõlme (Node00) aadress oktalvormingus

Iga andurjaam pühib ja nurk 100º (allolevas koodis „max_nurk”)

#define min_angle 0

#define max_angle 100

Nagu ülalpool, on objekti ainus ülesanne tuvastada objekte ja saata põhijaamale mõõdetud vahemaade, nurkade ja id -objektide loend. Ühe objekti id (allolevas koodis „this_node”) peab olema suurem kui 3.

Iga objekti pühkimine ja nurk 170 ° ja nagu eespool, on võimalik uuendada maksimaalset ja minimaalset tuvastuskaugust.

const uint16_t see_sõlm = 04; // Meie sõlme aadress oktalvormingus (Node04, Node05,…)

const uint16_t muu_sõlm = 00; // Põhisõlme (sõlme00) aadress oktalvormingus int valid_max_distance = 80; int valid_min_distance = 1; 170

Samm: kuidas Master Stationit konfigureerida

Põhijaama konfigureerimine
Põhijaama konfigureerimine
Põhijaama konfigureerimine
Põhijaama konfigureerimine
Põhijaama konfigureerimine
Põhijaama konfigureerimine

Põhijaama ülesanne on võtta vastu andurjaamade ja objektide ülekandeid ning saata tulemused jadapordi abil töötlusvisandile, et need joonistada. Lisaks sünkroonib kõik objektid ja kolm andurjaama selliselt, et häirete vältimiseks mõõdab neid korraga ainult üks.

Esialgu peate värskendama andurite 1 ja 2 vahelist kaugust (sentimeetrit) ja kaugust 2 kuni 3.

const ujuki kaugus1 ja 2 vahel = 60,0;

const ujuki kaugus2 ja 3 vahel = 70,0;

Visand arvutab objektide asukoha järgmiselt.

  • Kõigi objektide edastuste puhul (id_node suurem kui 3) otsige igast ultrahelianduri edastusest sama kaugust (id_node 1, 2 või 3).
  • Kõik need punktid moodustavad nimekirja „kandidaatidest” (kaugus, nurk, id_sõlm), mis on ühe objekti asukoht (eskiis „protsessipunkti_objekti_punktianduriga”).
  • Iga eelmise loendi „kandidaadi” jaoks arvutab funktsioon „kandidaat_valitud_ vahel_andur2 ja 3” ultraheli anduri 2 ja 3 vaatenurgast, milline neist vastab järgmisele trigonomeetria tingimusele (vt pilte 2 ja 3).

float distancefroms2 = sin (radiaanid (nurk)) * kaugus;

float distancefroms3 = cos (radiaanid (nurk_kandidaat)) * distance_candidate; // Trigonomeetria tingimus 1 abs (kaugused 2 + kaugused 3 - vahemaa 2 ja 3 vahel) <= ujuk (max_diference_distance)

Nagu ülalpool, arvutab funktsioon “kandidaat_valitud_betens_andur1ja2” eelmise loendi iga kandidaadi jaoks ultraheli anduri 1 ja 2 vaatenurgast, milline neist vastab järgmisele trigonomeetria seosele (vt pilti 2 ja 3)

float distancefroms1 = sin (radiaanid (nurk)) * kaugus; float distancefroms2 = cos (radiaanid (nurk_kandidaat)) * distance_candidate; // Trigonomeetria tingimus 2 abs (kaugused 1 + kaugused 2 - vahemaa 1 ja 2 vahel) <= ujuk (max_diference_distance)

Andurijaamade 1, 2 ja 3 tuvastatud objektid on ainult need kandidaadid (kaugus, nurk, id_sõlm), mis vastavad trigonomeetria tingimustele 1 ja 2

Pärast seda saadab peajaam tulemused tulemuste töötlemiseks visandile.

Samm: materjalide loend

Image
Image

Ühe andurijaama või ühe objekti jaoks vajalike materjalide loend on järgmine:

  • Nano plaat
  • Ultraheli andur
  • Mikroservomootor
  • NRF24L01 traadita moodul
  • NRF24L01 adapter

ja jaama materjalide loend on järgmine:

  • Nano plaat
  • NRF24L01 traadita moodul
  • NRF24L01 adapter

Soovitan: