Mục lục:
- Bước 1: Các mặt hàng chính bắt buộc
- Bước 2: Hệ thống
- Bước 3: Thời gian mã hóa
- Bước 4: Kết hợp nó lại với nhau
- Bước 5: Kết quả
- Bước 6: khẳng định sai
Video: Cat-a-way - Computer Vision Cat Sprinkler: 6 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Vấn đề - Mèo sử dụng khu vườn của bạn làm nhà vệ sinh
Giải pháp - Dành quá nhiều thời gian cho việc thiết kế vòi phun nước cho mèo với tính năng tự động tải lên youtube
Đây không phải là từng bước mà là tổng quan về cấu tạo và một số mã
#BeforeYouCallPETA - Những con mèo vẫn ổn, một vòi phun nước áp suất thấp giống như mưa, chúng có thể chạy nhanh hơn trước khi nó quay xung quanh chúng. Dự án không phải là ngâm một con mèo, mà là để xua chúng đi trước khi chúng xả rác trong vườn của tôi với phiên bản mèo Barkers Eggs.
Bước 1: Các mặt hàng chính bắt buộc
Raspberry Pi zero & thẻ SD
Máy ảnh Raspberry Pi
Chuyển tiếp
Bộ đếm thời gian 555…. (hoặc arduino và một rơ le khác nếu bộ hẹn giờ 555 của bạn không đến)
Solenoid
Vòi phun nước
Một số loại nhà ở cho thiết bị điện tử
Sẵn sàng đánh một chiếc đinh ẩn dụ bằng một chiếc búa tạ nặng 6 tấn
Một chiếc máy ảnh có độ phân giải quá nhỏ, bạn hầu như không thể nhìn thấy mặt nước, nhưng vẫn có thể nhìn thấy những con mèo đang chạy tìm chỗ ẩn nấp
Bước 2: Hệ thống
1, Máy ảnh Pi phát hiện một vật thể có kích thước như con mèo đang di chuyển trong một vài khung hình máy ảnh (được nêu trong bước tiếp theo)
2, Pi thiết lập vòi phun nước
3, Mèo chạy đi tìm chỗ ẩn nấp
4, Video tự động tải lên youtube xem cho thỏa thích
Bước 3: Thời gian mã hóa
Sử dụng openCV bằng cách sử dụng phép trừ khung, bạn có thể tìm thấy các khu vực của khung thay đổi theo thời gian, bằng cách sử dụng một số chức năng tiện lợi, bạn có thể tìm ra mức độ lớn của những thay đổi này và liệu chúng có tồn tại theo thời gian hay không và quan trọng nhất là tìm hiểu xem chúng có kích thước như mèo hay không.
Có khá nhiều hướng dẫn về phép trừ khung rất chi tiết nếu bạn tìm kiếm nhanh trên google.
Tổng quan về cách mã hoạt động
1, Máy ảnh tiếp tục chụp các khung hình và so sánh chúng với khung hình cuối cùng
2, Nếu một hình dạng có kích thước như mèo được phát hiện, nó được ghi nhận
3, Nếu sự thay đổi kích thước con mèo vẫn tiếp diễn trong khoảng 4 khung hình, pi sử dụng GPIO của nó để cấp nguồn cho rơle khởi động arduino
4, arduino gửi tín hiệu cấp nguồn cho rơ le thứ hai trong 5 giây để kích hoạt điện từ
5, Bộ điện từ khi được cấp điện cho phép nước vào vòi phun nước
6, Trong khi vòi phun nước đang hoạt động, camera sẽ dừng phát hiện và ghi video
7, Video được tải lên Youtube
8, Stills được tải lên dropbox để tinh chỉnh hệ thống
Lưu ý - Tại sao tôi lại sử dụng 2 rơ le và arduino để bật điện từ trong 5 giây…..
1, Pi không thể khởi động và dừng bộ điện từ trong khi quay video vì tập lệnh python tạm dừng cho đến khi video kết thúc, do đó cần có arduino (hoặc bộ đếm thời gian 555) để cho phép bộ điện từ mở và đóng độc lập với tập lệnh trong khi video vẫn đang quay.
2, Rơ le và arduino đầu tiên có thể được thay thế bằng bộ hẹn giờ 555 nhưng điều đó đã không xuất hiện trong bài viết kịp thời cho dự án này, 555 sẽ tiết kiệm rất nhiều thời gian và các bước.
3, Pi không thể kích hoạt điện từ trực tiếp vì Pi GPIO hoạt động trên 3.3v và 51mA tối đa, và điện từ muốn 5V và nhiều hơn 51mA để kích hoạt.
4, Mỗi khung hình có thể được cắt để loại bỏ phát hiện chuyển động ở các khu vực không mong muốn, chẳng hạn như khu vườn neigbors. Nếu không làm được điều này, người hàng xóm sẽ nhìn vào khu vườn của bạn một cách bối rối vì vòi phun nước tắt mỗi khi anh ta muốn đi vào chuồng của mình.
5, Tôi có lẽ đã bỏ lỡ một cái gì đó rõ ràng và lãng phí thời gian của tôi để thiết lập nó như thế này.
Mã bên dưới
import cv2import numpy as np import argparse #cat import time import RPi. GPIO as GPIO import os import dropbox from picamera.array import PiRGBArray from picamera import PiCamera # ------------------ ------------------------------ Tải lên youtube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_% H-% M-% S") cdate = time.strftime ("_% d-% m-% Y") vidname = ctime + cdate #Trigger relay GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Quay video") thử: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Upload to youtube print ("Tải lên YouTube") os. system ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secret = client_secret.json vid {0}.h264'.format (vidname)) # Xóa tệp video khi hoàn tất os.remove ('vid {0}.h264'.format (vidname)) print ("Video được tải lên và xóa khỏi Pi") ngoại trừ: pass # -------------------- ---------------------------- Chuyển đến hộp kéo thả ------------------- -------------------- def St illsToDropbox (): print ("Đang tải lên chức năng Dropbox") access_token = 'Ah ah ah, bạn không nói từ ma thuật … Ah ah ah, bạn đã không nói từ ma thuật' ctime = time.strftime (" % H:% M:% S ") cdate = time.strftime ("% d-% m-% Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (filename) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (filename, image) image.close () os.remove ("ToDropbox.jpg ") ngoại trừ: pass # ------------------------------------------ ------ Phát hiện chuyển động ----------------------------------------- def DetectMotion (): #Define vars min_area = 400 tol clear = 25 #change in pixel bluramount = 21 timetoforget = 0.5 kernel = np.ones ((5, 5), np.uint8) #used for dialate MotionCounter = 0 MinTargetArea = 600 # kích thước nhỏ nhất để phát hiện MaxTargetArea = 5000 # Kích thước lớn nhất để phát hiện bây giờ = time.time () then = time.time () #initialise camera camera = PiCamera () camera.resolution = (640, 480) camera.framerate = 10 raw Capture = PiRGBArray (camera, size = (640, 480)) #warmup camera time.sleep (1) # Khung hình đầu tiên củarab & chuẩn bị cho nó để chuyển sang cv2.acumulate weight camera.capture (rawCapture, format = "bgr") avg = rawCapture.array # Cắt bỏ vùng không mong muốn PolyCrop = np.array (
#HowToTriggerRealProgrammersWithBadCode
Bước 4: Kết hợp nó lại với nhau
Cắn các thiết bị điện vào một hộp chống thấm, vặn các thứ vào tường và sử dụng nhiều băng keo và keo nóng
Bước 5: Kết quả
Khi nó hoạt động, nó hoạt động
Bước 6: khẳng định sai
Khi không, nó sẽ phun ra bóng mèo, vợ bạn và con gái bạn.
Mẹo chuyên nghiệp - Đặt một công tắc bên cửa để tạm dừng chương trình phát hiện chuyển động….. sau đó quên sử dụng và bị ướt khi đưa thùng ra ngoài.
Hy vọng tôi đã khiến bất kỳ chuyên gia nào trong lĩnh vực lập trình, điện tử và DIY phải chùn tay với tất cả những lỗi tôi có thể mắc phải, và đặc biệt hy vọng bạn thích tất cả những lỗi chính tả của tôi.
Đề xuất:
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: 3 bước (có hình ảnh)
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: Xin chào! Tôi luôn tìm kiếm các Dự án mới cho các bài học vật lý của mình. Hai năm trước, tôi đã xem một báo cáo về cảm biến nhiệt MLX90614 từ Melexis. Loại tốt nhất chỉ với 5 ° FOV (trường nhìn) sẽ phù hợp với máy ảnh nhiệt tự chế
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: 14 bước (có hình ảnh)
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: Có rất nhiều hướng dẫn trực tuyến về cách xây dựng máy ảnh phim của riêng bạn, nhưng tôi không nghĩ rằng có bất kỳ hướng dẫn nào về việc xây dựng cảm biến hình ảnh của riêng bạn! Cảm biến hình ảnh có sẵn từ rất nhiều công ty trực tuyến và việc sử dụng chúng sẽ giúp thiết kế
Hình ảnh - Máy ảnh Raspberry Pi in 3D.: 14 bước (có Hình ảnh)
Hình ảnh - Máy ảnh Raspberry Pi 3D được in: Cách đây trở lại vào đầu năm 2014, tôi đã xuất bản một máy ảnh có thể hướng dẫn được gọi là SnapPiCam. Máy ảnh được thiết kế để đáp ứng với Adafruit PiTFT mới được phát hành. Đã hơn một năm trôi qua và với bước đột phá gần đây của tôi vào in 3D, tôi nghĩ rằng n
MÁY ẢNH UNICORN - Raspberry Pi Zero W NoIR Cấu hình máy ảnh 8MP: 7 bước (có hình ảnh)
UNICORN CAMERA - Raspberry Pi Zero W NoIR Camera 8MP Build: Pi Zero W NoIR Camera 8MP BuildThis hướng dẫn được tạo ra để giúp bất kỳ ai muốn có Camera hồng ngoại hoặc Camera di động thực sự tuyệt vời hoặc Camera Raspberry Pi di động hoặc chỉ muốn giải trí, heheh . Đây là cấu hình và giá cả phải chăng nhất
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: 7 bước (với hình ảnh)
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: Tôi biết bạn đang nghĩ gì. Bằng cách " thân mật, " Ý tôi là chiếu sáng cận cảnh trong các tình huống ánh sáng khó - không nhất thiết dành cho " các tình huống thân mật. &Quot; (Tuy nhiên, nó cũng có thể được sử dụng cho việc đó …) Là một nhà quay phim thành phố New York - hoặc