บรรยากาศแบบโฮมเมดสำหรับทีวี แสงพื้นหลังทีวีแบบไดนามิก จับภาพด้วยเว็บแคม

  • บทช่วยสอน

วิดีโอที่แสดงไฟแบ็คไลท์แบบพิกเซลดูน่าประทับใจทีเดียว - การสาดหลากสี การสะท้อนแบบไดนามิกดูสวยงามและดูเคลื่อนไหวมากกว่าเมื่อเทียบกับไฟแบ็คไลท์ประเภทอื่นที่คล้ายคลึงกัน
ความปรารถนาที่จะทำงานกับไฟที่ควบคุมได้โดยใช้ Arduino ทำให้ฉันสร้างระบบดังกล่าว ปรากฎว่านี่เป็นเหตุการณ์ที่ค่อนข้างง่ายซึ่งใช้เวลาทั้งหมดเพียงไม่กี่ชั่วโมง (อันที่จริงการก่อสร้างใช้เวลา 10 นาทีส่วนที่เหลือเป็นซอฟต์แวร์) ฉันจะสรุปรายละเอียดของกระบวนการประกอบและการเขียนโปรแกรมในบทความนี้ รวมซอฟต์แวร์ บทสรุป และการสาธิตไว้ด้วย

ฮาร์ดแวร์

สำหรับแสงสว่างดังกล่าว เราจำเป็นต้องมีรายการและอุปกรณ์ต่อไปนี้:

แผนภาพ (หากคำที่น่าภาคภูมิใจนี้เหมาะสำหรับการเชื่อมต่อผลิตภัณฑ์สองรายการด้วยสายสี่เส้น) แสดงในรูป:

กระบวนการประกอบนั้นง่ายอย่างเหลือเชื่อ ไม่มีประโยชน์ที่จะอธิบายโดยละเอียด (ด้วยเหตุผลเดียวกันนี้ไม่มีรูปถ่ายของ "ผลิตภัณฑ์" ที่เสร็จแล้ว - มี Arduinos มากมายที่มีสายสี่เส้นบนอินเทอร์เน็ต)

  1. ประสานทุกอย่างตามที่แสดงในแผนภาพ
  2. เชื่อมต่อสายไฟเข้ากับ Arduino เชื่อมต่อ Arduino เข้ากับพีซีและเชื่อมต่อแหล่งจ่ายไฟ
  3. อัปโหลดภาพร่างไปยัง Arduino (ดูด้านล่าง) เรียกใช้ไฟล์ปฏิบัติการบนคอมพิวเตอร์ (ดูลิงก์ไปยังซอฟต์แวร์ด้านล่าง) ตั้งค่าพอร์ต COM ที่ต้องการในโปรแกรม
    หากคุณใช้ Windows Vista/7 อย่าลืมปิดการใช้งาน Aero ไม่เช่นนั้นความเร็วของการทำงานก็น่าเสียดายมาก เท่าที่ฉันเข้าใจ เมื่อเปิดใช้งาน Aero จะไม่สามารถแก้ปัญหาความเร็วของการจับภาพหน้าจอต่ำได้
  4. ตรวจสอบให้แน่ใจว่าทุกอย่างใช้งานได้ ปิดเครื่อง
    ควรกล่าวว่าซอฟต์แวร์ใช้งานได้ ในรูปแบบสี 32 บิตเท่านั้น- สิ่งนี้สามารถแก้ไขได้อย่างง่ายดาย แต่ในความคิดของฉัน การแก้ไขดังกล่าวไม่ได้มีประโยชน์อะไรมากนัก
  5. ติดเทปเข้ากับจอภาพ คุณต้องเดินเทปจากมุมซ้ายล่างรอบๆ ขอบในทิศทางตามเข็มนาฬิกา (LN->LV->PV->PN->LN) ไม่จำเป็นต้องตัดอะไรเลย เทปโค้งงอได้ดีเกือบทุกที่จึงไม่มีปัญหา เพื่อยึดให้แน่นหนา ฉันใช้เทปสองหน้า - เทปมีน้ำหนักเบามากและนี่ก็เกินพอแล้ว
เสร็จสิ้นการประกอบ สิ่งที่เหลืออยู่คือการนับและกำหนดจำนวนพิกเซลในแนวตั้งและแนวนอน และคุณสามารถดูวิดีโอ เล่น ฯลฯ และชื่นชมยินดี

ส่วนซอฟต์แวร์

ส่วนซอฟต์แวร์ประกอบด้วยสององค์ประกอบ:
  • ร่างสำหรับ Arduino;
  • โปรแกรมควบคุมสำหรับพีซี
ร่างสำหรับ Arduino
คุณต้องอัปโหลดโค้ดด้านล่างลงใน Arduino มีการใช้ไลบรารี SmallUART (ซึ่งไม่ได้ทำอะไรโดดเด่นเป็นพิเศษ หากคุณต้องการ คุณสามารถใช้เครื่องมือมาตรฐานได้)
/*** รหัส ARDUINO สำหรับ PIXEL LIGHT ***/ #include #รวม ไม่ได้ลงนามนานครั้งสุดท้าย; // แถบเวลาได้รับการอัปเดตครั้งล่าสุด const ยาวที่ไม่ได้ลงนาม fadeTimeout = 3000; //////////////////////////////////////////////// // ///////// // การตั้งค่าเป็นโมฆะ () ( UART_Init (115200); SPI.begin (); SPI.setBitOrder (MSBFIRST); SPI.setDataMode (SPI_MODE0); SPI.setClockDivider (SPI_CLOCK_DIV8); blackoutAll () ; ล่าช้า (1); LastTime = มิลลิวินาที (); ) //////////////////////// ///////////////// // void loop() ( uint8_t data; UART_SendByte("R"); // ไบต์ "เราพร้อมแล้ว" bool valid = false; data = uartRead (ถูกต้อง); ถ้า (ถูกต้อง) ( uint16_t pix_num = data * 3; // รวมไบต์ต่อไปนี้สำหรับ (uint16_t i=0; i< pix_num; i++) { data = uartRead(valid); if (!valid) break; SPI.transfer(data); // Transfer byte to SPI } lastTime = millis(); } if (millis() - lastTime >fadeTimeout) ไฟดับทั้งหมด (); ) //////////////////////////////////////////////// / /////////// // ปิดไฟ LED 256 ดวงที่เป็นไปได้ทั้งหมด ถือเป็นโมฆะ blackoutAll () ( สำหรับ (int16_t i = 0; i< 768; i++) SPI.transfer(0); //погасить все пикселы ленты } //////////////////////////////////////////////////////////// // Read byte with timeout unsigned char uartRead(bool& valid) { uint8_t res = 0; valid = false; for (uint8_t i = 0; i < 255; ++i) { // Max timeout 256*10 if(UART_ReadByte(res)) { valid = true; break; } delayMicroseconds(10); } return res; }

ทุกอย่างง่ายมากที่นี่:

  1. เราส่งสัญญาณว่าเราพร้อมรับข้อมูลแบ็คไลท์
  2. เราคาดหวังข้อมูลภายในระยะเวลาอันสั้น
  3. หากข้อมูลมาถึงแล้ว ไบต์แรกของข้อมูลนี้คือจำนวนไดโอดที่กำลังให้บริการ คูณด้วย 3 (RGB) เพื่อหาจำนวนไบต์ที่ตามมา
  4. เราส่งต่อข้อมูลที่ได้รับไปยังฟีด
  5. เราอัปเดตการประทับเวลาเกี่ยวกับการอัปเดตฟีดครั้งล่าสุด (ซึ่งจำเป็นสำหรับการหมดเวลาและการเว้นว่างพิกเซลทั้งหมดของฟีด)
โปรแกรมพีซี
ดูเหมือนว่าจะมีวิธีแก้ปัญหาสำเร็จรูปสำหรับสิ่งนี้ แต่ฉันไม่ชอบสิ่งที่ฉันเห็นอย่างเด็ดขาดและโดยทั่วไปแล้วมันไม่น่าสนใจเลย อาจไร้ประโยชน์ที่ Arduino กำลังใช้งานอยู่ ดังนั้นในขณะที่เคี้ยวแซนด์วิช ฉันจึงเขียนโปรแกรมด้วยเท้าซ้ายเพื่อจับภาพพื้นที่ของหน้าจอ ประมวลผลและถ่ายโอนข้อมูลที่จำเป็นไปยังเทป โปรแกรมทั้งหมดมีอยู่ใน GitHub ที่ github.com/sergrt/pixie (อย่าตำหนิฉันสำหรับรหัส)
ใช้ Qt 5.0.1 - เพื่อประโยชน์ ไม่มีการใช้สิ่งพิเศษในเวอร์ชันนี้ ดังนั้นมันจะทำงานได้ดีและการแก้ไข 4 ครั้งล่าสุดทำโดยใช้คลาสใหม่ ดังนั้นตอนนี้ซอร์สโค้ดจึงเข้ากันไม่ได้กับเวอร์ชัน 4. เนื่องจากฉันทำความบันเทิงส่วนใหญ่บน Windows โปรเจ็กต์จึงถูกสร้างขึ้นมาเพื่อมัน - Visual Studio 2012, การจับภาพ GDI หรือ DirectX ฉันพยายามสร้างไฟล์ .pro สำหรับ Qt Creator โดยสุจริต แต่กระบวนการนี้ยุ่งยากมากกับ VS Qt Add-in ใหม่ ท้ายที่สุดแล้วไฟล์เหล่านี้ไม่ได้ผลทันที ฉันจึงไม่ต้องกังวลใจที่จะคิดออกแต่ทุกอย่างสามารถคอมไพล์ได้ภายใต้ Linux โดยไม่มีปัญหาใดๆ ดู UPD #3
การตั้งค่าโปรแกรม
การตั้งค่าหลักคือการระบุจำนวน LED ในแนวตั้งและแนวนอน ตลอดจนระบุขนาดของพื้นที่ที่จับภาพ ขนาด 22 นิ้วของฉันใส่ได้ 10 ชิ้นในแนวตั้งและ 17 ชิ้นในแนวนอน:


มีความสมเหตุสมผลในการตั้งค่าขีดจำกัดอัตราเฟรมไว้ที่ประมาณ 30 ค่า "0" ใช้เพื่อทำงานด้วยความเร็วสูงสุดที่เป็นไปได้

คุณต้องระบุพอร์ตสำหรับการแลกเปลี่ยนกับ Arduino และความเร็วในการแลกเปลี่ยนอย่างถูกต้อง ความเร็วเริ่มต้นในแบบร่างคือ 115200:

มีการสร้างแท็บ "การประมวลผล" แยกต่างหากเพื่อปรับความสว่าง เกณฑ์การตอบสนอง และขีดจำกัด พารามิเตอร์ที่แสดงมีการปรับเปลี่ยนแบบเรียลไทม์:

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

เล็กน้อยเกี่ยวกับด้านในของซอฟต์แวร์สำหรับผู้ที่สนใจ
แนวคิดหลักคือการเปิดเธรดที่ดึงพื้นที่ตามกลไกที่กำหนด ด้วย fps ที่ปรับได้ และถ่ายโอนพื้นที่เหล่านี้เพื่อการประมวลผลและถ่ายโอนไปยังเทปในภายหลัง พื้นที่จะถูกบันทึกตามการตั้งค่า (ใครจะคิดได้) สีพิกเซลจะถูกกำหนดโดยค่าเฉลี่ยอย่างง่ายของช่อง RGB สามช่องของพื้นที่หน้าจอที่เกี่ยวข้อง คุณสามารถเลือกเปิดใช้งาน (โดยใช้คำสั่งของตัวประมวลผลล่วงหน้า) การแปลงเป็น Lab และหาค่าเฉลี่ยได้ แต่โค้ดชิ้นนี้ไม่ได้รับการปรับให้เหมาะสม แต่อย่างใด (นำมาจากอินเทอร์เน็ต) ทำให้ช้าลง ดังนั้นจึงถูกปิดใช้งานโดยค่าเริ่มต้น ยิ่งไปกว่านั้น ข้อดีพิเศษใดๆ ของ Lab ไม่อาจสังเกตเห็นได้ชัดเจนในบริบทของงานนี้ ดังนั้นจึงไม่ใช่เหตุผลที่จะต้องเสียใจ
พื้นที่ได้รับการประมวลผลในแนวตั้งและแนวนอน และลำดับของสีจะถูกส่งไปยังเทป โดยเริ่มจากมุมล่างซ้ายแล้วตามเข็มนาฬิกาไปรอบปริมณฑล (วิธีเดียวกับที่เราพันเทปรอบจอภาพระหว่างการประกอบ)
การจับ DirectX มีความเร็วเท่ากันโดยประมาณในการจับภาพด้วย GDI แม้ว่าในกรณีแรกจะจับภาพทั้งหน้าจอและในกรณีที่สอง - เฉพาะส่วนที่จำเป็นเท่านั้น อาจมีพื้นที่สำหรับการเพิ่มประสิทธิภาพที่นี่
การใช้ memcpy จำนวนมากนั้นสัมพันธ์กับความเร็วของการดำเนินการเป็นหลัก - วิธีการอื่น ๆ ทั้งหมดได้รับการพิสูจน์แล้วว่าช้ากว่าหนึ่งระดับหรืออย่างอื่น

บทสรุปและความประทับใจ

การสำรองความสว่างของเทปนั้นใหญ่มาก ซึ่งถือว่าดี - คุณสามารถใช้งานได้แม้ในที่ที่มีแหล่งกำเนิดแสงอื่น ในความมืดสนิท ควรเลื่อนแถบเลื่อนและทำให้นุ่มนวลขึ้น ตัวเทปสามารถใช้เป็นแหล่งแสงอิสระได้ดี คุณเพียงแค่ต้องร่างภาพใหม่
ฉันเชื่อว่าเส้นทแยงมุมของจอภาพ/ทีวีมีความสำคัญมาก ใหญ่กว่าดีกว่า.
คุณควรติดตั้งหน้าจอเพื่อไม่ให้มีพื้นผิวใกล้เคียงที่ LED สะท้อน (ในกรณีของฉันนี่คือพื้นผิวด้านข้างของลำโพง) - นี่ไม่สำคัญอย่างยิ่ง แต่จะดีกว่าถ้าไม่มีพิกเซลที่โดดเด่นคมชัด มองเห็นได้เลย - เนื่องจากมีระยะห่างที่พอเหมาะจึงไม่ส่งผลดีที่สุดต่อภาพ

สิ่งที่ฉันชอบ:
การรับชมวิดีโอและเล่นเกมที่มีแสงด้านหลังช่วยให้ดวงตาผ่อนคลาย - การโฟกัสที่ภาพบนจอภาพจะหายไป ความรู้สึกเมื่อยล้าของดวงตาจะเกิดขึ้นในภายหลังหากคุณไม่ทำให้ความสว่างมากเกินไป อย่างน้อยการดูวิดีโอก็ไม่ใช่เรื่องปกติเพื่อให้ได้ผลเต็มที่ควรทำจากระยะไกล

สิ่งที่ฉันไม่ชอบ:
ไม่มีการร้องเรียนเป็นพิเศษเกี่ยวกับระบบแบ็คไลท์ แต่ดังที่ได้กล่าวไปแล้ว เพื่อความเพลิดเพลินอย่างสมบูรณ์ คุณต้องมีสภาพแวดล้อมที่เหมาะสม - การไม่มีพื้นผิวที่มีแสงสะท้อน พื้นหลังสีสม่ำเสมอด้านหลังหน้าจอ ฯลฯ ในระหว่างการใช้งานปรากฎว่าการออกแบบที่ถูกใจของจอภาพของฉันค่อนข้างรบกวนการทำงานปกติของเทป - แผงด้านหน้าทำจากพลาสติกใสและยื่นออกมาเหนือฝาหลังตลอดเส้นรอบวงทั้งหมดหลายมิลลิเมตรโดยเฉพาะที่ยื่นออกมาที่ด้านล่าง . ดังนั้นแม้ว่าเทปจะถูกยึดไว้ค่อนข้างไกล แต่ LED แต่ละดวงก็สามารถมองเห็นได้ที่ขอบของแผงนี้ เชื่อว่าน้อยคนจะเจอแบบนี้แต่ยังคงให้ข้อมูลไว้ล่วงหน้า

ด้านล่างนี้เป็นวิดีโอที่แสดงให้เห็นว่ามีลักษณะอย่างไรในไดนามิก เจ้าหน้าที่ต้องขออภัยที่ขอบฟ้าถูกปิดกั้น

การแนะนำ

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

ดังนั้นเราจึงต้องการ:

  • Arduino ใดๆ (UNO, Nano ไม่สำคัญ)
  • สามารถสั่งซื้อแถบ LED WS2812B ขนาด 1 ถึง 2 เมตรซึ่งคุณสามารถอ่านได้ใน Aliexpress ฉันแนะนำให้คุณใช้ LED 60 ดวงต่อเมตรเพื่อให้ได้ผลลัพธ์ที่ดีขึ้น แต่ 30 ดวงจะทำได้
  • เทปกาวสองหน้าหรือกาวบางชนิด
  • แหล่งพลังงาน 5V 2A (เช่น เครื่องชาร์จจากแท็บเล็ต)
  • ตัวต้านทาน 220 โอห์ม
  • เครื่องมือบัดกรี
  • ซอฟต์แวร์ที่จำเป็นสำหรับคอมพิวเตอร์ ได้แก่ Arduino IDE, AmbiBox, ไลบรารีสำหรับ Arduino IDE - FastLed

มาเริ่มกันเลย.

การเชื่อมต่อ

แถบ LED มีหน้าสัมผัสสามช่อง - บวก (+), กราวด์ (G, GND) และอินพุต (IN) และยังมีลูกศรแสดงทิศทางของสัญญาณตามแถบ งานของเราคือตัดแถบ LED 4 ชิ้นด้วยวิธีนี้ เพื่อให้แถบบนเท่ากับล่างขวา-ซ้าย เราจะวัดโดยติดเทปจากด้านหลังจอภาพ โดยทั่วไปคุณต้องทำตามภาพด้านล่าง

สิ่งสำคัญคือจำนวน LED ที่ด้านบนและด้านล่างจะเท่ากัน และด้านขวาและด้านซ้ายก็เหมือนกัน คุณต้องคำนึงถึงทิศทางของลูกศรบนเทปและประสานตามลำดับดังในภาพ
ตอนนี้เราต้องเชื่อมต่อเทปกับ Arduino ตามแผนภาพ:

ค่าลบจากกำลังไปที่พิน G บนเทปและพิน GND บน Arduino เอง Plus จะไปที่พิน (+) บนเทปโดยตรงและสายควบคุมจะผ่านตัวต้านทานจากเทปไปยังพอร์ตที่ต้องการ สิ่งสำคัญคือการจำพอร์ต

จริงๆ แล้วการเชื่อมต่อเสร็จสมบูรณ์แล้วที่นี่

การตั้งค่า

เปิด Arduino IDE ที่ติดตั้งแล้วติดตั้งไลบรารี FastLed (ในเมนูด้านบนเลือก "Sketch" - "เชื่อมต่อไลบรารี" - "เพิ่มไลบรารี ZIP" และเลือกไฟล์เก็บถาวรที่ดาวน์โหลดพร้อมกับไลบรารี)

ตอนนี้ใช้ Arduino IDE อัปโหลดภาพร่างไปยัง Arduino:

#include "FastLED.h" #define NUM_LEDS 44 // จำนวน LED #define PIN 6 // พอร์ตที่ใช้ต่อสายควบคุม #define serialRate 115200 // Adalight จะส่ง "Magic Word" (คำนำหน้า) ก่อนส่งข้อมูล uint8_t คำนำหน้า = ("A", "d", "a"), สวัสดี, แท้จริง, chk, i; // เริ่มต้นฟีด ไฟ LED CRGB; การตั้งค่าเป็นโมฆะ () ( FastLED.addLeds (leds, NUM_LEDS); // การทดสอบ LED. LEDS.showColor (CRGB (255, 0, 0)); ความล่าช้า (500); LEDS.showColor (CRGB (0, 255, 0) ); LEDS.showColor(CRGB(0, 0, 255)); LEDS.showColor(0, 0, 0)); ("Ada\n"); เชื่อมต่อกับโปรแกรม ) void loop() ( // รอไบต์แรกจากคำวิเศษ for(i = 0; i< sizeof prefix; ++i) { waitLoop: while (!Serial.available()); // Проверка следующего байта из магического слова. if(prefix[i] == Serial.read()) continue; // В противном случае начинаем все с начала. i = 0; goto waitLoop; } // Ждем старший и младший байт, а так же контрольную сумму. while (!Serial.available()); hi = Serial.read(); while (!Serial.available()); lo = Serial.read(); while (!Serial.available()); chk = Serial.read(); // Если контрольная сумма не совпала, начинаем все с начала. if (chk != (hi ^ lo ^ 0x55)) { i = 0; goto waitLoop; } memset(leds, 0, NUM_LEDS * sizeof(struct CRGB)); // Получаем данные и настраиваем соответствующий светодиод. for (uint8_t i = 0; i < NUM_LEDS; i++) { byte r, g, b; while(!Serial.available()); r = Serial.read(); while(!Serial.available()); g = Serial.read(); while(!Serial.available()); b = Serial.read(); leds[i].r = r; leds[i].g = g; leds[i].b = b; } // Отобразить новое состояние ленты. FastLED.show(); }

ก่อนที่จะเติมคุณจะต้องระบุจำนวน LED ทั้งหมดที่คุณมีและพอร์ตที่คุณบัดกรีสายควบคุม
ฉันมีไฟ LED 44 ดวงและใช้พอร์ตที่ 6
หากคุณมีเทปและ Arduino เชื่อมต่อกับแหล่งจ่ายไฟแล้ว หลังจากกรอกแบบร่างแล้ว เทปควรกะพริบเป็นสามสี หากไม่เกิดขึ้น ให้ถอดสาย USB ออกแล้วเสียบใหม่อีกครั้ง

ตอนนี้เราต้องติดตั้งโปรแกรม AmbiBox
ระหว่างการติดตั้งโปรแกรมจะถามว่าจะใช้อุปกรณ์ตัวไหนเราต้องระบุ อดาไลท์.
ในนั้นเราต้องไปที่แท็บ "ไฟแบ็คไลท์จอภาพอัจฉริยะ"

จากนั้นคลิก "การตั้งค่าเพิ่มเติม" ฟังก์ชั่นทั้งหมดจะปรากฏขึ้น

เราจำเป็นต้องระบุพอร์ตที่ Arduino เชื่อมต่ออยู่ (หมายเลข 1 ในภาพ)
เราต้องระบุจำนวน LED ที่เราได้รับ (หมายเลข 2 ในภาพ)
เลือกวิธีการจับภาพหน้าจอ ขึ้นอยู่กับคุณแล้ว ทดลองและเลือกสิ่งที่เหมาะกับคุณ ฉันใช้วิธี Windows 8 (หมายเลข 3 ในภาพ)
คุณยังสามารถคลิก "แสดงโซนการจับภาพ" (หมายเลข 4) และกำหนดค่าในขณะที่วางเทป ดี. ตัวอย่างเช่น หากคุณมีมุมที่ไม่มีไฟ LED ก็สามารถเลื่อนโซนได้
อย่าลืมเปิดใช้งานการทำงานอัตโนมัติด้วย Windows ในแท็บ "การตั้งค่าโปรแกรม"
นั่นคือทั้งหมดที่ ทุกอย่างควรจะทำงานได้แล้ว

วีดีโอ

โปรดเปิดใช้งานจาวาสคริปต์เพื่อให้ความคิดเห็นทำงานได้

เพื่อลดความคิดเห็นเกี่ยวกับชุดว่ายน้ำลงเล็กน้อย ฉันจะเล่าประสบการณ์ของฉันในการสร้างแสงแบ็คไลท์แบบไดนามิกสำหรับทีวี หยุดสร้าง habr จากชะมด
ส่วนสำคัญ แสงไฟยังคงเป็นแถบ LED ดังนั้นฉันจึงตัดสินใจใส่ไว้ในชื่อเรื่อง แม้ว่าจะมีส่วนประกอบอีกสองสามอย่างที่เกี่ยวข้องกับการก่อสร้างก็ตาม

หากคุณต้องการติดไฟแบ็คไลท์ให้กับทีวีที่ไม่ใช่ของ Philips มานานแล้ว แต่กลัวที่จะลอง ให้ลองดู มันง่ายกว่าที่คิด

สำหรับผู้เริ่มต้น วิดีโอสั้น ๆ เกี่ยวกับผลลัพธ์


ในขณะนี้ - แบ็คไลท์ทำงานได้ดียิ่งขึ้น - ในการตั้งค่าฉันตั้งค่าความสว่างให้สูงขึ้นและอัตรารีเฟรชสูงขึ้น ตอนนี้ในภาพยนตร์แอคชั่นหรือฉากในคลับ (เมื่อมีแสงแฟลชในเฟรม) - ผนังทั้งหมดเรียบง่าย ระเบิดด้วยแสง

วิธีการทำนั้นค่อนข้างง่าย:
+
+
+
กล้าหน่อย=.
แอมเบียนท์

รายละเอียดเพิ่มเติมเกี่ยวกับประเด็นต่างๆ:
1 ฉันมีมาลินกาแล้วในเวลานั้น ฉันซื้อมันที่นั่นใน Amazon แต่ฉันคิดว่าต้นกำเนิดไม่ได้มีบทบาทที่นี่ - บอร์ดเป็นหนึ่งเดียวและคุณสามารถซื้อได้ทุกที่ - สิ่งสำคัญคือฉันไม่แนะนำให้ซื้อของมือสอง หลังจากทำงานที่ความถี่สูงสุดโดยไม่มีตัวแผ่รังสีเพิ่มเติมมาระยะหนึ่ง มันก็เริ่มมีข้อผิดพลาด ฉันชอล์กว่ามันร้อนเกินไป แต่ก็อาจเป็นเพียงข้อบกพร่องจากการผลิตก็ได้ ราสเบอร์รี่มีความไวต่อแหล่งพลังงานอย่างมาก ดังนั้นควรตุนแหล่งจ่ายไฟปกติที่มีระดับระลอกคลื่นต่ำทันที... (และเพื่อไม่ให้ลดลงภายใต้ภาระงาน)
2 เทปจริง ฉันคิดว่ามันใช้งานได้ค่อนข้างดีในวิดีโอ ไม่มีอะไรพิเศษในตัวเทปฉันตัดชิ้นส่วนออกเพื่อให้มีเพียงพอสำหรับทีวีทั้ง 3 ด้าน ฉันบัดกรีส่วนโค้งด้วยลวดเป็นชิ้น ๆ (ตอนแรกฉันทำการเชื่อมต่อโดยใช้ตัวเชื่อมต่อ แต่ฉันรู้สึกรำคาญอย่างรวดเร็วว่ามีลวดยาวยื่นออกมา - ฉันตัดทุกอย่างแล้วบัดกรีเป็นชิ้นเล็ก ๆ )
3 โปรแกรมไฮเปอร์เรียนอันชาญฉลาด ติดตั้งบน Raspberry (ฉันมี OpenElec มัลติมีเดียเป็นระบบปฏิบัติการของฉัน) ตามคำแนะนำสำหรับคนโง่ ฉันทำมันถูกต้องตั้งแต่ครั้งแรกด้วยซ้ำ ในระหว่างการใช้งาน มันจะจับข้อมูลสีจากขอบของหน้าจออย่างโง่เขลา หาค่าเฉลี่ยและส่งสัญญาณควบคุมไปยังแถบ LED เทปกระพริบเป็นสีรุ้งทำให้ผู้ชมรู้สึกยินดี ระหว่างการใช้งานเมื่อเล่น FullHD ที่มีน้ำหนัก 30 กิ๊ก เปอร์เซ็นต์การโหลดเพิ่มเติมคือ 5-10% ไม่ส่งผลต่อความเร็วแต่อย่างใด

ผลลัพธ์เกินความคาดหวังสูงสุดของเรา:
ด้วยความหนาแน่นของ LED 30 ตันต่อเมตร ผนังด้านหลังทีวีทั้งหมด (ห่างออกไปประมาณ 10-15 เซนติเมตร) จึงมีสีสันตามสีของหน้าจอ มองเห็นเวทีเคลื่อนออกจากกัน... ก็เท่ากับมีกำแพงนี้อยู่ด้วย ไม่มีความล่าช้าในการส่ง อย่างน้อยก็เป็นไปไม่ได้ที่จะติดตามด้วยตา ทุกอย่างราบรื่นและชัดเจน มีโปรแกรมเจ๋งๆ สำหรับสมาร์ทโฟนของคุณซึ่งคุณสามารถสลับแบ็คไลท์เป็นโหมดเลานจ์ - ตั้งค่าสี/ความสว่างที่ต้องการ หรือเปิดรูปแบบใดรูปแบบหนึ่งที่เสนอ (เช่น ไฟสีแดงที่กำลังวิ่ง หรือเพียงสายรุ้ง หรือ เป็นต้น , การเปลี่ยนสี)
เมื่อปิดไฟแบ็คไลท์ขณะดูการ์ตูนลูกสาวของฉันก็ขุ่นเคืองและเรียกร้องให้คืนทุกอย่างกลับคืนมา)))

เพื่อให้สอดคล้องกับนโยบาย MySKU การทบทวนชิ้นส่วนต่างๆ:
แถบ LED - ตรวจสอบหลายครั้ง ฉันได้รับสิ่งเดียวกันทุกประการ ดีมาก. คุณภาพเยี่ยมมาก จะแสดงเฉดสี 16 ล้านเฉด (หากหน่วยความจำเพียงพอ) ฉันไม่ได้นับมันอย่างแน่นอน ต้องการพลังงานเพิ่มเติม - ฉันแขวนเครื่องหมายบวกลบไว้ที่บล็อก 5V 2A - เกินพอสำหรับ 2 เมตร ฉันคิดว่ามันจะเพียงพอสำหรับ 3 แต่ฉันไม่รับประกัน ฉันเชื่อมต่อหน้าสัมผัสควบคุมกับ GPIO ของราสเบอร์รี่

Malinka เป็นคอมพิวเตอร์บอร์ดเดี่ยว ไม่เห็นแต่คนขี้เกียจเท่านั้น สิ่งที่ยอดเยี่ยมทั้งสำหรับการเรียนรู้พื้นฐานของ Linux และสำหรับการสร้างศูนย์สื่อที่เรียบง่ายและยืดหยุ่น มันกลายเป็นตัวเลือกที่เหมาะสำหรับฉัน: มันเลื่อนดูเนื้อหาใด ๆ ที่มีให้ฉัน, ทำงานเป็นเครื่องรับทีวีทางอินเทอร์เน็ต, แกล้งทำเป็นว่าเป็นผู้รับสัญญาณ AirPlay เมื่อฉันต้องการเปิดบางสิ่งจากโทรศัพท์หรือแล็ปท็อปของฉัน สิ่งที่ยอดเยี่ยม - 3 วัตต์และความสนุกสนานมากมาย + รองรับ HDMI CEC ตั้งแต่แกะกล่อง - ทุกอย่างควบคุมได้จากรีโมทคอนโทรลของทีวีดั้งเดิม

และสุดท้าย อีกหนึ่งวิดีโอที่น่าติดตาม:

เมื่อสองสามวันก่อน ฉันตัดสินใจสร้างเดโมวิโดเพิ่มเติมในอพาร์ตเมนต์ใหม่แล้ว

สีของผนังคือพิสตาชิโอ ฉันไม่ได้เปลี่ยนการตั้งค่าและจะไม่เปลี่ยน ดังนั้นสีจึงดูเป็นสีเขียวเล็กน้อย ฉันชอบมันและฉันไม่สนใจความคิดเห็นของคุณ)

ฉันกำลังวางแผนที่จะซื้อ +69 เพิ่มในรายการโปรด ฉันชอบรีวิว +16 +48

ทุกคนคงเคยเห็นแล้วว่าไฟแบ็คไลท์แบบไดนามิกบนทีวี Philips ที่เรียกว่า Amilight ทำงานอย่างไร บทความนี้นำเสนออุปกรณ์ที่ช่วยให้คุณสร้างแสงแบ็คไลท์แบบไดนามิกสำหรับทีวีหรือจอภาพ ทีวี/จอภาพจะต้องเชื่อมต่อกับคอมพิวเตอร์ที่จะใช้เล่นเนื้อหาวิดีโอ

ดังนั้นในการประกอบอุปกรณ์คุณจะต้องมี:
1. คอนโทรลเลอร์ Arduino
2. ด้วยความหนาแน่นของ LED 30 ชิ้นต่อเมตร (สำหรับทีวี 32" ของฉันใช้เวลา 2 เมตร)
3. ไดรเวอร์ LED TLC5940
4. แหล่งจ่ายไฟ 12V

ด้านล่างนี้คือการแสดงแผนผังของอุปกรณ์แบ็คไลท์:

มีแถบ LED 4 แถบติดอยู่ที่ด้านหลังของทีวี (ซ้าย, ซ้ายบน, ขวาบน, ขวา) แต่ละแถบเชื่อมต่อกับไดรเวอร์ LED TLC4950 และแหล่งจ่ายไฟ 12V ไดรเวอร์ LED TLC4950 ให้การควบคุม PWM ของความสว่างของแต่ละสี: แดง เขียว และน้ำเงิน ไดรเวอร์ LED ถูกควบคุมโดยคอนโทรลเลอร์ Arduino ซึ่งจะรับคำสั่งจากพีซี คอมพิวเตอร์รันโปรแกรมพิเศษที่เขียนด้วยภาษาประมวลผล ซึ่งจะวิเคราะห์แต่ละเฟรมของภาพวิดีโอและให้คำสั่งที่เหมาะสมแก่ Arduino

ต่อไปคุณต้องเตรียมแถบ LED สำหรับทีวี 32" ของฉัน แถบแต่ละเส้นมีไฟ LED 15 ดวง แถบเหล่านี้มีจุดพิเศษที่คุณสามารถบัดกรีได้อย่างปลอดภัยหลังจากตัดแล้ว

ต้องบัดกรีสายไฟสี่เส้นเข้ากับแถบ RGB แต่ละแถบ ฉันใช้ขั้วต่อรถยนต์ทั่วไปที่ปลายเพื่อให้สามารถถอดเทปออกได้หากจำเป็น

การเชื่อมต่อ Arduino และ TLC5940:
อาร์ดูโน่ TLC5940
พิน 2 ======= พิน 27 (VPRG)
พิน 3 ======= พิน 26 (บาป)
พิน 7 ======= พิน 25 (SCLK)
พิน 4 ======= พิน 24 (XLAT)
พิน 5 ======= พิน 23 (ว่าง)
พิน 6 ======= พิน 19 (DCPRG)
พิน 8 ======= พิน 18 (GSCLK)

เราเชื่อมต่อพิน TLC5940 ที่เหลือตามตารางต่อไปนี้:
พิน 22 (GND) === กราวด์ Arduino
พิน 21 (VCC) === Arduino +5V
Pin 20 (IREF) === Arduino Ground ผ่านตัวต้านทาน 2kOhm
พิน 1-15.28 === เอาต์พุต PWM (เอาต์พุต PWM ไปยังแถบ RGB)

ฉันเชื่อมต่อแหล่งจ่ายไฟ +12V เข้ากับแถบ LED และแหล่งจ่ายไฟ "ทั่วไป" เข้ากับ Arduino Ground

รูปภาพด้านล่างแสดงเทปที่ติดตั้งบนทีวีของฉัน ตอนนี้ฉันติดแถบ LED ด้วยเทปพันสายไฟไว้ชั่วคราว จากนั้นจะทำซ้ำเพื่อให้ดูเป็นปกติ

โปรแกรมที่ทำงานบนคอมพิวเตอร์เขียนด้วยภาษา กำลังประมวลผล(เว็บไซต์อย่างเป็นทางการ http://www.processing.org) โปรแกรมจะจับภาพหน้าจอของหน้าจออย่างต่อเนื่องแล้วคำนวณค่าเฉลี่ยของสามสี (แดง, เขียว, น้ำเงิน) สำหรับตำแหน่งต่าง ๆ บนหน้าจอ (ซ้าย, ซ้ายบน, ขวาบน, ขวา) หลังจากการคำนวณ โปรแกรมจะส่งข้อมูลไปยังพอร์ตที่คอนโทรลเลอร์ Arduino เชื่อมต่ออยู่

โปรแกรม Arduino อ่านข้อมูลที่มาจากพอร์ตและให้คำสั่งควบคุมแก่ไดรเวอร์ LED TLC5940 ระดับความสว่างที่จำเป็นสำหรับสีแดง เขียว หรือน้ำเงิน จากนั้น TLC5940 จะสร้างสัญญาณ PWM เพื่อควบคุม LED

ไม่กี่ปีที่ผ่านมา mySKU ได้รับรีวิวที่น่าทึ่งจาก P43YM- ความคิดเห็นในรีวิวนี้ก็น่าทึ่งเช่นกัน มันเป็นเพียงฐานความรู้ขนาดใหญ่ (ใหญ่มากจนเบราว์เซอร์แทบจะไม่สามารถโหลดหน้านี้ได้) เวลาผ่านไป ส่วนประกอบต่างๆ ถูกลง mySKU ค้นหากลุ่มเป้าหมายใหม่ที่อาจพลาดการรีวิวนี้ ฉันยังตัดสินใจอธิบายกระบวนการสร้างไฟแบ็คไลท์แบบปรับได้สำหรับทีวีหรือจอภาพอย่าง Philips Ambilight ด้วยคำพูดของฉันเอง บางทีอาจมีบางคนพบว่ารีวิวของฉันมีประโยชน์

ในปี 2007 Philips ได้จดสิทธิบัตรเทคโนโลยีแบ็คไลท์ทีวีที่น่าทึ่งที่เรียบง่ายอย่างเหลือเชื่อแต่ไม่มีการเกินจริง ด้วยไฟแบ็คไลท์ที่ปรับได้ดังกล่าว ดวงตาจะเหนื่อยล้าน้อยลงเมื่อรับชมในที่มืด เอฟเฟ็กต์การแสดงตนเพิ่มขึ้น พื้นที่แสดงผลขยายขึ้น ฯลฯ Ambilight ใช้ได้กับเนื้อหาวิดีโอและภาพถ่ายไม่เพียงเท่านั้น แต่ยังรวมถึงเกมด้วย Ambilight ได้กลายเป็นจุดเด่นของทีวี Philips ตั้งแต่นั้นเป็นต้นมา Philips ก็ได้ระมัดระวังอย่างใกล้ชิด เพื่อไม่ให้ผู้ผลิตรายใหญ่รายใดคิดที่จะรุกล้ำสิ่งศักดิ์สิทธิ์ด้วยการสร้างสิ่งที่คล้ายกันขึ้นมาด้วยซ้ำ อาจเป็นไปได้ที่จะอนุญาตเทคโนโลยีนี้ แต่มีเงื่อนไขที่ห้ามปราม และผู้เล่นในตลาดรายอื่นไม่กระตือรือร้นที่จะทำเช่นนี้เป็นพิเศษ บริษัทขนาดเล็กก็พยายาม (และขณะนี้มีบริษัทหลายแห่งที่กำลังทำเช่นนี้) เพื่อแนะนำเทคโนโลยีที่คล้ายกันในรูปแบบของชุดอุปกรณ์แยกกัน แต่การลงโทษจาก Philips ก็หลีกเลี่ยงไม่ได้ ดังนั้น ในกรณีที่ดีที่สุด หากบริษัทไม่ต่ออายุสิทธิบัตรหรืออนุพันธ์ ผู้ผลิตรายอื่นจะสามารถผลิตสิ่งที่คล้ายกันได้ในปี 2570 เท่านั้น

แต่การลงโทษดังกล่าวใช้ไม่ได้กับเราซึ่งเป็นผู้บริโภคทั่วไป เรามีอิสระที่จะทำสิ่งที่เราเห็นสมควร วันนี้ฉันจะบอกคุณโดยละเอียดถึงวิธีสร้างไฟแบ็คไลท์แบบปรับได้ของคุณเองสำหรับทีวีหรือจอภาพเช่น Philips Ambilight (ต่อไปนี้จะเรียกว่า Ambilight) สำหรับบางคนบทความนี้จะไม่มีอะไรใหม่เพราะ... มีโครงการดังกล่าวหลายสิบโครงการ และมีบทความหลายร้อยบทความที่เขียนในภาษาต่างๆ และมีผู้คนหลายพันคนที่ทำสิ่งนี้เพื่อตนเองแล้ว แต่สำหรับหลายๆ คน ทั้งหมดนี้อาจเป็นเรื่องที่น่าสนใจมาก คุณไม่จำเป็นต้องมีทักษะพิเศษใดๆ ความรู้พื้นฐานฟิสิกส์เท่านั้นสำหรับชั้นมัธยมศึกษาปีที่ 8 แค่บัดกรีสายไฟนิดหน่อย

เพื่อที่คุณจะได้เข้าใจสิ่งที่ฉันกำลังพูดถึงได้ดีขึ้น ฉันจะยกตัวอย่างสิ่งที่เกิดขึ้นให้คุณฟัง ค่าใช้จ่ายจริงสำหรับทีวี 42 นิ้วคือประมาณ 1,000 รูเบิลและทำงาน 2 ชั่วโมง



วิดีโอไม่ได้ถ่ายทอดความรู้สึกและเอฟเฟกต์ทั้งหมด แต่เด็กๆ ก็นั่งอ้าปากค้างเป็นครั้งแรก

ตัวเลือกการใช้งานที่เป็นไปได้

มีหลายทางเลือกในการใช้ Ambilight ขึ้นอยู่กับแหล่งวิดีโอ

ตัวเลือกที่ถูกที่สุด ง่ายที่สุด และมีประสิทธิภาพที่สุดคือพีซีที่ใช้ Windows, Mac OS X หรือ Linux เป็นแหล่งสัญญาณ กล่อง Windows บนโปรเซสเซอร์ Atom ซึ่งมีราคาตั้งแต่ 70 เหรียญสหรัฐกลายเป็นเรื่องธรรมดามากแล้ว ทั้งหมดนี้เหมาะอย่างยิ่งสำหรับการใช้งาน Ambilight ฉันใช้กล่อง Windows ต่างๆ (ในขาตั้งทีวี) เป็นเครื่องเล่นสื่อมาหลายปีแล้ว ฉันได้เขียนบทวิจารณ์เล็กๆ น้อยๆ และพิจารณาว่ากล่องรับสัญญาณทีวีที่ดีที่สุดสำหรับเนื้อหาสื่อ การใช้งานฮาร์ดแวร์ของตัวเลือกนี้จะเหมือนกันสำหรับระบบปฏิบัติการทั้งหมดที่อยู่ในรายการ นี่คือตัวเลือกที่ฉันจะพูดถึงในบทความนี้- ส่วนซอฟต์แวร์จะเกี่ยวข้องกับระบบ Windows AmbiBox จะทำหน้าที่เป็นโปรแกรมควบคุมสากล สามารถใช้ได้กับ Mac OS X และ Linux

ตัวเลือกที่สองคือแหล่งสัญญาณเป็นกล่องรับสัญญาณสื่อที่ใช้ Android ซึ่งมีจำนวนมากเช่นกัน ตัวเลือกนี้เป็นปัญหามากที่สุด ขั้นแรก การไฮไลต์จะใช้ได้เฉพาะในเครื่องเก็บเกี่ยวสื่อ Kodi เท่านั้น (และหน่อของมัน) ประการที่สอง ในกรณีส่วนใหญ่ ทุกอย่างใช้งานได้เฉพาะเมื่อปิดใช้งานการถอดรหัสวิดีโอด้วยฮาร์ดแวร์เท่านั้น ซึ่งเป็นที่ยอมรับไม่ได้สำหรับกล่องส่วนใหญ่ การใช้งานฮาร์ดแวร์ของโครงการยังกำหนดข้อกำหนดบางประการด้วย ฉันจะไม่พูดถึงมัน แต่ถ้ามีบางอย่างที่คุณสนใจ ฉันจะพยายามตอบในความคิดเห็น

ตัวเลือกที่สามคือโซลูชันที่ไม่ขึ้นกับแหล่งสัญญาณ นี่เป็นโซลูชันที่แพงที่สุด แต่เป็นโซลูชันที่เป็นสากลอย่างแน่นอน เพราะ... สัญญาณจะถูกนำมาโดยตรงจากสาย HDMI คุณจะต้องมีไมโครคอมพิวเตอร์ที่ทรงพลังพอสมควร (เช่น Raspberry Pi), ตัวแยกสัญญาณ HDMI, ตัวแปลง HDMI-RCA AV, อุปกรณ์จับภาพวิดีโออะนาล็อก USB 2.0 ด้วยตัวเลือกนี้เท่านั้น คุณจึงรับประกันได้ว่าจะใช้ Ambilight กับกล่องรับสัญญาณ/ตัวรับสัญญาณทีวี กล่อง Android, Apple TV, คอนโซลเกม (เช่น Xbox One, PlayStation 4) และอุปกรณ์อื่นๆ ที่มีเอาต์พุต HDMI สำหรับรุ่นที่รองรับ 1080p60 ราคาส่วนประกอบ (ไม่มีแถบ LED) จะอยู่ที่ประมาณ 70 เหรียญสหรัฐฯ และรองรับ 2160p60 ประมาณ 100 เหรียญสหรัฐฯ ตัวเลือกนี้น่าสนใจมาก แต่ต้องเขียนบทความแยกต่างหาก

ฮาร์ดแวร์

หากต้องการใช้งาน คุณจะต้องมีส่วนประกอบหลัก 3 ส่วน ได้แก่ แถบ LED RGB ที่ควบคุมได้ แหล่งจ่ายไฟ และไมโครคอมพิวเตอร์ Arduino

ก่อนอื่นขออธิบายเล็กน้อย

WS2811 คือตัวควบคุม/ไดรเวอร์ (ชิป) แบบสามช่องสัญญาณสำหรับ LED RGB ที่มีการควบคุมแบบสายเดี่ยว (ระบุถึง LED ที่กำหนดเอง) WS2812B คือไฟ LED RGB ในแพ็คเกจ SMD 5050 ซึ่งมีตัวควบคุม WS2811 อยู่ภายในอยู่แล้ว

เพื่อความเรียบง่าย แถบ LED ที่เหมาะกับโครงการเรียกว่า WS2811 หรือ WS2812B

แถบ WS2812B เป็นแถบที่วางไฟ LED WS2812B ไว้เป็นอนุกรม แถบนี้ทำงานด้วยแรงดันไฟฟ้า 5 V มีแถบที่มีความหนาแน่นของ LED ต่างกัน โดยปกติจะเป็น: 144, 90, 74, 60, 30 ต่อเมตร มีระดับการป้องกันที่แตกต่างกัน โดยส่วนใหญ่ได้แก่: IP20-30 (การป้องกันอนุภาคของแข็ง), IP65 (การป้องกันฝุ่นและละอองน้ำ), IP67 (การป้องกันฝุ่นและการป้องกันจากการแช่น้ำบางส่วนหรือระยะสั้นที่ระดับความลึก 1 เมตร) ด้านหลังเป็นขาวดำ

นี่คือตัวอย่างของเทปดังกล่าว:


เทป WS2811 เป็นเทปที่คอนโทรลเลอร์ WS2811 และ LED RGB บางประเภทวางเรียงกันเป็นอนุกรม มีตัวเลือกที่ออกแบบมาสำหรับแรงดันไฟฟ้า 5 V และ 12 V ความหนาแน่นและการป้องกันคล้ายกับตัวเลือกก่อนหน้า

นี่คือตัวอย่างของเทปดังกล่าว:


นอกจากนี้ยังมี "แถบ" WS2811 พร้อมไฟ LED ขนาดใหญ่และทรงพลังดังภาพด้านล่าง นอกจากนี้ยังเหมาะสำหรับการนำ Ambilight ไปใช้กับแผงควบคุมขนาดใหญ่บางรุ่นอีกด้วย


เทปไหนให้เลือก WS2812B และ WS2811?

ปัจจัยสำคัญคือแหล่งจ่ายไฟของเทปซึ่งฉันจะพูดถึงในภายหลัง

หากคุณมีแหล่งจ่ายไฟที่บ้านที่เหมาะสมกับกำลังไฟ (บ่อยครั้งที่แหล่งจ่ายไฟยังคงอยู่ที่บ้านจากอุปกรณ์เก่าหรือชำรุด) ให้เลือกเทปตามแรงดันไฟฟ้าของแหล่งจ่ายไฟ เช่น 5 โวลต์ - WS2812B, 12 โวลต์ - WS2811 ในกรณีนี้คุณก็จะประหยัดเงินได้

จากตัวฉันเองฉันสามารถให้คำแนะนำได้ หากจำนวน LED ทั้งหมดในระบบไม่เกิน 120 แสดงว่า WS2812B หากมากกว่า 120 แสดงว่า WS2811 มีแรงดันไฟฟ้า 12 V คุณจะเข้าใจว่าทำไมจึงเป็นเช่นนั้นเมื่อต้องเชื่อมต่อเทปกับแหล่งจ่ายไฟ

ฉันควรเลือกเทปป้องกันระดับใด

IP65 ส่วนใหญ่มีความเหมาะสมเพราะ... ด้านหนึ่งเคลือบด้วย "ซิลิโคน" (อีพอกซีเรซิน) และอีกด้านหนึ่งมีพื้นผิวติดด้วยตนเอง 3M เทปนี้สะดวกในการติดตั้งบนทีวีหรือจอภาพ และเช็ดฝุ่นได้สะดวก

ฉันควรเลือกความหนาแน่นของ LED เท่าใด

สำหรับโครงการแถบที่มีความหนาแน่น 30 ถึง 60 LEDs ต่อเมตรมีความเหมาะสม (แน่นอนว่าเป็นไปได้ 144 เส้นไม่มีใครห้าม) ยิ่งความหนาแน่นสูง ความละเอียดของ Ambilight (จำนวนโซน) ก็จะยิ่งมากขึ้น และความสว่างโดยรวมสูงสุดก็จะยิ่งมากขึ้นเท่านั้น แต่ก็คุ้มค่าที่จะพิจารณาว่ายิ่งมี LED ในโครงการมากเท่าไร วงจรจ่ายไฟของแถบก็จะซับซ้อนมากขึ้นเท่านั้น และจำเป็นต้องใช้แหล่งจ่ายไฟที่ทรงพลังยิ่งขึ้น จำนวน LED สูงสุดในโครงการคือ 300

รับซื้อเทป

หากทีวีหรือจอภาพของคุณแขวนอยู่บนผนัง และทั้ง 4 ด้านมีพื้นที่ว่างใกล้เคียงมาก ควรติดเทปไว้ที่ด้านหลังตามแนวเส้นรอบวงทั้ง 4 ด้านเพื่อให้ได้ผลสูงสุด หากทีวีหรือจอภาพของคุณติดตั้งอยู่บนขาตั้ง หรือมีพื้นที่ว่างด้านล่างน้อย ควรติดเทปไว้ที่ด้านหลังทั้ง 3 ด้าน (เช่น ด้านล่างโดยไม่มีเทป)

สำหรับตัวฉันเอง ฉันเลือกแถบ WS2812B IP65 สีขาวที่มี LED 30 ดวงต่อเมตร ฉันมีแหล่งจ่ายไฟ 5V ที่เหมาะสมอยู่แล้ว ฉันกำลังตัดสินใจว่าจะใช้ LED 60 หรือ 30 ดวงต่อเมตร แต่เลือกอย่างหลังหลังจากดูวิดีโอพร้อมตัวอย่างการใช้งานสำเร็จรูป - ความสว่างและความละเอียดเหมาะกับฉัน และการจัดระเบียบแหล่งจ่ายไฟก็ง่ายกว่าและมีสายไฟน้อยลง Aliexpress มีเทป WS2812B จำนวนมาก ฉันสั่ง 5 เมตรในราคา $16 สำหรับทีวีของฉัน (42" 3 ด้าน) ฉันต้องการเพียง 2 เมตร กล่าวคือ ฉันสามารถซื้อได้ในราคา 10 ดอลลาร์ และอีก 3 เมตรที่เหลือให้เพื่อน ราคามักจะเปลี่ยนแปลงไปตามผู้ขาย มีข้อเสนอมากมาย ดังนั้นเพียงเลือกรายการราคาถูกๆ Aliexpress ที่มีคะแนนสูง (คำค้นหา - WS2812B IP65 หรือ WS2811 12V IP65)




การซื้อแหล่งจ่ายไฟสำหรับเทป

แหล่งจ่ายไฟถูกเลือกตามกำลังและแรงดันไฟฟ้า สำหรับ WS2812B - แรงดันไฟฟ้า 5 V สำหรับ WS2811 - 5 หรือ 12 V การใช้พลังงานสูงสุดของ LED WS2812B หนึ่งตัวคือ 0.3 W สำหรับ WS2811 ในกรณีส่วนใหญ่จะเหมือนกัน เหล่านั้น. กำลังไฟของแหล่งจ่ายไฟต้องมีอย่างน้อย N * 0.3 W โดยที่ N คือจำนวน LED ในโครงการ

ตัวอย่างเช่น คุณมีทีวีขนาด 42 นิ้ว คุณเลือกแถบ WS2812B ที่มี LED 30 ดวงต่อเมตร คุณต้องมีแถบยาว 3 เมตรทั้ง 4 ด้าน คุณจะต้องมีแหล่งจ่ายไฟที่มีแรงดันไฟฟ้า 5 V และกำลังสูงสุด 0.3 * 30 * 3 = 27 W เช่น 5 V / 6 A การใช้งานของฉันใช้เพียง 3 ด้าน รวมเป็น 60 LEDs (ให้แม่นยำ 57 ดวง) - กำลังไฟตั้งแต่ 18 W เช่น 5 V / 4 A

ฉันมีที่ชาร์จ USB หลายพอร์ต ORICO CSA-5U (8 A) ที่ไม่ได้ใช้งานมาเป็นเวลานาน เหลือจากรีวิวเก่า พอร์ตของมันถูกจ่ายไฟแบบขนาน (ซึ่งเป็นสิ่งสำคัญอย่างยิ่ง) ที่ชาร์จนี้เหมาะอย่างยิ่งสำหรับฉันในฐานะแหล่งจ่ายไฟ เพราะ... ฉันจะเชื่อมต่อเทปผ่านการเชื่อมต่อแบบขนาน 2 เส้น (คำอธิบายจะอยู่ในบทความในภายหลัง)


ถ้าฉันไม่มีที่ชาร์จนี้ฉันจะเลือกมัน (แต่ในความคิดเห็นพวกเขาเขียนว่าพวกเขามักจะใส่ 2.5 A ไว้ข้างใน ดังนั้นจึงควรศึกษาปัญหานี้โดยละเอียดมากขึ้น)

การเลือกซื้อไมโครคอมพิวเตอร์

Ambilight จะถูกควบคุมโดยไมโครคอมพิวเตอร์ Arduino Arduino Nano บน Aliexpress มีราคาประมาณคนละ

ค่าใช้จ่ายสำหรับตัวเลือกของฉัน (สำหรับทีวี 42"):

10 - 2 เมตร WS2812B IP65 (ไฟ LED 30 ดวงต่อเมตร)
แหล่งจ่ายไฟ $4 - 5 V / 4 A (ฉันไม่ได้เสียเงินกับแหล่งจ่ายไฟเลย ฉันออกค่าใช้จ่ายเพื่อความชัดเจน)
$2.5 - Arduino นาโน
-----------
16,5$ หรือ 1,000 รูเบิล

การใช้งานฮาร์ดแวร์

สิ่งที่สำคัญที่สุดคือการจัดระเบียบแหล่งจ่ายไฟสำหรับเทปอย่างเหมาะสม เทปมีความยาว แรงดันไฟฟ้าจะลดลงที่กระแสสูง โดยเฉพาะที่ 5 V ปัญหาส่วนใหญ่ที่เกิดขึ้นสำหรับผู้ที่สร้าง Ambilight ของตนเองเกี่ยวข้องกับแหล่งจ่ายไฟ ฉันใช้กฎ - คุณต้องสร้างแหล่งจ่ายไฟแยกต่างหากสำหรับการใช้พลังงานสูงสุดทุกๆ 10 W ที่ 5 V และ 25 W ของการใช้พลังงานที่ 12 V ความยาวของแหล่งจ่ายไฟ (จากแหล่งจ่ายไฟถึงเทปเอง) ควรน้อยที่สุด (โดยไม่ต้องสำรอง) โดยเฉพาะที่ 5 IN

แผนภาพการเชื่อมต่อทั่วไปมีดังนี้ (แผนภาพแสดงการเชื่อมต่อสายไฟสำหรับเวอร์ชันของฉัน):


กำลังจ่ายไฟให้กับเทปที่ปลายทั้งสองข้าง - การเชื่อมต่อแบบขนานสองตัว ตัวอย่างเช่น หากฉันส่องสว่างทั้ง 4 ด้าน และแถบนั้นมี LED 60 ดวงต่อเมตร (เช่น กำลังไฟสูงสุด 54 W) ฉันจะสร้างแหล่งจ่ายไฟต่อไปนี้:


ต้องใช้สายเชื่อมต่ออย่างเหมาะสม ยิ่งเกจ (AWG) น้อยเท่าไรก็ยิ่งดีเท่านั้น เพื่อให้เพียงพอสำหรับความแรงของกระแสไฟฟ้าที่คำนวณได้

ผู้ติดต่อสองคนไปที่ Arduino จากเทป GND ซึ่งจำเป็นต้องเชื่อมต่อกับพินที่เกี่ยวข้องบน Arduino และข้อมูลซึ่งจำเป็นต้องเชื่อมต่อกับพินดิจิทัลตัวที่หกผ่านตัวต้านทาน 300-550 โอห์ม (ควรเป็น 470 โอห์ม) หากคุณไม่มีตัวต้านทาน ในกรณีส่วนใหญ่ ทุกอย่างจะทำงานได้ดีหากไม่มีตัวต้านทาน แต่ควรมีตัวต้านทานไว้จะดีกว่า คุณสามารถซื้อตัวต้านทานสำหรับ kopeck สองสามตัวได้ที่ร้านขายวิทยุทุกแห่ง ไมโครคอมพิวเตอร์ Arduino สามารถวางไว้ในกรณีที่สะดวก หลายคนใช้ไข่เซอร์ไพรส์ Kinder สำหรับสิ่งนี้ ควรวาง Arduino ใกล้กับเทปมากที่สุดเพื่อให้การเชื่อมต่อ DATA มีความยาวขั้นต่ำ

การบัดกรีสายไฟเข้ากับเทปนั้นทำได้ง่าย กฎหลักคือเวลาในการติดต่อกับหัวแร้งควรน้อยที่สุด คุณไม่สามารถ "ยุ่ง" กับหัวแร้งได้

ในกรณีของฉันมันกลายเป็นเช่นนี้:



ใช้สาย USB คุณภาพสูงสีดำสองเส้นสำหรับจ่ายไฟ และสายสีขาวสำหรับเชื่อมต่อกับคอมพิวเตอร์ ท่อหดสีขาวหมดเลยใช้สีแดง ไม่ "สวย" แต่ก็เหมาะกับฉัน (ยังไงก็ซ่อนอยู่หลังทีวี)

คำถามสำคัญคือจะงอเทปให้เป็นมุมฉากได้อย่างไร? หากคุณมีแถบ LED 60 ดวง จะต้องตัดแถบและเชื่อมต่อด้วยสายไฟสั้น (วางทั้งหมดไว้ในท่อหดด้วยความร้อน) คุณสามารถซื้อขั้วต่อมุมสามพินพิเศษสำหรับแถบ LED ได้ (มี 4 พินในภาพเป็นตัวอย่าง):


หากคุณมีแถบไฟ LED 30 ดวง ระยะห่างระหว่างไฟ LED นั้นมาก คุณสามารถทำมุมได้อย่างง่ายดายโดยไม่ต้องตัด นำชิ้นส่วนของการเคลือบ "ซิลิโคน" ออก หุ้มฉนวน (คุณสามารถใช้เทปได้) แผ่นรองสัมผัสและงอตามแผนภาพ:

ฉันตัดเทปมาฝึกซ้อม สิ่งสำคัญคืออย่าหักโหมจนเกินไป - งอเล็กน้อยหนึ่งครั้งเท่านั้นเอง ไม่จำเป็นต้องงอตรงนี้และตรงนั้น ไม่จำเป็นต้องกดเส้นโค้งแรงเกินไป


นี่คือมุมมองจากด้านหลังของทีวี สายไฟทั้งหมดลอดผ่านรูเข้าไปในตู้:

ส่วนซอฟต์แวร์

นี่คือสิ่งที่ง่ายที่สุด

เราเชื่อมต่อไมโครคอมพิวเตอร์ Arduino ผ่าน USB ไดรเวอร์ (อินเทอร์เฟซอนุกรม CH340) จะถูกติดตั้งโดยอัตโนมัติ หากสิ่งนี้ไม่เกิดขึ้นแสดงว่าในโฟลเดอร์ Arduino IDE จะมีโฟลเดอร์ Drivers ที่มีทุกสิ่งที่คุณต้องการ

เปิด Arduino IDE และเปิดไฟล์ Adalight.ino


เราเปลี่ยนจำนวน LED ในโค้ด ฉันอายุ 57


เครื่องมือ > บอร์ด > Arduino nano
เครื่องมือ > พอร์ต > เลือกพอร์ต COM (ตัวเลือกที่ต้องการจะอยู่ที่นั่น)

คลิกปุ่ม "ดาวน์โหลด":


โปรแกรมจะแจ้งให้คุณทราบเมื่อการดาวน์โหลดเสร็จสิ้น (ซึ่งก็คือไม่กี่วินาที)

พร้อม. คุณต้องถอด Arduino ออกจาก USB แล้วเชื่อมต่ออีกครั้ง เทปจะสว่างขึ้นตามลำดับเป็นสีแดง เขียว และน้ำเงิน - Arduino เปิดใช้งานแล้วและพร้อมใช้งาน

ดาวน์โหลดและติดตั้งโปรแกรม ในโปรแกรมคลิก "การตั้งค่าเพิ่มเติม" และระบุอุปกรณ์ - Adalight, พอร์ต COM และจำนวนไฟ LED เลือกจำนวนเฟรมที่จะจับภาพ (สูงสุด 60)


จากนั้นคลิก “แสดงโซนการจับภาพ” > “ตัวช่วยสร้างการตั้งค่าโซน” เลือกการกำหนดค่าริบบิ้นของคุณ


คลิกใช้และบันทึกการตั้งค่า นี่เป็นการเสร็จสิ้นการตั้งค่าพื้นฐาน จากนั้นคุณสามารถทดลองกับขนาดของโซนการจับภาพ แก้ไขสีเทป ฯลฯ โปรแกรมมีการตั้งค่าที่แตกต่างกันมากมาย


หากต้องการเปิดใช้งานโปรไฟล์ เพียงดับเบิลคลิกที่ไอคอนที่เกี่ยวข้อง (โปรไฟล์ AmbiBox) ในพื้นที่แจ้งเตือนของ Windows เทปจะสว่างขึ้นทันที นอกจากนี้ยังสามารถปิดได้ด้วยการดับเบิลคลิก

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

ฉันกำลังวางแผนที่จะซื้อ +435 เพิ่มในรายการโปรด ฉันชอบรีวิว +270 +577

มีคำถามหรือไม่?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: