สารบัญ:

LED Art รถถัง. FadeCandy + RPi: 3 ขั้นตอน
LED Art รถถัง. FadeCandy + RPi: 3 ขั้นตอน

วีดีโอ: LED Art รถถัง. FadeCandy + RPi: 3 ขั้นตอน

วีดีโอ: LED Art รถถัง. FadeCandy + RPi: 3 ขั้นตอน
วีดีโอ: รถถังไทยใน WT | War Thunder 2024, พฤศจิกายน
Anonim

โดย KroloFollow เพิ่มเติมโดยผู้เขียน:

โดมศิลปะเครื่องสาย
โดมศิลปะเครื่องสาย
โดมศิลปะเครื่องสาย
โดมศิลปะเครื่องสาย
แถบ LED UV Ship
แถบ LED UV Ship
แถบ LED UV Ship
แถบ LED UV Ship

ในคำแนะนำนี้ฉันจะสาธิตวิธีการแมป 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 แรกของฉัน มันสนุกและฉันหวังว่าการแสดงรหัสของฉันจะช่วยคุณบางคนได้

แนะนำ: