Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci l’esplorazione del Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti e alle anticipazioni esclusive.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e omaggi festivi: Partecipa a omaggi e promozioni speciali durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
3.1.1 Modulo Fotografico
Introduzione
In questo kit, dotato di un modulo fotocamera, proveremo a scattare una foto con il Raspberry Pi.
Componenti necessari
In questo progetto avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Procedura sperimentale
Passo 1: Accedi al desktop del Raspberry Pi. Potresti aver bisogno di uno schermo per un’esperienza migliore, fai riferimento a: Collega il tuo Raspberry Pi. Oppure accedi al desktop del Raspberry Pi da remoto, per un tutorial dettagliato fai riferimento a Desktop Remoto.
Passo 2: Apri un terminale e accedi alla cartella del codice.
cd ~/raphael-kit/python/
Passo 3: Esegui il codice.
sudo python3 3.1.1_PhotographModule.py
Dopo che il codice è stato eseguito, la fotocamera scatterà una foto. Ora puoi vedere la foto chiamata my_photo.jpg nella directory ~.
Nota
Puoi anche aprire 3.1.1_PhotographModule.py nel percorso ~/raphael-kit/python/ con un IDE Python, clicca sul pulsante Run per eseguire e sul pulsante Stop per fermare il codice.
Se desideri scaricare la foto sul tuo PC, fai riferimento a Software FileZilla.
Codice
#!/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
Spiegazione del Codice
Importa le classi
Picamera2ePreviewdalla libreria picamera2, e il moduloosper le interazioni con il sistema operativo.#!/usr/bin/env python3 from picamera2 import Picamera2, Preview import os
Recupera il nome dell’utente corrente e il percorso della sua directory home.
# Ottieni il nome utente corrente user = os.getlogin() # Ottieni il percorso della directory home dell'utente user_home = os.path.expanduser(f'~{user}')
Crea un’istanza della classe
Picamera2e recupera la configurazione predefinita dell’anteprima.# Crea un'istanza di Picamera2 camera = Picamera2() # Recupera la configurazione di anteprima predefinita preview_config = camera.preview_configuration
Imposta la dimensione e il formato dell’anteprima della fotocamera. La dimensione è impostata a 800x600 pixel e il formato
XRGB8888.try: # Imposta dimensioni e formato dell’anteprima preview_config.size = (800, 600) preview_config.format = 'XRGB8888' ...
Avvia l’anteprima della fotocamera in modalità QTGL, un metodo per visualizzare l’anteprima, e quindi avvia la fotocamera.
try: ... # Avvia l’anteprima della fotocamera in modalità QTGL camera.start_preview(Preview.QTGL) # Avvia la fotocamera camera.start() ...
Cattura un’immagine dalla fotocamera, salvandola nella directory
~/dell’utente.try: ... # Cattura e salva una foto nella directory home dell'utente camera.capture_file(f'{user_home}/my_photo.jpg')
Nota
Puoi utilizzare la funzione
camera.capture()insieme a un cicloforper realizzare scatti continui. Usa la funzionedelayper regolare l’intervallo tra gli scatti.for i in 5: camera.capture(f'{user_home}/my_photo%s.jpg' % i)
Questo blocco di codice gestisce un’interruzione da tastiera (come Ctrl+C) interrompendo l’anteprima della fotocamera. L’istruzione
passviene utilizzata per gestire l’eccezione senza altre azioni.except KeyboardInterrupt: # Ferma l’anteprima della fotocamera se avviene un'interruzione (es. Ctrl+C) camera.stop_preview() pass