2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu, moruq pi, ultrasəs məsafə sensoru və bir neçə digər aksesuardan istifadə edərək avtomatlaşdırılmış foto köşkünün necə hazırlanacağını sizə göstərəcək. Həm mürəkkəb aparat, həm də inkişaf etmiş bir proqramdan istifadə edən bir layihə etmək istədim. Raspberry pi resursları səhifəsində bu kimi layihələri araşdırdım, bu layihələrdən bəziləri python ilə fiziki hesablama və mikro bit selfie. Bunlardan biri moruq pi kamerasının necə istifadə ediləcəyini, digəri ultrasəs məsafə sensorunun necə istifadə olunacağını göstərdi.
Addım 1: Materiallar
Dövrümüzü qurmağa başlamazdan əvvəl bəzi materiallara ehtiyacınız olacaq:
1 x Raspberry Pi 3
1 x T-Cobbler
1 x Pi Kamera
1 x Ultrasonik Məsafə Sensoru
3 x RGB LED
10 x 330 Ohm Rezistorlar
1 x 560 Ohm rezistor
5 x Müxtəlif rəngli kabellər
1 x Çörək paneli
Addım 2: Dövrün qurulması
Dövrəmi birləşdirmək üçün getdiyim yol budur:
1. Bu dövrəni etmək üçün Raspberry Pi kamerasını uyğun yuvaya bağlamaq istərdiniz
2. T-Cobbler-i çörək taxtasına qoşun.
3. Xüsusi uzunluqdakı tullanan kabellərdən istifadə etməklə birini elektrik rayına, digəri isə torpaq rayına bağlayın
4. Ultrasonik məsafə sensoru qoşun və 'vcc' ayağını gücə, 'gnd' -i yerə, 'trig' -i GPIO pininə və 'echo' -u 560 ohm rezistora bağlayan 330 ohm rezistora qoşun. yerə və GPIO pininə bağlıdır.
5. LED -lərin anodunu gücə bağlayan çörək taxtasının içərisinə üç RGB LED -i qoyun və LED -lərin rəngini idarə edən fərqli ayaqları 330 ohm rezistorlara, sonra GPIO sancaqlarına qoşun.
Addım 3: Kod
Raspberry Pi -nin GPIO sancaqlarından istifadə etməsi üçün pinləri bir şey etmək üçün kodlaşdırmalıyıq. Etdiyim kodu hazırlamaq üçün python 3 IDLE istifadə etdim. Etdiyim kod, işləməsi üçün RPi. GPIO və gpiozero kitabxanasından istifadə edir. Fərqli rənglər üçün prosedurlar var və ultrasəs məsafə sensoru ilə məsafəni hesablayan bir funksiya var və aralığında bir şey olduğunda pi kamera ön görünüşünü açacaq və LEDlər geri sayılacaq və sonra şəkil çəkiləcək.
İşdə istifadə etdiyim kod budur:
picamera idxalından PiCamerafrom gpiozero idxal Düyməsini, LEDdən idxal yuxu idxalı RPi. GPIO GPIO idxal vaxtı olaraq
r = [LED (23), LED (25), LED (12)]
g = [LED (16), LED (20), LED (21)] b = [LED (17), LED (27), LED (22)] düyməsi = Düymə (24) GPIO.setmode (GPIO. BCM) GPIO_TRIGGER = 19 GPIO_ECHO = 26 GPIO. qurulumu (GPIO_TRIGGER, GPIO. OUT) GPIO.setup (GPIO_ECHO, GPIO. IN)
def qırmızı (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 yaşıl (x):
r [x].on () g [x].off () b [x].on ()
def mavi (x):
r [x].on () g [x].on () b [x].off ()
def run ():
camera.capture ('selfie.jpg') camera.stop_preview ()
def məsafəsi ():
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. zaman () GPIO.input (GPIO_ECHO) == 1 olarkən: StopTime = time.time () TimeElapsed = StopTime - StartTime məsafəsi = (TimeElapsed *34300) / 2 qaytarılma məsafəsi
söndür ()
isə True: d = məsafə () əgər int (d) <= 30: PiCamera () ilə kamera: kamera.start_preview () qırmızı (0) yuxu (1) mavi (1) yuxu (1) yaşıl (2) yuxu (1) off () camera.capture ('selfie.jpg') camera.stop_preview ()