Talaan ng mga Nilalaman:

Infrared Radar With Arduino: 6 Hakbang
Infrared Radar With Arduino: 6 Hakbang

Video: Infrared Radar With Arduino: 6 Hakbang

Video: Infrared Radar With Arduino: 6 Hakbang
Video: How to use Sharp IR Distance Sensor with Arduino (download code) 2024, Nobyembre
Anonim
Image
Image

Sa maliit na proyekto na ito nais kong ipakita sa iyo kung paano ka makakalikha ng isang simpleng Radar sa Home kasama si Arduino. Maraming mga katulad na proyekto sa internet, ngunit lahat sila ay gumagamit ng isang ultrasonic sensor upang masukat ang distansya. Sa proyektong ito gumagamit ako ng isang infrared sensor para sa pagsukat ng distansya.

Ang aking layunin ay upang lumikha ng isang napaka-simple at murang LIDAR system kasama nito at magpatupad ng isang aparato sa pagmamapa.

Mga gamit

  • Arduino (Gumamit ako ng Maple Mini)
  • Biglang distansya sensor (Gumamit ako ng Biglang GP2Y0A02YK0F)
  • Micro Servo (9g)
  • Breadboard, mga wire
  • Opsyonal: 4.7k Resistor, 100nF Capacitor

Hakbang 1: Ultrasonic VS Infrared Sensor

Skematika
Skematika

Ang pangunahing pagkakaiba sa pagitan ng ultrasonic at infrared distansya sensor ay ang ultrasonik sensor ay sumusukat sa distansya sa mas malawak na saklaw. Samakatuwid hindi ito tumpak na mahahanap ang posisyon ng isang balakid. Nangangahulugan ito na sinusukat nito ang distansya ng pinakamalapit na bagay na matatagpuan sa loob ng saklaw na anggulo ng ~ + -30 °.

Siyempre, hindi ito nangangahulugan na ang Sharp sensor ay mas mahusay. Minsan ang pag-aari na ito ay maaaring maging napaka kapaki-pakinabang (hal. Ginamit ng mga drone upang masukat ang taas mula sa lupa). Ang tamang pagpipilian ay ganap na nakasalalay sa mga kinakailangan ng iyong proyekto.

Hakbang 2: Skematika

Skematika
Skematika
Skematika
Skematika

Napakadaling gawin ang koneksyon sa pagitan ng mga bahagi. Pumili ng isang PWM Output at isang Analog Input sa iyong Arduino board at ikonekta ang mga sensor ng distansya ng Servo at Sharp sa mga pin na iyon. Ginamit ko ang mga sumusunod na pin para sa hangaring ito:

  • PA0: Analog input para sa Sharp distansya sensor
  • PA9: Output ng PWM para sa Servo

Minsan ang Sharp IR Sensor ay maaaring magkaroon ng maingay na output, samakatuwid kailangan mong maglagay ng isang simpleng Low Pass Filter dito. Gumamit ako ng 4.7k resistor at isang 100nF capacitor upang mabawasan ang ingay sa analog pin. Bukod sa na-filter ko din ang sinusukat na halaga sa code sa pamamagitan ng pagbabasa nito ng maraming beses at pagkalkula ng average.

Hakbang 3: Katangian ng Sensor

Katangian ng Sensor
Katangian ng Sensor
Katangian ng Sensor
Katangian ng Sensor

Sa kasamaang palad ang ginamit na infrared distansya sensor ay may di-linear na katangian. Nangangahulugan ito na upang makuha ang distansya, hindi sapat upang maparami ang sinusukat na halaga ng ADC na may isang pare-pareho na halaga at pagdaragdag ng isa pang pare-pareho na halaga dito.

Kahit na ang datasheet ng sensor ay nagbibigay ng katangian, mas gusto kong sukatin ito sa pamamagitan ng aking sarili sa tukoy na proyekto (maaaring ito ay depende sa ginamit na boltahe). Para sa mga ito, gumawa ako ng mga pares mula sa sinusukat na Halaga ng ADC at distansya para sa bawat 10 cm. (Nasusukat ng aking sensor ang tamang distansya mula sa 12 cm).

Ginamit ko ang mga pares na ito sa code upang makuha ang tamang distansya sa Linear Interpolation.

Mahahanap mo ang isang simpleng Arduino code sa dulo ng dokumento, upang masukat ang Halaga ng ADC sa panahon ng pagsukat ng katangian.

Hakbang 4: Serial Communication

Serial na Komunikasyon
Serial na Komunikasyon

Gumamit ako ng serial na komunikasyon upang maipadala ang sinusukat na mga halaga ng anggulo-distansya sa PC. Dahil kailangan kong magpadala ng maraming byte at iba't ibang uri ng mga mensahe, nagdisenyo ako ng isang simpleng protocol sa komunikasyon.

Ginagawa ng procotol na ito na tukuyin ang iba't ibang mga uri ng mensahe sa isang generic na paraan. Sa proyektong ito gumamit ako ng 2 uri ng mensahe:

  • Mga Parameter: Ginamit upang magpadala ng mga parameter sa Application ng PC, na tinukoy sa Arduino tulad ng maximum na distansya at bilang ng mga hadlang sa isang pag-ikot.
  • Sagabal: Ginamit upang magpadala ng isang nakitang balakid. Nakikilala ito sa pamamagitan ng anggulo ng servo at sinusukat na distansya. Ang posisyon na x-y ay makakalkula ng aplikasyon ng PC.

Hakbang 5: Application ng Qt

Qt Application
Qt Application

Upang makipag-usap sa Arduino at iguhit ang mga sinusukat na puntos tulad ng isang radar gumawa ako ng isang PC Application sa Qt (C ++). Nakatanggap ito ng ilang mga parameter (tinukoy sa Arduino) at ang sinusukat na mga puntos sa distansya.

Maaari mong i-download ang application at ang source code din.

Hakbang 6: Arduino Source Code

Maaari mong ipasadya ang ilang mga paremeter sa tuktok ng code gamit ang macros.

Tandaan, na kung binago mo ang katangian ng Sharp distansya sensor, kailangan mong baguhin ang distAdcMap mga halaga ng array!

  • InfraRadar.c: Code ng radar. Kopyahin at i-paste ito sa iyong proyekto ng Arduino.
  • InfraRadarMeasurement.c: Code para sa pagsukat ng katangian. Kopyahin at i-paste ito sa iyong proyekto ng Arduino. Gumamit ng Serial Console upang suriin ang Mga Halaga ng ADC.

Inirerekumendang: