Sadržaj:

Infracrveni radar sa Arduinom: 6 koraka
Infracrveni radar sa Arduinom: 6 koraka

Video: Infracrveni radar sa Arduinom: 6 koraka

Video: Infracrveni radar sa Arduinom: 6 koraka
Video: обзор GPS модуля NEO-6M 2024, Novembar
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 koriste ultrazvučni senzor za mjerenje udaljenosti. U ovom projektu koristim infracrveni senzor za mjerenje udaljenosti.

Moj cilj je stvoriti vrlo jednostavan i jeftin LIDAR sistem s njim i implementirati uređaj za mapiranje.

Supplies

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

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. Zbog toga nije u stanju precizno locirati položaj prepreke. To znači da mjeri udaljenost najbližeg objekta koji se nalazi unutar raspona kutova ~ +-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: Shema

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čan izlaz, pa na njega morate staviti jednostavan niskopropusni filter. Koristio sam otpornik od 4,7 k i kondenzator od 100 nF za smanjenje šuma na analognom pinu. Osim toga, filtrirao sam izmjerenu vrijednost u kodu tako što sam je pročitao više puta i izračunao prosjek.

Korak 3: Karakteristike 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 bih da 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 na 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 tokom karakterističnog mjerenja.

Korak 4: Serijska komunikacija

Serijska komunikacija
Serijska komunikacija

Koristio sam serijsku komunikaciju za slanje izmerenih vrednosti ugaone udaljenosti na računar. Budući da moram poslati više bajtova i različite vrste poruka, dizajnirao sam jednostavan komunikacijski protokol.

Ovaj protokol omogućava 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, definirane 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 PC aplikaciju u Qt (C ++). Prima neke parametre (definirane na Arduinu) i izmjerene točke udaljenosti.

Također možete preuzeti aplikaciju i njen 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 Sharp senzora udaljenosti, morate izmijeniti vrijednosti niza distAdcMap !

  • InfraRadar.c: Radarski kod. Kopirajte i zalijepite u svoj Arduino projekt.
  • InfraRadarMeasurement.c: Kod za karakteristično mjerenje. Kopirajte i zalijepite u svoj Arduino projekt. Koristite serijsku konzolu za provjeru ADC vrijednosti.

Preporučuje se: