Πίνακας περιεχομένων:

Raspberry Pi Photobooth: 5 βήματα
Raspberry Pi Photobooth: 5 βήματα

Βίντεο: Raspberry Pi Photobooth: 5 βήματα

Βίντεο: Raspberry Pi Photobooth: 5 βήματα
Βίντεο: Raspberry Pi PhotoBooth with Printer Tutorial 2024, Νοέμβριος
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Ο σκοπός:

  • Μάθετε πώς μπορείτε να κωδικοποιήσετε και να εγκαταστήσετε μια κάμερα Pi
  • Χρησιμοποιώντας προτάσεις ορισμού και εάν στην κωδικοποίηση
  • Μάθετε να χρησιμοποιείτε νέα τεχνολογία όπως τα LED RGB

Βήμα 1: Τι θα χρειαστείτε

Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
  • 1 Raspberry Pi 3
  • Breadboard
  • Άλτες
  • 1 Αντίσταση εξαρτώμενη από το φως
  • 1 πυκνωτής
  • 1 κουμπί
  • 6 αντιστάσεις 220 Ohm
  • 2 LED RGB
  • 1 κάμερα Raspberry Pi

Βήμα 2: Σύνδεση της μονάδας κάμερας

Σύνδεση της μονάδας κάμερας
Σύνδεση της μονάδας κάμερας

Πρώτα απ 'όλα, με το Pi απενεργοποιημένο, θα πρέπει να συνδέσετε τη μονάδα κάμερας στη θύρα κάμερας του Raspberry Pi, στη συνέχεια να ξεκινήσετε το Pi και να βεβαιωθείτε ότι το λογισμικό είναι ενεργοποιημένο.

  1. Εντοπίστε τη θύρα της κάμερας που βρίσκεται ανάμεσα στη θύρα HDMI και 3,5 mm
  2. Τραβήξτε προς τα πάνω το κλιπ της κάμερας από τις πλαστικές άκρες μέχρι το κλιπ να είναι διαγώνιο
  3. Τώρα τοποθετήστε το καλώδιο της κάμερας με το μπλε να βλέπει στη θύρα 3,5 mm

Βήμα 3: Ρύθμιση της κάμερας

Ρύθμιση της κάμερας
Ρύθμιση της κάμερας
Ρύθμιση της κάμερας
Ρύθμιση της κάμερας

Ανοίξτε το εργαλείο διαμόρφωσης Raspberry Pi από το κύριο μενού και απενεργοποιήστε και ενεργοποιήστε όλες τις παραπάνω διεπαφές

Από το κύριο μενού ανοίξτε το τερματικό και πληκτρολογήστε τις ακόλουθες γραμμές κώδικα:

Sudo Raspi-config

Τώρα από εδώ χρησιμοποιήστε τα βέλη για να λειτουργήσετε μέσω του συστήματος και κάντε κλικ στην επιλογή Περιφερειακή σύνδεση και, στη συνέχεια, κάντε κλικ στην κάμερα P1 και ενεργοποιήστε την κάμερα και, στη συνέχεια, επιλέξτε τερματισμός. Επιστρέφοντας στον τύπο τερματικού στις ακόλουθες γραμμές κώδικα:

pip εγκατάσταση picamera

ή Sudo pip εγκατάσταση Picamera

Βήμα 4: Δοκιμή της μονάδας κάμερας

Δοκιμή της μονάδας κάμερας
Δοκιμή της μονάδας κάμερας

Από εδώ μπορούμε να δοκιμάσουμε αν η κάμερα λειτουργεί ή όχι επειδή έχουμε όλο το λογισμικό και το υλικό ενεργοποιημένο.

Ανοίξτε το Python 3 από το μενού

Από εκεί ανοίξτε ένα νέο αρχείο από το κέλυφος και αποθηκεύστε το στο cameratest.py.

Εισαγάγετε τον ακόλουθο κωδικό:

απ

camera.start_preview ()#ξεκινά την κάμερα και σας δείχνει πώς είναι η έξοδος της κάμερας

sleep (10)#αφήνει ενεργοποιημένη την προεπισκόπηση για 10 δευτερόλεπτα

camera.stop_preview ()#κλείνει τελικά την προεπισκόπηση

Εκτελέστε τον κωδικό μέσω F5

Εάν λάβετε αυτό το σφάλμα κατά την εκτέλεση του κωδικού:

(mmal: mmal_vc_component_create: απέτυχε η δημιουργία του στοιχείου 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: δεν μπόρεσα να δημιουργήσω το στοιχείο 'vc.ril.camera' (1) Traceback (τελευταία κλήση τελευταία): Αρχείο "", γραμμή 1, στο Αρχείο "/usr/lib/python2.7/dist-packages/picamera /camera.py ", γραμμή 257, στο _init_ self._init_camera () Αρχείο" /usr/lib/python2.7/dist-packages/picamera/camera.py ", γραμμή 288, στο πρόθεμα _init_camera =" Αποτυχία δημιουργίας κάμερας στοιχείο ") Αρχείο" /usr/lib/python2.7/dist-packages/picamera/exc.py ", γραμμή 112, στο mmal_check raise PiCameraMMALError (status, prefix) picamera.exc. PiCameraMMALError: Αποτυχία δημιουργίας στοιχείου κάμερας: Out της μνήμης)

Πηγαίνετε στη διαμόρφωση Raspberry Pi, μεταβείτε στη στήλη επιδόσεων και ενισχύστε τη μνήμη της GPU σας μέχρι να εξαφανιστεί το σφάλμα (πρέπει να κάνετε επανεκκίνηση).

Τώρα, για να δημιουργήσουμε μια φωτογραφία που θα αποθηκευτεί στην επιφάνεια εργασίας, θα χρησιμοποιήσουμε τον ακόλουθο κώδικα:

απ

κάμερα = PiCamera () #Ρύθμιση για την κάμερα

camera.start_preview () #Ξεκινά την προεπισκόπηση ύπνου (5) #Αφήνει ενεργοποιημένη την προεπισκόπηση για 5 δευτερόλεπτα

camera.capture ('/home/pi/Desktop/image.jpg')# Από το

camera.stop_preview ()#Διακόπτει την προεπισκόπηση

Βήμα 5: Δημιουργία κυκλώματος με κώδικα

Δημιουργία κυκλώματος με κώδικα!
Δημιουργία κυκλώματος με κώδικα!
Δημιουργία κυκλώματος με κώδικα!
Δημιουργία κυκλώματος με κώδικα!
Δημιουργία κυκλώματος με κώδικα!
Δημιουργία κυκλώματος με κώδικα!

Όπως φαίνεται παραπάνω από τα διαγράμματα κυκλώματος, πρέπει να ρυθμίσουμε ένα κουμπί, ένα LDR και τέλος δύο LED RGB. Αρχικά θα ρυθμίσουμε το κουμπί στην κάτω αριστερή πλευρά του breadboard. Κατά τη ρύθμισή σας για το κουμπί θα χρησιμοποιήσουμε τις κοινές σιδηροδρομικές γραμμές που σημαίνει ότι θα συνδέσουμε το 3.3V στο θετικό και το έδαφος για αρνητικό. Αφού ολοκληρώσετε τη ρύθμιση του κυκλώματος μόνο για το κουμπί.

Θα δοκιμάσουμε το κύκλωμά μας για να δούμε αν μπορούμε να το κάνουμε έτσι ώστε αν πατηθεί το κουμπί να ενεργοποιήσουμε το led χρησιμοποιώντας τον ακόλουθο κώδικα:

#Εισαγόμενες ενότητεςαπό το κουμπί εισαγωγής gpiozero από την εισαγωγή PiCamera της picamera από τον χρόνο εισαγωγής ύπνου

#Εγκατάσταση

Κάμερα = PiCamera () Κουμπί = Κουμπί (22)

#Λήψη φωτογραφίας, αποφάσισα να την θέσω σε μια λειτουργία καθορισμού καθώς μας βοηθά να καθαρίσουμε τον κύριο κώδικα

def photocap ():

Camera.start_preview ()

ύπνος (5) Εκτύπωση Camera.capture ('/home/pi/Desktop/image.jpg') ("Η φωτογραφία τραβήχτηκε") Camera.stop_preview ()

#Κύριος κώδικας:

while True: if Button.is_pressed: print ("Button was pressed") photocap ()

#Γιατί λειτουργεί αυτό: Ο κύριος κώδικας λειτουργεί καθώς το μόνο που κάνουμε είναι να χρησιμοποιούμε την εντολή if button.εκφράζεται σε λίγο true statement έτσι ενημερώνεται συνεχώς όταν πατάτε το κουμπί για να τραβήξετε τη φωτογραφία

Τώρα θα ρυθμίσουμε 2 LED RGB μέχρι την κορυφή του κυκλώματος και θα τα χωρίσουμε στη μέση του ψωμιού και θα κάνουμε το συμμετρικό. Εάν δεν έχετε αντιστάσεις 220 ohm για αυτό το έργο, μπορείτε να τις ρυθμίσετε παράλληλα ανάλογα με την αντίστασή σας για τις αντιστάσεις που έχετε. Ο δεύτερος πείρος του LED RGB 4 ακίδων (ο μακρύτερος πρέπει να συνδεθεί στη γείωση μέσω του σιδηροδρόμου. Οι άλλοι πείροι θα πρέπει να είναι όλοι συνδεδεμένοι με τους δικούς τους ακροδέκτες GPIO. (Πρώτη καρφίτσα = κόκκινη, Δεύτερη καρφίτσα = γείωση, Τρίτη καρφίτσα = πράσινη, Τέταρτη καρφίτσα = μπλε).

Θα δοκιμάσουμε μία από τις λυχνίες LED RGB στο κύκλωμα κουμπιών μας με τον παρακάτω κωδικό:

#Εισαγόμενες ενότητες από το κουμπί εισαγωγής gpiozero από την εισαγωγή PiCamera της picamera

από gpiozero import RGBLED

από τον χρόνο εισαγωγής ύπνου

#Εγκατάσταση

Κάμερα = PiCamera () Κουμπί = Κουμπί (22)

TimedLED = RGBLED (κόκκινο = 21, πράσινο = 20, μπλε = 16)

#Λήψη φωτογραφίας με LED RGB, αποφάσισα να το θέσω σε μια καθορισμένη λειτουργία καθώς μας βοηθά να καθαρίσουμε τον κύριο κώδικα

def photocap (): Camera.start_preview () sleep (4)

timedled.color (1, 0, 0)

ύπνος (2)

timedled.color (0, 1, 0)

ύπνος (1)

Εκτύπωση Camera.capture ('/home/pi/Desktop/image.jpg') ("Η φωτογραφία ελήφθη") Camera.stop_preview ()

#Κύριος κώδικας:

ενώ True:

εάν το Button.is_pressed:

εκτύπωση ("Το κουμπί πιέστηκε") φωτοτυπικό ()

#Γιατί λειτουργεί αυτό: Ο λόγος για τον οποίο λειτουργεί αυτός ο κώδικας είναι επειδή τώρα κάναμε το RGBLED να λειτουργεί ως χρονόμετρο για το πότε πρόκειται να τραβηχτεί η φωτογραφία

Τώρα ρυθμίστε την αντίσταση που εξαρτάται από το φως στην κάτω δεξιά πλευρά του ψωμιού χρησιμοποιώντας το διάγραμμα μέχρι το πάνω μέρος και τους κοινούς σιδηροδρόμους που συζητήθηκαν προηγουμένως. Να θυμάστε ότι και τα δύο μακριά πόδια του LDR και το capicitator πρέπει να συνδεθούν με τον ακροδέκτη GPIO.

Αφού συνδέσουμε το LDR, θα χρησιμοποιήσουμε τον ακόλουθο κώδικα:

#Εισαγόμενες ενότητες

από το κουμπί εισαγωγής gpiozero

από την εισαγωγή picamera PiCamera από την εισαγωγή gpiozero RGBLED

από gpiozero import LightSensor

από τον χρόνο εισαγωγής ύπνου

#Εγκατάσταση

Κάμερα = PiCamera () Button = Button (22) TimedLED = RGBLED (κόκκινο = 21, πράσινο = 20, μπλε = 16)

LightSensor = LightSensor (23)

#Λήψη φωτογραφίας με LED RGB, αποφάσισα να το θέσω σε μια καθορισμένη λειτουργία καθώς μας βοηθά να καθαρίσουμε τον κύριο κώδικα

def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/home/ pi/Desktop/image-j.webp

#Κύριος κώδικας:

ενώ True:

εάν Button.is_pressed: εκτύπωση ("Το κουμπί πιέστηκε") φωτοτυπία ()

εάν Button.is_pressed και Lightsensor.when_dark:

εκτύπωση ("Πατήθηκε το κουμπί")

εκτύπωση ("Είναι σκοτεινό")

photocap ()

#Γιατί λειτουργεί αυτό: Ο τρόπος με τον οποίο έχω προσθέσει τον αισθητήρα φωτός στον κωδικό μου είναι μέσω μιας άλλης δήλωσης if που περιέχει την εισαγόμενη λειτουργία του αισθητήρα φωτός. Όταν το σκοτάδι μας ρυθμίζει τέλεια για το επόμενο βήμα μας

Τώρα το τελευταίο βήμα σε αυτό το έργο θα ήταν να ενεργοποιήσετε το άλλο συμμετρικό RGBLED με το άλλο για να λειτουργήσει ως φως φλας, Ο τελικός κωδικός:

από το κουμπί εισαγωγής gpiozero

από την εισαγωγή picamera PiCamera

από gpiozero import RGBLED

από gpiozero import LightSensor

από τον χρόνο εισαγωγής ύπνου

#Εγκατάσταση

Κάμερα = PiCamera ()

Κουμπί = Κουμπί (22)

TimedLED = RGBLED (κόκκινο = 21, πράσινο = 20, μπλε = 16)

FlashLED = RGBLED (κόκκινο = 19, πράσινο = 13, μπλε = 6)

LightSensor = LightSensor (23)

#Λήψη φωτογραφίας με LED RGB, αποφάσισα να το θέσω σε μια καθορισμένη λειτουργία καθώς μας βοηθά να καθαρίσουμε τον κύριο κωδικό def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Η φωτογραφία ελήφθη") Camera.stop_preview () # Κύριος κώδικας: while True: if Button.is_pressed:

εκτύπωση ("Πιέστηκε το κουμπί")

photocap ()

εάν Button.is_pressed και Lightsensor.when_dark:

εκτύπωση ("Πατήθηκε το κουμπί") εκτύπωση ("Είναι σκοτεινό")

FlashLED.color (1, 1, 1)

photocap ()

#Γιατί λειτουργεί αυτό: Ο τρόπος με τον οποίο πρόσθεσα τον φακό μου είναι χρησιμοποιώντας το RGB οδήγησε στην έξοδο του λευκού χρώματος που είναι 1, 1, 1 και το κάνει μόνο αν η δήλωση if είναι αληθής.

Συνιστάται: