Sisukord:

Arduinoga infrapunaradar: 6 sammu
Arduinoga infrapunaradar: 6 sammu

Video: Arduinoga infrapunaradar: 6 sammu

Video: Arduinoga infrapunaradar: 6 sammu
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image

Selles väikeses projektis tahaksin teile näidata, kuidas saate Arduino abil kodus lihtsat radarit luua. Internetis on palju sarnaseid projekte, kuid kõik kasutavad kauguse mõõtmiseks ultrahelisensorit. Selles projektis kasutan kauguse mõõtmiseks infrapunaandurit.

Minu eesmärk on luua sellega väga lihtne ja odav LIDAR -süsteem ning rakendada kaardistamisseade.

Tarvikud

  • Arduino (kasutasin Maple Mini)
  • Terava kauguse andur (kasutasin Sharp GP2Y0A02YK0F)
  • Mikroservo (9g)
  • Leivalaud, juhtmed
  • Valikuline: 4,7 k takisti, 100 nF kondensaator

Samm: ultraheli VS infrapunaandur

Skeem
Skeem

Peamine erinevus ultraheli- ja infrapunakaugusandurite vahel on see, et ultraheliandur mõõdab kaugust laiemas vahemikus. Seetõttu ei suuda ta täpselt leida takistuse asukohta. See tähendab, et see mõõdab lähima objekti kaugust, mis asub ~ +-30 ° nurga vahemikus.

Muidugi ei tähenda see, et Sharpi andur oleks parem. Mõnikord võib see omadus olla väga kasulik (nt kasutavad droonid maapinnast kõrguse mõõtmiseks). Õige valik sõltub täielikult teie projekti nõuetest.

2. samm: skemaatiline

Skeem
Skeem
Skeem
Skeem

Osade vahelise ühenduse loomine on väga lihtne. Valige oma Arduino tahvlil PWM -väljund ja analoogsisend ning ühendage nende tihvtidega servo- ja teravusandurid. Sel eesmärgil kasutasin järgmisi nõelu:

  • PA0: analoogsisend Sharp kaugusanduri jaoks
  • PA9: PWM väljund servo jaoks

Mõnikord võib Sharp IR -anduril olla mürarikas väljund, seetõttu peate selle peale panema lihtsa madalpääsfiltri. Ma kasutasin analoogpistiku müra vähendamiseks 4,7 k takistit ja 100 nF kondensaatorit. Peale selle filtreerisin ka koodi mõõdetud väärtuse, lugedes seda mitu korda ja arvutades keskmise.

3. samm: Andur on iseloomulik

Andur Iseloomulik
Andur Iseloomulik
Andur Iseloomulik
Andur Iseloomulik

Kahjuks on kasutatud infrapunakaugusanduril mittelineaarsed omadused. See tähendab, et kauguse saamiseks ei piisa mõõdetud ADC väärtuse korrutamisest konstantse väärtusega ja sellele teise konstantse väärtuse lisamisest.

Kuigi anduri andmeleht annab karakteristiku, eelistan seda konkreetses projektis ise mõõta (see võib sõltuda kasutatavast pingest). Selleks tegin mõõdetud ADC väärtusest ja kaugusest paarid iga 10 cm kohta. (Minu andur suutis mõõta õiget kaugust alates 12 cm).

Kasutasin neid paare koodis, et saada lineaarse interpoleerimise abil õige kaugus.

Dokumendi lõpust leiate lihtsa Arduino koodi, et mõõta ADC väärtust iseloomulike mõõtmiste ajal.

4. samm: jadaühendus

Jadaühendus
Jadaühendus

Mõõdetud nurga-kauguse väärtuste arvutile saatmiseks kasutasin jadaühendust. Kuna pean saatma mitu baiti ja erinevat tüüpi sõnumeid, kavandasin lihtsa suhtlusprotokolli.

See prokotool võimaldab määratleda erinevaid sõnumitüüpe üldisel viisil. Selles projektis kasutasin kahte tüüpi sõnumeid:

  • Parameetrid: kasutatakse parameetrite saatmiseks PC -rakendusele, mis on määratletud Arduino -s, näiteks maksimaalne vahemaa ja takistuste arv ringis.
  • Takistus: kasutatakse tuvastatud takistuse saatmiseks. See tuvastatakse servo nurga ja mõõdetud vahemaa järgi. X-y positsioon arvutatakse arvutirakenduse abil.

Samm: Qt -rakendus

Qt rakendus
Qt rakendus

Arduinoga suhtlemiseks ja mõõdetud punktide joonistamiseks radarina tegin arvutirakenduse Qt -s (C ++). See võtab vastu mõned parameetrid (määratletud Arduino abil) ja mõõdetud kauguspunktid.

Saate alla laadida ka rakenduse ja selle lähtekoodi.

Samm: Arduino lähtekood

Makroga saate koodi ülaosas kohandada mõningaid paremeetreid.

Pange tähele, et kui muudate Sharpi kaugusanduri omadusi, peate muutma massiivi distAdcMap väärtusi!

  • InfraRadar.c: Radari kood. Kopeerige ja kleepige see oma Arduino projekti.
  • InfraRadarMeasurement.c: Karakteristikute mõõtmise kood. Kopeerige ja kleepige see oma Arduino projekti. Kasutage ADC väärtuste kontrollimiseks jadakonsooli.

Soovitan: