Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15
Trong thế giới ngày nay, đèn giao thông rất cần thiết cho một con đường an toàn. Tuy nhiên, nhiều khi, đèn giao thông có thể gây khó chịu trong tình huống có người đang đến gần đèn ngay khi đèn đang chuyển sang màu đỏ. Điều này gây lãng phí thời gian, đặc biệt nếu ánh sáng ngăn cản một chiếc xe đi qua giao lộ khi không có ai khác trên đường. Cải tiến của tôi là đèn giao thông thông minh sử dụng tính năng phát hiện vật thể trực tiếp từ camera để đếm số lượng ô tô trên mỗi con đường. Phần cứng tôi sẽ sử dụng cho dự án này là Raspberry Pi 3, một mô-đun máy ảnh và các phần cứng điện tử khác nhau cho chính ánh sáng. Sử dụng OpenCV trên Raspberry Pi, thông tin thu thập được sẽ được chạy qua mã điều khiển các đèn LED thông qua GPIO. Tùy thuộc vào những con số này, đèn giao thông sẽ thay đổi, cho phép xe ô tô đi qua theo thứ tự tối ưu nhất. Trong trường hợp này, làn đường có nhiều ô tô nhất sẽ được đi qua để làn đường có ít ô tô chạy không tải, giảm ô nhiễm không khí. Điều này sẽ loại bỏ tình huống nhiều ô tô bị dừng lại trong khi không có ô tô nào trên đường giao nhau. Điều này không chỉ tiết kiệm thời gian cho mọi người mà còn tiết kiệm môi trường. Khoảng thời gian mọi người dừng lại ở biển báo dừng mà động cơ không chạy sẽ làm tăng lượng ô nhiễm không khí, vì vậy bằng cách tạo đèn giao thông thông minh, tôi có thể tối ưu hóa các kiểu đèn để ô tô dành ít thời gian nhất có thể cho việc dừng xe của họ.. Cuối cùng, hệ thống đèn giao thông này có thể được triển khai ở các thành phố, vùng ngoại ô, hoặc thậm chí là các vùng nông thôn để mang lại hiệu quả hơn cho người dân và giảm ô nhiễm không khí.
Bước 1: Danh sách bộ phận
Vật liệu:
Raspberry Pi 3 Model B v1.2
Máy ảnh Raspberry Pi v2.1
Nguồn điện 5V / 1A micro USB
Màn hình HDMI, bàn phím, chuột, thẻ SD với Raspbian Jessie
Cáp đột phá Raspberry Pi GPIO
Đèn LED đỏ, vàng, xanh lá cây (mỗi màu 2 đèn)
Đầu nối cái cho Raspberry Pi (7 màu độc đáo)
24 loại dây đo (màu sắc khác nhau) + ống co nhiệt
Bảng hoặc nền gỗ 2’x2’
Vít gỗ
Bề mặt đen (bìa cứng, bảng xốp, bảng áp phích, v.v.)
Băng trắng (hoặc bất kỳ màu nào khác ngoài màu đen) cho vạch kẻ đường
Sơn phun màu đen (cho PVC)
Ống PVC ½”với khớp khuỷu 90 độ (2), ổ cắm T (1), bộ chuyển đổi cái (2)
Công cụ
Sắt hàn
máy in 3D
Khoan với nhiều mũi khoan khác nhau
Breadboard
Súng bắn nhiệt
Bước 2: Thiết lập Raspberry Pi
Nạp thẻ SD vào Raspberry Pi và khởi động.
Làm theo hướng dẫn này để cài đặt các thư viện OpenCV cần thiết. Đảm bảo bạn có thời gian để thực hiện bước này, vì việc cài đặt thư viện OpenCV có thể mất vài giờ. Hãy chắc chắn cũng cài đặt và thiết lập máy ảnh của bạn tại đây.
Bạn cũng nên cài đặt pip:
picamera
gpiozero
RPi. GPIO
Đây là mã cuối cùng:
từ picamera.array nhập PiRGBArray
từ picamera nhập PiCamera
nhập picamera.array
nhập numpy dưới dạng np
thời gian nhập khẩu
nhập cv2
nhập RPi. GPIO dưới dạng GPIO
thời gian nhập khẩu
GPIO.setmode (GPIO. BCM)
cho tôi trong (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
raw = PiRGBArray (cam, kích thước = (480, 480))
time.sleep (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
bộ đếm = 0
cho khung trong cam.capture_continuous (raw, format = "bgr", use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (frame, cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv, colorLower, colorUpper)
mask = cv2.blur (mask, (3, 3))
mask = cv2.dilate (mask, Không, số lần lặp = 5)
mask = cv2.erode (mask, Không có, số lần lặp = 1)
mask = cv2.dilate (mask, Không, số lần lặp = 3)
tôi, thresh = cv2.threshold (mask, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [- 2]
center = Không có
vert = 0
chân trời = 0
nếu len (cnts)> 0:
cho c trong cnts:
(x, y), radius = cv2.minEnclosingCircle (c)
center = (int (x), int (y))
radius = int (bán kính)
cv2.circle (khung, tâm, bán kính, (0, 255, 0), 2)
x = int (x)
y = int (y)
nếu 180 <x <300:
nếu y> 300:
vert = vert +1
elif y <180:
vert = vert +1
khác:
vert = vert
nếu 180 <y <300:
nếu x> 300:
chân trời = chân trời +1
elif x <180:
chân trời = chân trời +1
khác:
Horiz = đường chân trời
if vert! = initvert:
print "Ô tô trên làn dọc:" + str (vert)
initvert = vert
print "Ô tô trên làn đường ngang:" + str (đường chân trời)
inithoriz = chân trời
in '----------------------------'
nếu chân trời! = inithoriz:
print "Ô tô trên làn dọc:" + str (vert)
initvert = vert
print "Ô tô trên làn đường ngang:" + str (đường chân trời)
inithoriz = chân trời
in '----------------------------'
nếu vert <chân trời:
GPIO.output (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
nếu chân trời <vert:
GPIO.output (16, GPIO. HIGH)
GPIO.output (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow ("Khung", khung)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", thresh)
raw.truncate (0)
if cv2.waitKey (1) & 0xFF == ord ('q'):
nghỉ
cv2.destroyAllWindows ()
GPIO.cleanup ()
Bước 3: Raspberry Pi và Camera Mount
In 3D vỏ và gắn và lắp ráp máy ảnh.
Bước 4: Lắp ráp đèn giao thông
Kiểm tra đèn giao thông bằng bảng mạch. Mỗi bộ đèn LED đối lập có chung một cực dương và tất cả chúng đều dùng chung một cực âm (nối đất). Cần có tổng cộng 7 dây đầu vào: 1 dây cho mỗi cặp LEDS (6) + 1 dây nối đất. Hàn và lắp ráp đèn giao thông.
Bước 5: Đấu dây (Phần 1)
Hàn các chân của tiêu đề cái vào khoảng 5 feet dây. Đây là những mặt mà Những dây này sẽ rắn qua các ống PVC sau này. Đảm bảo có thể phân biệt các bộ đèn khác nhau (2 x 3 màu và 1 mặt đất). Trong trường hợp này, tôi đã đánh dấu các đầu của một bộ dây màu đỏ, vàng và xanh lam khác bằng sharpie để tôi biết đó là dây nào.
Bước 6: Xây dựng Môi trường
Xây dựng môi trường Làm một pallet gỗ vuông 2 feet như thế này. Gỗ vụn cũng được vì nó sẽ được phủ lên. Khoan một lỗ vừa với bộ chuyển đổi của bạn. Khoan vít qua các mặt của pallet để cố định ống PVC vào vị trí. Cắt tấm xốp màu đen để phù hợp với tấm pallet gỗ bên dưới. Khoan một lỗ vừa vặn xung quanh ống PVC. Lặp lại ở góc đối diện. Đánh dấu các con đường bằng một số băng trắng.
Bước 7: Hoàn thiện khung PVC
Trên đường ống trên cùng, hãy khoan một lỗ có thể lắp một bó dây. Một lỗ thô cũng được miễn là bạn có thể tiếp cận bên trong các đường ống. Rắn dây qua ống PVC và các khớp nối khuỷu tay để kiểm tra độ khít. Khi mọi thứ đã hoàn tất, hãy sơn PVC với một ít sơn phun màu đen để làm sạch giao diện của khung chính. Cắt một khoảng trống nhỏ trên một trong các ống PVC để lắp khớp chữ T. Thêm một ống PVC vào khớp chữ t này để đèn giao thông có thể treo xuống. Đường kính có thể bằng với khung chính (1/2 ), tuy nhiên nếu bạn sử dụng ống mỏng hơn, hãy đảm bảo 7 dây có thể luồn qua. Hãy khoan một lỗ qua ống này để treo đèn giao thông.
Bước 8: Đấu dây (Phần 2)
Nối lại dây mọi thứ như đã thử nghiệm trước đó. Kiểm tra kỹ đèn giao thông và hệ thống dây điện bằng bảng mạch để xác nhận tất cả các kết nối đã được thực hiện. Hàn đèn giao thông với các dây đi qua tay nối chữ T. Dùng băng dính điện quấn các phần dây lộ ra ngoài để ngăn ngừa quần áo ngắn và trông sạch sẽ hơn.
Bước 9: Đã hoàn thành
Để chạy mã, hãy đảm bảo đặt nguồn của bạn là ~ /.profile và cd vào vị trí dự án của bạn.
Bước 10: Bổ sung (Ảnh)
Đề xuất:
Trượt Máy Ảnh Theo Dõi Đối Tượng Với Trục Xoay. 3D được in & xây dựng trên bộ điều khiển động cơ DC RoboClaw & Arduino: 5 bước (có hình ảnh)
Trượt Máy Ảnh Theo Dõi Đối Tượng Với Trục Xoay. 3D được in & xây dựng trên bộ điều khiển động cơ DC RoboClaw & Arduino: Dự án này là một trong những dự án yêu thích của tôi vì tôi đã kết hợp sở thích làm video với DIY. Tôi đã luôn xem xét và muốn mô phỏng những cảnh quay điện ảnh đó trong những bộ phim trong đó máy ảnh di chuyển trên màn hình trong khi lia để theo dõi
Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp: 6 bước
Trong dự án này, bạn sẽ học cách xây dựng một camera phát hiện chuyển động mà bạn sẽ có thể sử dụng làm bẫy camera, theo dõi thú cưng / em bé, camera an ninh, v.v. Dự án này được tổ chức thành một số bước: Giới thiệu Settin
Phân tích hệ thống Bluetooth của Windows - Phương pháp tiếp cận thẻ cảm biến: 7 bước (có hình ảnh)
Phân tích hệ thống Bluetooth của Windows - Cách tiếp cận bằng thẻ cảm biến: Trong phần sau, tôi sẽ thực hiện phân tích hệ điều hành Windows (OS) từ quan điểm giao tiếp với các thiết bị Bluetooth Low Energy - trong trường hợp của chúng tôi với các loại SensorTags khác nhau: Thunderboard React, Thunderboard Sense (b
Phát hiện đối tượng trực quan bằng máy ảnh (TfCD): 15 bước (với hình ảnh)
Phát hiện đối tượng trực quan bằng máy ảnh (TfCD): Dịch vụ nhận thức có thể nhận dạng cảm xúc, khuôn mặt của người hoặc các vật thể đơn giản hiện vẫn đang ở giai đoạn phát triển ban đầu, nhưng với máy học, công nghệ này đang ngày càng phát triển. Chúng ta có thể mong đợi thấy nhiều điều kỳ diệu này hơn trong
Giao thông hàng không trực tiếp trên máy tính của bạn !!!!!: 3 bước
Giao thông hàng không trực tiếp trên máy tính của bạn !!!!!: Tài liệu hướng dẫn này sẽ dạy bạn cách nhìn vào các sân bay khác nhau (chỉ bao gồm các sân bay quốc tế lớn). ** TỪ CHỐI TRÁCH NHIỆM ** Tôi không chịu trách nhiệm về việc sử dụng thông tin có trong tài liệu hướng dẫn này. Nếu bạn đang lên kế hoạch cho bất kỳ kẻ khủng bố nào