Inhoudsopgave:
- Stap 1: Wat heb je nodig?
- Stap 2: De cameramodule aansluiten
- Stap 3: De camera instellen
- Stap 4: De cameramodule testen
- Stap 5: Het circuit maken met code
Video: Raspberry Pi Photobooth: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Het doel:
- Leer hoe u een Pi-camera codeert en installeert
- Definiëren en if-statements gebruiken in codering
- Nieuwe technologie leren gebruiken, zoals de RGB-leds
Stap 1: Wat heb je nodig?
- 1 Framboos Pi 3
- Breadboard
- Truien
- 1 lichtafhankelijke weerstand
- 1 condensator
- 1 drukknop
- 6 220 Ohm Weerstanden
- 2 RGB-LED's
- 1 Raspberry Pi-camera
Stap 2: De cameramodule aansluiten
Allereerst, met de Pi uitgeschakeld, moet je de cameramodule aansluiten op de camerapoort van de Raspberry Pi, vervolgens de Pi opstarten en ervoor zorgen dat de software is ingeschakeld.
- Zoek de camerapoort die zich tussen de HDMI- en 3,5 mm-poort bevindt
- Trek de cameraclip aan de plastic randen omhoog totdat de clip diagonaal is
- Plaats nu de camerakabel met de blauwe richting de 3,5 mm-poort
Stap 3: De camera instellen
De Raspberry Pi-configuratietool openen vanuit het hoofdmenu en alle bovenstaande interfaces in- en uitschakelen
Open vanuit het hoofdmenu de Terminal en typ de volgende regels code in:
Sudo Raspi-config
Gebruik nu vanaf hier uw pijltoetsen om door het systeem te gaan en klik op de optie Perifere verbinding en klik vanaf hun klik op P1 Camera en schakel de camera in, selecteer vervolgens Voltooien. Teruggaan naar het terminaltype in de volgende regels code:
pip installeer picamera
of Sudo pip installeer Picamera
Stap 4: De cameramodule testen
Vanaf hier kunnen we testen of de camera werkt of niet, omdat we alle software en hardware hebben ingeschakeld.
Open Python 3 vanuit het menu
Open vanaf daar een nieuw bestand vanuit de shell en sla het op als cameratest.py.
Voer de volgende code in:
from picamera import PiCamera #imported module gemaakt op basis van de pip install pi camera commandofrom time import sleep #imported sleep om ervoor te zorgen dat onze camera op camera blijft = PiCamera() #Setup voor de camera
camera.start_preview()#start de camera en laat je zien hoe de camera-output eruit ziet
sleep(10)#laat de preview 10 seconden aan
camera.stop_preview()#finally sluit de preview af
Voer de code uit met F5
Als u deze foutmelding krijgt bij het uitvoeren van de code:
(mmal: mmal_vc_component_create: kon component 'vc.ril.camera' niet maken (1:ENOMEM)
mmal: mmal_component_create_core: kon component 'vc.ril.camera' niet maken (1) Traceback (meest recente oproep laatst): Bestand "", regel 1, in bestand "/usr/lib/python2.7/dist-packages/picamera /camera.py", regel 257, in _init_ self._init_camera() Bestand "/usr/lib/python2.7/dist-packages/picamera/camera.py", regel 288, in _init_camera prefix="Kan camera niet maken component") Bestand "/usr/lib/python2.7/dist-packages/picamera/exc.py", regel 112, in mmal_check raise PiCameraMMALError(status, prefix) picamera.exc. PiCameraMMALError: Kan cameracomponent niet maken: Out van geheugen)
Ga naar de Raspberry Pi-configuratie, ga onder de prestatiekolom en boost je GPU-geheugen totdat de fout is verdwenen (je moet opnieuw opstarten).
Om nu een foto te maken die op het bureaublad wordt opgeslagen, gebruiken we de volgende code:
from picamera import PiCamera #Geïmporteerde module gemaakt op basis van de pip install pi camera commandofrom time import sleep #Imported sleep om ervoor te zorgen dat onze camera aan blijft
camera = PiCamera() #Setup voor de camera
camera.start_preview() #Start de previewsleep(5)#Laat de preview 5 seconden aan
camera.capture('/home/pi/Desktop/image.jpg')# Van de
camera.stop_preview()#Stopt het voorbeeld
Stap 5: Het circuit maken met code
Zoals hierboven uit de schakelschema's te zien is, moeten we een knop, een LDR en ten slotte twee RGB-LED's instellen. Eerst gaan we de knop linksonder op het breadboard instellen. Tijdens uw installatie voor de knop zullen we de gemeenschappelijke spoorlijnen gebruiken, wat betekent dat we onze 3.3V op de positieve en de aarde voor de negatieve zullen aansluiten. Nadat u de circuitconfiguratie voor alleen de knop hebt voltooid.
We zullen ons circuit testen om te zien of we het zo kunnen maken dat als de knop wordt ingedrukt, we de led aanzetten met behulp van de volgende code:
#Geïmporteerde modules van gpiozero import Knop van picamera import PiCamera van time import sleep
#Opstelling
Camera = PiCamera() Knop = Knop (22)
#Foto-opnamefunctie, ik heb besloten om het in een gedefinieerde functie te plaatsen omdat het ons helpt de hoofdcode op te schonen
def fotocap():
Camera.start_preview()
sleep(5) Camera.capture('/home/pi/Desktop/image.jpg') print ("Foto is gemaakt") Camera.stop_preview()
#Hoofd code:
while True: if Button.is_pressed: print ("Knop is ingedrukt") photocap()
#Waarom dit werkt: de hoofdcode werkt omdat we alleen het commando if button.is_pressed in een while true-statement gebruiken, dus het wordt constant bijgewerkt wanneer de knop wordt ingedrukt om de foto te maken
Nu gaan we 2 RGB-LED's helemaal tot aan de bovenkant van het circuit instellen en ze in het midden van het breadboard scheiden en symmetrisch maken. Als je geen 220 ohm-weerstanden hebt voor dit project, kun je ze parallel instellen, afhankelijk van je weerstand voor de weerstanden die je hebt. De tweede pin van de 4-pins RGB-LED (de langste moet via het spoor met aarde worden verbonden. De andere pinnen moeten allemaal worden verbonden met hun eigen GPIO-pinnen. (Eerste pin = rood, tweede pin = aarde, derde pin = groen, Vierde pin = blauw).
We zullen een van onze RGB-LED's in ons knopcircuit testen met de onderstaande code:
#Geïmporteerde modules van gpiozero import Knop van picamera import PiCamera
van gpiozero import RGBLED
van tijd import slaap
#Opstelling
Camera = PiCamera() Knop = Knop (22)
Getimede LED = RGBLED (rood = 21, groen = 20, blauw = 16)
#Foto-opnamefunctie met RGB-LED, ik heb besloten om het in een gedefinieerde functie te plaatsen omdat het ons helpt de hoofdcode op te schonen
def photocap(): Camera.start_preview() sleep(4)
getimed.kleur(1, 0, 0)
slapen(2)
getimed.kleur(0, 1, 0)
slapen(1)
Camera.capture('/home/pi/Desktop/image.jpg') print ("Foto is genomen") Camera.stop_preview()
#Hoofd code:
terwijl waar:
als Button.is_pressed:
print ("Knop werd ingedrukt") photocap()
#Waarom dit werkt: de reden waarom deze code werkt, is omdat we nu de RGBLED hebben laten werken als een timer voor wanneer de foto wordt gemaakt
Stel nu de Light Dependent-weerstand in de rechterbenedenhoek van het breadboard in met behulp van het diagram helemaal bovenaan en de eerder besproken gemeenschappelijke spoorwegen. Onthoud dat beide lange benen van de LDR en de condensator moeten worden aangesloten op de GPIO-pin.
Nadat we de LDR hebben aangesloten gaan we de volgende code gebruiken:
#Geïmporteerde Modules
van gpiozero import-knop
van picamera import PiCamera van gpiozero import RGBLED
van gpiozero import LightSensor
van tijd import slaap
#Opstelling
Camera = PiCamera() Knop = Knop (22) TimedLED=RGBLED(rood=21, groen=20, blauw=16)
LichtSensor=LichtSensor (23)
#Foto-opnamefunctie met RGB-LED, ik heb besloten om het in een gedefinieerde functie te plaatsen omdat het ons helpt de hoofdcode op te schonen
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 ("Foto is genomen") Camera.stop_preview()
#Hoofd code:
terwijl waar:
if Button.is_pressed: print ("Knop is ingedrukt") photocap()
als Button.is_pressed en Lightsensor.when_dark:
afdrukken ("Knop is ingedrukt")
print("Het is donker")
fotokapje()
#Waarom dit werkt: de manier waarop ik de lichtsensor aan mijn code heb toegevoegd, is via een andere if-instructie die de geïmporteerde functie van lichtsensor bevat. Als het donker is, zijn we perfect voorbereid voor onze volgende stap
Nu zou de laatste stap in dit project zijn om de andere RGBLED symmetrisch aan de andere te activeren om als een flitslicht te werken, De definitieve code:
van gpiozero import-knop
van picamera import PiCamera
van gpiozero import RGBLED
van gpiozero import LightSensor
van tijd import slaap
#Opstelling
Camera = PiCamera()
Knop = Knop (22)
Getimede LED = RGBLED (rood = 21, groen = 20, blauw = 16)
FlashLED = RGBLED (rood = 19, groen = 13, blauw = 6)
LichtSensor=LichtSensor (23)
#Foto-opnamefunctie met RGB-LED, ik heb besloten om het in een definitie-functie te plaatsen omdat het ons helpt de hoofdcode def photocap() op te schonen: 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 is genomen") Camera.stop_preview() # Hoofdcode: while True: als Button.is_pressed:
print ("Knop is ingedrukt")
fotokapje()
als Button.is_pressed en Lightsensor.when_dark:
print ("Knop werd ingedrukt") print ("Het is donker")
FlashLED.kleur(1, 1, 1)
fotokapje()
#Waarom dit werkt: De manier waarop ik mijn zaklamp heb toegevoegd, is door de RGB-led te gebruiken om de kleur wit uit te voeren die 1, 1, 1 is en dit doet het alleen als de if-instructie waar is.
Aanbevolen:
Raspbian installeren in Raspberry Pi 3 B zonder HDMI - Aan de slag met Raspberry Pi 3B - Uw Raspberry Pi instellen 3: 6 stappen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI | Aan de slag met Raspberry Pi 3B | Je Raspberry Pi 3 instellen: Zoals sommigen van jullie weten, zijn Raspberry Pi-computers best geweldig en kun je de hele computer op een klein bordje krijgen. De Raspberry Pi 3 Model B heeft een quad-core 64-bit ARM Cortex A53 geklokt op 1,2 GHz. Dit zet de Pi 3 ongeveer 50
Raspberry Pi PhotoBooth: HTML5 & NodeJS - Ajarnpa
Raspberry Pi PhotoBooth: HTML5 & NodeJS: een HTML5- en NodeJS-fotobooth met live preview en aangepaste randen. Dit project begon als iets dat ik bouwde voor het schoolfeest van mijn dochter. Ik wilde iets leuks voor haar en haar vrienden om het evenement te herinneren (wat de laatste keer was dat ze al
Photobooth bruiloft / evenement: 6 stappen (met afbeeldingen)
Wedding / Event Photobooth: Hallo allemaal, ik ben vorig jaar getrouwd, toen we op zoek waren naar de voorbereiding van de D-day, gingen we naar veel bruiloftsconventies. Op elke conventie is er een Photobooth-huurder, ik dacht dat een photobooth was een geweldig idee voor een bruiloft, elke gast k
Geautomatiseerde Photobooth: 4 stappen (met afbeeldingen)
Geautomatiseerde Photobooth: Dit laat je zien hoe je een geautomatiseerd fotohokje kunt maken met behulp van de Raspberry Pi, een ultrasone afstandssensor en een paar andere accessoires. Ik wilde een project doen dat zowel geavanceerde hardware als een geavanceerd programma gebruikt. ik onderzoek
DIY Photobooth: 7 stappen (met afbeeldingen)
DIY Photobooth: dit is een tutorial over hoe je je eigen photobooth kunt bouwen, net zoals de traditionele die je in winkelcentra, pretparken en winkelcentra over de hele wereld ziet. Deze stand is echter volledig digitaal en veel goedkoper/makkelijker om thuis te doen. Ik WR