Përmbajtje:

Radar me rreze infra të kuqe me Arduino: 6 hapa
Radar me rreze infra të kuqe me Arduino: 6 hapa

Video: Radar me rreze infra të kuqe me Arduino: 6 hapa

Video: Radar me rreze infra të kuqe me Arduino: 6 hapa
Video: Octopus Max EZ v1.0 - TFT35 E3 2024, Nëntor
Anonim
Image
Image

Në këtë projekt të vogël do të doja t'ju tregoja se si mund të krijoni një Radar të thjeshtë në shtëpi me Arduino. Ka shumë projekte të ngjashme në internet, por të gjithë ata po përdorin një sensor tejzanor për të matur distancën. Në këtë projekt unë përdor një sensor infra të kuqe për matjen e distancës.

Qëllimi im është të krijoj një sistem LIDAR shumë të thjeshtë dhe të lirë me të dhe të zbatoj një pajisje hartografike.

Furnizimet

  • Arduino (kam përdorur një Maple Mini)
  • Sensori i distancës së mprehtë (kam përdorur Sharp GP2Y0A02YK0F)
  • Servo mikro (9g)
  • Breadboard, tela
  • Opsionale: Rezistencë 4.7k, Kondensator 100nF

Hapi 1: Sensori tejzanor VS Infrared

Skematike
Skematike

Dallimi kryesor midis sensorëve të distancës tejzanor dhe infra të kuqe është se sensori tejzanor mat distancën në një gamë më të gjerë. Prandaj, nuk është në gjendje të gjejë saktësisht pozicionin e një pengese. Do të thotë se mat distancën e objektit më të afërt i cili ndodhet brenda një diapazoni këndor ~ +-30 °.

Sigurisht, nuk do të thotë që sensori Sharp është më i mirë. Ndonjëherë kjo pronë mund të jetë shumë e dobishme (p.sh. përdoret nga dronët për të matur lartësinë nga toka). Zgjedhja e duhur varet plotësisht nga kërkesat e projektit tuaj.

Hapi 2: Skematike

Skematike
Skematike
Skematike
Skematike

Veryshtë shumë e thjeshtë për të bërë lidhjen midis pjesëve. Zgjidhni një dalje PWM dhe një hyrje analoge në tabelën tuaj Arduino dhe lidhni sensorët e distancës Servo dhe Sharp me ato kunjat. Kam përdorur kunjat e mëposhtme për këtë qëllim:

  • PA0: Hyrje analoge për sensorin e distancës së mprehtë
  • PA9: Dalja PWM për Servo

Ndonjëherë Sensori Sharp IR mund të ketë dalje të zhurmshme, prandaj duhet të vendosni një filtër të thjeshtë Low Pass në të. Kam përdorur një rezistencë 4.7k dhe një kondensator 100nF për të zvogëluar zhurmën në kunjin analog. Përveç kësaj, unë gjithashtu filtrova vlerën e matur në kod duke e lexuar atë shumë herë dhe duke llogaritur mesataren.

Hapi 3: Sensori Karakteristik

Sensori Karakteristik
Sensori Karakteristik
Sensori Karakteristik
Sensori Karakteristik

Fatkeqësisht sensori i distancës infra të kuqe të përdorur ka karakteristikë jo-lineare. Do të thotë që për të marrë distancën, nuk mjafton të shumëzoni vlerën e matur ADC me një vlerë konstante dhe t'i shtoni një vlerë tjetër konstante.

Edhe pse fleta e të dhënave e sensorit jep karakteristikën, unë preferoj ta mat vetë me të në projektin specifik (mund të varet nga tensioni i përdorur). Për këtë, unë bëra çifte nga vlera e matur ADC dhe distanca për çdo 10 cm. (Sensori im ishte në gjendje të masë distancën e saktë nga 12 cm).

Unë i përdor këto çifte në kod për të marrë distancën e saktë me Interpolimin Linear.

Ju do të gjeni një kod të thjeshtë Arduino në fund të dokumentit, për të matur vlerën ADC gjatë matjes karakteristike.

Hapi 4: Komunikimi Serial

Komunikimi Serial
Komunikimi Serial

Kam përdorur komunikimin serik për të dërguar vlerat e matura të kënd-distancës në PC. Meqenëse më duhet të dërgoj shumë byte dhe lloje të ndryshme mesazhesh, unë hartova një protokoll të thjeshtë komunikimi.

Ky prokotol bën të aftë të përcaktojë lloje të ndryshme mesazhesh në një mënyrë të përgjithshme. Në këtë projekt kam përdorur 2 lloje mesazhesh:

  • Parametrat: Përdoret për të dërguar parametra në Aplikacionin e PC, të përcaktuar në Arduino si distanca maksimale dhe numri i pengesave në një raund.
  • Pengesë: Përdoret për të dërguar një pengesë të zbuluar. Identifikohet nga këndi i servo dhe distanca e matur. Pozicioni x-y do të llogaritet nga aplikimi i kompjuterit.

Hapi 5: Aplikimi Qt

Aplikimi Qt
Aplikimi Qt

Për të komunikuar me Arduino dhe për të nxjerrë pikat e matura si një radar, bëra një Aplikacion PC në Qt (C ++). Ai merr disa parametra (të përcaktuar në Arduino) dhe pikat e distancës së matur.

Ju gjithashtu mund të shkarkoni aplikacionin dhe kodin burimor të tij.

Hapi 6: Kodi Burimor Arduino

Mund të personalizoni disa parametra në krye të kodit me makro.

Vini re, nëse ndryshoni karakteristikën e sensorit të distancës Sharp, ju duhet të modifikoni vlerat e vargut distAdcMap !

  • InfraRadar.c: Kodi i radarit. Kopjoni dhe ngjisni atë në projektin tuaj Arduino.
  • InfraRadarMeasurement.c: Kodi për matjen karakteristike. Kopjoni dhe ngjisni atë në projektin tuaj Arduino. Përdorni Serial Console për të kontrolluar vlerat ADC.

Recommended: