ลองทำ Ambilight

โปรเจกต์นี้มันเกิดจากผมเคยสนใจจะทำ Ambilight ตาม Youtube ของฝรั่งซึ่งตอนนั้นก็ได้แต่ดูๆ แล้วก็ยังไม่มีอารมณ์จะทำมันเท่าไหร่ เลยปล่อยๆผ่านไป เวลามันก็ผ่านมาจนมีโอกาสได้คุยกับน้องในที่ทำงานเรื่องของหลอดไฟ RGB ของบริษัทผลิตหลอดไฟชั้นนำ ชื่อ 2 พยางค์ ขึ้นต้นตัว P (น่าจะพอรู้แหละ) ซึ่งเขามีหลอดไฟที่ sync กับจอ PC ได้และมีโปรแกรม control RGB ด้วย ตอนแรกผมก็เฉยๆ แต่พอได้เห็นของจริง มันว้าวววมาก เลยตัดสินลองไปค้นหาตาม Youtube ก็เจอคนทำไว้เยอะมาก พอได้ข้อมูลพอสมควรก็เริ่มหาของ สั่งซื้อของออนไลน์แล้วมาลองทำกันเลย

อุปกรณ์ที่ต้องใช้

  • สายไฟ, switch, connecter ผมมีอยู่แล้วเลยไม่ได้ซื้อเพิ่มครับ

โปรแกรมที่ต้องใช้

เริ่มทำเลย

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 ตามรูป

หน้าต่าง Setup โปรแกรม Prismatik เลือกภาษาในการติดตั้งโปรแกรม
wizard Lightpacks discovery ให้เลือก Setup another device จากนั้นกด Next
หน้าต่าง Select connected device เลือก Adalight(Serial, 511LEDs) จากนั้นกด Next
หน้าต่าง Device configuration เลือก Serial port ที่เชื่อมต่อระหว่าง computer กับ arduino | Baud rate ให้เลือก 115200 | Color format เลือก RBG จากนั้น กด Next
หน้าต่าง Choose monitor ให้เลือก monitor ที่เราต้องการใช้ร่วมกับ Ambilight ถ้ามีหลาย monitor ก็สามารถเลือกได้เลยครับ
หน้าต่าง Choose profile ให้กด + เพื่อตั้งชื่อ profile ที่เราต้องการ
หน้าต่าง Zone placement ให้ใส่ Number of LEDs ตามจำนวน chip LED และโปรแกรมจะมีกรอบสี่เหลี่ยมพร้อมตัวเลขแทน ld ของ LED ให้เราลากกรอบสี่เหลี่ยมไปตามขอบของหน้าจอ
หน้าต่าง White balance เราสามารถปรับแสง LED ให้ตรงกับสีของจอเรา เมื่อปรับจนพอใจแล้วก็กด Finish ได้เลยครับ
ดับเบิ้ลคลิกไอค่อนโปรแกรม Prismatik ที่หน้า desktop แล้วเข้าสู่โลกแห่งแสงสีกันได้เลยครับ
หน้าตาของโปรแกรม Prismatik จะมี Mode ต่างๆให้เลือกใช้

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 เพื่อทำโปรเจ็กต์นี้ ซึ่งตอนเริ่มก็ยังงงๆ แต่ก็ผ่านไปได้