Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Ultrasonic VS Infrarød sensor
- Trin 2: Skematisk
- Trin 3: Sensorkarakteristisk
- Trin 4: Seriel kommunikation
- Trin 5: Qt -applikation
- Trin 6: Arduino kildekode
Video: Infrarød radar med Arduino: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
I dette lille projekt vil jeg gerne vise dig, hvordan du kan oprette en simpel Radar at Home med Arduino. Der er mange lignende projekter på internettet, men de bruger alle en ultralydssensor til at måle afstanden. I dette projekt bruger jeg en infrarød sensor til afstandsmåling.
Mit mål er at skabe et meget enkelt og billigt LIDAR -system med det og implementere en kortlægningsenhed.
Forbrugsvarer
- Arduino (jeg brugte en Maple Mini)
- Sharp distance sensor (jeg brugte Sharp GP2Y0A02YK0F)
- Micro Servo (9g)
- Brødbræt, ledninger
- Valgfrit: 4,7k modstand, 100nF kondensator
Trin 1: Ultrasonic VS Infrarød sensor
Den største forskel mellem ultralyds- og infrarøde afstandssensorer er, at ultralydssensoren måler afstanden i et bredere område. Derfor er den ikke i stand til præcist at lokalisere en forhindrings position. Det betyder, at det måler afstanden til det nærmeste objekt, der er placeret inden for et ~ +-30 ° vinkelområde.
Det betyder selvfølgelig ikke, at Sharp -sensoren er bedre. Nogle gange kan denne egenskab være meget nyttig (f.eks. Brugt af droner til at måle højde fra jorden). Det rigtige valg afhænger helt af kravene i dit projekt.
Trin 2: Skematisk
Det er meget enkelt at lave forbindelsen mellem dele. Vælg en PWM -udgang og en analog indgang på dit Arduino -kort, og slut Servo- og Sharp -afstandssensorerne til disse ben. Jeg brugte følgende pins til dette formål:
- PA0: Analog indgang til Sharp distance sensor
- PA9: PWM Output til Servo
Nogle gange kan Sharp IR -sensoren have støjende output, derfor skal du lægge et simpelt lavpasfilter på det. Jeg brugte en 4,7k modstand og en 100nF kondensator til at reducere støj på den analoge pin. Udover det filtrerede jeg også den målte værdi i koden ved at læse den flere gange og beregne gennemsnittet.
Trin 3: Sensorkarakteristisk
Desværre har den brugte infrarøde afstandssensor ikke-lineær karakteristik. Det betyder, at for at få afstanden er det ikke nok at gange den målte ADC -værdi med en konstant værdi og tilføje en anden konstant værdi til den.
Selvom sensorens datablad giver karakteristikken, foretrækker jeg at måle det selv i det specifikke projekt (det kan afhænge af den anvendte spænding). Til dette lavede jeg par fra den målte ADC -værdi og afstand for hver 10 cm. (Min sensor var i stand til at måle den korrekte afstand fra 12 cm).
Jeg brugte disse par i koden til at få den korrekte afstand med lineær interpolation.
Du finder en simpel Arduino -kode i slutningen af dokumentet til måling af ADC -værdi under karakteristisk måling.
Trin 4: Seriel kommunikation
Jeg brugte seriel kommunikation til at sende de målte vinkelafstandsværdier til pc'en. Da jeg skal sende flere bytes og forskellige typer meddelelser, har jeg designet en simpel kommunikationsprotokol.
Denne procotol gør det muligt at definere forskellige meddelelsestyper på en generisk måde. I dette projekt brugte jeg 2 meddelelsestyper:
- Parametre: Bruges til at sende parametre til pc -applikation, defineret på Arduino som maksimal afstand og antal forhindringer i en runde.
- Hindring: Bruges til at sende en registreret forhindring. Det identificeres ved servoens vinkel og målt afstand. Xy-positionen beregnes ved hjælp af pc-applikation.
Trin 5: Qt -applikation
For at kommunikere med Arduino og tegne de målte punkter som en radar lavede jeg en pc -applikation i Qt (C ++). Det modtager nogle parametre (defineret på Arduino) og de målte afstandspunkter.
Du kan også downloade programmet og dets kildekode.
Trin 6: Arduino kildekode
Du kan tilpasse nogle parametre øverst i koden med makroer.
Bemærk, at hvis du ændrer karakteristikken for Sharp -afstandssensoren, skal du ændre distAdcMap array -værdier!
- InfraRadar.c: Kode for radar. Kopier og indsæt det i dit Arduino -projekt.
- InfraRadarMeasurement.c: Kode til karakteristisk måling. Kopier og indsæt det i dit Arduino -projekt. Brug Serial Console til at kontrollere ADC -værdier.
Anbefalede:
Brug af infrarød sensor med Arduino: 8 trin (med billeder)
Brug af infrarød sensor med Arduino: Hvad er en infrarød (aka IR) sensor? En IR -sensor er et elektronisk instrument, der scanner IR -signaler i specifikke frekvensområder defineret af standarder og konverterer dem til elektriske signaler på sin output pin (typisk kaldet signal pin) . IR -signalet
Infrarød hjemmeautomatisering med Arduino: 5 trin
Infrarød hjemmeautomatisering med Arduino: ARDUINO HOME AUTOMATION Hjemmeautomatisering betyder ganske enkelt, at man laver ting, som man normalt gør manuelt, automatisk. Du står normalt op for at vende kontakten, hvad nu hvis du bare kunne trykke på fjernbetjeningen, og dit lys kommer automatisk
Infrarød Matrix Password Input System Med Arduino: 13 trin
Infrarød Matrix Password Input System Med Arduino: ICStation -team introducerer dig Infrared Matrix Password Input System baseret på ICStation Compatible Board Arduino. Det fungerer under DC 5v strømforsyningen og bruger 4 *4 Matrix Keyboard eller den infrarøde fjernbetjening til at indtaste adgangskoden, og vi
Infrarød lasermærke med Raspberry Pi Zero: 6 trin (med billeder)
Infrarød lasermærke med Raspberry Pi Zero: Denne instruktionsbog vil gå igennem processen til oprettelse af et infrarødt lasermærke -spil ved hjælp af en baseservercomputer og en Raspberry Pi -nul for hver spiller. Projektet er stærkt afhængigt af en Wifi -forbindelse til at kommunikere med serveren, hvilket gør
I2C infrarød fjernbetjening med Arduino: 8 trin (med billeder)
I2C infrarød fjernbetjening med Arduino: PreambleDenne instruktive beskriver, hvordan du opretter en universel fjernbetjening ved hjælp af I2C til grænsefladen. Hvor mærkeligt siger du ved hjælp af en I2C -slaveenhed? Ja, en I2C -slaveenhed. Dette skyldes, at den nøjagtige timing af IR -pakker er ret krævende og