Mục lục:

Raspberry Pi Photobooth: 5 bước
Raspberry Pi Photobooth: 5 bước

Video: Raspberry Pi Photobooth: 5 bước

Video: Raspberry Pi Photobooth: 5 bước
Video: Raspberry Pi PhotoBooth with Printer Tutorial 2024, Tháng mười hai
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Mục đích:

  • Tìm hiểu cách viết mã và cài đặt Máy ảnh Pi
  • Sử dụng câu lệnh define và if trong mã hóa
  • Học cách sử dụng công nghệ mới như đèn LED RGB

Bước 1: Những gì bạn sẽ cần

Những gì bạn sẽ cần
Những gì bạn sẽ cần
Những gì bạn sẽ cần
Những gì bạn sẽ cần
Những gì bạn sẽ cần
Những gì bạn sẽ cần
  • 1 Raspberry Pi 3
  • Breadboard
  • Người nhảy
  • 1 điện trở phụ thuộc ánh sáng
  • 1 tụ điện
  • 1 nút nhấn
  • 6 Điện trở 220 Ohm
  • 2 đèn LED RGB
  • 1 Máy ảnh Raspberry Pi

Bước 2: Kết nối mô-đun máy ảnh

Kết nối mô-đun máy ảnh
Kết nối mô-đun máy ảnh

Trước hết, khi Pi đã tắt, bạn sẽ cần kết nối Mô-đun máy ảnh với cổng máy ảnh của Raspberry Pi, sau đó khởi động Pi và đảm bảo phần mềm được bật.

  1. Xác định vị trí cổng máy ảnh nằm giữa cổng HDMI và cổng 3,5 mm
  2. Kéo kẹp máy ảnh lên theo các cạnh nhựa cho đến khi kẹp theo đường chéo
  3. Bây giờ hãy lắp cáp máy ảnh có mặt màu xanh lam đối diện với cổng 3,5mm

Bước 3: Thiết lập máy ảnh

Thiết lập máy ảnh
Thiết lập máy ảnh
Thiết lập máy ảnh
Thiết lập máy ảnh

Mở công cụ Cấu hình Raspberry Pi từ menu chính và tắt và bật tất cả các giao diện ở trên

Từ menu Chính, mở Terminal và nhập các dòng mã sau:

Sudo Raspi-config

Bây giờ từ đây sử dụng các phím mũi tên của bạn để thao tác thông qua hệ thống và nhấp vào tùy chọn Kết nối ngoại vi và từ họ nhấp vào Máy ảnh P1 và bật máy ảnh, sau đó chọn kết thúc. Quay lại loại thiết bị đầu cuối trong các dòng mã sau:

pip cài đặt picamera

hoặc Sudo pip cài đặt Picamera

Bước 4: Kiểm tra mô-đun máy ảnh

Kiểm tra mô-đun máy ảnh
Kiểm tra mô-đun máy ảnh

Từ đây, chúng tôi có thể kiểm tra xem máy ảnh có hoạt động hay không vì chúng tôi đã bật tất cả phần mềm và phần cứng.

Mở Python 3 từ menu

Từ đó, mở một tệp mới từ shell và lưu nó vào cameratest.py.

Nhập mã sau:

từ picamera nhập PiCamera # mô-đun được tạo từ lệnh pi camera cài đặt pi

camera.start_preview () # khởi động máy ảnh và cho bạn biết kết quả đầu ra của máy ảnh trông như thế nào

ngủ (10) # nghe bản xem trước trong 10 giây

camera.stop_preview () # cuối cùng đã thoát khỏi bản xem trước

Chạy mã bằng cách F5

Nếu bạn gặp lỗi này khi chạy mã:

(mmal: mmal_vc_component_create: không tạo được thành phần 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: không thể tạo thành phần 'vc.ril.camera' (1) Traceback (lần gọi gần đây nhất): Tệp "", dòng 1, trong Tệp "/usr/lib/python2.7/dist-packages/picamera /camera.py ", dòng 257, trong _init_ self._init_camera () Tệp" /usr/lib/python2.7/dist-packages/picamera/camera.py ", dòng 288, trong _init_camera prefix =" Không thể tạo máy ảnh thành phần ") Tệp" /usr/lib/python2.7/dist-packages/picamera/exc.py ", dòng 112, trong mmal_check tăng PiCameraMMALError (trạng thái, tiền tố) picamera.exc. PiCameraMMALError: Không thể tạo thành phần máy ảnh: Hết của bộ nhớ)

Vui lòng chuyển đến cấu hình Raspberry Pi đi dưới cột hiệu suất và tăng cường bộ nhớ GPU của bạn cho đến khi hết lỗi (phải khởi động lại).

Bây giờ để tạo ảnh lưu vào màn hình, chúng ta sẽ sử dụng đoạn mã sau:

từ picamera nhập PiCamera # Mô-đun đã nhập được tạo từ lệnh pi camera cài đặt pi từ thời điểm nhập chế độ ngủ # Đã nhập chế độ ngủ để đảm bảo rằng máy ảnh của chúng tôi luôn bật

camera = PiCamera () #Setup for the camera

camera.start_preview () # Bắt đầu chế độ ngủ xem trước (5) # Để chế độ xem trước bật trong 5 giây

camera.capture ('/ home / pi / Desktop / image.jpg') # Từ

camera.stop_preview () # Dừng xem trước

Bước 5: Tạo mạch bằng mã

Tạo mạch bằng mã!
Tạo mạch bằng mã!
Tạo mạch bằng mã!
Tạo mạch bằng mã!
Tạo mạch bằng mã!
Tạo mạch bằng mã!

Như đã thấy ở trên từ sơ đồ mạch, chúng ta cần thiết lập một nút, một LDR và cuối cùng là hai đèn LED RGB. Đầu tiên, chúng ta sẽ thiết lập nút ở phía dưới bên trái của breadboard. Trong quá trình bạn thiết lập nút, chúng tôi sẽ sử dụng các tuyến đường sắt chung, nghĩa là chúng tôi sẽ cắm 3.3V của chúng tôi trên mặt đất cực dương và mặt đất cho mặt đất âm thanh. Sau khi bạn đã hoàn thành việc thiết lập mạch chỉ cho nút.

Chúng tôi sẽ kiểm tra mạch của mình để xem liệu chúng tôi có thể tạo ra nó hay không để nếu nút được nhấn, chúng tôi sẽ bật đèn led bằng cách sử dụng mã sau:

# Mô-đun được nhập từ gpiozero Nút nhập từ picamera Nhập PiCamera từ chế độ ngủ nhập thời gian

#Cài đặt

Camera = PiCamera () Button = Nút (22)

# Chức năng chụp ảnh, tôi đã quyết định đặt nó vào một hàm định nghĩa vì nó giúp chúng tôi xóa mã chính

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Ảnh đã được chụp") Camera.stop_preview ()

#Mã chính:

while True: if Button.is_pressed: print ("Nút đã được nhấn") photocap ()

# Tại sao điều này hoạt động: Mã chính hoạt động như tất cả những gì chúng ta đang làm là sử dụng lệnh if button.is_pressed trong một câu lệnh true, vì vậy nó liên tục cập nhật khi nhấn nút để chụp ảnh

Bây giờ chúng ta sẽ thiết lập 2 đèn LED RGB lên đến đầu mạch và tách chúng ra ở giữa breadboard và tạo đối xứng. Nếu bạn không có điện trở 220 ohm cho dự án này, bạn có thể thiết lập chúng song song tùy thuộc vào điện trở của bạn đối với điện trở bạn có. Chân thứ hai của đèn LED RGB 4 chân (chân dài nhất phải được kết nối với mặt đất thông qua đường ray. Tất cả các chân khác phải được kết nối với chân GPIO của riêng chúng. (Chân đầu tiên = màu đỏ, Chân thứ hai = mặt đất, Chân thứ ba = màu xanh lá cây, Chốt thứ tư = màu xanh lam).

Chúng tôi sẽ kiểm tra một trong các đèn LED RGB trong mạch nút của chúng tôi với mã bên dưới:

# Mô-đun đã nhập từ Nút nhập gpiozero từ PiCamera nhập picamera

từ gpiozero nhập RGBLED

từ lúc nhập giấc ngủ

#Cài đặt

Camera = PiCamera () Button = Nút (22)

TimedLED = RGBLED (đỏ = 21, xanh lục = 20, xanh lam = 16)

# Chức năng chụp ảnh với đèn LED RGB, tôi đã quyết định đặt nó vào một chức năng xác định vì nó giúp chúng tôi xóa mã chính

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

timedled.color (1, 0, 0)

ngủ (2)

timedled.color (0, 1, 0)

ngủ (1)

Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Ảnh đã được chụp") Camera.stop_preview ()

#Mã chính:

trong khi Đúng:

nếu Button.is_pressed:

print ("Nút đã được nhấn") photocap ()

# Tại sao điều này hoạt động: Lý do tại sao mã này hoạt động là vì bây giờ chúng tôi đã có RGBLED để hoạt động như một bộ hẹn giờ cho thời điểm ảnh sẽ được chụp

Bây giờ, hãy thiết lập điện trở Phụ thuộc Ánh sáng ở phía dưới bên phải của breadboard bằng cách sử dụng sơ đồ ở trên cùng và các đường ray chung đã thảo luận trước đó. Hãy nhớ rằng cả hai chân dài của LDR và capicitator phải được kết nối với chân GPIO.

Sau khi chúng tôi đã kết nối LDR, chúng tôi sẽ sử dụng mã sau:

# Mô-đun được nhập

từ Nút nhập gpiozero

từ picamera nhập PiCamera từ gpiozero nhập RGBLED

từ gpiozero import LightSensor

từ lúc nhập giấc ngủ

#Cài đặt

Máy ảnh = PiCamera () Nút = Nút (22) TimedLED = RGBLED (đỏ = 21, xanh lục = 20, xanh lam = 16)

LightSensor = LightSensor (23)

# Chức năng chụp ảnh với đèn LED RGB, tôi đã quyết định đưa nó vào một chức năng xác định vì nó giúp chúng tôi xóa mã chính

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

#Mã chính:

trong khi Đúng:

if Button.is_pressed: print ("Nút đã được nhấn") photocap ()

if Button.is_pressed và Lightsensor.when_dark:

print ("Nút đã được ấn")

print ("Trời tối")

photocap ()

# Tại sao điều này hoạt động: Cách mà tôi đã thêm Cảm biến ánh sáng vào mã của mình là thông qua một câu lệnh if khác có chứa chức năng đã nhập của cảm biến ánh sáng. Khi bóng tối thiết lập chúng ta hoàn hảo cho bước tiếp theo của mình

Bây giờ, bước cuối cùng thông qua dự án này sẽ là kích hoạt đối xứng RGBLED khác với đối xứng kia để hoạt động như một đèn flash, Mã cuối cùng:

từ Nút nhập gpiozero

từ picamera nhập PiCamera

từ gpiozero nhập RGBLED

từ gpiozero import LightSensor

từ lúc nhập giấc ngủ

#Cài đặt

Máy ảnh = PiCamera ()

Button = Nút (22)

TimedLED = RGBLED (đỏ = 21, xanh lục = 20, xanh lam = 16)

FlashLED = RGBLED (đỏ = 19, lục = 13, lam = 6)

LightSensor = LightSensor (23)

# Chức năng chụp ảnh với đèn LED RGB, tôi đã quyết định đưa nó vào một chức năng xác định vì nó giúp chúng tôi xóa mã chính 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.jpg') print ("Ảnh đã được chụp") Camera.stop_preview () # Mã chính: while True: if Button.is_pressed:

print ("Nút đã được nhấn")

photocap ()

if Button.is_pressed và Lightsensor.when_dark:

print ("Nút đã được ấn") print ("Trời tối")

FlashLED.color (1, 1, 1)

photocap ()

# Tại sao điều này hoạt động: Cách tôi đã thêm Đèn pin của mình là sử dụng đèn LED RGB để xuất ra màu trắng là 1, 1, 1 và nó chỉ hoạt động nếu câu lệnh if là đúng.

Đề xuất: