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

Dans ce projet, nous avons besoin des composants suivants.

../_images/3.3.1_photograph_list.png

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DU COMPOSANT

LIEN D’ACHAT

Module de Caméra

ACHETER

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 à : Connecter votre Raspberry Pi. Ou accédez au bureau du Raspberry Pi à distance, pour un tutoriel détaillé veuillez consulter Bureau à distance.

Étape 2 : Ouvrez un Terminal et accédez au dossier du code.

cd ~/raphael-kit/python-pi5

Étape 3 : Exécutez.

sudo python3 3.1.1_PhotographModule_zero.py

Lorsque le code s’exécute, 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-pi5/ avec un IDE Python, cliquer sur le bouton Exécuter pour exécuter et arrêter le code avec le bouton Stop.

Si vous souhaitez télécharger la photo sur votre PC, veuillez vous référer à Logiciel FileZilla.

Avertissement

Si vous recevez le message d’erreur RuntimeError: Cannot determine SOC peripheral base address, veuillez consulter Si « gpiozero » ne fonctionne pas.

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

  1. Importe les classes Picamera2 et Preview de la bibliothèque picamera2, ainsi que le module os pour les interactions avec le système d’exploitation.

    #!/usr/bin/env python3
    from picamera2 import Picamera2, Preview
    import os
    
  2. Récupère le nom d’utilisateur actuel et le chemin de son répertoire personnel.

    # 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}')
    
  3. Crée une instance de la classe Picamera2 et récupère la configuration de prévisualisation par défaut.

    # Create a Picamera2 instance
    camera = Picamera2()
    # Retrieve the default preview configuration
    preview_config = camera.preview_configuration
    
  4. Définit la taille et le format de la prévisualisation de la caméra. La taille est définie à 800x600 pixels, et le format à XRGB8888.

    try:
        # Set preview size and format
        preview_config.size = (800, 600)
        preview_config.format = 'XRGB8888'
    
        ...
    
  5. Démarre la prévisualisation de la caméra en mode QTGL, puis démarre la caméra elle-même.

    try:
        ...
    
        # Start the camera preview in QTGL mode
        camera.start_preview(Preview.QTGL)
        # Start the camera
        camera.start()
    
        ...
    
  6. Capture une image à partir de la caméra et l’enregistre dans le répertoire personnel de l’utilisateur.

    try:
        ...
    
        # Capture and save a photo to the user's home directory
        camera.capture_file(f'{user_home}/my_photo.jpg')
    

    Note

    Vous pouvez utiliser la fonction camera.capture() et une boucle for ensemble pour réaliser une prise de vue en continu. Utilisez la fonction delay pour ajuster l’intervalle de temps entre les prises de vue.

    for i in 5:
        camera.capture(f'{user_home}/my_photo%s.jpg' % i)
    
  7. Ce bloc de code gère une interruption clavier (comme Ctrl+C) en arrêtant la prévisualisation de la caméra. L’instruction pass est utilisée pour gérer l’exception sans faire autre chose.

    except KeyboardInterrupt:
        # Stop the camera preview if a KeyboardInterrupt (e.g., Ctrl+C) occurs
        camera.stop_preview()
        pass