Embeded System

LED Pixel Module จากบ้านหม้อ (ตอนที่ 1)

By April 27, 2012 June 5th, 2012 7 Comments

วันนี้เอา LED Pixel มาให้ชมกัน ช่วงนี้ คนที่อยู่กทม สังเกต ตึกในเมือง หรือ ป้ายโลโก้หลายๆที่ มีการปรับแต่งให้ทันสมัย ประดับ ไปด้วย LED ที่มีการควบคุมได้ด้วย จะเห็นได้ว่าบางป้าย มี LED เป็นร้อยๆ ดวง และ ควบคุมได้ด้วย ซึ่งมันดึงดูดสายตาได้พอสมควร

ถ้าเป็นแต่ก่อน การควบคุม LED แบบจำนวนมาก น่าจะยากครับ ยากทั้งเทคนิคการควบคุม และ ยากตรงผลิตด้วย แต่เป็นสมัยนี้ จีนเราทำได้ทุกอย่าง และ ราคาถูกด้วย กว่าเราทำเองสักอีก ถ้าไม่เน้นสีสด คุณภาพสีสม่ำเสมอกัน ผมว่าจากจีนมันก็ตอบโจทย์ได้นะครับ การทำ LED Panel ที่สีสม่ำเสมอนี้ ไม่ใช่แค่เทคนิดการควบคุมที่ดี อย่างเดียว ต้องใช้ของเกรดดีด้วย มีการคัดเกรด LED กันเลยที่ดี

วิธีการควบคุมของเขาก้อแสนง่ายด้วย ต่อสายสัญญาณ ลงกล่องควบคุม ตั้งโปรแกรม sequence ไฟ แล้วบันทึกลง SD-Card แค่นั้นก้อโปรแกรมให้ ป้ายไฟ หรือ ตึกปรับเปลี่ยนสีได้แล้ว (ที่สำคัญ ย้ำ มันถูกมากไป)

ภาพประกอบ อาคารนี้อาจจะไม่ใช้ LED Pixel นะครับ หยิบมาประกอบให้พอเข้าใจว่าเขาประดับอาคารประมาณนี้ล่ะ
รูปมาจาก The YAS Hotel in Abu Dhabi – F1 Racing and a Light Show too 

ประเด็นต่อมา

สำหรับวันนี้ผมคงไม่ทำ LED Pixel แข่งกับจีนครับ คงเน้นเอามา Hack เผื่อหาไรทำดีกว่า โดยสรุป LED Pixel มันคือ โมดุล LED แบบ RGB  หนึ่งโมดุลจะมีสามสี  ที่ประกอบไปด้วยวงจรขับที่สามารถควบคุม การจ่ายกระแสได้คงที่ให้ LED และ ควบคุมความสว่างได้ 64 ระดับ หรือ อาจได้ถึง 256 ระดับ แล้วแต่ โมดุลที่ใช้

ที่สำคัญมันมาพร้อมกับ ไอซี สั่งควบคุม ที่ใช้สัญญาณแค่ data กับ clock นั้นหมายความว่า ให้มี LED เป็นร้อย เราก้อใช้แค่สาย Power และ data 2 สายเท่านั้น

แน่นอนการส่งข้อมูล 24 bit  ผ่านสายสัญญาณแค่สองเส้น ต้องมีข้อจำกัดแน่นอนครับ ถ้าโมดุลจำนวนมากๆ เป็น พันๆ ดวง เป็นไปไม่ได้ ที่จะส่งข้อมูลให้เคลื่อนไหว เป็นภาพต่อเนื่องไม่ได้แน่ๆ ครับ การ Hack ข้อนี้ คงจะมาดูว่า ไมโครง่อยๆ เราจะทำได้แค่ไหน

ประเมินความเป็นไปได้คร่าวๆ

ลองคำนวนเบื้องตันสมมุติว่า ผมอยากจะควบคุม LED 1000 ดวง ดวงหนึ่งส่งของข้อมูล 24 บิต ในสายหนึ่งสาย ผมจะต้องส่งข้อมูลด้วยความเร็ว 24×1000 = 24kBit ต่อครั้ง

ถ้าคิดเป็นภาพเคลื่อนไหว 24 fps  แสดงว่าใน 1 วินาที ต้องส่งข้อมูลได้ 24 (bit / ดวง) x 1000 ดวง x 24 fps = 576,000 Bit/วินาที ประมาณ 5Mbit / วินาที ซึ่งยังไม่ได้คิดข้อมูล overhead ของ package ด้วยอาจจะมากกว่านี้อีกนิดหน่อยครับ และ ถ้าเราไม่ได้ serious เรื่องส่งภาพเคลื่อนไหว 24 fps อาจจะลด ปริมาณข้อมูล ได้อีก

ตอนนี้ เราต้องมาดูอยู่สองอย่าง

  1. สเป็คของ LED Module แล้วว่ารับข้อมูลความเร็วประมาณ 6 Mbit / sec ไหวหรือป่าว
  2. ไมโครที่ส่งข้อมูลเร็วขนาดนี้ ใช้อะไรได้บ้าง  ถ้าเช็คจากสเป็ค Arduino ในโหมดปกติ i/o ส่งความเร็ว 6Mbit/sec ไม่ไหวครับ  แต่ถ้าความเร็วส่ง spi น่าจะทำได้ครับ 10MBit และ ถ้าไม่ได้จะใช้ไมโครอะไรต่อดี เพราะว่า arduino อาจจะส่งข้อมูล 10Mbit/sec ได้ แต่สุดท้ายความสามารถการประมวลผล อาจจะลดลงได้

แหล่ง Resource

แรกเริ่มผมได้รู้จัก LED Pixel มาจาก adafruit ซึ่งเขา เอา LED Digital pixels มาจำหน่าย พร้อมกับตัวอย่าง โมดุลที่เขามาจำหน่ายมีทั้งแบบ strip แบบ โมดุลสีเหลี่ยม และ โมดุลวงกลม ซึ่งแต่ล่ะ โมดุลก้อจะใช้ไอซีควบคุมต่างกันครับ มีไอซีควบคุมอยู่ 3 ตัว

  • WS2801
  • LPD8806
  • LPD6803

การสั่งซื้อจากต่างประเทศนิ ค่าใช้จ่ายสูงมากๆ เทียบราคา ไม่เหมาะกับการเอามาใช้เลย ผมคิดว่าบ้านเราน่าจะมี ซึ่งที่บ้านหม้อมีอยู่ 1 ร้าน ครับ สำหรับ LED Pixel ที่ขายในบ้านหม้อ บ้านเรา มันไม่มี datasheet ให้ครับ ซึ่งก้อแน่นอนล่ะ เขาเอา led pixel พร้อมกล่องควบคุม พร้อมใช้งานมาขาย

มันไม่จำเป็นต้องมี Datasheet มาด้วย ผมก็ศึกษาจาก adafruit นี้ล่ะ จนแน่ใจว่า มันน่าจะใช่ LED Pixel ที่น่าจะเอามาใช้งานได้ แต่ที่ไม่รู้นี้มันใช้ไอซีควบคุมตัวไหน ซึ่งถ้าใครเจอ LED Pixel อื่นๆ บอกตำแหน่งที่ซื้อ กับ ราคาให้ผมหน่อยนะ จะเอามาลองอีก

ทดลอง ตอนที่หนึ่ง

อันนี้เป็น LED Pixel จากร้านที่บ้านหม้อ ราคาต่อโมดุล ผมไม่ได้ซื้อจำนวนเยอะ ตก โมดุลล่ะ 70 บาทครับ พอเอามาคำนวน จำนวน LED RGB 3 ตัว พร้อม PCB แค่นั้นก็คุ้มแล้ว ซึ่งคนขายเขาเสนอขายกล่องควบคุมมันด้วย กล่องควบคุม เสียบ SD-Card เอาไปโปรแกรมให้ LED ทำงานได้เลย เรียกได้ว่า ผมไปฝึกใช้ อาจจะแย่งงาน คนทำป้ายไฟได้เลยครับ แต่คงไม่ถึงอย่างไง

สำหรับ LED Pixel ที่ได้มา ผมยังไม่แน่ใจ ว่าไอซีที่อยู่บนตัวมันเบอร์อะไร เพราะว่าดูจากโมดุล ผมมองไม่เห็นเบอร์ไอซี แต่ที่โมดุลมีเขียนชื่อสาย data กับ clock ผมเดาว่ามันคงเป็นไอซี LPD8806 เดาจากมันใช้ช่องสัญญาณแค่ สองเส้น เป็น clock แล้ว data เหมือนกัน ผลออกมา ผมส่งสัญญาณเปลี่ยนสีโมดุลได้ แต่ดูมั่วครับ และพยายามอย่างไง แก้ไข package ข้อมูล เพื่อหาว่า bit ไหน ควบคุมอะไร ซึ่งทำอย่างไงมันก้อยังมั่ว และหาช่องสีแดงไม่เจอสักที่

แต่การทดลองนี้ ก็บอกเราได้ว่า มันใช้วิธีส่งข้อมูลแบบเดียวกัน แต่ package ข้อมูลมันต่างกันครับ หรือ ไม่ก้อมี overhead package บางอย่างที่ไม่เหมือนกัน แล้วจะ hack มันต่อได้อย่างไงล่ะ

ทดลอง ตอนที่สอง

หลังจากที่ทดสอบ รอบแรกไปแล้ว ไม่ work แต่ยังไม่หยุดครับ ผมจำได้ว่า ที่ร้าน มันมีโมดุล 3 แบบ มันน่าจะมีสักตัวสิ ที่เราหา ไอซีควบคุมได้ ผมเลยไปใหม่ ไปซื้อมาทั้งสามแบบเลย มันเป็นแบบหลอด LED 12mm , LED โมดุลกลม และ LED โมดุลเป็น Bar ครับ ซื้อมาอย่างล่ะ 2-3 ตัวครับ

image

เป็นไงเป็นกัน ถ้าหาไม่เจอ ซื้อกล่องควบคุมมา แล้วหา logic analyzer จับสัญญาณก็ได้ เข้าโหมดบ้า ซึ่งสุดท้ายผม โชดดีที่ผม หาเจอก่อนว่า เจ้าโมดุลที่ขายในบ้านหม้อ มันใช้ไอซี Adafruit LPD6803 ซึ่งโค๊ดผมหาได้จาก adafruit ขอบคุณโลกอินเตอร์เน็ท ช่วยให้ทุกอย่างเร็วขึ้นเยอะ

ตอนนี้โปรแกรมทำงานได้ถูกต้องแล้ว มีการ fade LED เปลี่ยนสี และ สีออกครบทุกช่อง RGB

 หลังจากนั้น ผมเจ้าแมวน้อยมาก้อมาร่วมแสดงความยินดี ด้วยการนอนทับ LED สักเลย

จบล่ะครับ ตอนนี้ผมควบคุม LED Pixel Module ได้แล้ว สำหรับ LPD6803 เป็นไอซีควบคุม สีได้ 15 bit เป็น Red 5 bit, Green 5 bit, Blue 5 bit คิดเป็นควบคุมได้ 32 ระดับสี ยังไม่ได้ True Color ครับ ผมว่า มองน่าจะมีขายสิ ที่ให้สีได้ True Color เดี่ยวฝากเพื่อน ช่วยตามหาด้วยล่ะกัน ใครเจอร้านขาย LED Pixel ส่งเมล์บอกตำแหน่ง หรือ แนะนำ กันมาได้เลยครับ

 

 

 

7 Comments

  • Nont says:

    เยี่ยมเลยครับ เคยสงสัยการควบคุมของมันเหมือนกัน 

  • Sootthisak Chuedee says:

    สัวัสดีครับได้อ่านบทความเกี่ยวกับ adruino แล้วรุสึกชอบอ่ะครับ แต่ก็งงเต็ก เหมือนกัน
    คือไม่ค่อยมีความรู้เกี่ยวกับไมโครคอนโทรลเลอร์เลย 

    ผมอยากรู้ว่า ที่ีเค้าทำ  Full coler Pixel LED

    http://www.youtube.com/watch?v=BqcGgACzCrI&feature=fvwrel

    อย่างใน link นี้เค้าทำกันยังไง ใช้อะไรคอนโทรล อ่ะครับ 
    ขอบคุณครับ

    • ChANg says:

       ลองไปบ้านหม้อ หรือ ร้านติดป้าย LED ดูครับ
      พวกนี้จะมีกล่องควบคุม ขายอยู่ 3-4 พัน ตั้งโปรแกรมบนคอมพิวเตอร์ แล้ว save ใส่ SD-Card  ใช้งานได้เลย
      ไม่ต้อง ยุ่งกับ ทำ controller ครับ

      • jin says:

        ติดต่อให้เขียนโปรแกรมได้ที่เบอร์ใหนคะ

  • bongza says:

    ใช่กล่อง sd card และ แบบ lan ครับ

    นำเข้าอยู่ครับ ทั้งแบบ pixel strip และ โมดูล

  • sunya says:

    ขำ แมวมึนไฟ ฮ่าๆๆๆๆๆ

Leave a Reply