2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โปรเจ็กต์นี้แสดงวิธีทำเอฟเฟกต์เทียนที่ดูสมจริงสำหรับใช้เช่นใน Paper Lanterns ใช้บอร์ด NodeMCU (ESP8266) เพื่อขับเคลื่อน NeoPixels หรือที่เรียกว่า WS2812 LED ดูวิดีโอในส่วนผลลัพธ์เพื่อดูการเปรียบเทียบกับเทียนจริง
ขั้นตอนที่ 1: ฮาร์ดแวร์
ไฟ LED WS2812 เป็นไฟ LED สีเต็มรูปแบบที่เชื่อมต่อแบบอนุกรม ระบุตำแหน่งแยกกันได้ และสามารถตั้งค่าส่วนประกอบสีแดง สีเขียว และสีน้ำเงินได้ระหว่าง 0 ถึง 255
จากโปรเจ็กต์ก่อนหน้านี้ ฉันมีแถบไฟเหลืออยู่ เนื่องจากมีระยะห่างระหว่าง LED ฉันจึงเลือกใช้ LED 4 ดวงต่อหนึ่งโคม
เช่นเดียวกับโปรเจ็กต์ WS2812 ทั้งหมด ขอแนะนำให้เพิ่มตัวต้านทานขนาดเล็กในช่องข้อมูลแรก (สายกลาง) และนอกจากนี้ให้เพิ่มตัวเก็บประจุใกล้กับแหล่งจ่ายไฟ เพาเวอร์แอมป์ขึ้นอยู่กับจำนวนไฟ LED
ขั้นตอนที่ 2: ซอฟต์แวร์
ในโครงการนี้ LED ไม่ได้ขับเคลื่อนโดย Arduino แต่เป็นบอร์ด NodeMCU (ESP8266) ที่มี MicroPython
ขั้นตอนแรกคือการแฟลชเฟิร์มแวร์ micropython ตามคู่มือนี้: เริ่มต้นใช้งาน MicroPython บน ESP8266
จากนั้นจึงสามารถใช้เพื่อขับเคลื่อนไฟ LED ได้ดังที่แสดงในข้อ 11 การควบคุม NeoPixels
บนกระดานของฉัน Machine.pin(4) คือ D2 (ดังที่เห็นในภาพ) อย่าลืมเชื่อมต่อ gnd กับ LED
ในการทำให้ไฟ LED กะพริบเหมือนเทียนจริง ฉันเขียนโปรแกรมหลามขนาดเล็กซึ่งสุ่มอัปเดตไฟ LED แต่ละดวงตามการกระจายแบบเกาส์เซียนที่พบในความคิดเห็นของบทความนี้:
โปรแกรม (main.py) สร้างอ็อบเจ็กต์ LED_light ได้มากตามที่ระบุไว้ในค่าคงที่ LED_COUNT
โดยการเปลี่ยนความยาวและความเข้มของแสงแบบสุ่ม ทำให้เกิดเอฟเฟกต์ที่สวยงาม
ความน่าจะเป็น สุ่ม LED ความสว่าง 50% 77% – 80% (แทบสังเกตไม่เห็น) 30% 80% – 100% (สังเกตได้ชัดเจนมาก, ซิมอากาศกะพริบ) 5% 50% – 80% (เปลวไฟที่เห็นได้ชัดมาก) 5% 40% – 50% (เปลวไฟที่สังเกตเห็นได้ชัดเจนมาก) 10% 30% – 40% (เปลวไฟที่เห็นได้ชัดเจนมาก) ทั้งหมดนี้ด้วยเวลาการทำให้เป็นจริงแบบเกาส์เซียน ความน่าจะเป็น เวลาสุ่ม 90% 20 ms 3% 20 – 30 ms 3% 10 – 20 ms 4% 0 – 10 ms
ที่มา: ความคิดเห็นของ Eric ใน
ขั้นตอนที่ 3: ผลลัพธ์
ผลลัพธ์ให้เอฟเฟกต์ที่ดีราวกับว่ามีลมพัดทำให้เทียนสั่นไหว
ในวิดีโอที่สอง ตะเกียงที่ด้านหลังเป็นแบบ LED และโคมที่อยู่ด้านหน้าเป็นเทียนจริงสำหรับการเปรียบเทียบ