Indholdsfortegnelse:

Infrarød radar med Arduino: 6 trin
Infrarød radar med Arduino: 6 trin

Video: Infrarød radar med Arduino: 6 trin

Video: Infrarød radar med Arduino: 6 trin
Video: How To Make Radar With Arduino || Arduino Project. 2024, November
Anonim
Image
Image

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

Skematisk
Skematisk

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

Skematisk
Skematisk
Skematisk
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

Sensor Karakteristisk
Sensor Karakteristisk
Sensor Karakteristisk
Sensor Karakteristisk

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

Seriel kommunikation
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

Qt -applikation
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: