Satura rādītājs:

Infrasarkanais radars ar Arduino: 6 soļi
Infrasarkanais radars ar Arduino: 6 soļi

Video: Infrasarkanais radars ar Arduino: 6 soļi

Video: Infrasarkanais radars ar Arduino: 6 soļi
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Jūlijs
Anonim
Image
Image

Šajā mazajā projektā es vēlos jums parādīt, kā jūs varat izveidot vienkāršu radaru mājās ar Arduino. Internetā ir daudz līdzīgu projektu, taču tie visi izmanto ultraskaņas sensoru, lai mērītu attālumu. Šajā projektā attāluma mērīšanai izmantoju infrasarkano sensoru.

Mans mērķis ir ar to izveidot ļoti vienkāršu un lētu LIDAR sistēmu un ieviest kartēšanas ierīci.

Piegādes

  • Arduino (es izmantoju Maple Mini)
  • Asu attāluma sensors (es izmantoju Sharp GP2Y0A02YK0F)
  • Mikro servo (9g)
  • Maizes dēlis, vadi
  • Pēc izvēles: 4,7 k rezistors, 100 nF kondensators

1. solis: ultraskaņas VS infrasarkanais sensors

Shematisks
Shematisks

Galvenā atšķirība starp ultraskaņas un infrasarkanā attāluma sensoriem ir tā, ka ultraskaņas sensors mēra attālumu plašākā diapazonā. Tāpēc tā nevar precīzi noteikt šķēršļa atrašanās vietu. Tas nozīmē, ka tas mēra attālumu no tuvākā objekta, kas atrodas ~ +-30 ° leņķa diapazonā.

Protams, tas nenozīmē, ka Sharp sensors ir labāks. Dažreiz šis īpašums var būt ļoti noderīgs (piemēram, droni to izmanto, lai izmērītu augstumu no zemes). Pareizā izvēle ir pilnībā atkarīga no jūsu projekta prasībām.

2. darbība. Shēma

Shematisks
Shematisks
Shematisks
Shematisks

Savienojuma izveidošana starp detaļām ir ļoti vienkārša. Izvēlieties PWM izeju un analogo ieeju savā Arduino panelī un pievienojiet šīm tapām Servo un Sharp attāluma sensorus. Šim nolūkam es izmantoju šādas tapas:

  • PA0: analogā ieeja Sharp attāluma sensoram
  • PA9: PWM izeja servo

Dažreiz Sharp IR sensoram var būt trokšņaina izeja, tāpēc jums ir jāuzliek vienkāršs zemas caurlaidības filtrs. Es izmantoju 4.7k rezistoru un 100nF kondensatoru, lai samazinātu troksni uz analogās tapas. Turklāt es arī filtrēju izmērīto vērtību kodā, vairākas reizes to izlasot un aprēķinot vidējo.

3. solis: sensoram raksturīgs

Sensors Raksturīgs
Sensors Raksturīgs
Sensors Raksturīgs
Sensors Raksturīgs

Diemžēl izmantotajam infrasarkanajam attāluma sensoram ir nelineāra īpašība. Tas nozīmē, ka, lai iegūtu attālumu, nepietiek, lai reizinātu izmērīto ADC vērtību ar nemainīgu vērtību un pievienotu tai citu nemainīgu vērtību.

Lai gan sensora datu lapa nodrošina raksturlielumus, es labprātāk to izmērīšu pats konkrētajā projektā (tas varētu būt atkarīgs no izmantotā sprieguma). Šim nolūkam es izveidoju pārus no izmērītās ADC vērtības un attāluma uz katriem 10 cm. (Mans sensors spēja izmērīt pareizo attālumu no 12 cm).

Es izmantoju šos pārus kodā, lai iegūtu pareizo attālumu ar lineāro interpolāciju.

Dokumenta beigās atradīsit vienkāršu Arduino kodu, lai izmērītu ADC vērtību raksturlielumu mērīšanas laikā.

4. solis: sērijas komunikācija

Sērijas komunikācija
Sērijas komunikācija

Es izmantoju sērijas sakarus, lai nosūtītu izmērītās leņķa attāluma vērtības uz datoru. Tā kā man ir jānosūta vairāki baiti un dažāda veida ziņojumi, es izveidoju vienkāršu saziņas protokolu.

Šis prokotols ļauj vispārīgi definēt dažādus ziņojumu veidus. Šajā projektā es izmantoju 2 ziņojumu veidus:

  • Parametri: izmanto parametru nosūtīšanai uz PC lietojumprogrammu, kas definēta Arduino, piemēram, maksimālais attālums un šķēršļu skaits kārtā.
  • Šķērslis: izmanto, lai nosūtītu atklātu šķērsli. To identificē pēc servo leņķa un izmērītā attāluma. X-y pozīcija tiks aprēķināta, izmantojot datoru.

5. darbība: Qt lietojumprogramma

Qt lietojumprogramma
Qt lietojumprogramma

Lai sazinātos ar Arduino un uzzīmētu izmērītos punktus kā radars, es izveidoju datora lietojumprogrammu Qt (C ++). Tas saņem dažus parametrus (definēts Arduino) un izmērītos attāluma punktus.

Varat arī lejupielādēt lietojumprogrammu un tās avota kodu.

6. darbība: Arduino avota kods

Izmantojot makro, varat pielāgot dažus paremetrus koda augšdaļā.

Ņemiet vērā: ja maināt Sharp attāluma sensora raksturlielumus, jums ir jāmaina distAdcMap masīva vērtības!

  • InfraRadar.c: radara kods. Kopējiet un ielīmējiet to savā Arduino projektā.
  • InfraRadarMeasurement.c: Raksturīgo mērījumu kods. Kopējiet un ielīmējiet to savā Arduino projektā. Izmantojiet seriālo konsoli, lai pārbaudītu ADC vērtības.

Ieteicams: