Catégories
Informatique

Comment construire une caméra corporelle Raspberry Pi

Il n'y a rien de comparable à la puissance de la vraie vidéo à la première personne. Si vous êtes à la maison pour jouer avec vos enfants ou vos animaux de compagnie, le port d'une caméra corporelle vous permet de sauvegarder ces souvenirs spéciaux, sans coller votre visage dans votre téléphone. Et, si vous assistez à une manifestation et que vous souhaitez capturer des malversations de la part de qui que ce soit, cela convient également.

Bien que vous puissiez faire tout votre possible pour acheter une caméra corporelle dédiée, il est assez facile d'en construire une à l'aide d'un Raspberry Pi Zero W et de quelques pièces peu coûteuses. Notez que, si vous allez à une manifestation, vous voudrez rendre votre configuration aussi discrète et non menaçante que possible. Si vous avez des fils et du ruban adhésif sur votre veste, les gens pourraient avoir une mauvaise impression. Les photos de cet article montrent notre meilleure interprétation de la configuration de la caméra corporelle, mais vous pouvez peut-être la rendre plus compacte et moins effrayante.

Ce projet enregistrera votre vie quotidienne sur simple pression d'un bouton. Il enregistrera constamment en morceaux de deux minutes et, lorsqu'il sera déclenché, il enregistrera la vidéo sur le disque avant de le télécharger pour le conserver en toute sécurité dans un dossier Dropbox privé. Ainsi, même si votre caméra se casse ou est confisquée, votre vidéo sera disponible dans le cloud. Depuis Dropbox, vous pouvez éditer et partager vos vidéos si nécessaire.

Ce dont vous aurez besoin pour construire une caméra corporelle Raspberry Pi

Configuration matérielle de la Raspberry Pi Body Cam

(Crédit d'image: Tom's Hardware)

1. Attachez deux fils à GPIO 16 et GND sur le Raspberry Pi Zero W. Vous pouvez soit souder les fils ou attacher des broches GPIO au Pi Zero W, soit en les soudant, soit en utilisant un Pimoroni Hammer Header. Les Raspberry Pi Zero Ws pré-soudés, connus sous le nom de Zero WH, sont également disponibles à la vente.

Connexions GPIO (Crédit d'image: Tom's Hardware)

À l'aide de 2 cavaliers femelle à femelle et d'un bouton poussoir à 2 broches, connectez GPIO16 et GND au bouton.

(Crédit d'image: Tom's Hardware)

2. Utilisez un petit ruban adhésif ou un tube thermorétractable pour ranger la connexion. Enveloppez le ruban de sorte que le bouton et les fils soient bien fixés.

3. Insérez le module de caméra à l'emplacement de la caméra Raspberry Pi Zero W à l'aide de l'adaptateur. Assurez-vous que le câble est inséré correctement et verrouillé en place. Si vous utilisez le boîtier officiel du Raspberry Pi Zero W, faites passer le câble ruban dans la fente située sous le boîtier.

(Crédit d'image: Tom's Hardware)

Configuration logicielle de la caméra corporelle Raspberry Pi

4. Démarrez votre Raspberry Pi Zero W avec des périphériques connectés. Si vous ne possédez pas déjà de carte microSD, consultez notre article sur comment configurer un Raspberry Pi pour la première fois.

5. Allumez votre point d'accès mobileou paramétrez votre téléphone portable pour qu'il serve de point d'accès. Notez le nom du point d'accès et le mot de passe.

6. Connectez votre Raspberry Pi au hotspot via Wi-Fi.

7. Activer le module caméra dans Raspberry Pi OS. Vous pouvez le faire, en allant dans Préférences >> Configuration du Raspberry Pi, en cliquant sur l'onglet Interfaces et en vous assurant que l'interface de la caméra est activée. Redémarrez le Pi pour que cela prenne effet.

(Crédit d'image: Tom's Hardware)

8. Installez la bibliothèque Dropbox pour Python 3 en entrant ce qui suit à l'invite de commande.

sudo pip3 install dropbox

(Crédit d'image: Tom's Hardware)

9. Accédez aux développeurs Dropbox www.dropbox.com/developers dans votre navigateur et Cliquez sur Créer des applications pour vous connecter. Si vous ne possédez pas encore de compte Dropbox, inscrivez-vous (un forfait de base de 2 Go est gratuit), puis revenez sur cette page.

dix. Sélectionnez l'API Dropbox et l'accès au dossier d'application. alors nommez l'application, qui crée un dossier pour stocker les fichiers vidéo et cliquez sur Créer une application.

(Crédit d'image: Tom's Hardware)

Un nouvel écran apparaît.

11. Cliquez sur Générer sous Jeton d'accès généré puis copier ce jeton dans un document de texte de rechange pour référence ultérieure.

(Crédit d'image: Tom's Hardware)

Codage d'un script Python pour la caméra corporelle Raspberry Pi

12. Ouvrez l'IDE Geany, trouvé dans le menu de programmation Raspberry Pi.

13. Entrer le code comme décrit ci-dessous. La première ligne de Python est l'emplacement de l'interpréteur Python3, cela est nécessaire pour rendre le code exécutable à partir du terminal.

#!/usr/bin/python3

14. Importez les bibliothèques suivantes pour ajouter la prise en charge des E / S de base, un bouton-poussoir, la caméra, la date / heure et Dropbox.

import io
from gpiozero import Button
import picamera
from datetime import datetime
import dropbox

15. Collez le jeton Dropbox dans le code, puis l'assigner à une variable appelée «token». Ensuite, une connexion à Dropbox est établie à l'aide du jeton pour l'authentification.

token = "DROPBOX TOKEN HERE"
dbx = dropbox.Dropbox(token)

16. Créer un objet, «déclencher» qui sera utilisé pour lier le bouton connecté à GPIO 16 au code.

trigger = Button(16)

17. Créer une connexion à la caméra Raspberry Pi, puis réglez la résolution sur 720p.

camera = picamera.PiCamera()
camera.resolution = (1280, 720)

18. Créer un flux d'enregistrement. Un flux est utilisé pour créer un tampon circulaire qui enregistrera les événements avant d'appuyer sur le bouton. Ici, la caméra doit enregistrer 2 minutes avant l'activation. Le flux est enregistré dans un fichier h264.

stream = picamera.PiCameraCircularIO(camera, seconds=120)
camera.start_recording(stream, format='h264')

19. Ajouter une instruction try qui tentera d'exécuter le code en retrait à l'intérieur, dans ce cas, il commencera par une boucle pour exécuter constamment le code à l'intérieur.

try:
	while True:

20. Créer un retard, forçant la caméra à attendre une seconde à chaque itération de la boucle.

camera.wait_recording(1)

21. Créer une condition if pour le déclencheur et définir la date et l'heure actuelles, utilisé plus tard comme horodatage. Lorsque l'utilisateur appuie sur le bouton, cette condition si démarre le processus de capture vidéo.

                if trigger.is_pressed:
        	now = datetime.now()

22. Imprimer un message sur le terminal pour montrer que l'enregistreur a été déclenché et régler la durée d'enregistrement à 120 secondes.

                print("ACTION")
        	camera.wait_recording(120)

23. Ajoutez ce code pour enregistrer le flux vidéo à un fichier, qui utilise l'horodatage comme nom de fichier et ajoute le format de fichier pour créer un fichier valide. Un autre message est imprimé pour informer l'utilisateur.

                stream.copy_to(str(now)+'.h264')
        	print("Stream saved to disk...will upload to Dropbox")

24. Ajoutez ce code pour permettre au script d'ouvrir le fichier vidéo fraîchement créé en mode lecture seule et de le télécharger sur Dropbox, en écrasant tous les fichiers qui partagent le même nom. Un message est imprimé sur le terminal une fois terminé.

with open(str(now)+'.h264',"rb") as data:
            	dbx.files_upload(data.read(),'/'+str(now)+'.h264',mute=True, mode=dropbox.files.WriteMode.overwrite)
        	print("File uploaded to Dropbox")

25. Créez ces deux dernières lignes de code pour arrêter l'enregistrement de la caméra lorsque l'utilisateur arrête l'exécution du code.

finally:
camera.stop_recording()

26. Enregistrez le script en tant que video-recorder.py, puis fermez Geany.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *