Sadržaj:

Infracrveni radar s Arduinom: 6 koraka
Infracrveni radar s Arduinom: 6 koraka

Video: Infracrveni radar s Arduinom: 6 koraka

Video: Infracrveni radar s Arduinom: 6 koraka
Video: обзор GPS модуля NEO-6M 2024, Studeni
Anonim
Image
Image

U ovom malom projektu želio bih vam pokazati kako možete stvoriti jednostavan radar kod kuće s Arduinom. Na internetu postoji mnogo sličnih projekata, ali svi oni koriste ultrazvučni senzor za mjerenje udaljenosti. U ovom projektu koristim infracrveni senzor za mjerenje udaljenosti.

Cilj mi je stvoriti vrlo jednostavan i jeftin LIDAR sustav s njim i implementirati uređaj za mapiranje.

Pribor

  • Arduino (koristio sam Maple Mini)
  • Oštri senzor udaljenosti (koristio sam Sharp GP2Y0A02YK0F)
  • Mikro servo (9 g)
  • Oglasna ploča, žice
  • Izborno: 4,7 k otpornik, 100nF kondenzator

Korak 1: Ultrazvučni VS infracrveni senzor

Shematski
Shematski

Glavna razlika između ultrazvučnih i infracrvenih senzora udaljenosti je ta što ultrazvučni senzor mjeri udaljenost u širem rasponu. Stoga nije u stanju precizno locirati položaj prepreke. To znači da mjeri udaljenost najbližeg objekta koji se nalazi unutar kutnog raspona ~ +-30 °.

Naravno, to ne znači da je Sharp senzor bolji. Ponekad ovo svojstvo može biti vrlo korisno (npr. Koriste ga dronovi za mjerenje visine od tla). Pravi izbor u potpunosti ovisi o zahtjevima vašeg projekta.

Korak 2: Shematski prikaz

Shematski
Shematski
Shematski
Shematski

Povezivanje dijelova vrlo je jednostavno. Odaberite PWM izlaz i analogni ulaz na Arduino ploči i spojite Servo i Sharp senzore udaljenosti na te pinove. U tu sam svrhu upotrijebio sljedeće igle:

  • PA0: Analogni ulaz za oštri senzor udaljenosti
  • PA9: PWM izlaz za servo

Ponekad Sharp IR senzor može imati bučne izlaze pa na njega morate staviti jednostavan niskopropusni filtar. Koristio sam otpornik od 4,7 k i kondenzator od 100 nF za smanjenje buke na analognom pinu. Osim toga, također sam filtrirao izmjerenu vrijednost u kodu čitajući je više puta i izračunavajući prosjek.

Korak 3: Karakteristika senzora

Karakteristika senzora
Karakteristika senzora
Karakteristika senzora
Karakteristika senzora

Nažalost, infracrveni senzor udaljenosti ima nelinearne karakteristike. To znači da za dobivanje udaljenosti nije dovoljno izmjeriti izmjerenu vrijednost ADC -a s konstantnom vrijednošću i dodati joj još jednu konstantnu vrijednost.

Iako podatkovni list senzora daje karakteristike, radije ga mjerim sam u određenom projektu (to može ovisiti o upotrijebljenom naponu). Za to sam napravio parove od izmjerene vrijednosti ADC -a i udaljenosti za svakih 10 cm. (Moj senzor je mogao izmjeriti ispravnu udaljenost od 12 cm).

Koristio sam ove parove u kodu da dobijem ispravnu udaljenost s linearnom interpolacijom.

Na kraju dokumenta pronaći ćete jednostavan Arduino kôd za mjerenje ADC vrijednosti tijekom karakterističnog mjerenja.

Korak 4: Serijska komunikacija

Serijska komunikacija
Serijska komunikacija

Koristio sam serijsku komunikaciju za slanje izmjerenih vrijednosti kutne udaljenosti na računalo. Budući da moram poslati više bajtova i različite vrste poruka, dizajnirao sam jednostavan komunikacijski protokol.

Ovaj prokotol omogućuje definiranje različitih vrsta poruka na opći način. U ovom projektu koristio sam 2 vrste poruka:

  • Parametri: Koristi se za slanje parametara u PC aplikaciju, definiranih na Arduinu, poput maksimalne udaljenosti i broja prepreka u krugu.
  • Prepreka: Koristi se za slanje otkrivene prepreke. Identificira se prema kutu servo i izmjerenoj udaljenosti. Položaj x-y izračunat će aplikacija za računalo.

Korak 5: Qt aplikacija

Qt aplikacija
Qt aplikacija

Za komunikaciju s Arduinom i crtanje izmjerenih točaka poput radara, napravio sam računalnu aplikaciju u Qt (C ++). Prima neke parametre (definirane na Arduinu) i izmjerene točke udaljenosti.

Također možete preuzeti aplikaciju i njezin izvorni kod.

Korak 6: Arduino izvorni kod

Možete prilagoditi neke parametre na vrhu koda pomoću makronaredbi.

Imajte na umu da ako promijenite karakteristiku Sharpovog senzora udaljenosti, morate promijeniti vrijednosti polja distAdcMap !

  • InfraRadar.c: Kod radara. Kopirajte i zalijepite u svoj Arduino projekt.
  • InfraRadarMeasurement.c: Kôd za mjerenje karakteristika. Kopirajte i zalijepite u svoj Arduino projekt. Za provjeru ADC vrijednosti koristite serijsku konzolu.

Preporučeni: