Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Ultralyd VS infrarød sensor
- Trinn 2: Skjematisk
- Trinn 3: Sensorkarakteristisk
- Trinn 4: Seriell kommunikasjon
- Trinn 5: Qt -applikasjon
- Trinn 6: Arduino kildekode
Video: Infrarød radar med Arduino: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
I dette lille prosjektet vil jeg vise deg hvordan du kan lage en enkel radar hjemme med Arduino. Det er mange lignende prosjekter på internett, men de bruker alle en ultralydssensor for å måle avstanden. I dette prosjektet bruker jeg en infrarød sensor for avstandsmåling.
Målet mitt er å lage et veldig enkelt og billig LIDAR -system med det og implementere en kartleggingsenhet.
Rekvisita
- Arduino (jeg brukte en Maple Mini)
- Skarp avstandssensor (jeg brukte Sharp GP2Y0A02YK0F)
- Micro Servo (9g)
- Brødbrett, ledninger
- Valgfritt: 4,7k motstand, 100nF kondensator
Trinn 1: Ultralyd VS infrarød sensor
Hovedforskjellen mellom ultralyd- og infrarøde avstandssensorer er at ultralydssensoren måler avstand i et større område. Derfor er den ikke i stand til nøyaktig å finne posisjonen til et hinder. Det betyr at den måler avstanden til det nærmeste objektet som befinner seg innenfor et ~ +-30 ° vinkelområde.
Selvfølgelig betyr det ikke at Sharp -sensoren er bedre. Noen ganger kan denne egenskapen være veldig nyttig (f.eks. Brukt av droner til å måle høyde fra bakken). Det riktige valget er helt avhengig av kravene til prosjektet ditt.
Trinn 2: Skjematisk
Det er veldig enkelt å lage forbindelsen mellom deler. Velg en PWM -utgang og en analog inngang på Arduino -kortet, og koble Servo- og Sharp -avstandssensorene til disse pinnene. Jeg brukte følgende pins for dette formålet:
- PA0: Analog inngang for skarp avstandssensor
- PA9: PWM -utgang for Servo
Noen ganger kan Sharp IR -sensoren ha støyende utgang, derfor må du sette et enkelt lavpassfilter på den. Jeg brukte en 4,7k motstand og en 100nF kondensator for å redusere støyen på den analoge pinnen. Dessuten filtrerte jeg også måleverdien i koden ved å lese den flere ganger og beregne gjennomsnittet.
Trinn 3: Sensorkarakteristisk
Dessverre har den brukte infrarøde avstandssensoren ikke-lineær karakteristikk. Det betyr at for å få avstanden, er det ikke nok å multiplisere den målte ADC -verdien med en konstant verdi og legge til en annen konstant verdi til den.
Selv om databladet til sensoren gir karakteristikken, foretrekker jeg å måle det selv i det spesifikke prosjektet (det kan avhenge av brukt spenning). For dette laget jeg par fra den målte ADC -verdien og avstanden for hver 10 cm. (Sensoren min var i stand til å måle riktig avstand fra 12 cm).
Jeg brukte disse parene i koden for å få riktig avstand med lineær interpolasjon.
Du finner en enkel Arduino -kode på slutten av dokumentet, for å måle ADC -verdi under karakteristisk måling.
Trinn 4: Seriell kommunikasjon
Jeg brukte seriell kommunikasjon til å sende de målte vinkelavstandsverdiene til PC-en. Siden jeg må sende flere byte og forskjellige typer meldinger, har jeg designet en enkel kommunikasjonsprotokoll.
Denne procotolen gjør det mulig å definere forskjellige meldingstyper på en generisk måte. I dette prosjektet brukte jeg to meldingstyper:
- Parametere: Brukes til å sende parametere til PC -applikasjon, definert på Arduino som maksimal avstand og antall hindringer i en runde.
- Hindring: Brukes til å sende et påvist hinder. Det identifiseres ved servoens vinkel og målt avstand. Xy-posisjonen beregnes av PC-applikasjon.
Trinn 5: Qt -applikasjon
For å kommunisere med Arduino og tegne de målte punktene som en radar laget jeg en PC -applikasjon i Qt (C ++). Den mottar noen parametere (definert på Arduino) og de målte avstandspunktene.
Du kan også laste ned programmet og kildekoden.
Trinn 6: Arduino kildekode
Du kan tilpasse noen parametere øverst i koden med makroer.
Vær oppmerksom på at hvis du endrer egenskapen til Sharp -avstandssensoren, må du endre distAdcMap matrisverdier!
- InfraRadar.c: Kode for radar. Kopier og lim det inn i Arduino -prosjektet.
- InfraRadarMeasurement.c: Kode for karakteristisk måling. Kopier og lim det inn i Arduino -prosjektet. Bruk Seriekonsoll for å kontrollere ADC -verdier.
Anbefalt:
Bruke infrarød sensor med Arduino: 8 trinn (med bilder)
Bruke infrarød sensor med Arduino: Hva er en infrarød (aka IR) sensor? En IR -sensor er et elektronisk instrument som skanner IR -signaler i bestemte frekvensområder definert av standarder og konverterer dem til elektriske signaler på utgangspinnen (vanligvis kalt signalpinne) . IR -signalet
Infrarød hjemmeautomatisering med Arduino: 5 trinn
Infrarød hjemmeautomatisering med Arduino: ARDUINO HOME AUTOMATION Hjemmeautomatisering betyr ganske enkelt å lage ting du vanligvis gjør manuelt, for å bli gjort for deg automatisk. Du vil normalt stå opp for å snu bryteren, hva om du bare kunne trykke på fjernkontrollen og lyset kommer automatisk
Infrarød Matrix Password Input System Med Arduino: 13 trinn
Infrarød matris passordinngangssystem med Arduino: ICStation -teamet introduserer deg Infrarød matris passordinngangssystem basert på ICStation kompatibelt bord Arduino. Det fungerer under DC 5v strømforsyning, og bruker 4 *4 Matrix Keyboard eller den infrarøde fjernkontrollen til å skrive inn passordet, og vi
Infrarød laser tag med Raspberry Pi Zero: 6 trinn (med bilder)
Infrarød lasermerking med Raspberry Pi Zero: Denne instruksjonsboken vil gå gjennom prosessen for å lage et infrarødt lasermerkespill ved bruk av en basisservercomputer og en Raspberry Pi -null for hver spiller. Prosjektet er sterkt avhengig av en Wifi -tilkobling for å kommunisere med serveren som gjør
I2C infrarød fjernkontroll med Arduino: 8 trinn (med bilder)
I2C infrarød fjernkontroll med Arduino: Preamble Denne instruksjonsinformasjonen beskriver hvordan du lager en universell fjernkontroll ved hjelp av I2C for grensesnittet. Hvor rart du sier, ved hjelp av en I2C -slaveenhet? Ja, en I2C -slaveenhet. Dette er fordi den nøyaktige timingen for IR -pakker er ganske krevende og