INHOUDSOPGAWE:
- Voorrade
- Stap 1: Ultrasoniese VS infrarooi sensor
- Stap 2: Skematiese
- Stap 3: Sensorkarakteristiek
- Stap 4: Seriële kommunikasie
- Stap 5: Qt -toepassing
- Stap 6: Arduino -bronkode
Video: Infrarooi radar met Arduino: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
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
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
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
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
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
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:
Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)
Die gebruik van infrarooi sensor met Arduino: wat is 'n infrarooi (ook bekend as IR) sensor? 'N IR -sensor is 'n elektroniese instrument wat IR -seine in spesifieke frekwensiebepalings wat deur standaarde gedefinieer word, skandeer en dit omskakel in elektriese seine op sy uitsetpen (tipies seinpen genoem) . Die IR -sein
Boe-Bot met infrarooi detektore: 12 stappe (met foto's)
Boe-Bot met infrarooi detektore: hierdie instruksies sal demonstreer hoe u 'n Boe-Bot kan bou en kodeer wat deur 'n doolhof kan navigeer met infrarooi detektore om hindernisse te vermy. Dit is 'n maklik om te volg gids wat dit moontlik maak om maklik aan te pas by u behoeftes. Dit vereis 'n basiese en
Infrarooi lasermerk met Raspberry Pi Zero: 6 stappe (met foto's)
Infrarooi lasermerk met Raspberry Pi Zero: hierdie instruksies sal deur die proses gaan om 'n infrarooi laser -tag -speletjie te maak met behulp van 'n basisbedienerrekenaar en 'n Raspberry Pi -nul vir elke speler. Die projek maak sterk staat op 'n Wifi -verbinding om met die bediener te kommunikeer, wat
Hoe om 'n infrarooi kamera te maak met 'n IR -LED -lig: 5 stappe (met foto's)
Hoe om 'n infrarooi kamera te maak met 'n IR -LED -lig: ek het 'n infrarooi kamera besef om dit in 'n bewegingsopname -stelsel te gebruik. Hiermee kan u ook hierdie soort koel beelde kry: blink voorwerpe in die kameravis wat normaal is in werklikheid. U kan redelike goeie resultate kry teen 'n goedkoop prys. Hy
I2C infrarooi afstandsbediening met die Arduino: 8 stappe (met foto's)
I2C infrarooi afstandsbediening met die Arduino: aanhef Hierdie instruksies bevat besonderhede oor hoe om 'n universele afstandsbediening met I2C vir die koppelvlak te skep. Hoe vreemd sê jy met 'n I2C -slawe -toestel? Ja, 'n I2C -slawe -toestel. Dit is omdat die akkurate tydsberekening van IR -pakkies baie veeleisend is en