Turinys:

Infraraudonųjų spindulių radaras su „Arduino“: 6 žingsniai
Infraraudonųjų spindulių radaras su „Arduino“: 6 žingsniai

Video: Infraraudonųjų spindulių radaras su „Arduino“: 6 žingsniai

Video: Infraraudonųjų spindulių radaras su „Arduino“: 6 žingsniai
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Lapkritis
Anonim
Image
Image

Šiame mažame projekte norėčiau jums parodyti, kaip galite sukurti paprastą radarą namuose su „Arduino“. Internete yra daug panašių projektų, tačiau visi jie naudoja ultragarso jutiklį atstumui matuoti. Šiame projekte aš naudoju infraraudonųjų spindulių jutiklį atstumui matuoti.

Mano tikslas yra su ja sukurti labai paprastą ir pigią LIDAR sistemą ir įdiegti kartografavimo įrenginį.

Prekės

  • „Arduino“(naudojau „Maple Mini“)
  • „Sharp“atstumo jutiklis (naudojau „Sharp GP2Y0A02YK0F“)
  • Mikro servo (9g)
  • Duonos lenta, laidai
  • Neprivaloma: 4,7 k rezistorius, 100 nF kondensatorius

1 žingsnis: ultragarsinis VS infraraudonųjų spindulių jutiklis

Schema
Schema

Pagrindinis skirtumas tarp ultragarso ir infraraudonųjų spindulių atstumo jutiklių yra tas, kad ultragarso jutiklis matuoja atstumą platesniu diapazonu. Todėl jis negali tiksliai nustatyti kliūties padėties. Tai reiškia, kad jis matuoja artimiausio objekto, esančio ~ +-30 ° kampo diapazone, atstumą.

Žinoma, tai nereiškia, kad „Sharp“jutiklis yra geresnis. Kartais ši savybė gali būti labai naudinga (pvz., Naudojama bepiločiams orlaiviams matuoti aukštį nuo žemės). Teisingas pasirinkimas visiškai priklauso nuo jūsų projekto reikalavimų.

2 žingsnis: schema

Schema
Schema
Schema
Schema

Sujungti tarp dalių yra labai paprasta. Pasirinkite PWM išvestį ir analoginę įvestį „Arduino“plokštėje ir prijunkite „Servo“ir „Sharp“atstumo jutiklius prie tų kaiščių. Šiam tikslui naudojau šiuos kaiščius:

  • PA0: „Sharp“atstumo jutiklio analoginė įvestis
  • PA9: PWM išėjimas servui

Kartais „Sharp“infraraudonųjų spindulių jutiklis gali turėti triukšmingą išėjimą, todėl turite įdėti paprastą žemo dažnio filtrą. Analoginio kaiščio triukšmui sumažinti naudojau 4,7 k rezistorių ir 100nF kondensatorių. Be to, aš taip pat išfiltravau išmatuotą kodo vertę, perskaitydamas ją kelis kartus ir apskaičiuodamas vidurkį.

3 žingsnis: būdingas jutiklis

Būdingas jutiklis
Būdingas jutiklis
Būdingas jutiklis
Būdingas jutiklis

Deja, naudojamas infraraudonųjų spindulių atstumo jutiklis turi netiesinę charakteristiką. Tai reiškia, kad norint gauti atstumą, neužtenka padauginti išmatuotą ADC vertę su pastovia verte ir pridėti prie jos dar vieną pastovią vertę.

Nors jutiklio duomenų lape pateikiamos charakteristikos, man labiau patinka jį išmatuoti konkrečiame projekte (tai gali priklausyti nuo naudojamos įtampos). Tam aš sudariau poras iš išmatuotos ADC vertės ir atstumo kas 10 cm. (Mano jutiklis sugebėjo išmatuoti teisingą atstumą nuo 12 cm).

Aš naudoju šias poras kode, kad gaučiau teisingą atstumą naudojant linijinę interpoliaciją.

Dokumento pabaigoje rasite paprastą „Arduino“kodą, skirtą išmatuoti ADC vertę charakteristikų matavimo metu.

4 žingsnis: nuoseklusis ryšys

Serijinis bendravimas
Serijinis bendravimas

Aš naudoju nuoseklųjį ryšį, norėdamas nusiųsti išmatuotas kampo ir atstumo vertes į kompiuterį. Kadangi turiu siųsti kelis baitus ir skirtingo tipo pranešimus, sukūriau paprastą ryšio protokolą.

Šis prokotolis leidžia bendrai apibrėžti skirtingus pranešimų tipus. Šiame projekte naudojau 2 pranešimų tipus:

  • Parametrai: naudojamas parametrams siųsti į kompiuterio programą, apibrėžtą „Arduino“, pavyzdžiui, maksimalus atstumas ir kliūčių skaičius raunde.
  • Kliūtis: naudojama aptiktai kliūtei siųsti. Jis nustatomas pagal servo kampą ir išmatuotą atstumą. X-y padėtis bus apskaičiuojama naudojant kompiuterinę programą.

5 žingsnis: „Qt“taikymas

Qt taikymas
Qt taikymas

Norėdami bendrauti su „Arduino“ir nubrėžti išmatuotus taškus kaip radaras, sukūriau kompiuterio programą Qt (C ++). Jis gauna kai kuriuos parametrus (apibrėžtus „Arduino“) ir išmatuotus atstumo taškus.

Taip pat galite atsisiųsti programą ir jos šaltinio kodą.

6 veiksmas: „Arduino“šaltinio kodas

Naudodami makrokomandas galite tinkinti kai kuriuos paremetrus kodo viršuje.

Atminkite, kad jei pakeisite „Sharp“atstumo jutiklio charakteristikas, turėsite pakeisti distAdcMap masyvo vertes!

  • InfraRadar.c: radaro kodas. Nukopijuokite ir įklijuokite jį į savo „Arduino“projektą.
  • InfraRadarMeasurement.c: charakteristikų matavimo kodas. Nukopijuokite ir įklijuokite jį į savo „Arduino“projektą. Norėdami patikrinti ADC vertes, naudokite serijos konsolę.

Rekomenduojamas: