โปรเจกต์นี้มันเกิดจากผมเคยสนใจจะทำ Ambilight ตาม Youtube ของฝรั่งซึ่งตอนนั้นก็ได้แต่ดูๆ แล้วก็ยังไม่มีอารมณ์จะทำมันเท่าไหร่ เลยปล่อยๆผ่านไป เวลามันก็ผ่านมาจนมีโอกาสได้คุยกับน้องในที่ทำงานเรื่องของหลอดไฟ RGB ของบริษัทผลิตหลอดไฟชั้นนำ ชื่อ 2 พยางค์ ขึ้นต้นตัว P (น่าจะพอรู้แหละ) ซึ่งเขามีหลอดไฟที่ sync กับจอ PC ได้และมีโปรแกรม control RGB ด้วย ตอนแรกผมก็เฉยๆ แต่พอได้เห็นของจริง มันว้าวววมาก เลยตัดสินลองไปค้นหาตาม Youtube ก็เจอคนทำไว้เยอะมาก พอได้ข้อมูลพอสมควรก็เริ่มหาของ สั่งซื้อของออนไลน์แล้วมาลองทำกันเลย
อุปกรณ์ที่ต้องใช้
- LED Strip WS2811 RGB color IP67 (1ic/3led) 5เมตร/300led : 1 ม้วน 720.- บาท
- Adapter power supply 220V to 12V 6A : ราคา 199.- บาท
- Arduino Nano 3.0 Mini USB : ราคา 90.- บาท
- สายไฟ, switch, connecter ผมมีอยู่แล้วเลยไม่ได้ซื้อเพิ่มครับ
โปรแกรมที่ต้องใช้
- Prismatic : https://github.com/psieg/Lightpack/releases
เริ่มทำเลย
1.) เริ่มต้นขั้นตอนแรกด้วยการเชื่อมต่อ Led Strip กับ Arduino และ adapter 12v
เริ่มจากวัดขนาดจอก่อนเพื่อให้ได้ความยาวของ LED Strip แล้วตัด led strip ให้เท่ากับขอบของจอ จากนั้นก็บัดกรีเชื่อม led strip ให้โค้งตามมุม ซึ่งผมเริ่มติด led จากมุมขวาล่างขึ้นไปมุมขวาบน (ติดตามเข็มนาฬิกา) และต่อสายไฟจาก adapter 12v เข้ากับ led strip และ ต่อสาย data จาก Arduino nano เข้ากับ led strip ที่ขา data ดูตามรูปด้านล่างนี้ได้เลยครับ
LED strip ในตลาดตอนนี้มีหลายแบบ ส่วนใน project นี้ผมเลือกใช้ LED strip RGB WS2811 ซึ่งทำงานที่ 12V แต่เป็นชนิดที่ชิพ WS2811 หนึ่งตัวจะคุม RGB LED แสดงผลสีเดียวกัน 3 ดวง มันมีราคาถูกกว่า 1 ชิพ คุม 1 ดวง
2.) Setup Arduino nano ให้ controll RGB led strip
2.1) หลังจากที่ผมได้เชื่อมต่อทุกอย่างเข้าด้วยกันแล้ว ก็มาเตรียม source code เพื่อจะเขียนมันลงไปบน Arduino nano โดยเริ่มจากดาวน์โหลดไฟล์ .ino มาก่อนจากลิงค์นี้ครับ https://github.com/Wifsimster/adalight_ws2812 เมื่อเราได้ไฟล์มาแล้วก็ทำการแตกไฟล์ .zip ออกมาและดับเบิลคลิกไฟล์ Adalight_WS2812.ino ตามรูปด้านล่างนี้เลยครับ ( ถ้าใครยังไม่มี Arduino IDE ก็ให้ดาวน์โหลดมาติดตั้งก่อนนะครับ เพื่อที่จะสามารถ upload program ไปที่ Arduino board ได้นั้นเองครับ
2.2) copy FastLED library ไปวางใน path library ของ Arduino IDE เพื่อให้ source code Adalight เรียก library ไปใช้งานด้วย
2.3) Arduino IDE กับ Source code ที่เตรียมไว้ ซึ่งเราจะแก้ไขในส่วนของตัวแปร NUM_LEDS เป็นจำนวน chip ws2811 โดยในงานนี้ผมนับได้ทั้งหมด 30 chip ส่วน DATA_PIN นั้นก็แล้วแต่ความสะดวกของ Arduino ที่เราใช้เลยครับ
2.4) ตั้งค่า Arduino IDE ให้ตรงกับ Arduino board ที่เราต้องการจะ upload program จากนั้นก็จัดการ Upload program ที่เตรียมไว้เข้าไปที่ Arduino nano เสร็จแล้วเราก็ใกล้พร้อมใช้งานแล้วครับ
ขั้นตอนสุดท้ายตั้งค่าโปรแกรม primatik
ดาวน์โหลดโปรแกรม primatik https://github.com/psieg/Lightpack/releases และแตกไฟล์ .zip ออกมาจะเจอไฟล์สำหรับใช้ install program Prismatik.unofficial.64bit.Setup.5.11.2.23.exe จากนั้นดับเบิลคลิกจะเข้าสู่ wizard window ตามรูป
Screen grabbing ( Mode ที่ LED จะเปลี่ยนสีตามสีของหน้าจอ) ซึ่งจะมีการตั้งค่าเพิ่มได้ว่าจะเปลี่ยนสีตามโซนหรือจะให้เฉลี่ยสีตามหน้าจอ
1. Mood lamp ( Mode ที่จะเปลี่ยนสีไปเรื่อยๆ โดยจะมี Mode ย่อยๆ 3 โหมด )
2. Static ( Mode ที่สีจะเปลี่ยนไปเรื่อยๆ ทีละสี)
3. Fire ( Mode ที่สีจะเปลี่ยนไปเรื่อยๆ และจะติดวนไปตามขอบจอภาพ
4. RGB is Life ( Mode เปลี่ยนสีเป็นสีรุ้ง วนไปเรื่อยๆ)
5. Sound visualization ( Mode เปลี่ยนสีตามเสียงที่ออกมาจาก Sound device )
สำเร็จแล้วววววว Ambilight
สิ่งที่ได้จากโปรเจ็กต์นี้
ได้เรียนรู้การใช้ Arduino เพื่อทำโปรเจ็กต์นี้ ซึ่งตอนเริ่มก็ยังงงๆ แต่ก็ผ่านไปได้