Table des matières:

Fabriquer un télémètre à l'aide d'un laser et d'un appareil photo : 6 étapes
Fabriquer un télémètre à l'aide d'un laser et d'un appareil photo : 6 étapes

Vidéo: Fabriquer un télémètre à l'aide d'un laser et d'un appareil photo : 6 étapes

Vidéo: Fabriquer un télémètre à l'aide d'un laser et d'un appareil photo : 6 étapes
Vidéo: APPAREIL DE MESURE DISTANCE & VITESSE - télémètre laser - [PEARLTV.FR] 2024, Juin
Anonim
Faire un télémètre à l'aide d'un laser et d'un appareil photo
Faire un télémètre à l'aide d'un laser et d'un appareil photo

Je planifie actuellement des travaux d'intérieur pour le printemps prochain, mais comme je viens d'acquérir une vieille maison, je n'ai pas de plan de maison. J'ai commencé à mesurer les distances mur à mur à l'aide d'une règle, mais c'est lent et sujet aux erreurs. J'ai pensé à acheter un télémètre pour faciliter le processus, mais j'ai ensuite trouvé un vieil article sur la construction de son propre télémètre à l'aide d'un laser et d'un appareil photo. Il s'avère que j'ai ces composants dans mon atelier.

Le projet est basé sur cet article:

La seule différence est que je vais construire le télémètre à l'aide d'un Raspberry Pi Zero W, d'un écran LCD et du module Raspberry Pi Camera. Je vais également utiliser OpenCV pour suivre le laser.

Je suppose que vous êtes un expert en technologie et que vous êtes à l'aise avec Python et la ligne de commande. Dans ce projet, j'utilise le Pi en mode sans tête.

Commençons!

Étape 1: Liste des matériaux

Pour ce projet, vous aurez besoin de:

  • un laser 6mm 5mW pas cher
  • une résistance de 220 Ω
  • un transistor 2N2222A ou quelque chose d'équivalent
  • un Raspberry Pi Zero W
  • une caméra Raspberry Pi v2
  • un écran LCD Nokia 5110 ou équivalent
  • quelques fils de liaison et une petite planche à pain

J'ai utilisé mon imprimante 3D pour imprimer un gabarit qui m'a aidé pendant les expériences. Je prévois également d'utiliser l'imprimante 3D pour construire un boîtier complet pour le télémètre. Vous pouvez totalement vous en passer.

Étape 2: Construire un gabarit laser et caméra

Construire un gabarit laser et caméra
Construire un gabarit laser et caméra
Construire un gabarit laser et caméra
Construire un gabarit laser et caméra
Construire un gabarit laser et caméra
Construire un gabarit laser et caméra

Le système suppose une distance fixe entre l'objectif de la caméra et la sortie laser. Pour faciliter les tests, j'ai imprimé un gabarit dans lequel je peux monter la caméra, le laser et un petit circuit d'entraînement pour le laser.

J'ai utilisé les dimensions du module de caméra pour construire le support de la caméra. J'ai principalement utilisé un pied à coulisse numérique et une règle de précision pour prendre les mesures. Pour le laser, j'ai créé un trou de 6 mm avec un peu de renfort pour que le laser ne bouge pas. J'ai essayé de garder assez de place pour avoir une petite planche à pain fixée à l'arrière du gabarit.

J'ai utilisé Tinkercad pour la construction, vous pouvez trouver le modèle ici:

Il y a une distance de 3,75 cm entre le centre de l'objectif laser et le centre de l'objectif de la caméra.

Étape 3: Pilotage du laser et de l'écran LCD

Pilotage du laser et de l'écran LCD
Pilotage du laser et de l'écran LCD
Pilotage du laser et de l'écran LCD
Pilotage du laser et de l'écran LCD

J'ai suivi ce tutoriel https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi pour piloter l'écran LCD avec le Raspberry Pi Zero. Au lieu de modifier le fichier /boot/config.txt, vous pouvez activer l'interface SPI à l'aide de sudo raspi-config via la ligne de commande.

J'utilise le Raspberry Pi Zero en mode sans tête en utilisant le dernier, à la date, Raspbian Stretch. Je ne couvrirai pas l'installation dans ce Instructable mais vous pouvez suivre ce guide: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- ligne-de-commande-ou-utilisation-du-réseau-97f065af722e

Pour avoir un point laser brillant, j'utilise le rail 5V du Pi. Pour cela, j'utiliserai un transistor (2N2222a ou équivalent) pour piloter le laser à l'aide du GPIO. Une résistance de 220 Ω à la base du transistor laisse passer suffisamment de courant à travers le laser. J'utilise RPi. GPIO pour manipuler le Pi GPIO. J'ai connecté la base du transistor à la broche GPIO22 (la 15ème broche), l'émetteur à la terre et le collecteur à la diode laser.

N'oubliez pas d'activer l'interface de la caméra à l'aide de sudo raspi-config via la ligne de commande.

Vous pouvez utiliser ce code pour tester votre configuration:

Si tout s'est bien passé, vous devriez avoir un fichier dot-j.webp

Dans le code, nous configurons la caméra et le GPIO, puis nous activons le laser, nous capturons l'image et nous désactivons le laser. Comme j'exécute le Pi en mode sans tête, je dois copier les images de mon Pi sur mon ordinateur avant de les afficher.

À ce stade, votre matériel doit être configuré.

Étape 4: Détecter le laser à l'aide d'OpenCV

Tout d'abord, nous devons installer OpenCV sur le Pi. Vous avez essentiellement trois façons de le faire. Vous pouvez soit installer l'ancienne version packagée avec apt. Vous pouvez compiler la version que vous voulez mais dans ce cas le temps d'installation peut aller jusqu'à 15 heures et la plupart pour la compilation proprement dite. Ou, mon approche préférée, vous pouvez utiliser une version précompilée pour le Pi Zero fournie par un tiers.

Parce que c'est plus simple et plus rapide, j'ai utilisé un package tiers. Vous pouvez trouver les étapes d'installation dans cet article: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ J'ai essayé de nombreuses autres sources mais leurs packages n'étaient pas à jour.

Pour suivre un pointeur laser, j'ai mis à jour le code de https://github.com/bradmontgomery/python-laser-tracker pour utiliser le module de caméra Pi au lieu d'un périphérique USB. Vous pouvez utiliser directement le code si vous n'avez pas de module de caméra Pi et souhaitez utiliser une caméra USB.

Vous pouvez trouver le code complet ici:

Pour exécuter ce code, vous devrez installer les packages Python: Pillow et picamera (sudo pip3 install Pillow picamera).

Étape 5: Étalonnage du télémètre

Étalonnage du télémètre
Étalonnage du télémètre
Étalonnage du télémètre
Étalonnage du télémètre
Étalonnage du télémètre
Étalonnage du télémètre

Dans l'article original, l'auteur a conçu une procédure d'étalonnage pour obtenir les paramètres requis pour transformer les coordonnées y en une distance réelle. J'ai utilisé ma table de salon pour les calibrages et un vieux morceau de kraft. Tous les 10 cm environ, j'ai noté les coordonnées x et y dans une feuille de calcul: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Pour m'assurer que tout fonctionnait correctement, à chaque étape, j'ai vérifié les images capturées pour voir si le laser a été correctement suivi. Si vous utilisez un laser vert ou si votre laser n'est pas correctement suivi, vous devrez ajuster la teinte, la saturation et le seuil de valeur du programme en conséquence.

Une fois la phase de mesure terminée, il est temps de calculer réellement les paramètres. Comme l'auteur, j'ai utilisé une régression linéaire; en fait, Google Spreadsheet a fait le travail pour moi. J'ai ensuite réutilisé ces paramètres pour calculer une distance estimée et la comparer à la distance réelle.

Il est maintenant temps d'injecter les paramètres dans le programme télémètre pour mesurer les distances.

Étape 6: Mesurer les distances

Mesurer des distances
Mesurer des distances

Dans le code: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c J'ai mis à jour les variables HEIGHT, GAIN et OFFSET en fonction des mesures d'étalonnage. J'ai utilisé la formule de distance dans l'article original pour estimer la distance et j'ai imprimé la distance à l'aide de l'écran LCD.

Le code va d'abord configurer la caméra et le GPIO, puis nous voulons allumer le rétroéclairage LCD pour mieux voir les mesures. L'entrée LCD est connectée au GPIO14. Toutes les 5 secondes environ, nous allons:

  1. activer la diode laser
  2. capturer l'image en mémoire
  3. désactiver la diode laser
  4. suivre le laser à l'aide des filtres de plage HSV
  5. écrire l'image résultante sur le disque à des fins de débogage
  6. calculer la distance en fonction de la coordonnée y
  7. écrivez la distance sur l'écran LCD.

Cependant, les mesures sont très précises et suffisamment précises pour mon cas d'utilisation, il y a beaucoup de place pour des améliorations. Par exemple, le point laser est de très mauvaise qualité et la ligne laser n'est pas vraiment centrée. Avec un laser de meilleure qualité, les étapes de calibration seront plus précises. Même la caméra n'est pas vraiment bien positionnée dans mon gabarit, elle bascule vers le bas.

Je peux également augmenter la résolution du télémètre en faisant pivoter la caméra de 90º en utilisant le plein avec et augmenter la résolution au maximum pris en charge par la caméra. Avec l'implémentation actuelle, nous sommes limités à une plage de 0 à 384 pixels, nous pourrions augmenter la limite supérieure à 1640, soit 4 fois la résolution actuelle. La distance sera encore plus précise.

En guise de suivi, je devrai travailler sur les améliorations de précision que j'ai mentionnées ci-dessus et construire un boîtier pour le télémètre. L'enceinte devra être d'une profondeur précise pour faciliter les mesures mur à mur.

Dans l'ensemble, le système actuel me suffit et me permettra d'économiser de l'argent lors de la préparation de mon plan de maison !

Conseillé: