Mục lục:
- Bước 1: Những gì bạn sẽ cần
- Bước 2: Kết nối mô-đun máy ảnh
- Bước 3: Thiết lập máy ảnh
- Bước 4: Kiểm tra mô-đun máy ảnh
- Bước 5: Tạo mạch bằng mã
Video: Raspberry Pi Photobooth: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
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
- 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
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.
- Xác định vị trí cổng máy ảnh nằm giữa cổng HDMI và cổng 3,5 mm
- 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
- 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
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
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ã
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:
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
Raspberry Pi PhotoBooth: HTML5 & NodeJS: 4 bước
Raspberry Pi PhotoBooth: HTML5 & NodeJS: Một photobooth HTML5 và NodeJS với bản xem trước trực tiếp và đường viền tùy chỉnh. Dự án này bắt đầu như một thứ mà tôi đã xây dựng cho buổi khiêu vũ ở trường của con gái mình. Tôi muốn một cái gì đó vui vẻ để cô ấy và bạn bè của cô ấy nhớ lại sự kiện này (đó là lần cuối cùng họ sẽ
Photobooth đám cưới / sự kiện: 6 bước (có hình ảnh)
Wedding / Event Photobooth: Xin chào mọi người, tôi đã kết hôn vào năm ngoái, khi chúng tôi đang chuẩn bị cho ngày D-Day, chúng tôi đã tiến hành rất nhiều quy ước về đám cưới. là một lý tưởng tuyệt vời cho một đám cưới, mỗi khách c
Photobooth tự động: 4 bước (có hình ảnh)
Photobooth tự động: Phần này sẽ hướng dẫn bạn cách tạo booth photo tự động bằng cách sử dụng mâm xôi pi, cảm biến khoảng cách siêu âm và một số phụ kiện khác. Tôi muốn thực hiện một dự án sử dụng cả phần cứng phức tạp và một chương trình phức tạp. Tôi nghiên cứu
Tự làm Photobooth: 7 bước (có hình ảnh)
Tự làm Photobooth: Đây là một hướng dẫn về cách xây dựng photobooth của riêng bạn giống như các photobooth truyền thống được thấy ở các trung tâm thương mại, công viên giải trí và trung tâm mua sắm trên toàn thế giới. Tuy nhiên, gian hàng này hoàn toàn là kỹ thuật số và rẻ hơn / dễ làm hơn nhiều ở nhà. I WR