Агуулгын хүснэгт:

Автомат Photobooth: 4 алхам (зурагтай)
Автомат Photobooth: 4 алхам (зурагтай)

Видео: Автомат Photobooth: 4 алхам (зурагтай)

Видео: Автомат Photobooth: 4 алхам (зурагтай)
Видео: Как устроена IT-столица мира / Russian Silicon Valley (English subs) 2024, Арваннэгдүгээр
Anonim
Автомат Photobooth
Автомат Photobooth

Энэ нь бөөрөлзгөнө pi, хэт авианы зайн мэдрэгч болон бусад дагалдах хэрэгслийг ашиглан автомат гэрэл зургийн лангуу хийхийг танд харуулах болно. Би нарийн тоног төхөөрөмж, нарийн төвөгтэй програмыг хоёуланг нь ашигладаг төсөл хийхийг хүсч байсан. Би бөөрөлзгөнө pi нөөцийн хуудсан дээрх ийм төслүүдийг судалж үзсэн бөгөөд эдгээр төслүүдийн зарим нь питонтой физик тооцоолол, микро битийн селфи юм. Эдгээрийн нэг нь бөөрөлзгөнө pi камерыг хэрхэн ашиглах, нөгөө нь хэт авианы зайн мэдрэгчийг хэрхэн ашиглах талаар харуулсан болно.

Алхам 1: Материал

Материал
Материал

Цахилгаан хэлхээг барьж эхлэхээс өмнө танд дараахь материал хэрэгтэй болно.

1 х Raspberry Pi 3

1 x T-Cobbler

1 x Pi камер

1 х хэт авианы зайн мэдрэгч

3 x RGB LED

10 x 330 Ом эсэргүүцэл

1 x 560 Ом эсэргүүцэл

5 x Янз бүрийн өнгийн кабелийн дамар

1 х талхны самбар

Алхам 2: Циркийг бий болгох

Цирк барих
Цирк барих
Цирк барих
Цирк барих
Цирк барих
Цирк барих
Цирк барих
Цирк барих

Энэ бол миний хэлхээг холбох арга зам юм:

1. Энэ хэлхээг хийхийн тулд та Raspberry Pi камерыг зохих залгуурт залгахыг хүсч байна

2. T-Cobbler-ийг талхны самбар дээр залгаарай.

3. Захиалгат урттай кабель ашиглан нэгийг нь цахилгаан төмөр замд, нэгийг нь газрын төмөр замд холбоно

4. Хэт авианы зайн мэдрэгчийг залгаж, 'vcc' хөлийг тэжээлд, 'gnd' -ийг газарт, 'trig' -ийг GPIO зүү рүү, 'echo' -ийг 560 ом эсэргүүцэлтэй холбосон 330 ом эсэргүүцэлтэй холбоно уу. Энэ нь газар болон GPIO зүүтэй холбогдсон байна.

5. Гурван RGB LED -ийг LED анодыг холбосон талхны самбар дээр байрлуулж, LED -ийн өнгийг хянадаг өөр өөр хөлийг 330 ом эсэргүүцэлтэй, дараа нь GPIO тээглүүрт холбоно.

Алхам 3: Код

Raspberry Pi -г GPIO тээглүүр ашиглахын тулд бид ямар нэгэн зүйл хийхийн тулд тээглүүрүүдийг кодлох хэрэгтэй болно. Миний хийсэн кодыг хийхийн тулд python 3 IDLE ашигласан. Миний хийсэн код нь ажиллахын тулд RPi. GPIO болон gpiozero номын санг ашигладаг. Янз бүрийн өнгөний процедурууд байдаг бөгөөд хэт авианы зайн мэдрэгч ашиглан зайг тооцоолох функц байдаг бөгөөд ямар нэгэн зүйл байгаа тохиолдолд pi камерын урьдчилж харах хэсгийг нээж, LED нь тоолж, дараа нь зураг авах болно.

Миний ашигласан код энд байна:

пикамерын импортоос PiCamerafrom gpiozero импортлох товчлуур, LED -ээс цаг унтах импорт RPi. GPIO -ийг GPIO импортын цаг болгон оруулах

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

g = [LED (16), LED (20), LED (21)] b = [LED (17), LED (27), LED (22)] товч = Товчлуур (24) GPIO.setmode (GPIO. BCM) GPIO_TRIGGER = 19 GPIO_ECHO = 26 GPIO. тохиргоо (GPIO_TRIGGER, GPIO. OUT) GPIO. тохиргоо (GPIO_ECHO, GPIO. IN)

def улаан (x):

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

def унтраах (x):

r [x].он () g [x].он () b [x].он () дээр

def off ():

r [0].on () g [0].on () b [0].on () r [1].on () g [1].on () b [1].on () r [2].он () g [2].он () б [2].он () дээр

def ногоон (x):

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

def хөх (x):

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

def run ():

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

def зай ():

GPIO.output (GPIO_TRIGGER, True) time.sleep (0.00001) GPIO.output (GPIO_TRIGGER, False) StartTime = time.time () StopTime = time.time () while GPIO.input (GPIO_ECHO) == 0: StartTime = time.time () while GPIO.input (GPIO_ECHO) == 1: StopTime = time.time () TimeElapsed = StopTime - StartTime зай = (TimeElapsed *34300) / 2 буцах зай

унтраах ()

байхад Үнэн: d = зай () хэрэв int (d) <= 30: PiCamera () камераар: камер.start_preview () улаан (0) унтах (1) цэнхэр (1) унтах (1) ногоон (2) унтах (1) унтраах () camera.capture ('selfie.jpg') камер.stop_preview ()

Зөвлөмж болгож буй: