İçindekiler:

Mesafe Sensörlü Kamera: 4 Adım
Mesafe Sensörlü Kamera: 4 Adım

Video: Mesafe Sensörlü Kamera: 4 Adım

Video: Mesafe Sensörlü Kamera: 4 Adım
Video: Arduino ile Ultrasonik Sensör (HC-SR04) Kullanımı - Park Sensörü Yapımı 2024, Kasım
Anonim
Mesafe Sensörlü Kamera
Mesafe Sensörlü Kamera

Bu talimat, size bir ahududu pi kullanarak Mesafe Sensörü Kamerasının nasıl yapıldığını gösterecek. Bu proje ahududu pi kullanacak ve bu projede kodlama için python 3 kullanacak Mesafe Sensörlü Kamera önce 100 cm ölçecek, ardından RGB LED'i yanıp sönecek ve resmi çekecektir. Ardından fotoğrafın çekildiğini göstermek için RGB LED düz mavi renkte olacaktır. Ardından fotoğrafa erişmek için fotoğrafın çekildiği ahududu pi'nin masa üstüne gidin.

İhtiyacın olacak:

  • 1x Ahududu Pi
  • 1x T-Ayakkabı
  • 1x Tam Boy Breadboard
  • 1x Pi Kamera
  • 1x RGB LED (Katot)
  • 1x Mesafe Sensörü
  • 1x 330 Ω Direnç
  • 1x 560 Ω Direnç
  • Mavi Teller
  • siyah teller
  • kırmızı teller

Aşama 1:

resim
resim

Parçaları alın ve T-Cobbler'ı Raspberry Pi'ye ve devre tahtasına takın. Ardından topraklama ve güç kablolarını kurun. 5,0 v'den, T-Cobbler'daki 5,0 v'nin yanındaki deliğe sığacak kadar kırmızı kabloyu kesin ve soyun ve bir taraftaki tahtadaki pozitif ve negatif noktaların pozitif tarafına koyun. O zaman az önce yaptığınız şeyi yapın, ancak GND'ye siyah bir kablo ile ve bu olumsuz kısma girer. Bundan sonra breadboard'un diğer tarafına gidin ve iki pozitif tarafı birbirine ve iki negatif tarafı da tel ile birbirine bağlayın, böylece pozitif kırmızı ve negatif siyah olur. Bu şemada gösterildiği gibi

Adım 2:

resim
resim

Mesafe sensörünü, RGB LED'i ve pi kamerayı alın ve bunları pi ve devre tahtası üzerindeki yerlerine yerleştirin. Pi kamerayı belirtilen konumda ahududu pi'ye bağlayın. Ardından RGB LED'i devre tahtasına yerleştirin ve tüm kabloların onu koyduğunuz deliğe girdiğinden emin olun. Sahip olduğunuz RGB LED'i okuyun ve hangi kablonun ne olduğuna dikkat edin. Ardından, devre tahtasında mesafe sensörü için hiçbir şeyin yolunda olmadığı bir yer bulun. Bir sonraki adım için bilmeniz gerekeceğinden, hangi müşteri adayının nereye gittiğine dikkat edin.

Aşama 3:

resim
resim

Şimdi devrenin kablolamasını bitirin ve doğru pozisyon için doğru dirençleri bulun. Gücü temsil etmek için kırmızı kablolar kullandım, toprak için siyah kablolar kullandım ve GPIO kabloları için mavi kablolar kullandım. Ve bu adımda dirençleri de mesafe sensörü ile doğru yere koyacağız. Gerekirse, bu devrenin nasıl bağlanacağına ilişkin şemayı izleyin.

4. Adım:

resim
resim

Şimdi bu adım için kodlama yapacağız ve bunun için python 3 kullanacağız. Olması gereken, u ile mesafe sensörü arasındaki mesafe 100 cm'den fazla ise kamera fotoğraf çekecektir. Ancak fotoğraftan hemen önce kırmızı renkte yanıp sönecek ve fotoğraftan sonra düz mavi bir renk olacaktır.

Python 3 kodu

RPi. GPIO'yu picamera'dan GPIO olarak içe aktar PiCamera'yı zamandan içe aktar uyku, gpiozero'dan zaman içe aktar LED'i, Düğme

kamera = PiCamera()

GPIO.setmode(GPIO. BCM)

GPIO_TRIGGER = 13GPIO_ECHO = 19 kırmızı= LED(16) yeşil=LED(20) mavi = LED(21) tekrar = Doğru

GPIO.setwarnings(Yanlış)GPIO.setup(GPIO_TRIGGER, GPIO. OUT) GPIO.setup(GPIO_ECHO, GPIO. IN)

def RedLight(): red.blink() green.on() blue.on()

def BlueLight(): red.on() green.on() blue.off()

def GreenLight(): red.on() green.off() blue.on()

def mesafe(): GPIO.output(GPIO_TRIGGER, True)

uyku(0.00001) GPIO.output(GPIO_TRIGGER, Yanlış)

StartTime = zaman() StopTime = zaman()

while GPIO.input(GPIO_ECHO) == 0: StartTime = time()

while GPIO.input(GPIO_ECHO) == 1: StopTime = time()

TimeElapsed = StopTime - StartTime mesafesi = (TimeElapsed * 34300) / 2

dönüş mesafesi

deneyin: while tekrar: uzak = uzaklık() eğer uzak > 100 ise: camera.start_preview() RedLight() RedLight() uyku(5) camera.capture('/home/pi/Desktop/Image.jpg') camera.stop_preview () BlueLight() tekrar = Yanlış yazdırma ("Ölçülen Mesafe = %.1f cm" % dist) uyku(1)

# Klavye Kesmesi Hariç CTRL + C tuşlarına basarak sıfırlayın: print("Ölçüm Kullanıcı tarafından durduruldu") GPIO.cleanup()

Önerilen: