INHOUDSOPGAWE:

Outomatiese Photobooth: 4 stappe (met foto's)
Outomatiese Photobooth: 4 stappe (met foto's)

Video: Outomatiese Photobooth: 4 stappe (met foto's)

Video: Outomatiese Photobooth: 4 stappe (met foto's)
Video: EY PhotoBooth - 360 Video Booth 2024, November
Anonim
Outomatiese Photobooth
Outomatiese Photobooth

Dit sal u wys hoe u 'n outomatiese fotostand kan maak met behulp van die framboospi, 'n ultrasoniese afstandsensor en 'n paar ander bykomstighede. Ek wou 'n projek doen wat beide gesofistikeerde hardeware en 'n gesofistikeerde program gebruik. Ek het projekte soos hierdie op die raspberry pi -hulpbronne -bladsy ondersoek, sommige van hierdie projekte is fisiese rekenaars met luislang, en 'n mikrobit selfie. Een hiervan het gewys hoe u die framboos -pi -kamera moet gebruik, en die ander toon hoe u die ultrasoniese afstandsensor moet gebruik.

Stap 1: materiaal

Materiaal
Materiaal

Voordat ons ons stroombaan begin bou, benodig u 'n paar materiale:

1 x Framboos Pi 3

1 x T-skoenmaker

1 x Pi -kamera

1 x ultrasoniese afstandsensor

3 x RGB LED's

10 x 330 Ohm weerstande

1 x 560 Ohm weerstand

5 x spoel van verskillende kleure kabels

1 x broodbord

Stap 2: Bou die kringloop

Die bou van die kringloop
Die bou van die kringloop
Bou van die kringloop
Bou van die kringloop
Bou van die kringloop
Bou van die kringloop
Bou van die kringloop
Bou van die kringloop

Dit is die manier waarop ek my kring konnekteer:

1. Om hierdie stroombaan te maak, wil u die Raspberry Pi -kamera in die toepaslike aansluiting aansluit

2. Steek die T-Cobbler in die broodbord.

3. Koppel een kabels met aangepaste lengte aan die kragrail en een aan die grondrail

4. Koppel die ultrasoniese afstandsensor aan en steek die 'vcc' been in die krag, die 'gnd' in die grond, 'trig' in 'n GPIO -pen en die 'eggo' in 'n 330 ohm weerstand wat aansluit by 'n 560 ohm weerstand wat aan die grond gekoppel is en 'n GPIO -pen.

5. Plaas die drie RGB -LED's op die broodbord inlyn wat die anode van die LED's met krag verbind, en koppel die verskillende bene wat die kleur van die LED's aan 330 ohm weerstande en dan aan GPIO -penne.

Stap 3: Die kode

Om die Raspberry Pi te laat gebruik, moet ons die penne kodeer om iets te doen. Om die kode wat ek gemaak het, te gebruik, het ek python 3 IDLE gebruik. Die kode wat ek gemaak het, gebruik die RPi. GPIO sowel as die gpiozero -biblioteek om te funksioneer. Daar is prosedures vir die verskillende kleure, en daar is 'n funksie wat die afstand bereken met behulp van die ultrasoniese afstandsensor, en as daar iets binne die bereik is, maak dit die voorskou van die pi -kamera oop en die LED's aftel en dan word 'n foto geneem.

Hier is die kode wat ek gebruik het:

vanaf picamera invoer PiCamer vanaf gpiozero invoer knoppie, LED van tyd af slaap slaap invoer RPi. GPIO as GPIO invoer tyd

r = [LED (23), LED (25), LED (12)]

g = [LED (16), LED (20), LED (21)] b = [LED (17), LED (27), LED (22)] knoppie = Knoppie (24) GPIO.setmode (GPIO. BCM) GPIO_TRIGGER = 19 GPIO_ECHO = 26 GPIO.setup (GPIO_TRIGGER, GPIO. OUT) GPIO.setup (GPIO_ECHO, GPIO. IN)

def rooi (x):

r [x].off () g [x].on () b [x].on ()

def off (x):

r [x].on () g [x].on () b [x].on ()

def off ():

r [0].on () g [0].on () b [0].on () r [1].on () g [1].on () b [1].on () r [2].on () g [2].on () b [2].on ()

def groen (x):

r [x].on () g [x].off () b [x].on ()

def blou (x):

r [x].on () g [x].on () b [x].off ()

def run ():

camera.capture ('selfie.jpg') camera.stop_preview ()

def afstand ():

GPIO.output (GPIO_TRIGGER, True) time.sleep (0.00001) GPIO.output (GPIO_TRIGGER, Onwaar) StartTime = time.time () StopTime = time.time () terwyl GPIO.input (GPIO_ECHO) == 0: StartTime = time.time () terwyl GPIO.input (GPIO_ECHO) == 1: StopTime = time.time () TimeElapsed = StopTime - StartTime distance = (TimeElapsed *34300) / 2 return distance

af ()

terwyl dit waar is: d = afstand () as int (d) <= 30: met PiCamera () as kamera: camera.start_preview () rooi (0) slaap (1) blou (1) slaap (1) groen (2) slaap (1) af () camera.capture ('selfie.jpg') camera.stop_preview ()

Aanbeveel: