
สารบัญ:
- ขั้นตอนที่ 1: รายการชิ้นส่วน
- ขั้นตอนที่ 2: การตั้งค่า Raspberry Pi
- ขั้นตอนที่ 3: Raspberry Pi และเมาท์กล้อง
- ขั้นตอนที่ 4: การประกอบสัญญาณไฟจราจร
- ขั้นตอนที่ 5: การเดินสายไฟ (ตอนที่ 1)
- ขั้นตอนที่ 6: การสร้างสิ่งแวดล้อม
- ขั้นตอนที่ 7: จบโครง PVC
- ขั้นตอนที่ 8: การเดินสายไฟ (ตอนที่ 2)
- ขั้นตอนที่ 9: เสร็จสิ้น
- ขั้นตอนที่ 10: ความพิเศษ (ภาพถ่าย)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12



ในโลกปัจจุบัน สัญญาณไฟจราจรเป็นสิ่งจำเป็นสำหรับถนนที่ปลอดภัย อย่างไรก็ตาม หลายครั้งที่สัญญาณไฟจราจรอาจสร้างความรำคาญในสถานการณ์ที่มีคนเข้าใกล้ไฟในขณะที่กำลังเปลี่ยนเป็นสีแดง เป็นการเสียเวลา โดยเฉพาะอย่างยิ่งหากไฟส่องขวางไม่ให้รถคันเดียวผ่านสี่แยกเมื่อไม่มีคนอื่นอยู่บนถนน นวัตกรรมของฉันคือสัญญาณไฟจราจรอัจฉริยะที่ใช้การตรวจจับวัตถุมีชีวิตจากกล้องเพื่อนับจำนวนรถยนต์ในแต่ละถนน ฮาร์ดแวร์ที่ฉันจะใช้สำหรับโครงการนี้คือ Raspberry Pi 3 โมดูลกล้อง และฮาร์ดแวร์อิเล็กทรอนิกส์ต่างๆ สำหรับตัวไฟเอง การใช้ OpenCV บน Raspberry Pi ข้อมูลที่รวบรวมจะถูกเรียกใช้ผ่านรหัสที่ควบคุม LED ผ่าน GPIO ขึ้นอยู่กับตัวเลขเหล่านี้ สัญญาณไฟจราจรจะเปลี่ยนไป ปล่อยให้รถผ่านไปในลำดับที่เหมาะสมที่สุด ในกรณีนี้ ช่องจราจรที่มีรถยนต์มากที่สุดจะถูกปล่อยผ่านเพื่อให้ช่องที่มีรถน้อยวิ่งเดินเบา ช่วยลดมลพิษทางอากาศ วิธีนี้จะช่วยขจัดสถานการณ์เมื่อรถหลายคันหยุดนิ่งในขณะที่ไม่มีรถอยู่บนถนนที่ตัดกัน สิ่งนี้ไม่เพียงช่วยประหยัดเวลาสำหรับทุกคน แต่ยังช่วยรักษาสิ่งแวดล้อมอีกด้วย ระยะเวลาที่ผู้คนหยุดรถที่ป้ายหยุดโดยที่เครื่องยนต์เดินเบาจะเพิ่มปริมาณมลพิษทางอากาศ ดังนั้น ด้วยการสร้างสัญญาณไฟจราจรอัจฉริยะ ฉันจึงสามารถปรับรูปแบบแสงให้เหมาะสมเพื่อให้รถยนต์ใช้เวลาน้อยที่สุดเท่าที่จะเป็นไปได้ในการหยุดรถ. ในที่สุด ระบบสัญญาณไฟจราจรนี้สามารถนำไปใช้ในเมือง ชานเมือง หรือแม้แต่ในชนบทเพื่อให้มีประสิทธิภาพมากขึ้นสำหรับผู้คน จะช่วยลดมลพิษทางอากาศ
ขั้นตอนที่ 1: รายการชิ้นส่วน
วัสดุ:
Raspberry Pi 3 รุ่น B v1.2
กล้อง Raspberry Pi v2.1
แหล่งจ่ายไฟไมโคร USB 5V/1A
จอภาพ HDMI, คีย์บอร์ด, การ์ด SD เมาส์ พร้อม Raspbian Jessie
สายเคเบิลฝ่าวงล้อม Raspberry Pi GPIO
ไฟ LED สีแดง สีเหลือง สีเขียว (สีละ 2 ดวง)
ขั้วต่อตัวเมียสำหรับ Raspberry Pi (7 สีเฉพาะ)
สายคละ 24 เส้น (คละสี) + ท่อหดความร้อน
2'x2 'แผงไม้หรือแท่น
สกรูไม้
พื้นผิวสีดำ (กระดาษแข็ง กระดานโฟม แผ่นโปสเตอร์ ฯลฯ)
เทปสีขาว (หรือสีอื่นใดที่ไม่ใช่สีดำ) สำหรับทำเครื่องหมายถนน
สีสเปรย์สีดำ (สำหรับ PVC)
ท่อพีวีซี ½” ข้อต่อศอก 90 องศา(2), เต้ารับตัว T (1), อแดปเตอร์ตัวเมีย (2)
เครื่องมือ
หัวแร้ง
เครื่องพิมพ์ 3 มิติ
เจาะด้วยดอกสว่านต่างๆ
เขียงหั่นขนม
ปืนความร้อน
ขั้นตอนที่ 2: การตั้งค่า Raspberry Pi
โหลดการ์ด SD ลงใน Raspberry Pi แล้วบูตเครื่อง
ทำตามคำแนะนำนี้เพื่อติดตั้งไลบรารี OpenCV ที่จำเป็น ตรวจสอบให้แน่ใจว่าคุณมีเวลาทำขั้นตอนนี้ เนื่องจากการติดตั้งไลบรารี OpenCV อาจใช้เวลาสองสามชั่วโมง อย่าลืมติดตั้งและตั้งค่ากล้องของคุณที่นี่ด้วย
คุณควรติดตั้ง pip ด้วย:
picamera
gpiozero
RPi. GPIO
นี่คือรหัสที่สรุปแล้ว:
จาก picamera.array นำเข้า PiRGBArray
จาก picamera นำเข้า PiCamera
นำเข้า picamera.array
นำเข้า numpy เป็น np
เวลานำเข้า
นำเข้า cv2
นำเข้า RPi. GPIO เป็น GPIO
เวลานำเข้า
GPIO.setmode(GPIO. BCM)
สำหรับฉันใน (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
กล้อง = PiCamera()
กล้องความละเอียด = (480, 480)
cam.framerate=30
raw=PiRGBArray(กล้อง, ขนาด=(480, 480))
เวลานอน(0.1)
colorLower = np.array([0, 100, 100])
colorUpper = np.array([179, 255, 255])
initvert = 0
initoriz = 0
ตัวนับ = 0
สำหรับเฟรมใน cam.capture_continuous(raw, format="bgr", use_video_port=True):
frame = frame.array
hsv = cv2.cvtColor (เฟรม cv2. COLOR_BGR2HSV)
หน้ากาก = cv2.inRange (hsv, colorLower, colorUpper)
หน้ากาก = cv2.blur(หน้ากาก, (3, 3))
mask= cv2.dilate(mask, none, iterations=5)
mask= cv2.erode(mask, none, iterations=1)
mask= cv2.dilate(mask, none, iterations=3)
ฉัน thresh = cv2.threshold(mask, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours(thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)[-2]
ศูนย์ = ไม่มี
vert = 0
ฮอริซ = 0
ถ้า len(cts) > 0:
สำหรับ c ใน cnts:
(x, y) รัศมี = cv2.minEnclosingCircle(c)
ศูนย์ = (int(x), int(y))
รัศมี = int(รัศมี)
cv2.circle(เฟรม กึ่งกลาง รัศมี (0, 255, 0), 2)
x = int(x)
y = int(y)
ถ้า 180 < x < 300:
ถ้า y > 300:
vert = vert +1
เอลฟ์ y < 180:
vert = vert +1
อื่น:
vert = vert
ถ้า 180 < y < 300:
ถ้า x > 300:
ฮอริซ = ฮอริซ +1
เอลฟ์ x < 180:
ฮอริซ = ฮอริซ +1
อื่น:
ฮอริซ = ฮอริซ
ถ้า vert != initvert:
พิมพ์ "รถในเลนแนวตั้ง: " + str(vert)
initvert = vert
พิมพ์ "รถยนต์ในเลนแนวนอน: " + str(horiz)
initoriz = ฮอริซ
พิมพ์ '-----------------------------'
ถ้า horiz != initoriz:
พิมพ์ "รถในเลนแนวตั้ง: " + str(vert)
initvert = vert
พิมพ์ "รถยนต์ในเลนแนวนอน: " + str(horiz)
initoriz = ฮอริซ
พิมพ์ '-----------------------------'
ถ้า vert < horiz:
GPIO.output(23, GPIO.สูง)
GPIO.output(21, GPIO.สูง)
GPIO.output(16, GPIO.ต่ำ)
GPIO.output(25, GPIO.ต่ำ)
ถ้า horiz < vert:
GPIO.output(16, GPIO.สูง)
GPIO.output(25, GPIO.สูง)
GPIO.output(23, GPIO.ต่ำ)
GPIO.output(21, GPIO.ต่ำ)
cv2.imshow("เฟรม", เฟรม)
cv2.imshow("HSV", hsv)
cv2.imshow("Thresh", นวด)
raw.truncate(0)
ถ้า cv2.waitKey(1) & 0xFF == ord('q'):
หยุดพัก
cv2.destroyAllWindows()
GPIO. การล้างข้อมูล ()
ขั้นตอนที่ 3: Raspberry Pi และเมาท์กล้อง




3D พิมพ์เคสและติดกล้องและประกอบ
ขั้นตอนที่ 4: การประกอบสัญญาณไฟจราจร



ทดสอบสัญญาณไฟจราจรด้วยเขียงหั่นขนม ไฟ LED ที่ตรงข้ามกันแต่ละชุดใช้ขั้วบวก และทั้งหมดมีขั้วลบ (กราวด์) ร่วมกัน ควรมีสายไฟอินพุตทั้งหมด 7 เส้น: 1 เส้นสำหรับ LEDS แต่ละคู่ (6) + สายกราวด์ 1 เส้น ประสานและประกอบสัญญาณไฟจราจร
ขั้นตอนที่ 5: การเดินสายไฟ (ตอนที่ 1)




บัดกรีหมุดส่วนหัวตัวเมียกับลวดประมาณ 5 ฟุต เหล่านี้เป็นด้านที่สายเหล่านี้จะเล็ดลอดผ่านท่อพีวีซีในภายหลัง อย่าลืมแยกแยะชุดไฟต่างๆ (2 x 3 สีและ 1 กราวด์) ในกรณีนี้ ฉันทำเครื่องหมายปลายสายสีแดง สีเหลือง และสีน้ำเงินอีกชุดหนึ่งด้วยปลายแหลม เพื่อให้รู้ว่าอันไหนคืออันไหน
ขั้นตอนที่ 6: การสร้างสิ่งแวดล้อม




สร้างสิ่งแวดล้อม ทำพาเลทไม้ขนาด 2 ฟุต แบบนี้ เศษไม้ใช้ได้ดีเพราะจะคลุมไว้ เจาะรูที่พอดีกับอะแดปเตอร์ของคุณ เจาะสกรูที่ด้านข้างของพาเลทเพื่อยึดท่อพีวีซีเข้าที่ ตัดแผ่นโฟมสีดำให้เข้ากับพาเลทไม้ด้านล่าง เจาะรูที่พอดีกับท่อพีวีซี ทำซ้ำที่มุมตรงข้าม ทำเครื่องหมายถนนด้วยเทปสีขาว
ขั้นตอนที่ 7: จบโครง PVC



ที่ท่อด้านบน ให้เจาะรูที่มัดสายไฟได้ รูขรุขระนั้นใช้ได้ตราบใดที่คุณสามารถเข้าถึงด้านในของท่อได้ สอดสายไฟผ่านท่อพีวีซีและข้อต่อข้อศอกเพื่อทดสอบความพอดี เมื่อทุกอย่างเสร็จเรียบร้อยแล้ว ให้ทาสีพีวีซีด้วยสีสเปรย์สีดำเพื่อทำความสะอาดรูปลักษณ์ของโครงหลัก ตัดช่องว่างเล็ก ๆ ในท่อพีวีซีอันใดอันหนึ่งเพื่อให้พอดีกับข้อต่อตัว T เพิ่มท่อพีวีซีที่ข้อต่อ t นี้เพื่อให้สัญญาณไฟจราจรห้อยลง เส้นผ่านศูนย์กลางอาจเท่ากับโครงหลัก (1/2 ) แม้ว่าคุณจะใช้ท่อที่บางกว่า ตรวจสอบให้แน่ใจว่าสายไฟ 7 เส้นสามารถเล็ดลอดผ่านได้ เจาะรูผ่านท่อนี้เพื่อให้สัญญาณไฟจราจรห้อยลงมา
ขั้นตอนที่ 8: การเดินสายไฟ (ตอนที่ 2)



ต่อสายใหม่ทั้งหมดตามที่ทดสอบก่อนหน้านี้ ตรวจสอบสัญญาณไฟจราจรและสายไฟอีกครั้งด้วยเขียงหั่นขนมเพื่อยืนยันการเชื่อมต่อทั้งหมด ประสานสัญญาณไฟจราจรกับสายไฟที่ผ่านแขน T-joint พันสายไฟที่เปลือยเปล่าด้วยเทปพันสายไฟเพื่อป้องกันกางเกงขาสั้นและเพื่อให้ดูสะอาดตา
ขั้นตอนที่ 9: เสร็จสิ้น




ในการรันโค้ด อย่าลืมตั้งค่าซอร์สของคุณเป็น ~/.profile และ cd ไปยังตำแหน่งโครงการของคุณ
ขั้นตอนที่ 10: ความพิเศษ (ภาพถ่าย)
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)

DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)

Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)

Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)

4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)

ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-