สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โดย KroloFollow เพิ่มเติมโดยผู้เขียน:
ในคำแนะนำนี้ฉันจะสาธิตวิธีการแมป LED กับรูปร่างที่ไม่สม่ำเสมอโดยใช้กระดานลูกกวาด 3 อัน Fade, Raspberry Pi3 และความพยายามครั้งแรกที่ python เพื่อนของฉันมอบหมายให้ฉันอัพเกรดรถศิลปะของพวกเขาที่มีรูปร่างเหมือนรถถัง ดังนั้นฉันจึงนำแนวคิดนั้นมาออกแบบใหม่ กระดาน FadeCandy เป็นผลิตภัณฑ์ adafruit จึงมีบทช่วยสอนการตั้งค่าที่ยอดเยี่ยม:https://learn.adafruit.com/1500-neopixel-led-curta…
คำแนะนำนี้สร้างขึ้นจากการตั้งค่าพื้นฐานนั้น
สำหรับโครงการนี้วัสดุดังต่อไปนี้:
ไม้อัด 1/2 แผ่น 5 แผ่น (ต้องแน่ใจว่าเป็นไม้อัดอย่างดี)
987 WS2811 ไฟ LED กลางแจ้ง
1 ราสเบอร์รี่ Pi
3 Fade Candy Boards และสาย USB ขนาดเล็ก
30a 5v psu
20v 5v psu (นี่คือสิ่งที่ฉันได้วางไว้)
3 ตัวนำ 22awg ลวด (ควั่น)
กาวซิลิโคน x 4 หลอด
สีสเปรย์ Cameo x 8 กระป๋อง
เครื่องมือที่ใช้:
สว่านไร้สาย
ดอกสว่าน 15/32
เลื่อยวงเดือน
จิ๊กซอว์
เครื่องซีเอ็นซี (อุปกรณ์เสริม)
โต๊ะเลื่อย
เครื่องขัดสายพาน
เครื่องขัด Dremel
ขั้นตอนที่ 1: ออกแบบ ตัด และลงสี
อันดับแรก ฉันเริ่มต้นด้วยการวัดโครงสร้างที่มีอยู่ ในกรณีนี้คือรถกอล์ฟ ด้านหนึ่งจะทำจาก 2 แผงและด้านประตูมี 3 เนื่องจากไฟ LED ห่างกัน 3 ฉันจึงตัดสินใจทำระยะห่าง 2 1/2 รางถังฉันทำจากไม้อัด 1 x 2 x 1/2 ที่ตัดบน เลื่อยโต๊ะและขัดด้วยเครื่องขัดสายพาน เฟืองและลูกกลิ้งที่ฉันทำด้วยเครื่องซีเอ็นซีของฉัน ทำเครื่องหมายรูปแบบกริดอย่างระมัดระวัง ฉันเจาะล่วงหน้าด้วยบิตเล็กน้อยก่อนเพื่อให้ 15/32 บิตไม่เดิน ฉันใช้เดรเมล เครื่องขัดเพื่อปัดเศษแต่ละรูทั้งด้านหน้าและด้านหลัง เมื่อใส่ LEDs ที่คุณต้องการเพิ่มประสิทธิภาพสูงสุด ไม่ต้องกังวลว่าตัวเลขใดที่อยู่ถัดจากนั้น เราจะมากังวลเกี่ยวกับพวกเขาในภายหลัง เท่าไหร่ที่พอดีกับร่างกายที่สุด ฉันใช้ clear กาวซิลิโคนเพื่อยึดแต่ละอันไว้ที่ระดับความลึกที่ถูกต้องฉันไม่มีเวลาพอที่จะทำตัวเชื่อมต่อดังนั้นฉันจึงบัดกรีของส่วนใหญ่เข้าที่
ขั้นตอนที่ 2: การกำหนดหมายเลขและการทำแผนที่
แต่ละพอร์ตบนลูกอมจางสามารถรองรับไฟ LED ได้ถึง 64 ดวง เราใช้ขนาดที่เปลี่ยนแปลงได้สำหรับแต่ละเกลียวขึ้นอยู่กับการออกแบบที่วาง ฉันเริ่มทำเครื่องหมาย LED แต่ละดวงด้วยเครื่องหมาย แต่แล้วก็ลงเอยด้วยการทำเครื่องหมายที่หมายเลขสิ้นสุด นี่เป็นส่วนที่น่าเบื่อหน่ายในการนับและใส่ลงในสเปรดชีต excel (ฉันชอบใช้ open office) ขึ้นอยู่กับว่าคุณใส่ LED ในอาร์เรย์แนวนอนหรือแนวตั้ง คุณสามารถใช้คุณสมบัติป้อนอัตโนมัติเพื่อทำให้ง่ายขึ้น หลังจากที่แต่ละด้านถูกแมปใน excel แล้ว เราสามารถใช้พวกมันเพื่อจัดเรียงอาร์เรย์รอบๆ โค้ดได้ คุณยังสามารถส่งออกสเปรดชีตเป็น csv เพื่อเพิ่มลงในโค้ดของคุณได้อย่างรวดเร็ว ฉันรีบทิ้งตัวเลข (341) ไว้ระหว่างกระดานและแทนที่จะเขียนใหม่ทั้งหมด ในที่สุดฉันก็ใช้มันเป็นตัวยึดว่างเพื่อสร้างอาร์เรย์หลายมิติที่มีความยาวเท่ากัน
ในไฟล์ fcserver.json โปรดทราบว่าฉันใช้แถบ LED 50 แถบเป็นส่วนใหญ่ แต่ไม่เสมอไป จึงต้องปรับตัวเลข
ขั้นตอนที่ 3: การเข้ารหัส
ฉันมีเวลาเพียงไม่กี่ชั่วโมงที่ดีในการเขียนโค้ดสิ่งนี้ก่อนที่มันจะต้องเปิดตัว ดังนั้น ยกโทษให้ฉันหากมีบางส่วนที่ไม่มีประสิทธิภาพ ก่อนอื่นฉันย้ายฟังก์ชันล้อจากรหัส neopixel ของ Arduino เพื่อให้เราสามารถทำให้ตัวเลขหนึ่งสีง่ายขึ้นแทนที่จะเป็นสาม จากนั้นฉันก็คัดลอกตัวเลขจากสเปรดชีตไปยังอาร์เรย์ว่าฉันต้องการเรียงลำดับอย่างไร ดังนั้นจึงสร้างเฟรมของแอนิเมชัน การวนซ้ำผ่านอาร์เรย์หลายมิติทำให้สิ่งต่าง ๆ ง่ายขึ้น แต่ต้องการให้มีความยาวเท่ากัน ดังนั้นฉันจึงแทนที่ LED ที่ฉันไม่ได้ใช้เพื่อทำให้อาร์เรย์เท่ากัน ฉันลงเอยด้วยรูปแบบการทดสอบบวกสองฟังก์ชันที่ดี
มีหลายวิธีในการเริ่มโปรแกรมเมื่อบูต ฉันแก้ไขไฟล์ xyz.desktop สำหรับผู้ใช้เริ่มต้น และเพิ่มบรรทัดเพื่อเริ่มสคริปต์ python ดังนั้นจึงไม่จำเป็นต้องดำเนินการอื่นใดเพื่อให้สิ่งนี้สว่างขึ้นเมื่อเปิดเครื่อง
สำหรับโครงการ Python แรกของฉัน มันสนุกและฉันหวังว่าการแสดงรหัสของฉันจะช่วยคุณบางคนได้