สารบัญ:
- ขั้นตอนที่ 1: มีความทะเยอทะยาน? อาจจะ
- ขั้นตอนที่ 2: การเขียนโค้ดสำหรับหน่วยควบคุม
- ขั้นตอนที่ 3: NRF24L01 Mod บอร์ดฝ่าวงล้อม
- ขั้นตอนที่ 4: หน่วยสัญญาณไฟจราจร
- ขั้นตอนที่ 5: สัญญาณไฟจราจรและการทดสอบ
- ขั้นตอนที่ 6: ทางแยก
- ขั้นตอนที่ 7: เสร็จสิ้นทั้งหมด
วีดีโอ: ระบบสัญญาณไฟจราจร 4 ทิศทางโดยใช้ 5 Arduinos และ 5 โมดูลไร้สาย NRF24L01: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
เมื่อไม่นานมานี้ฉันได้สร้างคำสั่งสอนโดยมีรายละเอียดสัญญาณไฟจราจรคู่เดียวบนเขียงหั่นขนม
ฉันยังสร้าง 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 และบอร์ดฝ่าวงล้อม 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: สัญญาณไฟจราจรและการทดสอบ
นั่นคือรหัสที่เสร็จสมบูรณ์และการควบคุมแบบสแตนด์อโลนแต่ละรายการก็เสร็จสมบูรณ์เช่นกัน ทั้งหมดที่ฉันต้องการตอนนี้คือสัญญาณไฟจราจรเอง
อย่างที่ฉันพูดไปก่อนหน้านี้ ฉันพบโมเดลที่ไม่ซับซ้อนใน Thingiverse และจัดการพิมพ์แปดแบบที่ดูไม่เลวเกินไป
ฉันติดตั้ง LEDS ด้วยตัวต้านทาน 200 โอห์มที่ต้องการและลิงค์และสายกราวด์
หดท่อตะกั่วและติดกาวร้อนทั้งหมดเข้าที่
ฉันตัดสินใจทาให้เป็นสีดำหลังจากติดตั้งไฟ LED ทั้งหมดแล้ว คิดไม่ดี ฉันควรทำอย่างนั้นก่อน
ฉันวางสายทุกอย่างไว้สำหรับการทดสอบก่อนที่จะดำเนินการต่อไป
ขั้นตอนที่ 6: ทางแยก
ฉันตัดสินใจติดมันทั้งหมดบนกระดาน ดังนั้นตอนนี้ฉันต้องสร้างทางแยกที่เหมือนกัน
ฉันอาศัยอยู่ในสหราชอาณาจักรดังนั้นเราจึงขับรถผิดทางของถนนที่นี่ ดังนั้นฉันจึงทำให้ทางแยกของฉันเป็นมิตรกับสหราชอาณาจักรเนื่องจากทักษะด้านศิลปะที่ไม่ดีของฉันจะเอื้ออำนวย
สิ่งนี้ค่อนข้างตรงไปตรงมา ใช้เวลาเพียง; และฉันแน่ใจว่าไม่มีทางแยกที่ดูเหมือนอย่างนั้นจริงๆ แต่ของฉันไม่มีหลุมบ่อ
ฉันไม่ต้องการเสียสละ Arduinos ของฉันกับโครงการนี้อย่างถาวร ดังนั้นฉันจึงประนีประนอมโดยใส่แต่ละอันที่มีข้อขัดแย้ง 10 มม. และติดกาวที่ขัดแย้งกับฐานของบอร์ด
สิ่งที่ฉันทำคือกาวแผ่นเขียงหั่นขนมขนาดเล็กที่ด้านข้างของ Arduino
ประการแรก มันถือ NRF24L01 และกระดานฝ่าวงล้อมออกจากฐานของทางแยก
และประการที่สอง ฉันไม่ค่อยใช้ Arduino โดยไม่มีเขียงหั่นขนม ดังนั้นพวกมันจึงยังคงมีประโยชน์เช่นนั้น
ขั้นตอนที่ 7: เสร็จสิ้นทั้งหมด
รวมไฟล์รหัสทั้งหมดแล้ว
ฉันไม่ได้อ่านรหัสที่นี่เนื่องจากคำแนะนำนี้ยาวพอหากไม่มี
ฉันหวังว่านี่จะเป็นคำแนะนำที่เป็นประโยชน์แม้ว่าจะแสดงเฉพาะวิธีการควบคุมบอร์ด Arduino อื่น ๆ จำนวนหนึ่งแบบไร้สายด้วย NRF24L01 ที่มีราคาสมเหตุสมผลมาก
หากคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะแสดงความคิดเห็นและเราจะพยายามอย่างเต็มที่เพื่อช่วย
แนะนำ:
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
รีโมทไร้สายโดยใช้โมดูล NRF24L01 2.4Ghz พร้อม Arduino - Nrf24l01 ตัวรับส่งสัญญาณ 4 ช่อง / 6 ช่องสำหรับ Quadcopter - เฮลิคอปเตอร์ Rc - เครื่องบิน Rc โดยใช้ Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)
รีโมทไร้สายโดยใช้โมดูล NRF24L01 2.4Ghz พร้อม Arduino | Nrf24l01 ตัวรับส่งสัญญาณ 4 ช่อง / 6 ช่องสำหรับ Quadcopter | เฮลิคอปเตอร์ Rc | เครื่องบิน Rc โดยใช้ Arduino: เพื่อใช้งานรถ Rc | Quadcopter | โดรน | เครื่องบิน RC | เรือ RC เราต้องการเครื่องรับและเครื่องส่งเสมอ สมมติว่าสำหรับ RC QUADCOPTER เราต้องการเครื่องส่งและเครื่องรับ 6 ช่องสัญญาณ และ TX และ RX ประเภทนั้นมีราคาแพงเกินไป ดังนั้นเราจะสร้างมันขึ้นมาบน
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ
Arduino Wireless Combination Lock พร้อม NRF24L01 และ 4 Digit 7 Segment Display: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino Wireless Combination Lock พร้อม NRF24L01 และ 4 Digit 7 Segment Display: โปรเจ็กต์นี้เริ่มต้นชีวิตด้วยการออกกำลังกายเพื่อทำบางสิ่งด้วยจอแสดงผล 4 หลัก 7 เซ็กเมนต์ สิ่งที่ฉันได้คือความสามารถในการป้อนตัวเลข 4 หลักรวมกัน แต่เมื่อ มันจบแล้ว มันค่อนข้างน่าเบื่อ ฉันสร้างมันโดยใช้ Arduino UNO