Taula de continguts:
- Pas 1: Llista de materials
- Pas 2: crear un model de làser i càmera
- Pas 3: conduir el làser i la pantalla LCD
- Pas 4: Detecció del làser mitjançant OpenCV
- Pas 5: calibració del telemetre
- Pas 6: mesurar distàncies
Vídeo: Fer telèfons amb un làser i una càmera: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Actualment estic planejant alguns treballs d'interior per a la propera primavera, però com que acabo d'adquirir una casa antiga no tinc cap pla de casa. Vaig començar a mesurar distàncies de paret a paret amb una regla, però és lent i propens a errors. Vaig pensar a comprar un telemetre per facilitar el procés, però després vaig trobar un article antic sobre la construcció del seu propi telemetre mitjançant un làser i una càmera. Resulta que tinc aquests components al meu taller.
El projecte es basa en aquest article:
L’única diferència és que construiré el telemetre amb un Raspberry Pi Zero W, un LCD i el mòdul Raspberry Pi Camera. També utilitzaré OpenCV per fer un seguiment del làser.
Suposo que sou un expert en tecnologia i que esteu còmode utilitzant Python i la línia d'ordres. En aquest projecte estic fent servir el Pi en mode sense cap.
Comencem!
Pas 1: Llista de materials
Per a aquest projecte, necessitareu:
- un làser econòmic de 5 mm de 6 mm
- una resistència de 220 Ω
- un transistor 2N2222A o alguna cosa equivalent
- un Raspberry Pi Zero W
- una càmera Raspberry Pi v2
- una pantalla LCD Nokia 5110 o equivalent
- alguns cables de pont i una petita tauleta
Vaig utilitzar la meva impressora 3D per imprimir una plantilla que em va ajudar durant els experiments. També tinc previst utilitzar la impressora 3D per construir un recinte complet per al telemetre. Es pot prescindir totalment.
Pas 2: crear un model de làser i càmera
El sistema assumeix una distància fixa entre l'objectiu de la càmera i la sortida del làser. Per facilitar les proves, vaig imprimir una plantilla on podia muntar la càmera, el làser i un petit circuit de conducció per al làser.
He utilitzat les dimensions del mòdul de la càmera per construir el suport per a la càmera. He utilitzat principalment una pinça digital i una regla de precisió per prendre les mesures. Per al làser, he creat un forat de 6 mm amb una mica de reforç per garantir que el làser no es mogui. Vaig intentar mantenir prou espai per fixar una petita tauleta a la part posterior de la plantilla.
He utilitzat Tinkercad per a la construcció; podeu trobar el model aquí:
Hi ha una distància de 3,75 cm entre el centre de la lent làser i el centre de la lent de la càmera.
Pas 3: conduir el làser i la pantalla LCD
He seguit aquest tutorial https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi per conduir la pantalla LCD amb el Raspberry Pi Zero. En lloc d'editar el fitxer /boot/config.txt, podeu habilitar la interfície SPI mitjançant sudo raspi-config mitjançant la línia d'ordres.
Estic fent servir el Raspberry Pi Zero en mode sense cap amb la versió més recent de Raspbian Stretch. No cobriré la instal·lació en aquest instructiu, però podeu seguir aquesta guia: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- línia d'ordres o utilitzant la xarxa-97f065af722e
Per tenir un punt làser brillant, estic fent servir el carril de 5V del Pi. Per a això, utilitzaré un transistor (2N2222a o equivalent) per conduir el làser mitjançant el GPIO. Una resistència de 220 Ω a la base del transistor permet prou corrent a través del làser. Estic fent servir RPi. GPIO per manipular el Pi GPIO. Vaig connectar la base del transistor al pin GPIO22 (el pin 15), l’emissor a terra i el col·lector al díode làser.
No oblideu habilitar la interfície de la càmera mitjançant sudo raspi-config a través de la línia d’ordres.
Podeu utilitzar aquest codi per provar la vostra configuració:
Si tot ha anat bé, hauríeu de tenir un fitxer dot-j.webp
Al codi, configurem la càmera i el GPIO, després activem el làser, capturem la imatge i inhabilitem el làser. Com que estic executant el Pi en mode sense cap, he de copiar les imatges del meu Pi al meu ordinador abans de mostrar-les.
En aquest moment, s’hauria de configurar el maquinari.
Pas 4: Detecció del làser mitjançant OpenCV
En primer lloc, hem d’instal·lar OpenCV al Pi. Bàsicament teniu tres maneres de fer-ho. Podeu instal·lar la versió antiga empaquetada amb apt. Podeu compilar la versió que vulgueu, però en aquest cas el temps d’instal·lació pot arribar fins a 15 hores i la major part per a la compilació real. O, segons el meu enfocament preferit, podeu utilitzar una versió precompilada per al Pi Zero que proporciona un tercer.
Com que és més senzill i ràpid, he utilitzat un paquet de tercers. Podeu trobar els passos d’instal·lació en aquest article: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ He provat moltes altres fonts, però els seus paquets no estaven actualitzats.
Per fer un seguiment d’un punter làser, he actualitzat el codi de https://github.com/bradmontgomery/python-laser-tracker per utilitzar el mòdul de càmera Pi en lloc d’un dispositiu USB. Podeu utilitzar directament el codi si no teniu cap mòdul de càmera Pi i voleu utilitzar una càmera USB.
Podeu trobar el codi complet aquí:
Per executar aquest codi, haureu d’instal·lar els paquets Python: pillow i picamera (sudo pip3 install pillow picamera).
Pas 5: calibració del telemetre
A l'article original, l'autor va dissenyar un procediment de calibratge per obtenir els paràmetres necessaris per transformar les coordenades y a una distància real. Vaig fer servir la taula de la meva sala d’estar per fer els calibratges i una peça antiga de kraft. Cada 10 cm aproximadament vaig assenyalar les coordenades xy en un full de càlcul: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Per assegurar-me que tot funcionés correctament, a cada pas, vaig comprovar les imatges capturades per veure si es va fer un seguiment correcte del làser. Si utilitzeu un làser verd o si el làser no es fa un seguiment correcte, haureu d’ajustar el to, la saturació i el llindar de valor del programa en conseqüència.
Un cop feta la fase de mesura, és hora de calcular els paràmetres. Com l'autor, vaig utilitzar una regressió lineal; de fet, el full de càlcul de Google va fer la feina per mi. A continuació, he reutilitzat aquests paràmetres per calcular una distància estimada i contrastar-la amb la distància real.
Ara és hora d’injectar els paràmetres al programa de telemetre per mesurar distàncies.
Pas 6: mesurar distàncies
Al codi: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c he actualitzat les variables HEIGHT, GAIN i OFFSET segons les mesures de calibratge. Vaig utilitzar la fórmula de la distància a l'article original per calcular la distància i vaig imprimir la distància amb la pantalla LCD.
El codi primer configurarà la càmera i el GPIO, i després volem il·luminar la llum de fons LCD per veure millor les mesures. L'entrada LCD està connectada al GPIO14. Cada 5 segons aproximadament, farem:
- habilitar el díode làser
- captura la imatge a la memòria
- desactiveu el díode làser
- fer un seguiment del làser mitjançant els filtres de gamma HSV
- escriviu la imatge resultant al disc amb la finalitat de depurar
- calculeu la distància en funció de la coordenada y
- escriviu la distància a la pantalla LCD.
No obstant això, les mesures són molt precises i prou precises per al meu cas d'ús, hi ha molt marge per millorar. Per exemple, el punt làser és de molt baixa qualitat i la línia làser no està realment centrada. Amb un làser de millor qualitat, els passos de calibratge seran més precisos. Fins i tot la càmera no està ben posicionada a la meva plantilla, s’inclina cap a la part inferior.
També puc augmentar la resolució del telemetre mitjançant la rotació de la càmera en 90º fent servir la funció completa amb i augmentar la resolució al màxim admès per la càmera. Amb la implementació actual, ens limitem a un rang de 0 a 384 píxels, podríem augmentar el límit superior a 1640, quatre vegades la resolució actual. La distància serà encara més precisa.
Com a seguiments, hauré de treballar en les millores de precisió que he esmentat anteriorment i construir un recinte per al telemetre. El recinte haurà de tenir una profunditat precisa per facilitar les mesures de paret a paret.
Tot plegat, el sistema actual és suficient per a mi i m’estalviarà una mica de diners per fer el pla de casa.
Recomanat:
Com reciclar telèfons Android per a BOINC o plataforma plegable sense fer servir bateries: 8 passos
Com reciclar telèfons Android per a BOINC o equips plegables sense fer servir bateries: ADVERTÈNCIA: NO ESTO EN RESPONSABLE DE NINGÚ DANY FET AL SEU MATERIAL SEGUINT AQUESTA GUIA. Aquesta guia és més eficaç per als usuaris de BOINC (motius o eleccions personals), també es pot utilitzar per PLEGAR Com que no tinc massa temps, vull
Cobertes de telèfons mòbils de suro gravats amb làser: 6 passos (amb imatges)
Cobertes de telèfons mòbils de suro gravat amb làser: aquesta setmana estem gravant làser de suro amb la nostra màquina de gravat làser Speedy 400. Avui realitzem fundes per a gravats làser amb el nostre material de suro. Us mostrarem diferents tècniques per crear fundes de telèfons úniques amb la nostra placa de suro. W
COM FER UNA CÀMERA INFRARROGA AMB UN LLUM LED IR: 5 passos (amb imatges)
COM FER UNA CÀMERA INFRARROGA AMB UN LLUM LED IR: M’he adonat d’una càmera infrarroja per utilitzar-la en un sistema de captura de moviment. Amb ell també podeu obtenir aquest tipus d’imatges genials: objectes brillants a la visió de la càmera que en realitat són normals. Podeu obtenir resultats bastant bons a un preu barat
Una llum de flaix recarregable magnífica amb altaveus Bluetooth i telèfons mòbils de càrrega: 4 passos (amb imatges)
Una llum de flaix recarregable magnífica amb altaveus Bluetooth i telèfons mòbils de càrrega: Hola amics, en aquest instructiu us informo sobre una llum de flaix recarregable equipada amb altaveus Bluetooth i la càrrega USB femenina per a la càrrega del mòbil, de manera que és un dispositiu multifacètic que és bo per acampar i caminar per parcs o muntanyes
Estabilitzador de càmera per a telèfons ENV2 o altres telèfons: 6 passos
Estabilitzador de càmera per a telèfons ENV2 o altres telèfons amb càmera: Mai voleu fer un vídeo, però només teniu un telèfon amb càmera? Alguna vegada heu estat fent un vídeo amb un telèfon amb càmera però no el podeu mantenir quiet? Bé, això és allò més instructiu per a vosaltres