Cuprins:

Tablou de radar staționar (LIDAR) cu Arduino: 10 pași (cu imagini)
Tablou de radar staționar (LIDAR) cu Arduino: 10 pași (cu imagini)

Video: Tablou de radar staționar (LIDAR) cu Arduino: 10 pași (cu imagini)

Video: Tablou de radar staționar (LIDAR) cu Arduino: 10 pași (cu imagini)
Video: Week 1: LiDAR vs Radar 2024, Iulie
Anonim
Tablou de radar staționar (LIDAR) cu Arduino
Tablou de radar staționar (LIDAR) cu Arduino
Tablou de radar staționar (LIDAR) cu Arduino
Tablou de radar staționar (LIDAR) cu Arduino
Tablou de radar staționar (LIDAR) cu Arduino
Tablou de radar staționar (LIDAR) cu Arduino

Când construiesc un robot biped, mă gândeam întotdeauna să am un fel de gadget interesant care să-mi poată urmări adversarul și să facă mișcări de atac cu el. Aici există deja ciorchini de proiecte radar / lidar. Cu toate acestea, există câteva limitări pentru scopul meu:

  • Modulele cu senzori de undă cu ultrasunete sunt destul de mari. Fiecare robot ar arăta ca WALL-E.
  • Proiectele radar actuale includ toate un senzor (fie unde ultrasonice, IR, laser, …) și un servomotor în mijloc. Scanarea mediului necesită ca servo-ul să se deplaseze lateral. Mutarea lucrurilor înainte și înapoi creează schimbări de impuls, ceea ce este rău pentru echilibrarea și mersul biped.
  • Frecvența de scanare este limitată de viteza servo. Probabil că doar câțiva hertz pot realiza. Chiar dacă frecvența de scanare poate fi crescută de un super-servo, acest lucru ar duce la vibrații puternice.
  • Aranjamentul [servomotor central - senzor] limitează, de asemenea, poziția de montare și proiectarea. Este dificil să montezi altceva decât ca un cap. Ceea ce face ca bipedul meu să arate de fiecare dată ca un WALL-E cu un cap care se clatină. Nu rece!
  • Aranjamentul [servo-senzor] poate fi, de asemenea, construit ca un stil [senzor motor]. Senzorul (sau senzorii) se rotește continuu de-a lungul axei motorului. Acest lucru poate elimina mișcările de impuls și frecvența scăzută a scanării, dar nu limitarea proiectării trunchiului. Dificultatea cablării ar crește, de asemenea, substanțial.

După căutare, acest mic senzor VL53L0X de la ST mi-a stropit ochii. Prin revendicarea senzorului de distanță de timp „cel mai mic din lume”, dimensiunea este de numai 4,4 x 2,4 x 1,0 mm. Oferind

  • Emițător și detector laser IR cu cip
  • Distanță de până la 2 m (1,2 m în modul rapid)
  • Adresă I2C programabilă
  • Un pin de ieșire de întrerupere GPIO
  • Ochi în siguranță

Toate aceste caracteristici speciale combinate mi-au permis să depășesc problemele de mai sus, dacă ar putea funcționa o serie de senzori VL53L0X. Inițial, am crezut că acest radar va fi numit radar solid, dar am aflat că acest termen a fost folosit pentru altceva. Prin urmare, cuvântul „staționar” din titlu înseamnă că nu există părți în mișcare în acest gadget radar. De asemenea, în timp ce LIDAR (detectarea și distanța luminii) este termenul tehnic corect pentru acest cip, RADAR este denumit aici ca un termen mai generic.

Motivul pentru care adresa I2C programabilă și pinul de ieșire GPIO sunt esențiale pentru acest proiect este explicat mai târziu.

Pasul 1: Instrumente și piese

Unelte și piese
Unelte și piese
Unelte și piese
Unelte și piese

Instrumente

În acest proiect sunt necesare următoarele instrumente:

  • Ciocan de lipit
  • Lipirea mâinilor de ajutor
  • Instrument de sertizare Dupont
  • Driver hexagonal de 1,5 mm
  • Instrument pentru îndepărtarea învelișului de sârmă
  • Cleste de sarma
  • Pistol de lipit fierbinte
  • Pensetă
  • Lupă (fizică sau aplicații în telefon)
  • Cleste pentru nas plat

Părți

Următoarele părți sunt utilizate în acest proiect:

  • 10x plăci de rupere VL53L0X GY-530
  • Un Arduino (Uno, Nano, Mega, Zero, Mini, etc. etc)
  • O placă de pană și niște fire de pană de prăjitură
  • Firuri AWG # 26 cu culori diferite
  • Sârmă cu un singur miez AWG # 30
  • 5x conectori Dupont tată
  • 5x carcase Dupont cu un singur pin
  • Suporturi pentru plăci de imprimare imprimate 3D 10x
  • 1x cadru circular imprimat 3D
  • 10x șuruburi cu cap plat M2x10
  • 10x 0804 LED (albastru recomandat)
  • 10x MOSFET SOT-23 AO3400 cu canal N
  • Un condensator mic (10 ~ 100uF)

Placă de separare

Placa de scăpare VL53L0X pe care am folosit-o este GY-530. Există, de asemenea, versiunea Adafruit și versiunea Pololu disponibile. Dacă este fezabil, vă recomand să utilizați produsul Adafruit sau Pololu, deoarece produc produse excelente, tutoriale excelente și biblioteci software excelente. Am testat pe biblioteca VL53L0X Adafruit și am folosit o versiune modificată a bibliotecii VL53L0X Pololu.

Conectori Dupont

Conectorii dupont sunt utilizați pentru panoul de control. Puteți utiliza orice alte tipuri de conexiuni pe care le aveți la îndemână.

Șuruburi și piese imprimate 3D

Șuruburile M2, suporturile și cadrul circular sunt folosite pentru a plasa senzorii într-un aranjament circular. Puteți utiliza orice alte metode, cum ar fi utilizarea plăcilor de carton, modelelor de lemn, lutului sau chiar lipirii fierbinți pe o cutie.

Pasul 2: piratarea panoului Breadout

Hacking Board-ul Breadout
Hacking Board-ul Breadout
Hacking Board-ul Breadout
Hacking Board-ul Breadout
Hacking Board-ul Breadout
Hacking Board-ul Breadout
Hacking Board-ul Breadout
Hacking Board-ul Breadout

Conul de detectare

Am folosit un singur modul pentru a desena conul de detecție. Folosind ca țintă un robot tipărit în cea mai mare parte 3D. Distanța este afișată pe afișajul cu LED-uri și măsurată aproximativ. Datele măsurate sunt înregistrate într-un fișier Microsoft Excel și sunt utilizate funcția de ajustare a curbei. Cea mai bună potrivire este o curbă logaritmică naturală, cu o distanță efectivă de la 3 cm la aproximativ 100 cm.

La 60 cm, curba de detecție pentru un singur senzor este de aproximativ 22cm. Cu o țintă de 20 cm lățime, o separare circulară de 10 ~ 15 grade pentru matricea radar ar trebui să dea o rezoluție de scanare acceptabilă.

Adresa I2C

În timp ce adresa dispozitivului VL53L0X I2C este programabilă, este necesar controlul complet al pinului XSHUT de către microcontroler. Secvența de a face acest lucru este:

  1. Puterea este aplicată la AVDD.
  2. Toate cipurile VL53L0X sunt aduse la starea Hw Standby (resetare) conducând TOATE pinii XSHUT la LOW.
  3. Fiecare cip este scos din starea de resetare unul câte unul. Adresa I2C implicită după pornire este 0x52.
  4. Adresa cipului este schimbată într-o nouă adresă printr-o comandă I2C. De exemplu, 0x52 s-a schimbat în 0x53.
  5. Repetați pașii 3 și 4 pentru toate jetoanele.

Teoretic, maximum 126 de unități pot fi conduse în aceeași magistrală pentru gama de adrese de 7 biți. Cu toate acestea, în practică, capacitatea magistralei și limitarea curentului de scufundare a microcontrolerului pot / ar trebui să limiteze numărul maxim al dispozitivului.

Noua adresă I2C nu este stocată în cipul VL53L0X pentru oprire sau resetare. Astfel, acest proces trebuie făcut o dată la fiecare pornire. Aceasta înseamnă că este necesar un pin prețios pentru fiecare unitate din gama radar. Acest lucru este prea neprietenos cu cablajul și consumul de pin, pentru o centură radar cu 10+ sau 20+ unități.

După cum sa menționat în STEP1, este norocos că există un pin GPIO1 pe cipul VL53L0X, utilizat inițial pentru întrerupere, care poate face treaba.

Lanț de margarete GPIO-XSHUTN

Ieșirea GPIO se află în stare de impedanță ridicată la pornire și deschide golirea la scăzută în timp ce este activă. Pinii GPIO și XSHUT sunt ridicați la AVDD pe placa de rupere GY-530, așa cum se recomandă în foaia tehnică. Pentru a pune în mod fiabil toate cipurile VL53L0X în starea Hw Standby (conducând XSHUT scăzut), avem nevoie de o poartă logică (invertor) pentru fiecare pin XSHUT. Apoi conectăm ieșirea GPIO a unui cip (al N-lea cip) la XSHUTN (XSHUT-NOT) al cipului din aval (cipul N + 1).

La pornire, toți pinii GPIO (inactivi) sunt trageți în sus, toți pinii XSHUT ulteriori sunt conduși jos de poarta NOT (cu excepția cipului foarte mare în care pinul său XSHUTN este conectat la microcontroler). Schimbarea adresei I2C și eliberarea XSHUT a cipului din aval se face în software, unul câte unul.

Dacă utilizați diferite plăci de rupere, trebuie să vă asigurați dacă rezistențele de tracțiune sunt în poziție sau nu și să efectuați ajustările corespunzătoare.

Adăugarea unui LED

În pasul următor, un mic LED 0805 SMD va fi adăugat la placa de breakout, conectat de la pad-ul XSHUT la terminalul GND al unui condensator adiacent. Deși LED-ul în sine nu afectează funcționarea modulului, acesta ne oferă o bună indicație vizuală la nivel logic XSHUT.

Cuplarea LED-ului în serie cu rezistența de tracțiune (10k în cazul meu) de pe pinul XSHUT va introduce o cădere de tensiune. În loc de un nivel logic ridicat de 3,3v, căderea de tensiune directă pentru un LED roșu 0805 este măsurată 1,6v. Deși această tensiune este mai mare decât nivelul logic ridicat (1.12v) din foaia de date, LED-ul albastru este mai bun pentru acest hack. Căderea de tensiune directă pentru LED-ul albastru este măsurată la aproximativ 2,4 v, care este în siguranță peste nivelul logic al cipului.

Adăugarea invertorului N-MOS (Logic NOT Gate)

Un mic MOSFET SOT-23 cu canal N este stivuit pe LED-ul pe care l-am adăugat. Două terminale (D, S) trebuie lipite pe placa de rupere, iar terminalul rămas (G) este conectat la pinul GPIO al plăcii din amonte folosind firul # 26.

Note despre adăugarea componentelor SMD

Lipirea componentelor SMD de pe o placă care nu este concepută nu este o sarcină ușoară. Dacă nu ați auzit încă de 0805, SMD, SOT-23, șansele sunt că nu ați lipit până acum acele mici componente. În timp ce manipulați aceste componente minuscule cu mâna, este foarte frecvent ca:

  • Micul lucru a căzut și a dispărut, pentru totdeauna,
  • Tampoanele minuscule de pe micuț tocmai s-au desprins.
  • Picioarele minuscule de pe micuț tocmai s-au rupt.
  • Cutia de lipit tocmai s-a adunat într-un blob și nu a putut fi separată.
  • Și altele…

Dacă totuși doriți să realizați acest radar, puteți:

  • Schimbați componentele într-un pachet mai mare, cum ar fi stilul DIP.
  • Obțineți mai multe componente decât minimul necesar, pentru practică și consum.

Pasul 3: lipirea LED-ului 0805

Lipirea LED-ului 0805
Lipirea LED-ului 0805
Lipirea LED-ului 0805
Lipirea LED-ului 0805
Lipirea LED-ului 0805
Lipirea LED-ului 0805
Lipirea LED-ului 0805
Lipirea LED-ului 0805

Lipirea LED-ului 0805 SMD

Lipirea manuală a unui LED 0805 pe o placă care nu este concepută pentru SMD nu este deloc o sarcină ușoară. Următorii pași sunt recomandarea mea de a lipi LED-ul.

  1. Folosiți mâna de ajutor pentru a vă ține placa de spargere.
  2. Puneți o pastă de lipit pe marginea condensatorului SMD și a tamponului "XSHUT".
  3. Folosiți fierul de lipit pentru a pune o lipire suplimentară pe marginea condensatorului.
  4. Puneți o pastă de lipit pe ambele capete ale LED-ului 0805.
  5. Folosiți fierul de lipit pentru a pune niște tablă pe ambele capete ale LED-ului 0805.
  6. Utilizați penseta pentru a plasa LED-ul așa cum se arată în fotografie. Capătul catodului are în mod normal o linie marcată. În exemplul meu, există o linie verde pe capătul catodului. Așezați capătul catodului la capătul condensatorului.
  7. Folosiți penseta pentru a adăuga o presiune ușoară pe LED către condensator și lipiți LED-ul la capătul condensatorului, adăugând în același timp căldură la capătul condensatorului. Nu apăsați cu putere pe LED. Capacul acestuia se poate rupe sub căldură și presiune excesivă. După lipire, adăugați o presiune ușoară pe LED-ul lateral, pentru a testa dacă LED-ul este lipit în poziție.
  8. Acum lipiți LED-ul la tamponul XSHUT. Acest pas ar trebui să fie mai ușor.

Notă: Capătul condensatorului prezentat în imagine este terminalul de masă de pe această placă de rupere. Și tamponul de înmuiere XSHUT este tras de un rezistor.

Testarea LED-ului

LED-ul ar trebui să se aprindă atunci când alimentați (ex. 5V) și împământați pe placa de rupere.

Pasul 4: lipirea MOSFET-ului N-Channel

Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel
Lipirea MOSFET-ului N-Channel

Lipirea MOSFET-ului cu canal N AO3400

Acest MOSFET se află în pachetul SOT-23. Trebuie să-l „stivuim” pe LED și să adăugăm și un fir:

  1. Puneți niște pastă de lipit și stanjați toate cele trei borne.
  2. Folosiți o pensetă pentru a plasa MOSFET-ul deasupra LED-ului 0805. Terminalul S trebuie să atingă partea superioară a condensatorului
  3. Lipiți terminalul S cu capătul condensatorului, așa cum se arată în fotografie.
  4. Tăiați o secțiune mică de sârmă cu un singur miez AWG # 30 și îndepărtați învelișul de aproximativ 1cm.
  5. Folosiți fierul de lipit pentru a topi lipirea în orificiul XSHUT de jos și introduceți firul # 30 de sus, așa cum se arată în fotografie.
  6. Lipirea capătului superior al firului la terminalul MOSFET D.
  7. Tăiați firul suplimentar.

Notă: Terminalul MOSFET S este conectat la capătul condensatorului așa cum se arată în imagine. Acest capăt este terminalul de la sol. Terminalul MOSFET D este conectat la pinul XSHUT original.

Terminalul G nu este conectat în acest moment. Poziția sa este chiar deasupra unor rezistențe pull-up. Asigurați-vă că există un decalaj între ele (N-MOS și rezistor) și că nu intră în contact unul cu celălalt.

Pasul 5: Cablarea matricei de senzori

Cablarea matricei senzorilor
Cablarea matricei senzorilor
Cablarea matricei senzorilor
Cablarea matricei senzorilor
Cablarea matricei senzorilor
Cablarea matricei senzorilor

Cablare comună a autobuzului

Autobuzul comun include:

  • Puterea Vcc. Roșu în fotografie. Folosesc arduino nano cu logică 5v. Placa de separare are LDO și schimbător de nivel. Deci, este sigur să folosiți 5v ca Vin.
  • Sol. Negru în fotografie.
  • SDA. Verde în fotografie.
  • SCL. Galben în fotografie.

Aceste patru linii sunt linii comune. Tăiați lungimea corespunzătoare a firelor și lipiți-le în paralel, la toate modulele senzorilor. Am folosit 20 cm de la arduino la primul senzor și 5 cm fiecare după aceea.

Cablare XSHUTN și GPIO

Firul alb de 20 cm este de la pinul de control arduino, la pinul XSHUTN al primului senzor. Aceasta este linia de control necesară pentru a scoate primul cip VL53L0X din reset și pentru a schimba adresa I2C.

Firul alb de 5 cm dintre fiecare modul este linia de control a lanțului de margaretă. Cipul din amonte (de exemplu, cipul # 3) GPIO pad, este conectat la piciorul XSHUTN din aval (de exemplu, cipul # 4) (terminalul M-MOSFET G N-Channel).

Aveți grijă să nu faceți contactul terminalului G cu rezistorul de mai jos. Puteți adăuga o bandă izolatoare în gol. Căptușeala de protecție furnizată de obicei cu cipul VL53L0X poate fi utilizată aici.

Folosiți pistolul termic pentru a lipi firul de control.

Lipici fierbinte

După cum puteți vedea în fotografie, există un blob de adeziv fierbinte pe firul de control alb, lângă terminalul N-MOS G. Acest pas este foarte important și absolut necesar. O lipire plutitoare direct la piciorul componentei SMD este foarte slabă. Chiar și o mică presiune asupra firului poate rupe piciorul. Faceți acest pas ușor.

Testarea LED-ului

Când aplicați putere (ex. 3.3v-5v) și împământare la senzorul, LED-ul de pe primul modul ar trebui să răspundă cu nivelul logic al firului XSHUTN. Dacă conectați XSHUTN la logic high (ex. 3.3v-5v), LED-ul ar trebui să fie stins. Dacă conectați firul XSHUTN la scăzut (împământare), LED-ul de pe primul modul ar trebui să fie aprins.

Pentru toate modulele ulterioare, LED-ul ar trebui să fie stins.

Acest test este efectuat înainte de conectarea la arduino.

Pasul 6: Finalizarea matricei senzorilor

Image
Image
Finalizarea matricei senzorilor
Finalizarea matricei senzorilor
Finalizarea matricei senzorilor
Finalizarea matricei senzorilor
Finalizarea matricei senzorilor
Finalizarea matricei senzorilor

Testarea lanțului Daisy

Acum vrem să testăm dacă schimbarea adresei I2C funcționează pentru toți senzorii din matrice. După cum am menționat, primul cip este controlat de arduino. Al doilea cip este controlat de primul cip și așa mai departe.

  1. Configurați placa de pâine. Șina 5V și Ground sunt conectate direct de la 5V adriano și la sol. Consumul de curent pentru fiecare senzor este evaluat la 19ma în foaia de date.
  2. Adăugați un condensator pe șina de alimentare pentru a ajuta la stabilizarea vinului.
  3. Conectați Vin și Masă de la senzor la șina de alimentare.
  4. Conectați SDA la arduino Nano pin A4 (poate fi diferit pentru alte microcontrolere).
  5. Conectați SCL la pinul arduino Nano A5 (poate fi diferit pentru alte microcontrolere).
  6. Conectați firul XSHUTN la arduino Nano pin D2. (Acest lucru poate fi schimbat în schiță).
  7. Accesați github https://github.com/FuzzyNoodle/Fuzzy-Radar și descărcați biblioteca.
  8. Deschideți exemplul „Daisy_Chain_Testing” și încărcați schița.

Dacă totul funcționează, ar trebui să vedeți LED-urile de stare să se aprindă unul câte unul, similar cu clipul video de mai sus.

De asemenea, puteți deschide fereastra Serial și puteți vedea progresul inițializării. Ieșirea va apărea astfel:

Deschidere port Deschidere port Deschidere schiță. Setați cipul 0 în modul de resetare. Toate LED-urile de stare ar trebui să fie stinse. Acum configurați senzorii. LED-ul ar trebui să se aprindă unul câte unul. Configurarea cipului 0 - Resetați adresa I2C la 83 - Inițializați senzorul. Configurarea cipului 1 - Resetați adresa I2C la 84 - Inițializați senzorul. Configurarea cipului 2 - Resetați adresa I2C la 85 - Inițializați senzorul. Configurarea radarului a fost finalizată.

Asamblați suportul și cadrul

  1. Așezați cu grijă fiecare modul GY-530 pe suport cu șurubul M2x10. Nu apăsați MOSFET și nu trageți firele XSHUTN.
  2. Așezați fiecare suport în cadrul circular. Folosiți un lipici fierbinte pentru a lega piesele.

Din nou, șuruburile M2, suporturile și cadrul circular sunt folosite pentru a plasa senzorii într-un aranjament circular. Puteți utiliza orice alte metode, cum ar fi utilizarea plăcilor de carton, modelelor de lemn, lutului sau chiar lipirii fierbinți pe o cutie.

Fișierele tipărite 3D pe care le-am folosit sunt furnizate mai jos. Cadrul circular are 9 module și este separat de 10 grade fiecare. Dacă aveți un ochi ascuțit, în fotografiile anterioare erau 10 module. Motivul? Explicați mai jos …

Scoateți căptușeala de protecție

Dacă ați urmat pașii de la început, este momentul potrivit să scoateți căptușeala de protecție de pe cipul VL53L0X. Pe fotografiile mele anterioare, acestea sunt deja eliminate deoarece trebuie să testez modulele și să mă asigur că conceptul funcționează înainte de a posta aceste instructabile.

Despre căptușeala de protecție, fișa tehnică precizează: „Trebuie îndepărtată de client chiar înainte de montarea sticlei de acoperire”. Cele două găuri minuscule (emițător și receptor) de pe cipul VL53L0X sunt vulnerabile la poluare, cum ar fi praful, grăsimea, adezivul fierbinte etc.

Odată poluat, intervalul poate fi redus, iar citirile pot fi oprite cu o cantitate evidentă. Unul dintre modulele mele de testare este poluat accidental de clei de lut, raza de acțiune este redusă la 40 cm, iar citirea distanței este mărită eronat cu 50%. Asa ca fii atent!

Pasul 7: Obținerea datelor

Image
Image
Laser Tracer (Demonstrație)
Laser Tracer (Demonstrație)

Folosind exemplul Raw_Data_Serial_Output

Acum ne place foarte mult să vedem datele din matricea noastră de senzori. În biblioteca arduino de pe GitHub:

https://github.com/FuzzyNoodle/Fuzzy-Radar

Există un exemplu numit Raw_Data_Serial_Output. Acest exemplu demonstrează ieșirea de date brute din matricea senzorilor. Valorile de ieșire sunt în milimetri.

După ce senzorii sunt inițializați, ar trebui să vedeți așa ceva în fereastra serială atunci când vă fluturați mâna prin senzori:

Consultați videoclipul pentru o demonstrație live.

Folosind exemplul Fuzzy_Radar_Serial_Output

Următorul pas este să obțineți date utile din aceste citiri la distanță. Ceea ce ne-am dorit de la un RADAR sunt distanța și unghiul obiectului țintă.

  • Distanța este în milimetri, în raport cu suprafața senzorului. Revenind la 0 înseamnă că ținta este în afara intervalului.
  • Unghiul este în grade, pe plan orizontal. Codul preconizat în prezent, senzorii sunt distanțați uniform. Revenind la 0 grade înseamnă că ținta se află în poziția centrală a matricei.

Unii algoritmi de filtrare sunt aplicați în bibliotecă:

  • Înlăturarea zgomotului:

    • Citirile scurte (din punct de vedere al numărului de eșantioane) sunt considerate zgomot și sunt eliminate.
    • Citirile care sunt departe de valoarea medie sunt eliminate.
  • Calculul unghiului de greutate (vezi ilustrația de mai sus)

    • Se presupune că obiectul țintă este o suprafață plană
    • Dacă mai mulți senzori au detectat obiectul în același timp, se calculează o greutate pentru fiecare senzor.
    • Greutatea fiecărui senzor este invers legată de distanța sa.
    • Îngerul rezultat este calculat din unghiul ponderat al fiecărui senzor.
  • Selectarea țintei principale:

    • Dacă există mai multe grupuri de citiri, rămâne cel mai larg grup (cu un număr mai mare de citire a senzorilor).
    • De exemplu, dacă puneți două mâini în fața matricei de senzori, mâna detectată de mai mulți senzori rămâne.
  • Cea mai apropiată selecție a țintei:

    • Dacă există mai multe grupuri detectate cu aceeași lățime, grupul aflat la cea mai apropiată distanță rămâne.
    • De exemplu, dacă puneți două mâini în fața matricei de senzori și două grupuri detectate au același număr de senzori, grupul mai aproape de senzor rămâne.

Distanța de ieșire și unghiul sunt netezite prin filtrul de trecere jos

În Raw_Data_Serial_Output, citirile distanței brute sunt convertite în valoare de distanță și unghi. După ce ați încărcat schița, puteți deschide fereastra serială pentru a vedea rezultatul similar cu acesta:

Niciun obiect detectat. Niciun obiect detectat. Nu a fost detectat niciun obiect. Distanță = 0056 Unghi = 017 Distanță = 0066 Unghi = 014 Distanță = 0077 Unghi = 011 Distanță = 0083 Unghi = 010 Distanță = 0081 Unghi = 004 Distanță = 0082 Unghi = 000 Distanță = 0092 Unghi = 002 Distanță = 0097 Unghi = 001 Distanță = 0096 Unghi = 001 Distanță = 0099 Unghi = 000 Distanță = 0101 Unghi = -002 Distanță = 0092 Unghi = -004 Distanță = 0095 Unghi = -007 Distanță = 0101 Unghi = -008 Distanță = 0112 Unghi = -014 Distanță = 0118 Unghi = -017 Distanță = 0122 Unghi = -019 Distanță = 0125 Unghi = -019 Distanță = 0126 Unghi = -020 Distanță = 0125 Unghi = -022 Distanță = 0124 Unghi = -024 Distanță = 0133 Unghi = -027 Distanță = 0138 Unghi = - 031 Distanță = 0140 Unghi = -033 Distanță = 0136 Unghi = -033 Distanță = 0125 Unghi = -037 Distanță = 0120 Unghi = -038 Distanță = 0141 Unghi = -039 Nu a fost detectat niciun obiect. Nu a fost detectat niciun obiect. Nu a fost detectat niciun obiect.

Deci, acum aveți un RADAR (LIDAR):

  • Mai mic decât modulele cu senzori cu ultrasunete
  • Fără piese în mișcare
  • Scanează la 40 Hz.
  • În formă de centură, poate fi montat pe un cadru circular
  • Folosiți doar trei fire de control, plus curent și împământare.
  • Are o gamă de la 30 milimetri la aproximativ 1000 milimetri.

În pașii următori, vă vom arăta niște demonstrații interesante!

Pasul 8: Laser Tracer (Demonstrație)

Image
Image
Laser Tracer (Demonstrație)
Laser Tracer (Demonstrație)

Acesta este un exemplu de utilizare a radarului staționar pe care l-am construit din pașii anteriori. Acest pas nu este scris în detaliu, deoarece acesta este un demonstrator al radarului. În general, aveți nevoie de aceste elemente suplimentare pentru a construi acest proiect demonstrativ:

  • Două servouri
  • Un cap care emite un stilou laser
  • Un tranzistor MOSFET sau NPN pentru a controla ieșirea capului laser
  • O sursă de alimentare pentru servo. Ar trebui să fie separat de microcontroler.

Codul poate fi descărcat de aici.

Vă rugăm să consultați videoclipul furnizat.

Pasul 9: Poopeyes fix (demonstrație)

Image
Image

Demonstrarea utilizării radarului pentru a urmări locația și distanța obiectului.

Recomandat: