Note
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !
3.1.1 Module Photographique
Introduction
Dans ce kit, équipé d’un module caméra, essayons de prendre une photo avec le Raspberry Pi.
Composants Nécessaires
Pour ce projet, nous avons besoin des composants suivants.
Il est très pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
Procédures Expérimentales
Étape 1 : Accédez au bureau du Raspberry Pi. Vous aurez peut-être besoin d’un écran pour une meilleure expérience, référez-vous à : Connect your Raspberry Pi. Ou accédez au bureau du Raspberry Pi à distance, pour un tutoriel détaillé, veuillez vous référer à Bureau à distance.
Étape 2 : Ouvrez un terminal et allez dans le dossier du code.
cd ~/raphael-kit/python/
Étape 3 : Exécutez.
sudo python3 3.1.1_PhotographModule.py
Après l’exécution du code, la caméra prendra une photo. Vous pouvez maintenant voir la photo nommée my_photo.jpg dans le répertoire ~.
Note
Vous pouvez également ouvrir 3.1.1_PhotographModule.py dans le chemin ~/raphael-kit/python/ avec un IDE Python, cliquer sur le bouton Exécuter pour exécuter, et arrêter le code avec le bouton Arrêter.
Si vous souhaitez télécharger la photo sur votre PC, veuillez vous référer à Logiciel FileZilla.
Code
#!/usr/bin/env python3
from picamera2 import Picamera2, Preview
import os
# Get the current user's login name
user = os.getlogin()
# Get the path to the user's home directory
user_home = os.path.expanduser(f'~{user}')
# Create a Picamera2 instance
camera = Picamera2()
# Retrieve the default preview configuration
preview_config = camera.preview_configuration
try:
# Set preview size and format
preview_config.size = (800, 600)
preview_config.format = 'XRGB8888'
# Start the camera preview in QTGL mode
camera.start_preview(Preview.QTGL)
# Start the camera
camera.start()
# Capture and save a photo to the user's home directory
camera.capture_file(f'{user_home}/my_photo.jpg')
except KeyboardInterrupt:
# Stop the camera preview if a KeyboardInterrupt (e.g., Ctrl+C) occurs
camera.stop_preview()
pass
Explication du code
Importe les classes
Picamera2etPreviewdepuis la bibliothèque picamera2, ainsi que le moduleospour les interactions avec le système d’exploitation.#!/usr/bin/env python3 from picamera2 import Picamera2, Preview import os
Récupère le nom de connexion de l’utilisateur actuel et le chemin vers son répertoire personnel.
# Obtenir le nom de connexion de l'utilisateur actuel user = os.getlogin() # Obtenir le chemin du répertoire personnel de l'utilisateur user_home = os.path.expanduser(f'~{user}')
Crée une instance de la classe
Picamera2et récupère la configuration d’aperçu par défaut.# Créer une instance de Picamera2 camera = Picamera2() # Récupérer la configuration d'aperçu par défaut preview_config = camera.preview_configuration
Définit la taille et le format de l’aperçu de la caméra. La taille est définie à 800x600 pixels et le format à
XRGB8888.try: # Définir la taille et le format de l'aperçu preview_config.size = (800, 600) preview_config.format = 'XRGB8888' ...
Démarre l’aperçu de la caméra en mode QTGL, qui est une méthode d’affichage de l’aperçu, puis démarre la caméra elle-même.
try: ... # Démarrer l'aperçu de la caméra en mode QTGL camera.start_preview(Preview.QTGL) # Démarrer la caméra camera.start() ...
Capture une image depuis la caméra et l’enregistre dans
~/.try: ... # Capturer et enregistrer une photo dans le répertoire personnel de l'utilisateur camera.capture_file(f'{user_home}/my_photo.jpg')
Note
Vous pouvez utiliser la fonction
camera.capture()et une boucleforensemble pour réaliser une prise de vue en continu. Et utiliser la fonctiondelaypour ajuster l’intervalle de temps entre les prises.for i in 5: camera.capture(f'{user_home}/my_photo%s.jpg' % i)
Ce bloc de code gère une interruption clavier (comme Ctrl+C) en arrêtant l’aperçu de la caméra. L’instruction
passest utilisée pour gérer l’exception sans effectuer d’action supplémentaire.except KeyboardInterrupt: # Arrêter l'aperçu de la caméra si une interruption clavier (ex : Ctrl+C) survient camera.stop_preview() pass