สารบัญ:
วีดีโอ: ภาพเคลื่อนไหวเกล็ดหิมะ / สตาร์ไลท์ LED Strip: 5 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
คำแนะนำเล็ก ๆ เกี่ยวกับวิธีการสร้างของตกแต่งคริสต์มาสด้วยแถบ LED ที่ฉันเหลือจากโครงการอื่น มีไฟล์แผน ซอฟต์แวร์ และแอนิเมชั่น โครงการนี้ได้รับแรงบันดาลใจจากวิดีโอ YouTube ต่อไปนี้
ขั้นตอนที่ 1: สร้างแบบจำลอง Snowflake / Star
ขั้นตอนแรกคือการวางแผนโครงสร้างรองรับสำหรับ LED ซึ่งใช้ Inkscape แนวคิดคือการมีเกล็ดหิมะที่มีดาวอยู่ภายใน ความกว้างได้รับเลือกให้เป็นความกว้างของแถบสองแถบเพื่อให้สามารถสร้างทุกอย่างได้ด้วยแถบเดียว
ขั้นตอนที่ 2: สร้างการสนับสนุน
ฐานรองทำจากไม้และประกอบด้วยกาวร้อน
ขั้นตอนที่ 3: Soder LED Strips
แถบ LED ถูกตัดให้มีความยาวที่เหมาะสมสำหรับแต่ละส่วนแล้วบัดกรีพร้อมกับสายไฟที่เตรียมไว้ ใช้เวลานานและฉันขอแนะนำให้ใช้ LED บนสายไฟแทนการตัดแถบ
ขั้นตอนที่ 4: ไดร์เวอร์ LED
ในโครงการนี้ LED ไม่ได้ขับเคลื่อนโดย Arduino แต่เป็นบอร์ด NodeMCU (ESP8266) ที่มี MicroPython
ขั้นตอนแรกคือแฟลชเฟิร์มแวร์ micropython ด้านบนตามคู่มือนี้: เริ่มต้นใช้งาน MicroPython บน ESP8266 จากนั้นจึงสามารถใช้เพื่อขับเคลื่อนไฟ LED ได้ดังที่แสดงในข้อ 11 การควบคุม NeoPixels
บนกระดานของฉัน Machine.pin(4) คือ D2 (ดังที่เห็นในภาพ) อย่าลืมเชื่อมต่อ gnd กับ LED
ขั้นตอนที่ 5: ซอฟต์แวร์และแอนิเมชั่น
ซอฟต์แวร์ที่เขียนด้วย Python สามารถดาวน์โหลดได้บน GitHub ของฉัน
ไฟล์ main.py จัดการการเล่นภาพเคลื่อนไหว สามารถมีโหมดนาฬิกาที่แสดงเวลาเป็นเปอร์เซ็นต์ของจำนวน LED ได้ และยังมีแอนิเมชั่นทั้งหมดที่แสดงในวิดีโอซึ่งสามารถคัดลอกได้จากไฟล์ animations.txt แอนิเมชั่นทำให้เราเป็นโมดูล snowflake_esp.py ซึ่งมีคลาส Snowflake เพื่อจัดการกับส่วนต่างๆ ของโครงสร้างได้อย่างง่ายดาย ดังนั้นจึงเป็นไปได้ที่จะควบคุมไฟ LED ทั้งหมดเข้าด้วยกันหรือเฉพาะส่วนดาว หรือต้นไม้ ใบไม้ หรือลำตัวของแขนแต่ละข้าง ลงไปที่ LED แต่ละตัว
ตัวอย่างเช่น:
จาก snowflake_esp นำเข้า *sf = Snowflake(0)
off = Color(0, 0, 0) def wait(ms): time.sleep(ms/1000.0) --- ดาวขนาดใหญ่และขนาดเล็กที่มีการเปลี่ยนสีเป็นเกล็ดหิมะ y = สี (255, 220, 0) sf.paint(ปิด) sf.star.color(y) wait(1000) sf.star.paint(ปิด) sf.trees.color(w) wait(1000) sf.trees.trunk.paint(off) sf.trees.leaf.color(y) รอ (1000)