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!
4.1.1 Fotocamera
Introduzione
Qui realizzeremo una fotocamera con un otturatore: quando premi il pulsante, la fotocamera scatta mentre il LED lampeggia.
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 |
|---|---|
Schema elettrico
T-Board Name |
physical |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO18 |
Pin 12 |
1 |
18 |
Procedura sperimentale
Passo 1: Costruisci il circuito.
Passo 2: Per collegare il modulo fotocamera e completare la configurazione, fai riferimento a: Modulo Fotocamera.
Passo 3: 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 Accesso Desktop Remoto per Raspberry Pi.
Passo 4: Apri un terminale e accedi alla cartella del codice.
cd ~/raphael-kit/python/
Passo 5: Esegui.
sudo python3 4.1.1_Camera.py
Dopo l’esecuzione del codice, premi il pulsante: il Raspberry Pi farà lampeggiare il LED e scatterà una foto. La foto sarà nominata my_photo.jpg e salvata nella directory ~.
Nota
Puoi anche aprire 4.1.1_Camera.py nel percorso ~/raphael-kit/python/ con un IDE Python, clicca sul pulsante Run per eseguire e sul pulsante Stop per interrompere il codice.
Se desideri scaricare la foto sul tuo PC, fai riferimento a Software Filezilla.
Codice
Nota
Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima di farlo, devi andare nel percorso del codice sorgente, come raphael-kit/python. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/usr/bin/env python3
from picamera import PiCamera
import RPi.GPIO as GPIO
import time
import os
user = os.getlogin()
user_home = os.path.expanduser(f'~{user}')
camera = PiCamera()
LedPin = 17 # Imposta GPIO17 come pin LED
BtnPin = 18 # Imposta GPIO18 come pin del pulsante
status = False
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(BtnPin, GPIO.IN)
camera.start_preview(alpha=200)
def takePhotos(pin):
global status
status = True
def main():
global status
GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)
while True:
if status:
for i in range(5):
GPIO.output(LedPin, GPIO.LOW)
time.sleep(0.1)
GPIO.output(LedPin, GPIO.HIGH)
time.sleep(0.1)
camera.capture(f'{user_home}/my_photo.jpg')
print ('Take a photo!')
status = False
else:
GPIO.output(LedPin, GPIO.HIGH)
time.sleep(1)
def destroy():
camera.stop_preview()
GPIO.output(LedPin, GPIO.HIGH)
GPIO.cleanup()
if __name__ == '__main__':
setup()
try:
main()
except KeyboardInterrupt:
destroy()
Spiegazione del Codice
GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)
Imposta l’evento per BtnPin: quando viene premuto il pulsante (il segnale di livello cambia da alto a basso), chiama la funzione takePhotos().
def takePhotos(pin):
global status
status = True
Quando viene chiamata takePhotos(), modifica lo stato in True.
if status:
for i in range(5):
GPIO.output(LedPin, GPIO.LOW)
time.sleep(0.1)
GPIO.output(LedPin, GPIO.HIGH)
time.sleep(0.1)
camera.capture(f'{user_home}/my_photo.jpg')
print ('Take a photo!')
status = False
else:
GPIO.output(LedPin, GPIO.HIGH)
time.sleep(1)
Quando lo stato è True, il Raspberry Pi farà lampeggiare il LED e scatterà una foto. La foto sarà nominata my_photo.jpg e salvata nella directory ~.
Immagine del fenomeno