สารบัญ:

ระบบสัญญาณไฟจราจร 4 ทิศทางโดยใช้ 5 Arduinos และ 5 โมดูลไร้สาย NRF24L01: 7 ขั้นตอน (พร้อมรูปภาพ)
ระบบสัญญาณไฟจราจร 4 ทิศทางโดยใช้ 5 Arduinos และ 5 โมดูลไร้สาย NRF24L01: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบสัญญาณไฟจราจร 4 ทิศทางโดยใช้ 5 Arduinos และ 5 โมดูลไร้สาย NRF24L01: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบสัญญาณไฟจราจร 4 ทิศทางโดยใช้ 5 Arduinos และ 5 โมดูลไร้สาย NRF24L01: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino Wireless Traffic Lights Test 2024, พฤศจิกายน
Anonim
Image
Image
ทะเยอทะยาน? อาจจะ!
ทะเยอทะยาน? อาจจะ!

เมื่อไม่นานมานี้ฉันได้สร้างคำสั่งสอนโดยมีรายละเอียดสัญญาณไฟจราจรคู่เดียวบนเขียงหั่นขนม

ฉันยังสร้าง Instructable อีกอันที่แสดงเฟรมเวิร์กพื้นฐานสำหรับการใช้โมดูลไร้สาย NRF24L01

นี่ทำให้ฉันคิดได้!

มีมือสมัครเล่นจำนวนมากทั่วโลกที่สร้างเมืองจำลองและทางรถไฟ และมักจะมีสัญญาณไฟจราจรอธิบายอยู่บ้าง

บางรุ่นเป็นแบบจำลองการทำงาน และบางรุ่นมีจุดประสงค์เพื่อความสวยงามเท่านั้น

ฉันสามารถสร้างแบบจำลองการทำงานของระบบสัญญาณไฟจราจรสี่ทางและเชื่อมต่อแบบไร้สายได้หรือไม่?

ฉันนั่งลงและคิดถึงรายการข้อกำหนดที่เป็นไปได้ของฉัน ที่ไปแบบนี้นิดหน่อย

ควบคุมการจราจร 4 ทิศทาง เช่น ทางแยก

แต่ละทิศทางมีไฟสองดวง และแต่ละคู่จะได้รับคำแนะนำแบบไร้สายจากชุดควบคุมบางประเภท

สามารถกำหนดและแก้ไขลำดับการทำงานของไฟได้

  • 1, 2, 3, 4 - ตามเข็มนาฬิกา
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2 – ทวนเข็มนาฬิกา
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4 – 2 เมื่อ 2 ปิด
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

การจัดลำดับทั้งหมดจะถูกควบคุมโดยชุดควบคุมเดียว และหน่วยรับจะทำหน้าที่เปิดและปิดไฟเพียงอย่างเดียว

เมื่อฉันพูดว่าสร้างแบบจำลอง ฉันหมายถึง สร้างแบบจำลองจริง ไม่มีอะไรหรูหราเกินไป แต่มีบางอย่างที่จะดูเหมือนของจริง อาจจะเป็น ish

ขั้นตอนที่ 1: มีความทะเยอทะยาน? อาจจะ

ข้อกำหนดของชิ้นส่วนหลัก:

ชุดควบคุมและไฟสี่ชุด = Arduinos ห้าตัวและโมดูลไร้สายห้าชุด AliExpress เพื่อช่วยชีวิต (อีกครั้ง)

ป้ายไฟจราจรแปดจุด ฉันมีเครื่องพิมพ์ 3D ลอกเลียนแบบที่ไม่ดี ซึ่งมีแนวโน้มที่จะจัดหาอาหารสัตว์ถังขยะมากกว่าผลิตภัณฑ์ที่ใช้งานได้ แต่ฉันคิดว่าฉันจะลองดู ฉันพบบางอย่างใน Thingiverse

www.thingiverse.com/thing:2157324

โมเดลนี้ดูซับซ้อนน้อยที่สุดสำหรับเครื่องพิมพ์ของฉัน ฉันต้องการแปดดังนั้นฉันยังคงผลักดันโชคของฉัน เมื่อปรากฏว่า ฉันพบว่าหลังจากพยายามไม่สำเร็จสองสามครั้ง หากฉันปรับทิศทางของโมเดลไปในทิศทางใดทิศทางหนึ่ง (จากด้านหน้าไปด้านหลัง) ฉันก็ได้ผลลัพธ์ที่สมเหตุสมผล โดยรวมแล้วฉันพิมพ์สิบสามเล่มและได้แปดอันที่ใช้งานได้

นั่นคือรายการชิ้นส่วนหลักที่จัดเรียง ส่วนที่เหลือฉันมีอยู่แล้ว

รายการชิ้นส่วนทั้งหมดคือ

  • 5 x Arduino UNOs
  • 5 x NRF24L01 บอร์ดไร้สาย
  • 5 x YL-105 (หรือใกล้เคียง) กระดานฝ่าวงล้อมสำหรับ NRF24L0s
  • 8 x ไฟ LED สีแดง
  • ไฟ LED สีเหลือง 8 ดวง (ฉันไม่มีไฟ LED สีส้ม)
  • 8 x ไฟ LED สีเขียว
  • ไฟ LED RGB 4 ดวง
  • ตัวต้านทาน 28 x 220 โอห์ม
  • เขียงหั่นขนม / PCBs??
  • 8 x โมเดลสัญญาณไฟจราจร
  • ส่วนหัวพินยาว 6 x 8 (อันที่หกสำหรับเว้นระยะห่างบนแผงควบคุม ดูวิดีโอ)
  • ท่อหด
  • สายจัมเปอร์
  • ฮาร์ดบอร์ดหรืออะไรแบนๆ
  • ไม้ชิ้นอื่นๆ ??
  • สี ??
  • กาวร้อน
  • เวลา ความอดทน และเครื่องดื่มแอลกอฮอล์ที่เลือกได้

ขั้นตอนที่ 2: การเขียนโค้ดสำหรับหน่วยควบคุม

นี่เป็นส่วนเล็กๆ ที่ฉันต้องทำก่อน เผื่อว่าฉันไม่สามารถจัดการมันได้จริงๆ

นี่เป็นส่วนที่ซับซ้อนที่สุดหรือโครงการ แต่ก็น่าสนใจที่สุดสำหรับฉันเช่นกัน

ฉันต้องนั่งลงและกำหนดชุดค่าผสมที่เป็นไปได้ทั้งหมดของการเปลี่ยนแปลงของแสงและวิธีที่พวกเขาจะทำงานร่วมกันแบบซิงโครนัส

เช่นเดียวกับการออกแบบที่ดีทั้งหมด มันเริ่มต้นบนกระดาษด้วยรายการตัวเลขที่ยาวมาก และเนื่องจากฉันต้องการให้มีลำดับการทำงานที่เป็นไปได้หลายรายการ รายการจึงยาวขึ้นอีก

แต่เมื่อฉันมีความสุขที่ฉันมีทุกอย่างที่ฉันคิดว่าจำเป็น และหลังจากดูหน้าตัวเลขมาระยะหนึ่ง OCD ของฉันก็เริ่มทำงาน และฉันก็เริ่มเห็นรูปแบบต่างๆ

เมื่อจัดระเบียบรูปแบบ ฉันสามารถจัดเรียงลำดับทั้งหมดลงในอาร์เรย์ 3 มิติเดียวและอาร์เรย์ 2 มิติ 2 มิติได้

ทั้งหมดที่ฉันต้องทำตอนนี้คือหาวิธีจัดการอาร์เรย์เหล่านั้นเพื่อสร้างลำดับที่ถูกต้องและขั้นตอนแบบเบา

ใช้เวลาสักครู่ แต่ฉันจัดการให้สำเร็จด้วยโค้ดน้อยกว่าห้าสิบบรรทัด รวมถึงความคิดเห็น ฯลฯ

โค้ดนี้ไม่เหมาะสำหรับคนใจเสาะ แต่ถ้าคุณเข้าใจอาร์เรย์หลายมิติ ก็ไม่ควรทำตามยากเกินไป หรือเส้นโค้งการเรียนรู้สำหรับส่วนที่เหลือ

ประเด็นคือฉันเชื่อว่ามันใช้ได้ผลและไม่ควรต้องเปลี่ยนแปลงเลย แต่…………

ขั้นตอนที่ 3: NRF24L01 Mod บอร์ดฝ่าวงล้อม

NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod
NRF24L01 กระดานฝ่าวงล้อม Mod

น่าเสียดายที่โมดูล NRF24L01 และบอร์ดฝ่าวงล้อม YL-105 ไม่เป็นมิตรกับเขียงหั่นขนม

กระดานฝ่าวงล้อมไปเป็นส่วนหนึ่งในการแก้ไขปัญหาและที่สำคัญกว่านั้นทำให้ทน 5v แต่ก็ยังไม่เป็นมิตรกับเขียงหั่นขนม

ดังนั้นฉันจึงมีความคิดสร้างสรรค์เล็กน้อย

ในคอลเล็กชัน 'สิ่งของ' ของฉัน ฉันมีส่วนหัวของหมุด 6 อันพร้อมหมุดยาว การเรียงลำดับที่จำเป็นสำหรับการสร้าง Arduino Shields

ฉันหยิบหนึ่งในเหล่านี้แล้วงอหมุดที่ 90 องศา

ฉันถอดรางไฟอันหนึ่งออกจากเขียงหั่นขนมแล้วเสียบส่วนหัวเข้ากับขอบของเขียงหั่นขนม

นั่นเหลือพินเพาเวอร์บนกระดานฝ่าวงล้อม ตอนนี้พวกเขากำลังขวางทาง

ดังนั้นฉันจึงถอดมันออกแล้ววางไว้ที่อีกด้านหนึ่งของกระดานฝ่าวงล้อมเพื่อให้ตอนนี้ยื่นออกมาจากด้านหลังของกระดาน

สำหรับวัตถุประสงค์ของคำแนะนำนี้ ฉันต้องการโมดูล NRF24L01 ห้าโมดูล ดังนั้นฉันจึงติดตั้งโมดูลทั้งหมดบนเขียงหั่นขนม จากนั้นจึงยึดรางจ่ายไฟตามหมุดจ่ายไฟทั้งหมดบนบอร์ดฝ่าวงล้อม

มันดูค่อนข้างเป็นระเบียบจนกระทั่งฉันเชื่อมต่อ Arduinos และมันก็ค่อนข้างแออัด

นอกจากนี้ ซึ่งเป็นส่วนสำคัญ เมื่อเชื่อมต่อรางไฟฟ้าแล้ว Arduinos ทั้งหมดจะเชื่อมต่อกับแหล่งเดียวกัน และนั่นคือสิ่งที่ฉันพยายามหลีกเลี่ยง ดังนั้นฉันจึงแยกส่วนส่วนใหญ่อีกครั้ง

ฉันจะเก็บบอร์ดไว้กับโมดูล NRF24L01 สองสามตัวสำหรับการสร้างต้นแบบในอนาคต เพื่อไม่ให้เสียเวลาโดยสิ้นเชิง

ขั้นตอนที่ 4: หน่วยสัญญาณไฟจราจร

หน่วยสัญญาณไฟจราจร
หน่วยสัญญาณไฟจราจร
หน่วยสัญญาณไฟจราจร
หน่วยสัญญาณไฟจราจร
หน่วยสัญญาณไฟจราจร
หน่วยสัญญาณไฟจราจร

ฉันพบเขียงหั่นขนม 170 จุดผูกเล็ก ๆ สิ่งเหล่านี้ไม่มีรางไฟฟ้าดังนั้นบอร์ดฝ่าวงล้อมที่ดัดแปลงของฉันยังคงพอดี แม้จะเอียงเล็กน้อยเพราะความสูงของแผ่นฝ่าวงล้อม

ฉันสร้างสัญญาณไฟจราจรสี่ดวงที่ควบคุมสายไฟสีเดียวกัน การวางตำแหน่ง ฯลฯ ตอนนี้พวกมันเป็นแบบสแตนด์อโลนอย่างแท้จริง

สำหรับชุดควบคุม ฉันใส่โมดูล NRF24L01 บน PCB ที่มีไฟ LED RGB ฉันใช้ RGB เพราะแม้ว่าฉันไม่จำเป็นต้องเห็นแสงทั้งหมด แค่สีแดงและสีเขียว แต่ก็ใช้พื้นที่น้อยลง

เชื่อมต่อ LED กับ Arduino ตามปกติและเพิ่มรหัสเล็กน้อยเพื่อแสดงสถานะสีแดงหรือสีเขียวของสัญญาณไฟจราจรแต่ละชุด

ฉันพยายามปรับให้เข้ากับสีของสายไฟเพื่อให้เห็นได้ง่ายว่าได้ทำบางอย่างที่ต่างไปจากเดิมหรือไม่

ฉันมีชุดลีด Dupont แบบสั้น และเนื่องจากลีดติดกัน จึงทำให้ส่วนนี้ค่อนข้างง่าย

NRF24L01:

  • CE Orange To Arduino pin 10 (กำหนดในรหัส)
  • CSN Yellow To Arduino pin 9 (กำหนดในรหัส)
  • SCK Green To Arduino pin 13 (บังคับ)
  • MOSI Blue To Arduino pin 11 (บังคับ)
  • MISO Purple ถึง Arduino pin 12 (บังคับ)
  • Vcc สีแดงถึง 5v. หากคุณไม่ได้ใช้บอร์ดฝ่าวงล้อม ต้องเป็น 3.3v
  • GND สีน้ำตาลถึง Arduino GND

หน่วยไฟและหมุด Arduino ไปยัง LEDs:

  • สีแดงสำหรับ LED สีแดง
  • สีส้มสำหรับไฟ LED สีเหลือง (ฉันไม่มีไฟ LED สีส้ม)
  • สีเขียวสำหรับ LED สีเขียว
  • สีดำสำหรับ GND

ส่วนเบี่ยงเบนเดียวของฉันจากสิ่งนี้คือเมื่อฉันเชื่อมต่อ Control Arduino กับ LED RGB ฉันใช้สายสีขาวและสีเทาเพราะฉันใช้สายสีแดงหมดแล้ว

ขั้นตอนที่ 5: สัญญาณไฟจราจรและการทดสอบ

Image
Image
สัญญาณไฟจราจรและการทดสอบ
สัญญาณไฟจราจรและการทดสอบ
สัญญาณไฟจราจรและการทดสอบ
สัญญาณไฟจราจรและการทดสอบ

นั่นคือรหัสที่เสร็จสมบูรณ์และการควบคุมแบบสแตนด์อโลนแต่ละรายการก็เสร็จสมบูรณ์เช่นกัน ทั้งหมดที่ฉันต้องการตอนนี้คือสัญญาณไฟจราจรเอง

อย่างที่ฉันพูดไปก่อนหน้านี้ ฉันพบโมเดลที่ไม่ซับซ้อนใน Thingiverse และจัดการพิมพ์แปดแบบที่ดูไม่เลวเกินไป

ฉันติดตั้ง LEDS ด้วยตัวต้านทาน 200 โอห์มที่ต้องการและลิงค์และสายกราวด์

หดท่อตะกั่วและติดกาวร้อนทั้งหมดเข้าที่

ฉันตัดสินใจทาให้เป็นสีดำหลังจากติดตั้งไฟ LED ทั้งหมดแล้ว คิดไม่ดี ฉันควรทำอย่างนั้นก่อน

ฉันวางสายทุกอย่างไว้สำหรับการทดสอบก่อนที่จะดำเนินการต่อไป

ขั้นตอนที่ 6: ทางแยก

ทางแยก
ทางแยก
ทางแยก
ทางแยก
ทางแยก
ทางแยก
ทางแยก
ทางแยก

ฉันตัดสินใจติดมันทั้งหมดบนกระดาน ดังนั้นตอนนี้ฉันต้องสร้างทางแยกที่เหมือนกัน

ฉันอาศัยอยู่ในสหราชอาณาจักรดังนั้นเราจึงขับรถผิดทางของถนนที่นี่ ดังนั้นฉันจึงทำให้ทางแยกของฉันเป็นมิตรกับสหราชอาณาจักรเนื่องจากทักษะด้านศิลปะที่ไม่ดีของฉันจะเอื้ออำนวย

สิ่งนี้ค่อนข้างตรงไปตรงมา ใช้เวลาเพียง; และฉันแน่ใจว่าไม่มีทางแยกที่ดูเหมือนอย่างนั้นจริงๆ แต่ของฉันไม่มีหลุมบ่อ

ฉันไม่ต้องการเสียสละ Arduinos ของฉันกับโครงการนี้อย่างถาวร ดังนั้นฉันจึงประนีประนอมโดยใส่แต่ละอันที่มีข้อขัดแย้ง 10 มม. และติดกาวที่ขัดแย้งกับฐานของบอร์ด

สิ่งที่ฉันทำคือกาวแผ่นเขียงหั่นขนมขนาดเล็กที่ด้านข้างของ Arduino

ประการแรก มันถือ NRF24L01 และกระดานฝ่าวงล้อมออกจากฐานของทางแยก

และประการที่สอง ฉันไม่ค่อยใช้ Arduino โดยไม่มีเขียงหั่นขนม ดังนั้นพวกมันจึงยังคงมีประโยชน์เช่นนั้น

ขั้นตอนที่ 7: เสร็จสิ้นทั้งหมด

ทุกอย่างเสร็จเรียบร้อย
ทุกอย่างเสร็จเรียบร้อย
ทุกอย่างเสร็จเรียบร้อย
ทุกอย่างเสร็จเรียบร้อย

รวมไฟล์รหัสทั้งหมดแล้ว

ฉันไม่ได้อ่านรหัสที่นี่เนื่องจากคำแนะนำนี้ยาวพอหากไม่มี

ฉันหวังว่านี่จะเป็นคำแนะนำที่เป็นประโยชน์แม้ว่าจะแสดงเฉพาะวิธีการควบคุมบอร์ด Arduino อื่น ๆ จำนวนหนึ่งแบบไร้สายด้วย NRF24L01 ที่มีราคาสมเหตุสมผลมาก

หากคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะแสดงความคิดเห็นและเราจะพยายามอย่างเต็มที่เพื่อช่วย

แนะนำ: