Inhaltsverzeichnis:

Raspberry Pi Photobooth - Gunook
Raspberry Pi Photobooth - Gunook

Video: Raspberry Pi Photobooth - Gunook

Video: Raspberry Pi Photobooth - Gunook
Video: DIY Raspberry Pi Photo Booth with DSLR 2024, Dezember
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Der Zweck:

  • Erfahren Sie, wie Sie eine Pi-Kamera codieren und installieren
  • Verwenden von define- und if-Anweisungen in der Codierung
  • Lernen, neue Technologien wie die RGB-LEDs zu verwenden

Schritt 1: Was Sie brauchen

Was wirst du brauchen
Was wirst du brauchen
Was wirst du brauchen
Was wirst du brauchen
Was wirst du brauchen
Was wirst du brauchen
  • 1 Raspberry Pi 3
  • Steckbrett
  • Jumper
  • 1 Lichtabhängiger Widerstand
  • 1 Kondensator
  • 1 Drucktaste
  • 6 220 Ohm Widerstände
  • 2 RGB-LEDs
  • 1 Raspberry Pi-Kamera

Schritt 2: Anschließen des Kameramoduls

Anschließen des Kameramoduls
Anschließen des Kameramoduls

Zunächst müssen Sie bei ausgeschaltetem Pi das Kameramodul an den Kameraanschluss des Raspberry Pi anschließen, dann den Pi starten und sicherstellen, dass die Software aktiviert ist.

  1. Suchen Sie den Kameraanschluss, der sich zwischen dem HDMI- und dem 3,5-mm-Anschluss befindet
  2. Ziehen Sie den Kameraclip an den Kunststoffkanten hoch, bis der Clip diagonal ist
  3. Stecken Sie nun das Kamerakabel mit dem Blau zum 3,5-mm-Anschluss

Schritt 3: Einrichten der Kamera

Einrichten der Kamera
Einrichten der Kamera
Einrichten der Kamera
Einrichten der Kamera

Öffnen Sie das Raspberry Pi-Konfigurationstool aus dem Hauptmenü und deaktivieren und aktivieren Sie alle oben genannten Schnittstellen

Öffnen Sie im Hauptmenü das Terminal und geben Sie die folgenden Codezeilen ein:

Sudo Raspi-config

Verwenden Sie nun von hier aus Ihre Pfeiltasten, um durch das System zu navigieren, und klicken Sie auf die Option „Peripherieverbindung“und klicken Sie auf P1-Kamera und aktivieren Sie die Kamera, und wählen Sie dann Fertig stellen. Zurück zum Terminaltyp in den folgenden Codezeilen:

pip installieren picamera

oder Sudo pip installieren Picamera

Schritt 4: Testen des Kameramoduls

Testen des Kameramoduls
Testen des Kameramoduls

Von hier aus können wir testen, ob die Kamera funktioniert oder nicht, da wir die gesamte Software und Hardware aktiviert haben.

Öffnen Sie Python 3 über das Menü

Öffnen Sie von dort eine neue Datei aus der Shell und speichern Sie sie als cameratest.py.

Geben Sie den folgenden Code ein:

from picamera import PiCamera #imported modul erstellt aus dem pip install pi camera commandfrom time import sleep #imported sleep um sicherzustellen, dass unsere Kamera auf der Kamera bleibt = PiCamera() #Setup für die Kamera

camera.start_preview()#startet die Kamera und zeigt Ihnen, wie die Kameraausgabe aussieht

sleep(10)#lässt die Vorschau für 10 Sekunden eingeschaltet

camera.stop_preview()#beendet endlich die Vorschau

Führen Sie den Code mit F5 aus

Wenn Sie diesen Fehler beim Ausführen des Codes erhalten:

(mmal: mmal_vc_component_create: Fehler beim Erstellen der Komponente 'vc.ril.camera' (1:ENOMEM)

mmal: mmal_component_create_core: Komponente 'vc.ril.camera' konnte nicht erstellt werden (1) Traceback (letzter Aufruf zuletzt): Datei "", Zeile 1, in Datei "/usr/lib/python2.7/dist-packages/picamera /camera.py", Zeile 257, in _init_ self._init_camera() Datei "/usr/lib/python2.7/dist-packages/picamera/camera.py", Zeile 288, in _init_camera prefix="Fehler beim Erstellen der Kamera Komponente") Datei "/usr/lib/python2.7/dist-packages/picamera/exc.py", Zeile 112, in mmal_check raise PiCameraMMALError(status, prefix) picamera.exc. PiCameraMMALError: Kamerakomponente konnte nicht erstellt werden: Out der Erinnerung)

Bitte gehen Sie in die Raspberry Pi Konfiguration, gehen Sie unter die Leistungsspalte und erhöhen Sie Ihren GPU-Speicher, bis der Fehler behoben ist (müssen neu starten).

Um nun ein Foto zu erstellen, das auf dem Desktop gespeichert wird, verwenden wir den folgenden Code:

from picamera import PiCamera #Importiertes Modul, das aus dem Befehl pip install pi camera erstellt wurdefrom time import sleep #Imported sleep, um sicherzustellen, dass unsere Kamera eingeschaltet bleibt

camera = PiCamera() #Setup für die Kamera

camera.start_preview() #Startet den Previewsleep(5)#Lässt die Vorschau für 5 Sekunden eingeschaltet

camera.capture('/home/pi/Desktop/image.jpg')# Aus dem

camera.stop_preview()#Stoppt die Vorschau

Schritt 5: Erstellen der Schaltung mit Code

Erstellen der Schaltung mit Code!
Erstellen der Schaltung mit Code!
Erstellen der Schaltung mit Code!
Erstellen der Schaltung mit Code!
Erstellen der Schaltung mit Code!
Erstellen der Schaltung mit Code!

Wie oben aus den Schaltplänen ersichtlich, müssen wir eine Taste, einen LDR und schließlich zwei RGB-LEDs einrichten. Zuerst werden wir die Schaltfläche auf der unteren linken Seite des Steckbretts einrichten. Während Ihres Setups für den Taster verwenden wir die üblichen Eisenbahnlinien, dh wir stecken unsere 3,3 V an Plus und Masse an Minus ein. Nachdem Sie den Schaltungsaufbau nur für die Taste abgeschlossen haben.

Wir werden unsere Schaltung testen, um zu sehen, ob wir es so machen können, dass wir die LED mit dem folgenden Code einschalten, wenn die Taste gedrückt wird:

#Imported Modulesfrom gpiozero import Button from picamera import PiCamera from time import sleep

#Aufstellen

Kamera = PiCamera() Schaltfläche = Schaltfläche (22)

#Fotoaufnahmefunktion, ich habe mich entschieden, sie in eine Define-Funktion zu packen, da sie uns hilft, den Hauptcode zu bereinigen

def photocap():

Kamera.start_preview()

sleep(5) Camera.capture('/home/pi/Desktop/image.jpg') print ("Foto wurde aufgenommen") Camera.stop_preview()

#Haupt code:

while True: if Button.is_pressed: print ("Button wurde gedrückt") photocap()

#Warum das funktioniert: Der Hauptcode funktioniert so, dass wir nur den Befehl if button.is_pressed in einer while true-Anweisung verwenden, sodass er ständig aktualisiert wird, wenn die Taste gedrückt wird, um das Foto aufzunehmen

Jetzt werden wir 2 RGB-LEDs ganz bis zur Oberseite der Schaltung aufstellen und sie in der Mitte des Steckbretts trennen und die symmetrische machen. Wenn Sie für dieses Projekt keine 220-Ohm-Widerstände haben, können Sie sie abhängig von Ihrem Widerstandswert für die Widerstände, die Sie haben, parallel einrichten. Der zweite Pin der 4-Pin-RGB-LED (der längste sollte über die Eisenbahn mit Masse verbunden sein. Die anderen Pins sollten alle mit ihren eigenen GPIO-Pins verbunden sein. (Erster Pin = rot, zweiter Pin = Masse, dritter Pin = grün), Vierter Pin = blau).

Wir werden eine unserer RGB-LEDs in unserer Tastenschaltung mit dem folgenden Code testen:

#Imported Modulesfrom gpiozero import Button from picamera import PiCamera

von gpiozero importieren RGBLED

ab zeit importieren schlaf

#Aufstellen

Kamera = PiCamera() Schaltfläche = Schaltfläche (22)

TimedLED=RGBLED(rot=21, grün=20, blau=16)

#Fotoaufnahmefunktion mit RGB-LED, ich habe mich entschieden, sie in eine Define-Funktion zu packen, da sie uns hilft, den Hauptcode zu bereinigen

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

zeitgesteuert. Farbe(1, 0, 0)

schlafen(2)

zeitgesteuert. Farbe(0, 1, 0)

schlafen(1)

Camera.capture('/home/pi/Desktop/image.jpg') print ("Foto wurde aufgenommen") Camera.stop_preview()

#Haupt code:

während Wahr:

if Button.is_pressed:

print ("Button wurde gedrückt") photocap()

#Warum das funktioniert: Der Grund, warum dieser Code funktioniert, ist, dass wir jetzt die RGBLED als Timer für die Aufnahme des Fotos haben

Richten Sie nun den lichtabhängigen Widerstand auf der unteren rechten Seite des Steckbretts ein, indem Sie das Diagramm ganz oben und die zuvor besprochenen gemeinsamen Bahnen verwenden. Denken Sie daran, dass beide langen Beine des LDR und des Kondensators mit dem GPIO-Pin verbunden werden müssen.

Nachdem wir den LDR verbunden haben, verwenden wir den folgenden Code:

#Importierte Module

aus gpiozero-Import-Button

von Picamera importieren PiCamera von gpiozero importieren RGBLED

von gpiozero import LightSensor

ab zeit importieren schlaf

#Aufstellen

Kamera = PiCamera() Taste = Taste(22) TimedLED=RGBLED(rot=21, grün=20, blau=16)

Lichtsensor = Lichtsensor (23)

#Fotoaufnahmefunktion mit RGB-LED, ich habe mich entschieden, sie in eine Define-Funktion zu packen, da sie uns hilft, den Hauptcode zu bereinigen

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') drucken ("Foto wurde aufgenommen") Camera.stop_preview()

#Haupt code:

während Wahr:

if Button.is_pressed: print ("Button wurde gedrückt") photocap()

if Button.is_pressed und Lightsensor.when_dark:

drucken ("Knopf wurde gedrückt")

print("Es ist dunkel")

Fotokappe ()

#Warum das funktioniert: Die Art und Weise, wie ich den Lichtsensor zu meinem Code hinzugefügt habe, ist durch eine andere if-Anweisung, die die importierte Funktion des Lichtsensors enthält

Der letzte Schritt in diesem Projekt wäre nun, die andere RGBLED symmetrisch zur anderen zu aktivieren, um als Blitzlicht zu arbeiten.

Der endgültige Code:

aus gpiozero-Import-Button

aus Picamera importieren PiCamera

von gpiozero importieren RGBLED

von gpiozero import LightSensor

ab zeit importieren schlaf

#Aufstellen

Kamera = PiCamera()

Taste = Taste(22)

TimedLED=RGBLED(rot=21, grün=20, blau=16)

FlashLED=RGBLED(rot=19, grün=13, blau=6)

Lichtsensor = Lichtsensor (23)

#Fotoaufnahmefunktion mit RGB-LED, ich habe mich entschieden, sie in eine Define-Funktion zu packen, da sie uns hilft, den Hauptcode def photocap() zu bereinigen: 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 ("Foto wurde aufgenommen") Camera.stop_preview() # Hauptcode: while True: if Button.is_pressed:

drucken ("Button wurde gedrückt")

Fotokappe ()

if Button.is_pressed und Lightsensor.when_dark:

print("Knopf wurde gedrückt") print("Es ist dunkel")

FlashLED. Farbe(1, 1, 1)

Fotokappe ()

#Warum das funktioniert: Ich habe meine Taschenlampe hinzugefügt, indem ich die RGB-LED verwende, um die Farbe Weiß auszugeben, die 1, 1, 1 ist, und dies nur dann, wenn die if-Anweisung wahr ist.

Empfohlen: