Sisällysluettelo:

Infrapuna -tutka Arduinolla: 6 vaihetta
Infrapuna -tutka Arduinolla: 6 vaihetta

Video: Infrapuna -tutka Arduinolla: 6 vaihetta

Video: Infrapuna -tutka Arduinolla: 6 vaihetta
Video: STARLINK за 500$/ интернет Илона Маска/ тест/ супер скорость 2024, Heinäkuu
Anonim
Image
Image

Tässä pienessä projektissa haluaisin näyttää sinulle, kuinka voit luoda yksinkertaisen tutkan kotona Arduinon kanssa. Internetissä on monia vastaavia projekteja, mutta ne kaikki käyttävät ultraääni -anturia etäisyyden mittaamiseen. Tässä projektissa käytän infrapuna -anturia etäisyyden mittaamiseen.

Tavoitteeni on luoda erittäin yksinkertainen ja halpa LIDAR -järjestelmä sen kanssa ja toteuttaa kartoituslaite.

Tarvikkeet

  • Arduino (käytin Maple Miniä)
  • Sharp -etäisyysanturi (käytin Sharp GP2Y0A02YK0F)
  • Mikro Servo (9g)
  • Leipälauta, johdot
  • Valinnainen: 4.7k vastus, 100nF kondensaattori

Vaihe 1: Ultraääni VS -infrapuna -anturi

Kaavamainen
Kaavamainen

Suurin ero ultraääni- ja infrapuna -etäisyysanturien välillä on se, että ultraäänianturi mittaa etäisyyden laajemmalla alueella. Siksi se ei pysty paikantamaan esteen sijaintia tarkasti. Se tarkoittaa, että se mittaa lähimmän kohteen etäisyyden, joka sijaitsee ~ +-30 ° kulma-alueella.

Se ei tietenkään tarkoita, että Sharp -anturi olisi parempi. Joskus tämä ominaisuus voi olla erittäin hyödyllinen (esim. Droonit käyttävät sitä korkeuden mittaamiseen maasta). Oikea valinta riippuu täysin projektisi vaatimuksista.

Vaihe 2: Kaavio

Kaavamainen
Kaavamainen
Kaavamainen
Kaavamainen

Osien välinen liitäntä on erittäin yksinkertainen. Valitse PWM -lähtö ja analoginen tulo Arduino -kortillasi ja liitä Servo- ja Sharp -etäisyysanturit näihin nastoihin. Käytin seuraavia tappeja tähän tarkoitukseen:

  • PA0: Analoginen tulo Sharp -etäisyysanturille
  • PA9: PWM -lähtö servolle

Joskus Sharpin infrapunatunnistimessa voi olla meluisa lähtö, joten sinun on asetettava siihen yksinkertainen alipäästösuodatin. Käytin 4.7k vastusta ja 100nF kondensaattoria analogisen nastan melun vähentämiseksi. Lisäksi suodatin koodin mittausarvon lukemalla sen useita kertoja ja laskemalla keskiarvon.

Vaihe 3: Anturi on ominaista

Anturi Ominainen
Anturi Ominainen
Anturi Ominainen
Anturi Ominainen

Valitettavasti käytetyllä infrapunaetäisyysanturilla on epälineaarinen ominaisuus. Se tarkoittaa, että etäisyyden saamiseksi ei riitä, että kerrotaan mitattu ADC -arvo vakioarvolla ja lisätään siihen toinen vakioarvo.

Vaikka anturin datalehti antaa ominaisuuden, mieluummin mittaan sen itse projektissa (se voi riippua käytetystä jännitteestä). Tätä varten tein pareja mitatusta ADC -arvosta ja etäisyydestä 10 cm: n välein. (Anturi pystyi mittaamaan oikean etäisyyden 12 cm: stä).

Käytin näitä pareja koodissa oikean etäisyyden saamiseksi lineaarisen interpoloinnin avulla.

Löydät asiakirjan lopussa yksinkertaisen Arduino -koodin, jolla mitataan ADC -arvo ominaismittauksen aikana.

Vaihe 4: Sarjaliikenne

Sarjaliikenne
Sarjaliikenne

Käytin sarjaliikennettä lähettämään mitatut kulma-etäisyysarvot tietokoneelle. Koska minun on lähetettävä useita tavuja ja erityyppisiä viestejä, suunnittelin yksinkertaisen viestintäprotokollan.

Tämä prokotoli mahdollistaa erilaisten viestityyppien määrittelyn yleisellä tavalla. Tässä projektissa käytin 2 viestityyppiä:

  • Parametrit: Käytetään parametrien lähettämiseen PC -sovellukseen, joka on määritetty Arduinolla, kuten suurin etäisyys ja esteiden määrä kierroksella.
  • Este: käytetään havaitun esteen lähettämiseen. Se tunnistetaan servon kulmasta ja mitatusta etäisyydestä. X-y-sijainti lasketaan PC-sovelluksella.

Vaihe 5: Qt -sovellus

Qt -sovellus
Qt -sovellus

Jotta voisin kommunikoida Arduinon kanssa ja piirtää mitatut pisteet tutkan tapaan, tein PC -sovelluksen Qt -muodossa (C ++). Se vastaanottaa joitain parametreja (määritelty Arduinolla) ja mitatut etäisyyspisteet.

Voit myös ladata sovelluksen ja sen lähdekoodin.

Vaihe 6: Arduino -lähdekoodi

Voit muokata joitain koodin yläosassa olevia paremetrejä makroilla.

Huomaa, että jos muutat Sharp -etäisyysanturin ominaisuuksia, sinun on muutettava distAdcMap -matriisin arvoja!

  • InfraRadar.c: Tutkan koodi. Kopioi ja liitä se Arduino -projektiin.
  • InfraRadarMeasurement. C: Tunnusmittauksen koodi. Kopioi ja liitä se Arduino -projektiin. Tarkista sarjakonsolin avulla ADC -arvot.

Suositeltava: