Indholdsfortegnelse:
- Trin 1: Liste over materialer
- Trin 2: Opbygning af en laser- og kamerajig
- Trin 3: Kørsel af laseren og LCD'en
- Trin 4: Registrering af laseren ved hjælp af OpenCV
- Trin 5: Kalibrering af Range Finder
- Trin 6: Måling af afstande
Video: Lav afstandsmåler ved hjælp af en laser og et kamera: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Jeg planlægger i øjeblikket noget indvendigt arbejde til næste forår, men da jeg lige har erhvervet et gammelt hus, har jeg ingen husplan. Jeg begyndte at måle væg til væg -afstande ved hjælp af en lineal, men det er langsomt og fejlbehæftet. Jeg tænkte på at købe en afstandsmåler for at lette processen, men så fandt jeg en gammel artikel om at bygge sin egen afstandsmåler ved hjælp af en laser og et kamera. Som det viser sig, har jeg disse komponenter i mit værksted.
Projektet er baseret på denne artikel:
Den eneste forskel er, at jeg vil bygge afstandsmåleren ved hjælp af en Raspberry Pi Zero W, en LCD og Raspberry Pi Camera -modulet. Jeg vil også bruge OpenCV til at spore laseren.
Jeg formoder, at du er teknisk kyndig, og at du er tryg ved at bruge Python og kommandolinjen. I dette projekt bruger jeg Pi i hovedløs tilstand.
Lad os begynde!
Trin 1: Liste over materialer
Til dette projekt skal du bruge:
- en billig 6mm 5mW laser
- en 220 Ω modstand
- en 2N2222A transistor eller noget tilsvarende
- en Raspberry Pi Zero W
- et Raspberry Pi kamera v2
- en Nokia 5110 LCD -skærm eller tilsvarende
- nogle springtråde og et lille brødbræt
Jeg brugte min 3d -printer til at udskrive en jig, der hjalp mig under eksperimenterne. Jeg har også tænkt mig at bruge 3d -printeren til at bygge et komplet kabinet til afstandsmåler. Du kan helt undvære.
Trin 2: Opbygning af en laser- og kamerajig
Systemet antager en fast afstand mellem kameralinsen og laserudgangen. For at lette testene printede jeg en jig, hvor jeg kan montere kameraet, laseren og et lille drivkredsløb til laseren.
Jeg brugte kameramodulets dimensioner til at bygge holderen til kameraet. Jeg brugte hovedsageligt en digital tykkelse og en præcisionslineal til at tage målingerne. Til laseren lavede jeg et 6 mm hul med en lille smule forstærkning for at sikre, at laseren ikke bevæger sig. Jeg forsøgte at holde plads nok til at få et lille brødbræt fastgjort bag på jiggen.
Jeg brugte Tinkercad til bygningen, du kan finde modellen her:
Der er en afstand på 3,75 cm mellem midten af laserlinsen og midten af kameralinsen.
Trin 3: Kørsel af laseren og LCD'en
Jeg fulgte denne vejledning https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi for at køre LCD-skærmen med Raspberry Pi Zero. I stedet for at redigere /boot/config.txt-filen kan du aktivere SPI-grænsefladen ved hjælp af sudo raspi-config via kommandolinjen.
Jeg bruger Raspberry Pi Zero i hovedløs tilstand ved hjælp af den nyeste, til dato, Raspbian Stretch. Jeg dækker ikke installationen i denne instruks, men du kan følge denne vejledning: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- kommandolinje-eller-ved hjælp af-netværket-97f065af722e
For at få en lys laserprik bruger jeg Pi'ens 5V -skinne. Til det vil jeg bruge en transistor (2N2222a eller tilsvarende) til at drive laseren ved hjælp af GPIO. En 220 Ω modstand i bunden af transistoren tillader nok strøm gennem laseren. Jeg bruger RPi. GPIO til at manipulere Pi GPIO. Jeg tilsluttede transistorens bund til GPIO22 -stiften (den 15. pin), emitteren til jorden og kollektoren til laserdioden.
Glem ikke at aktivere kameragrænsefladen ved hjælp af sudo raspi-config via kommandolinjen.
Du kan bruge denne kode til at teste din opsætning:
Hvis alt gik godt, skulle du have en dot-j.webp
I koden opsætter vi kameraet og GPIO, derefter aktiverer vi laseren, vi fanger billedet, og vi deaktiverer laseren. Da jeg kører Pi i hovedløs tilstand, skal jeg kopiere billederne fra min Pi til min computer, før jeg viser dem.
På dette tidspunkt skal din hardware konfigureres.
Trin 4: Registrering af laseren ved hjælp af OpenCV
Først skal vi installere OpenCV på Pi. Du har dybest set tre måder at gøre det på. Du kan enten installere den gamle pakkede version med apt. Du kan kompilere den version, du ønsker, men i dette tilfælde kan installationstiden gå op til 15 timer og det meste af det for den egentlige kompilering. Eller, min foretrukne tilgang, kan du bruge en forhåndskompileret version til Pi Zero, der leveres af en tredjepart.
Fordi det er enklere og hurtigere, brugte jeg en tredjepartspakke. Du kan finde installationstrinnene i denne artikel: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Jeg prøvede mange andre kilder, men deres pakker var ikke opdaterede.
For at spore en laserpointer opdaterede jeg koden fra https://github.com/bradmontgomery/python-laser-tracker for at bruge Pi-kameramodulet i stedet for en USB-enhed. Du kan bruge koden direkte, hvis du ikke har et Pi -kameramodul og vil bruge et USB -kamera.
Du kan finde den komplette kode her:
For at køre denne kode skal du installere Python -pakkerne: pude og picamera (sudo pip3 install pude picamera).
Trin 5: Kalibrering af Range Finder
I den originale artikel designede forfatteren en kalibreringsprocedure for at få de nødvendige parametre til at transformere y -koordinaterne til en faktisk afstand. Jeg brugte mit stuebord til kalibreringerne og et gammelt stykke kraft. Hver 10 cm eller deromkring noterede jeg x- og y -koordinaterne i et regneark: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… For at sikre, at alt fungerede korrekt, kontrollerede jeg ved hvert trin de taget billeder for at se, om laseren blev sporet korrekt. Hvis du bruger en grøn laser, eller hvis din laser ikke spores korrekt, skal du justere programmets nuance, mætning og værditærskel i overensstemmelse hermed.
Når målefasen er udført, er det tid til faktisk at beregne parametrene. Som forfatteren brugte jeg en lineær regression; faktisk gjorde Google Regneark jobbet for mig. Jeg genbrugte derefter disse parametre til at beregne en estimeret afstand og kontrollere den mod den faktiske afstand.
Det er nu tid til at injicere parametrene i afstandsmålerprogrammet for at måle afstande.
Trin 6: Måling af afstande
I koden: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c opdaterede jeg variablerne HEIGHT, GAIN og OFFSET i henhold til kalibreringsmålingerne. Jeg brugte afstandsformlen i den originale artikel til at estimere afstanden, og jeg udskriver afstanden ved hjælp af LCD -displayet.
Koden opsætter først kameraet og GPIO, derefter vil vi tænde LCD -baggrundsbelysningen for bedre at se målingerne. LCD -indgangen er tilsluttet GPIO14. Hvert 5. sekund eller deromkring vil vi:
- aktivere laserdioden
- fange billedet i hukommelsen
- deaktiver laserdioden
- spore laseren ved hjælp af HSV -områdefiltre
- skriv det resulterende billede til disken med henblik på fejlfinding
- beregne afstanden baseret på y -koordinaten
- skriv afstanden på LCD -displayet.
Selvom foranstaltningerne er meget præcise og præcise nok til min brugstilfælde, er der masser af plads til forbedringer. For eksempel er laserprikken af meget dårlig kvalitet, og laserlinjen er ikke rigtig centreret. Med en laser af bedre kvalitet bliver kalibreringstrinnene mere præcise. Selv kameraet er ikke rigtig godt placeret i min jig, det vipper til bunden.
Jeg kan også øge opløsningen på afstandsmåleren ved at dreje kameraet med 90º ved hjælp af fuld med og øge opløsningen til det maksimum, der understøttes af kameraet. Med den nuværende implementering er vi begrænset til et område på 0 til 384 pixels, vi kan øge den øvre grænse til 1640, 4 gange den aktuelle opløsning. Afstanden bliver endnu mere præcis.
Som opfølgning bliver jeg nødt til at arbejde med de præcisionsforbedringer, jeg nævnte ovenfor, og bygge et kabinet til afstandsmåleren. Skabet skal have en præcis dybde for at lette væg -til -væg -målinger.
Alt i alt er det nuværende system nok for mig og vil spare mig nogle penge for at lave min husplan!
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: Hej, jeg er Rithik. Vi kommer til at lave en internetstyret LED ved hjælp af din telefon. Vi kommer til at bruge software som Arduino IDE og Blynk.Det er enkelt, og hvis det lykkedes dig, kan du styre så mange elektroniske komponenter, du ønskerTing We Need: Hardware:
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
RF 433MHZ radiostyring ved hjælp af HT12D HT12E - Lav en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: 5 trin
RF 433MHZ radiostyring ved hjælp af HT12D HT12E | Oprettelse af en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: I denne instruktør vil jeg vise dig, hvordan du laver en RADIO -fjernbetjening ved hjælp af 433mhz sendermodtagermodul med HT12E -kode & HT12D -dekoder IC.I denne instruktive kan du sende og modtage data ved hjælp af meget meget billige KOMPONENTER SOM: HT
Lav DSLR -monteringsstativ til mindre end 6 $ ved hjælp af PVC -rør (monopod/stativ til ethvert kamera): 6 trin
Lav DSLR -monteringsstativ til mindre end 6 $ Ved hjælp af PVC -rør (monopod/stativ til ethvert kamera): Ja …. Du kan lave din egen med bare noget PVC -rør og T's Det er let … Det er perfekt afbalanceret … Det er solid stærk … Det er tilpasningsvenligt … Jeg er Sooraj Bagal, og jeg vil dele min erfaring med dette kameraholder, jeg har oprettet til