INHOUDSOPGAWE:

Framboos Pi Photobooth: 5 stappe
Framboos Pi Photobooth: 5 stappe

Video: Framboos Pi Photobooth: 5 stappe

Video: Framboos Pi Photobooth: 5 stappe
Video: Raspberry Pi: Minecraft Photobooth Project Demo (Student work/ NE) 2024, November
Anonim
Framboos Pi Photobooth
Framboos Pi Photobooth

Die doel:

  • Lees hoe u 'n Pi -kamera kan kodeer en installeer
  • Die gebruik van definieer en as stellings in kodering
  • Leer om nuwe tegnologie te gebruik, soos die RGB LED's

Stap 1: wat u benodig

Wat u benodig
Wat u benodig
Wat u benodig
Wat u benodig
Wat u benodig
Wat u benodig
  • 1 Framboos Pi 3
  • Broodbord
  • Springers
  • 1 Ligte afhanklike weerstand
  • 1 Kondensator
  • 1 Drukknoppie
  • 6 220 Ohm weerstande
  • 2 RGB LED's
  • 1 Framboos Pi -kamera

Stap 2: Koppel die kameramodule

Koppel die kameramodule
Koppel die kameramodule

Eerstens, as die Pi uitgeskakel is, moet u die kameramodule aansluit op die kamerapoort van die Raspberry Pi, dan die Pi begin en seker maak dat die sagteware aangeskakel is.

  1. Vind die kamerapoort wat tussen die HDMI- en 3,5 mm -poort is
  2. Trek die kameraklem aan die plastiekrande op totdat die snit skuins is
  3. Steek nou die kamerakabel in met die blou na die 3,5 mm -poort

Stap 3: Die opstel van die kamera

Die opstel van die kamera
Die opstel van die kamera
Die opstel van die kamera
Die opstel van die kamera

Open die Raspberry Pi -konfigurasiehulpmiddel in die hoofkieslys en deaktiveer en aktiveer al die koppelvlakke hierbo

Maak die Terminal oop in die hoofkieslys en tik die volgende reëls kode in:

Sudo Raspi-konfig

Gebruik nou u pyltjie sleutels om deur die stelsel te werk, klik op die opsie vir randverbinding, en klik dan op die P1 -kamera, en kies dan die afwerking. Om terug te keer na die terminale tipe in die volgende reëls kode:

pip installeer picamera

of Sudo pip installeer Picamera

Stap 4: Toets die kameramodule

Toets die kameramodule
Toets die kameramodule

Van hier af kan ons toets of die kamera werk of nie, omdat al die sagteware en hardeware aangeskakel is.

Maak Python 3 oop vanaf die spyskaart

Open van daar af 'n nuwe lêer uit die dop en stoor dit as cameratest.py.

Voer die volgende kode in:

vanaf picamera import PiCamera #ingevoerde module gemaak uit die pip installeer pi kamera opdrag vanaf die tyd invoer slaap #ingevoerde slaap om seker te maak dat ons kamera op kamera bly = PiCamera () #Opstelling vir die kamera

camera.start_preview ()#begin die kamera en wys hoe die uitset van die kamera lyk

slaap (10)#laat die voorskou vir 10 sekondes aan

camera.stop_preview ()#verlaat uiteindelik die voorskou

Begin die kode met F5

As u hierdie fout ontvang tydens die gebruik van die kode:

(mmal: mmal_vc_component_create: kon nie komponent 'vc.ril.camera' skep nie (1: ENOMEM)

mmal: mmal_component_create_core: kon nie komponent 'vc.ril.camera' skep nie (1) Traceback (mees onlangse oproep laaste): File "", reël 1, in File "/usr/lib/python2.7/dist-packages/picamera /camera.py ", reël 257, in _init_ self._init_camera () File" /usr/lib/python2.7/dist-packages/picamera/camera.py ", reël 288, in _init_camera voorvoegsel =" Kon nie kamera skep nie komponent ") File" /usr/lib/python2.7/dist-packages/picamera/exc.py ", reël 112, in mmal_check verhoog PiCameraMMALError (status, voorvoegsel) picamera.exc. PiCameraMMALError: Kon nie kamerakomponent skep nie: Uit van geheue)

Gaan na die Raspberry Pi -konfigurasie, gaan onder die prestasiekolom en versterk u GPU -geheue totdat die fout weg is (moet herlaai).

Om 'n foto te maak wat op die tafelblad gestoor word, gebruik ons die volgende kode:

vanaf picamera import PiCamera #Ingevoerde module gemaak uit die pip installeer pi kamera opdrag vanaf die tyd invoer slaap #Ingevoerde slaap om seker te maak dat ons kamera aan bly

kamera = PiCamera () #Opstelling vir die kamera

camera.start_preview () #Begin die voorskou slaap (5) #Laat die voorskou vir 5 sekondes aan

camera.capture ('/home/pi/Desktop/image.jpg')# Uit die

camera.stop_preview ()#Stop die voorskou

Stap 5: Skep die kring met kode

Skep die kring met kode!
Skep die kring met kode!
Skep die kring met kode!
Skep die kring met kode!
Skep die kring met kode!
Skep die kring met kode!

Soos hierbo gesien uit die stroombaandiagramme, moet ons 'n knoppie, 'n LDR en laastens twee RGB -LED's instel. Eerstens gaan ons die knoppie in die linker onderkant van die broodbord instel. Tydens u opstelling van die knoppie sal ons die gewone spoorlyne gebruik, wat beteken dat ons ons 3.3V op die positiewe en die negatiewe aansluit. Nadat u die kringopstelling slegs vir die knoppie voltooi het.

Ons sal ons stroombaan toets om te sien of ons dit kan regkry, as ons op die knoppie druk, skakel ons die LED aan met behulp van die volgende kode:

#Ingevoerde modules vanaf die invoerknop van die gpiozero vanaf die picamera, die PiCamera invoer van tyd tot slaap

#Stel op

Kamera = PiCamera () Knoppie = Knoppie (22)

#Foto -neem -funksie, ek het besluit om dit in 'n definieerfunksie te plaas, aangesien dit ons help om die hoofkode skoon te maak

def photocap ():

Camera.start_preview ()

slaap (5) Camera.capture ('/home/pi/Desktop/image.jpg') druk ("Foto is geneem") Camera.stop_preview ()

#Hoofkode:

terwyl dit waar is: as knoppie._gedruk: druk ("knoppie ingedruk") photocap ()

#Waarom dit werk: die hoofkode werk, aangesien ons net die opdrag gebruik as die knoppie in 'n rukkie ingedruk word, sodat dit voortdurend opgedateer word wanneer op die knoppie gedruk word om die foto te neem

Nou gaan ons 2 RGB -LED's tot bo -op die kring opstel en dit in die middel van die broodbord skei en die simmetriese maak. As u nie 220 ohm weerstande vir hierdie projek het nie, kan u dit parallel opstel, afhangende van u weerstand vir die weerstande wat u het. Die tweede pen van die 4 -pen RGB LED (die langste moet deur die spoorlyn met die grond verbind word. Die ander penne moet almal aan hul eie GPIO -penne gekoppel word. (Eerste pen = rooi, Tweede pen = grond, Derde pen = groen, Vierde pen = blou).

Ons sal een van ons RGB -LED's in ons knoppiebaan toets met die onderstaande kode:

#Ingevoerde modules vanaf die invoerknop van die gpiozero vanaf die Picamera -invoer PiCamera

invoer van RGBLED vanaf gpiozero

van tyd af slaap invoer

#Stel op

Kamera = PiCamera () Knoppie = Knoppie (22)

TimedLED = RGBLED (rooi = 21, groen = 20, blou = 16)

#Foto -opnamefunksie met RGB LED, ek het besluit om dit in 'n definieerfunksie te plaas, aangesien dit ons help om die hoofkode skoon te maak

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

timedled.color (1, 0, 0)

slaap (2)

timedled.color (0, 1, 0)

slaap (1)

Camera.capture ('/home/pi/Desktop/image.jpg') druk ("Foto is geneem") Camera.stop_preview ()

#Hoofkode:

terwyl dit waar is:

as Button.is_pressed:

druk ("knoppie ingedruk") fotokap ()

#Waarom dit werk: die rede waarom hierdie kode werk, is omdat ons nou die RGBLED laat werk het as 'n tydopnemer vir wanneer die foto geneem word

Stel nou die Light Dependent -weerstand aan die regterkant onderkant van die broodbord in, met behulp van die diagram bo -aan en die gewone spoorweë wat voorheen bespreek is. Onthou dat albei die lang bene van die LDR en die capicitator aan die GPIO -pen gekoppel moet word.

Nadat ons die LDR gekoppel het, gaan ons die volgende kode gebruik:

#Ingevoerde modules

vanaf gpiozero invoer knoppie

vanaf picamera invoer PiCamera vanaf gpiozero invoer RGBLED

invoer LightSensor van gpiozero

van tyd af slaap invoer

#Stel op

Kamera = PiCamera () Knoppie = Knoppie (22) TimedLED = RGBLED (rooi = 21, groen = 20, blou = 16)

LightSensor = LightSensor (23)

#Foto -opnamefunksie met RGB LED, ek het besluit om dit in 'n definieerfunksie te plaas, aangesien dit ons help om die hoofkode skoon te maak

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

#Hoofkode:

terwyl dit waar is:

if Button.is_pressed: print ("Knoppie is ingedruk") photocap ()

as Button.is_pressed en Lightsensor.when_dark:

print ("Knoppie is ingedruk")

print ("Dit is donker")

fotopapier ()

#Waarom dit werk: die manier waarop ek die ligsensor by my kode gevoeg het, is deur 'n ander if -verklaring wat die ingevoerde funksie van die ligsensor bevat.

Die laaste stap deur hierdie projek is om die ander RGBLED simmetries van die ander te aktiveer om as 'n flitslig te werk, Die finale kode:

vanaf gpiozero invoer knoppie

van picamera invoer PiCamera

invoer van RGBLED vanaf gpiozero

invoer LightSensor van gpiozero

van tyd af slaap invoer

#Stel op

Kamera = PiCamera ()

Knoppie = Knoppie (22)

TimedLED = RGBLED (rooi = 21, groen = 20, blou = 16)

FlashLED = RGBLED (rooi = 19, groen = 13, blou = 6)

LightSensor = LightSensor (23)

#Foto -opnamefunksie met RGB LED, ek het besluit om dit in 'n definieerfunksie te plaas, aangesien dit ons help om die hoofkode def photocap () op te ruim: Camera.start_preview () sleep (4) timedled.color (1, 0, 0) slaap (2) timedled.color (0, 1, 0) slaap (1) Camera.capture ('/home/pi/Desktop/image.jpg') druk ("Foto is geneem") Camera.stop_preview () # Hoofkode: terwyl dit waar is: as knoppie._gedruk:

print ("Knoppie is ingedruk")

fotopapier ()

as Button.is_pressed en Lightsensor.when_dark:

druk ("Daar is op die knoppie gedruk") druk ("Dit is donker")

FlashLED.color (1, 1, 1)

fotopapier ()

#Waarom dit werk: Die manier waarop ek my flitslig bygevoeg het, is deur die RGB te gebruik om die kleur wit, wat 1, 1, 1 is, uit te voer, en dit werk slegs as die if -stelling waar is.

Aanbeveel: