INHOUDSOPGAWE:

Infrarooi radar met Arduino: 6 stappe
Infrarooi radar met Arduino: 6 stappe

Video: Infrarooi radar met Arduino: 6 stappe

Video: Infrarooi radar met Arduino: 6 stappe
Video: How To Make Radar With Arduino || Arduino Project. 2024, November
Anonim
Image
Image

In hierdie klein projek wil ek u wys hoe u 'n eenvoudige Radar Home met Arduino kan skep. Daar is baie soortgelyke projekte op die internet, maar hulle gebruik almal 'n ultrasoniese sensor om die afstand te meet. In hierdie projek gebruik ek 'n infrarooi sensor vir afstandmeting.

My doel is om 'n baie eenvoudige en goedkoop LIDAR -stelsel daarmee te skep en 'n karteringstoestel te implementeer.

Voorrade

  • Arduino (ek het 'n Maple Mini gebruik)
  • Skerp afstandsensor (ek het Sharp GP2Y0A02YK0F gebruik)
  • Mikro servo (9 g)
  • Broodbord, drade
  • Opsioneel: 4.7k weerstand, 100nF kondensator

Stap 1: Ultrasoniese VS infrarooi sensor

Skematiese
Skematiese

Die belangrikste verskil tussen ultrasoniese en infrarooi afstandsensors is dat die ultrasoniese sensor afstand in 'n groter omvang meet. Daarom is dit nie in staat om die posisie van 'n hindernis presies op te spoor nie. Dit beteken dat dit die afstand meet van die naaste voorwerp wat binne 'n hoekhoek van ~ +-30 ° geleë is.

Dit beteken natuurlik nie dat die Sharp -sensor beter is nie. Soms kan hierdie eienskap baie nuttig wees (bv. Deur drones gebruik om hoogte vanaf die grond te meet). Die regte keuse hang heeltemal af van die vereistes van u projek.

Stap 2: Skematiese

Skematiese
Skematiese
Skematiese
Skematiese

Dit is baie eenvoudig om die verbinding tussen dele te maak. Kies 'n PWM -uitvoer en 'n analoog ingang op u Arduino -bord en koppel die Servo- en Sharp -afstandsensors aan die penne. Ek het die volgende penne hiervoor gebruik:

  • PA0: Analoog ingang vir skerp afstandsensor
  • PA9: PWM -uitset vir servo

Soms kan die Sharp IR -sensor raserige uitsette lewer, daarom moet u 'n eenvoudige laagpasfilter daarop plaas. Ek het 'n weerstand van 4.7k en 'n kapasiteit van 100nF gebruik om die geraas van die analoog pen te verminder. Verder het ek ook die gemete waarde in die kode gefiltreer deur dit meermale te lees en die gemiddelde te bereken.

Stap 3: Sensorkarakteristiek

Sensor Kenmerkend
Sensor Kenmerkend
Sensor Kenmerkend
Sensor Kenmerkend

Ongelukkig het die gebruikte infrarooi afstandsensor nie-lineêre kenmerk. Dit beteken dat om die afstand te kry, dit nie genoeg is om die gemete ADC -waarde met 'n konstante waarde te vermenigvuldig en nog 'n konstante waarde daaraan toe te voeg nie.

Alhoewel die datablad van die sensor die kenmerk bevat, meet ek dit liewer self in die spesifieke projek (dit kan afhang van die gebruikte spanning). Hiervoor het ek elke 10 cm pare gemaak van die gemete ADC -waarde en afstand. (My sensor kon die regte afstand vanaf 12 cm meet).

Ek het hierdie pare in die kode gebruik om die regte afstand met lineêre interpolasie te kry.

Aan die einde van die dokument vind u 'n eenvoudige Arduino -kode om die ADC -waarde te meet tydens kenmerkende meting.

Stap 4: Seriële kommunikasie

Seriële kommunikasie
Seriële kommunikasie

Ek het seriële kommunikasie gebruik om die gemete hoekafstandwaardes na die rekenaar te stuur. Aangesien ek verskeie grepe en verskillende tipe boodskappe moet stuur, het ek 'n eenvoudige kommunikasieprotokol ontwerp.

Hierdie procotol maak dit moontlik om verskillende tipes boodskappe op 'n generiese manier te definieer. In hierdie projek het ek 2 tipes boodskappe gebruik:

  • Parameters: word gebruik om parameters na die PC -toepassing te stuur, gedefinieer op Arduino, soos maksimum afstand en aantal hindernisse in 'n ronde.
  • Hindernis: Word gebruik om 'n hindernis te stuur. Dit word geïdentifiseer deur die hoek van die servo en die gemete afstand. Die xy-posisie word bereken deur 'n rekenaarprogram.

Stap 5: Qt -toepassing

Qt Aansoek
Qt Aansoek

Om met Arduino te kommunikeer en die gemete punte soos 'n radar te teken, het ek 'n PC -toepassing in Qt (C ++) gemaak. Dit ontvang 'n paar parameters (gedefinieer op Arduino) en die gemete afstandpunte.

U kan die toepassing en die bronkode daarvan ook aflaai.

Stap 6: Arduino -bronkode

U kan sommige parameters aan die bokant van die kode met makro's aanpas.

Let daarop dat as u die kenmerk van die Sharp -afstandsensor verander, u die waardes van distAdcMap skikking moet verander!

  • InfraRadar.c: Kode van radar. Kopieer en plak dit in u Arduino -projek.
  • InfraRadarMeasurement.c: Kode vir kenmerkende meting. Kopieer en plak dit in u Arduino -projek. Gebruik Serial Console om die ADC -waardes na te gaan.

Aanbeveel: