ไฟแบ็คไลท์ทีวีแบบปรับได้ Hyperion Ambilight - ไฟแบ็คไลท์ทีวีแบบปรับได้ ตัวเลือกการใช้งานที่เป็นไปได้

03.07.2023

การแนะนำ

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

วีดีโอ

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

สวัสดีตอนบ่าย.

สำหรับบทความแรกของฉัน ฉันเลือกหนึ่งในงานฝีมือที่ประสบความสำเร็จมากที่สุด: อะนาล็อก HDMI-passthrough ของ Ambilight จาก Philips ต่อจากนี้ไปฉันจะเรียกองค์ประกอบนี้ว่า "Atmosvet"

การแนะนำ
บนอินเทอร์เน็ต การค้นหาโซลูชันสำเร็จรูป/แบบเปิดและบทความเกี่ยวกับวิธีสร้าง Ambilight สำหรับจอภาพ/ทีวีไม่ใช่เรื่องยากหากคุณกำลังแสดงภาพจากพีซี แต่ในระบบมัลติมีเดียของฉัน การส่งภาพไปยังทีวีจากพีซีใช้เวลาเพียง 5% ของการใช้งาน ฉันเล่นเกมคอนโซลนานขึ้น ซึ่งหมายความว่าฉันต้องคิดอะไรบางอย่างขึ้นมาเอง
ข้อมูลเริ่มต้น:
  • ทีวีพลาสม่า 60"
  • HTPC ที่ใช้ Asrock Vision 3D 137B
  • เอกซ์บอกซ์ 360
อุปกรณ์ส่วนใหญ่ใช้ HDCP เพื่อเล่นเนื้อหาแม้ในขณะเล่นเกม
ความต้องการ:
จำเป็นต้องให้การสนับสนุน Atmosvet แบบรวมศูนย์สำหรับอุปกรณ์ทั้งหมดที่เชื่อมต่อกับทีวี
การนำไปปฏิบัติ
ฉันจะไม่บอกคุณว่าฉันติดแถบ LED ยาว 4.5 ม. เข้ากับทีวีได้อย่างไรและต้องทำอะไรกับ Arduino คุณสามารถใช้มันเป็นฐานได้

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

จับภาพด้วยเว็บแคม
เวอร์ชันทดสอบแรกสำหรับทดสอบแนวคิดและการแสดงภาพได้รับเลือกโดยการจับภาพผ่านเว็บแคม) มีลักษณะดังนี้:

การแสดงสีต่ำและเวลาแฝงสูงแสดงให้เห็นว่าการใช้งานนี้ไม่สามารถใช้งานได้ในทางใดทางหนึ่ง

จับภาพผ่าน HDMI

ในกระบวนการค้นคว้าทางเลือกที่เป็นไปได้ โครงการต่อไปนี้ได้รับเลือกว่าน่าเชื่อถือและคุ้มค่าที่สุด:

  • สัญญาณจากอุปกรณ์ทั้งหมดจะถูกส่งไปยังสวิตช์ HDMI 5in-1out ที่รองรับ HDCP
  • สัญญาณเอาท์พุตจะถูกป้อนไปยังตัวแยกสัญญาณ HDMI 1in-2out ซึ่งไม่เพียงแต่รองรับ HDCP เท่านั้น แต่ยังปิดการใช้งานที่เอาต์พุตด้วย (ต้องขอบคุณภาษาจีน)
  • สัญญาณเอาท์พุตอันหนึ่งจะส่งไปที่ทีวี
  • อีกเอาต์พุตหนึ่งไปที่ตัวแปลง HDMI เป็น AV
  • สัญญาณ S-Video ไปที่กล่องจับภาพจาก ICONBIT
  • กล่องจับภาพเชื่อมต่อกับ HTCP ที่เปิดตลอดเวลาผ่าน USB ซึ่งเชื่อมต่อกับเทปคอนโทรลเลอร์ Arduino บนทีวี

ในตอนแรกมันดูดุร้ายและเหมือนไม้ค้ำยัน แต่:

  • มันได้ผล.
  • โดยรวมแล้วการสั่งซื้อจากจีนทั้งหมดนี้มีราคา 3-4 พันรูเบิล

ทำไมฉันถึงไม่ใช้บอร์ดจับภาพ HDMI? ง่ายมาก: ตัวเลือกที่ถูกที่สุดและเข้าถึงได้มากที่สุดคือ Blackmagic Intensity Shuttle แต่ไม่สามารถทำงานกับสัญญาณ 1080p/60fps ได้ มีเพียง 1080p/30fps เท่านั้น ซึ่งไม่เป็นที่ยอมรับ เนื่องจาก... ฉันไม่ต้องการลดเฟรมเรตลงเพื่อที่จะได้ถ่ายภาพได้ + สิ่งนี้ราคาประมาณหนึ่งหมื่น รูเบิล - ซึ่งไม่ถูกโดยไม่ทราบผลลัพธ์

การสูญเสียในการแปลง HDMI เป็น S-video นั้นไม่สำคัญเลยสำหรับการบันทึกสีด้วยความละเอียด 46x26 ของไฟแบ็คไลท์ LED

ในตอนแรก ฉันพยายามใช้ EasyCap เพื่อจับภาพ S-video (มีรูปแบบภาษาจีนหลายรูปแบบ) แต่ประเด็นก็คือชิปที่ใช้ที่นั่นแย่มากและไม่สามารถทำงานได้โดยใช้ openCV

ข้อเสียอย่างเดียวคือสัญญาณ S-Video เอาท์พุตมีแถบสีดำตามขอบ ตัดเนื้อหาจริงออก (ประมาณ 2-5%) ฉันตัดภาพที่เอาต์พุตออกจากบอร์ดจับภาพเพื่อลบแถบเหล่านี้ ทำให้ภาพหายไป ในพื้นที่เหล่านั้นในทางปฏิบัติไม่ส่งผลกระทบต่อผลลัพธ์

ซอฟต์แวร์
สำหรับฉันนี่เป็นส่วนที่น่าสนใจที่สุดเพราะ... ฉันไม่ชอบการซ่อมแซมฮาร์ดแวร์มากนัก

ในการจับภาพ ฉันใช้ openCV และโดยเฉพาะอย่างยิ่ง .NET wrapper emgu CV

ฉันยังตัดสินใจใช้เทคนิคที่แตกต่างกันสองสามอย่างเพื่อปรับแต่งภาพและเตรียมพร้อมก่อนที่จะส่งรายการสีไปยังคอนโทรลเลอร์

การประมวลผลเฟรม
1. การรับเฟรมที่บันทึกไว้
2. ครอบตัดกรอบเพื่อขจัดแถบสีดำ
ทุกอย่างเป็นเรื่องง่ายที่นี่:
frame.ROI = สี่เหลี่ยมผืนผ้าใหม่ (8, 8, frame.Width - 8, frame.Height - 18 - 8);
ครอบตัด 8 พิกเซลจากด้านบน 8 พิกเซลจากด้านขวา และ 18 พิกเซลจากด้านล่าง (ไม่มีแถบทางด้านซ้าย)
3. เราจะปรับขนาดเฟรมให้เป็นความละเอียดของแบ็คไลท์ โดยไม่จำเป็นต้องพกภาพที่ดีต่อสุขภาพติดตัวไปด้วย
ไม่มีอะไรซับซ้อนเช่นกัน เราทำโดยใช้ openCV:
frame.Resize(LedWidth - 2*LedSideOverEdge,
LedHeight - LedBottomOverEdge - LedTopOverEdge,
INTER.CV_INTER_LINEAR);
ผู้อ่านที่ใส่ใจจะสังเกตเห็นตัวแปรมากมาย ความจริงก็คือกรอบทีวีของฉันค่อนข้างใหญ่โดยมี LED 1 ดวงที่ด้านข้าง 1 ดวงที่ด้านบนและ 3 ดวงที่ด้านล่าง ดังนั้นการปรับขนาดจึงเสร็จสิ้นบน LED ที่อยู่ตรงข้ามกับจอแสดงผลและเราเพิ่มมุมในภายหลัง . เมื่อปรับขนาด เราจะได้สีเฉลี่ยที่พิกเซล LED ควรมี
4. เราแมป LED จากกรอบที่ถูกตัดแต่ง
ที่นี่ทุกอย่างก็เรียบง่ายเช่นกันเราเดินไปตามแต่ละด้านอย่างโง่เขลาและเติมสีของ LED ในอาร์เรย์ 136 ค่าตามลำดับ มันเกิดขึ้นว่าในขณะนี้การดำเนินการอื่น ๆ ทั้งหมดทำได้ง่ายกว่าด้วยอาร์เรย์ LED มากกว่าการใช้เฟรมซึ่งยากต่อการประมวลผล นอกจากนี้ในอนาคตฉันได้เพิ่มพารามิเตอร์สำหรับ "ความลึก" ของการจับภาพ (จำนวนพิกเซลจากขอบของหน้าจอเพื่อเฉลี่ยสีของ LED) แต่ในการตั้งค่าขั้นสุดท้ายกลับกลายเป็นว่าดีกว่า ปราศจากมัน.
5. ทำการแก้ไขสี (สมดุลสีขาว/สมดุลสี)
ผนังด้านหลังทีวีเป็นไม้ ไม้เป็นสีเหลือง เลยต้องชดเชยความเหลือง
var blue = 255.0f/(255.0f + blueLevelFloat)*pixelBuffer[k];
var green = 255.0f/(255.0f + greenLevelFloat)*pixelBuffer;
var red = 255.0f/(255.0f + redLevelFloat)*pixelBuffer;
โดยทั่วไป ในตอนแรกฉันใช้ความสมดุลของสีจากซอร์สโค้ดของโปรแกรมแก้ไขโอเพ่นซอร์สบางตัว แต่มันไม่ได้เปลี่ยนสีขาว (สีขาวยังคงเป็นสีขาว) ฉันเปลี่ยนสูตรเล็กน้อย พิมพ์ผิด และได้สิ่งที่ฉันต้องการ: หากระดับขององค์ประกอบสีเป็นลบ (ฉันเข้าใจได้อย่างไร - สีนี้หายไป) เราจะเพิ่มความเข้มและในทางกลับกัน สำหรับผนังของฉันปรากฎว่า: RGB(-30,5,85)

ในการแก้ไขสี ฉันยังทำการปรับสมดุลระดับสีดำด้วย (สีดำจะมีค่าประมาณ 13,13,13 ใน RGB) โดยเพียงแค่ลบ 13 ออกจากแต่ละส่วนประกอบ

6. ดำเนินการลดความอิ่มตัวของสี (ลดความอิ่มตัวของภาพ)
ในการตั้งค่าขั้นสุดท้าย ฉันไม่ได้ใช้การลดความอิ่มตัวของสี แต่อาจจำเป็นในบางจุด จริงๆ แล้วจะทำให้สีมี "สีพาสเทล" มากขึ้น เช่น Philips Ambilight ฉันจะไม่ให้รหัส เราแค่แปลงจาก RGB -> HSL ลดองค์ประกอบความอิ่มตัวและกลับสู่ RGB
7. ดีเฟล็กเกอร์
มันบังเอิญว่าภาพที่ป้อนเข้า "สั่น" - นี่เป็นผลมาจากการแปลงเป็น สัญญาณอะนาล็อกฉันคิดว่า ตอนแรกฉันพยายามแก้ไขมันด้วยวิธีของตัวเอง จากนั้นฉันก็ดูที่มาของตัวกรอง Defliker ที่ใช้ใน VirtualDub เขียนมันใหม่ใน C# (มันเป็นใน C++) ฉันพบว่ามันใช้งานไม่ได้เพราะมันน่าประทับใจมาก มันมีปัญหากับการกะพริบระหว่างเฟรม ในท้ายที่สุด ฉันรวมวิธีแก้ปัญหาของฉันกับตัวดีเฟล็คเตอร์นี้ และพบบางอย่างที่แปลก แต่มันก็ทำงานได้ดีกว่าที่คาดไว้ ตัวดีเฟล็กเกอร์แบบเดิมใช้งานได้เฉพาะกับความเข้มของทั้งเฟรมเท่านั้น ฉันต้องการไฟ LED แต่ละดวงแยกกัน ตัวดีเฟล็กดั้งเดิมเปรียบเทียบการเปลี่ยนแปลงความเข้มเป็นผลรวม ฉันชอบเปรียบเทียบความยาวของเวกเตอร์สี ตัวดีเฟล็กดั้งเดิมเปรียบเทียบเดลต้าของการเปลี่ยนแปลงความเข้มเมื่อเทียบกับเฟรมก่อนหน้า ซึ่งไม่เหมาะสม และฉันเปลี่ยนเป็นความเข้มเฉลี่ย ค่าภายในหน้าต่างของเฟรมก่อนหน้า และยังมีสิ่งเล็กๆ น้อยๆ อื่นๆ อีกมาก ซึ่งส่งผลให้การกะพริบเริ่มต้นเหลือเพียงเล็กน้อย
แนวคิดหลัก: ขึ้นอยู่กับความเข้มเฉลี่ยของเฟรมก่อนหน้า ให้ทำการแก้ไขเฟรมปัจจุบันหากความเข้มไม่สูงกว่าเกณฑ์ที่กำหนด (ฉันมีเกณฑ์นี้ในการตั้งค่าสุดท้ายที่ 25) หากเกินเกณฑ์แล้ว หน้าต่างถูกรีเซ็ตโดยไม่มีการดัดแปลง
โค้ดที่แก้ไขเล็กน้อย (เพื่อให้สามารถอ่านได้นอกบริบท) จากตัวเลื่อนของฉัน:
Array.Copy(_leds, _ledsOld, _leds.Length); สำหรับ (var i = 0; i< _leds.Length; i++) { double lumSum = 0; // Calculate the luminance of the current led. lumSum += _leds[i].R*_leds[i].R; lumSum += _leds[i].G*_leds[i].G; lumSum += _leds[i].B*_leds[i].B; lumSum = Math.Sqrt(lumSum); // Do led processing var avgLum = 0.0; for (var j = 0; j < LedLumWindow; j++) { avgLum += _lumData; } var avg = avgLum/LedLumWindow; var ledChange = false; if (_strengthcutoff < 256 && _lumData != 256 && Math.Abs((int) lumSum - avg) >= _strengthcutoff) ( _lumData = 256; ledChange = true; ) // คำนวณปัจจัยการปรับสำหรับไฟ led ปัจจุบัน สเกล var = 1.0; int r, g, b; ถ้า (ledChange) ( สำหรับ (var j = 0; j< LedLumWindow; j++) { _lumData = (int) lumSum; } } else { for (var j = 0; j < LedLumWindow - 1; j++) { _lumData = _lumData; } _lumData = (int) lumSum; if (lumSum >0) ( สเกล = 1.0f/((avg+lumSum)/2); var filt = 0.0f; for (var j = 0; j< LedLumWindow; j++) { filt += (float) _lumData/LedLumWindow; } scale *= filt; } // Adjust the current Led. r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; // save source values var sr = r; var sg = g; var sb = b; var max = r; if (g >สูงสุด) สูงสุด = กรัม; ถ้า (b > สูงสุด) สูงสุด = b; ดับเบิ้ลเอส; ถ้า (สเกล*สูงสุด > 255) s = 255.0/สูงสุด; อื่น s = สเกล; r = (int)(s*r); ก. = (int) (s*g); ข = (int) (s*b); // เก็บไฮไลต์ double k; ถ้า (sr > _lv) ( k = (sr - _lv)/(สองเท่า) (255 - _lv); r = (int) ((k*sr) + ((1.0 - k)*r)); ) ถ้า ( sg > _lv) ( k = (sg - _lv)/(สองเท่า) (255 - _lv); g = (int) ((k*sg) + ((1.0 - k)*g)); ) ถ้า (sb > _lv) ( k = (sb - _lv)/(สองเท่า) (255 - _lv); b = (int) ((k*sb) + ((1.0 - k)*b)); ) _leds[i] = สี .FromArgb(r, g, b); ) /* ระยะอ่อนตัวชั่วคราว */ if (ledChange || _softening == 0) ดำเนินการต่อ; var diffR = Math.Abs(_leds[i].R - _ledsOld[i].R); var diffG = Math.Abs(_leds[i].G - _ledsOld[i].G); var diffB = Math.Abs(_leds[i].B - _ledsOld[i].B); r = _leds[i].R; ก. = _ไฟ LED[i].G; b = _leds[i].B; ผลรวมจำนวนเต็ม; ถ้า(diffR< _softening) { if (diffR >(_softening >> 1)) ( sum = _leds[i].R + _leds[i].R + _ledsOld[i].R; r = sum/3; ) ) ถ้า (diffG< _softening) { if (diffG >(_softening >> 1)) ( sum = _leds[i].G + _leds[i].G + _ledsOld[i].G; g = sum/3; ) ) ถ้า (diffB< _softening) { if (diffB >(_softening >> 1)) ( sum = _leds[i].B + _leds[i].B + _ledsOld[i].B; b = sum/3; ) ) _leds[i] = Color.FromArgb(r, กรัมข); -
ให้ _leds เป็นอาร์เรย์ของ LED ของคลาส Color, _ledsOld เป็นค่าของเฟรมก่อนการแปลง, LedLumWindow เป็นความกว้างของหน้าต่างของเฟรมก่อนหน้า เพื่อประมาณการเปลี่ยนแปลงความเข้มโดยเฉลี่ยในการตั้งค่าสุดท้ายที่ฉันมี 100 ซึ่งที่ประมาณ 30 เฟรม/วินาที เท่ากับ 3 วินาที _lumData - อาร์เรย์ของค่าความเข้มของเฟรมก่อนหน้า

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

8. เพื่อนบ้านทำให้ LED เรียบขึ้น
โดยทั่วไป ในการตั้งค่าขั้นสุดท้าย ฉันไม่ชอบการป้องกันนามแฝงเลย และฉันก็ปิดมันไป แต่ในบางกรณีมันก็มีประโยชน์ ที่นี่เราเพียงแค่เฉลี่ยสีของ LED แต่ละอันกับเพื่อนบ้าน
var smothDiameter = 2*_smoothRadius + 1; Array.Copy(_leds, _ledsOld, _leds.Length); สำหรับ (var i = 0; i< _ledsOld.Length; i++) { var r = 0; var g = 0; var b = 0; for (var rad = -_smoothRadius; rad <= _smoothRadius; rad++) { var pos = i + rad; if (pos < 0) { pos = _ledsOld.Length + pos; } else if (pos >_ledsOld.Length - 1) ( pos = pos - _ledsOld.Length; ) r += _ledsOld.R; ก. += _ledsOld.G; ข += _ledsOld.B; ) _leds[i] = Color.FromArgb(r/smothDiameter, g/smothDiameter, b/smothDiameter); -
9. บันทึกสถานะปัจจุบันเพื่อให้เธรดการส่งแพ็กเก็ตจับและส่งไปยังตัวควบคุมแบ็คไลท์
ฉันจงใจแยกกระบวนการประมวลผลเฟรมและส่งแพ็กเก็ตไปยังคอนโทรลเลอร์: แพ็กเก็ตจะถูกส่งครั้งเดียวในช่วงเวลาหนึ่ง (สำหรับฉันคือ 40 มิลลิวินาที) เพื่อให้ Arduino สามารถประมวลผลอันก่อนหน้าได้ เพราะบ่อยครั้งที่มันทำให้หายใจไม่ออกบ่อยกว่า 30 มิลลิวินาที ดังนั้นมันจึงเปลี่ยน โดยที่เราไม่ได้ขึ้นอยู่กับการจับอัตราเฟรมโดยตรงและไม่รบกวนกระบวนการนั้น (แต่การส่งแพ็กเก็ตก็ทำให้เสียเวลาเช่นกัน)
เล็กน้อยเกี่ยวกับ Arduino
คุณไม่สามารถรับและส่งแพ็กเก็ตจำนวนมากผ่านซีรีย์ไปยัง Arduino ได้ เพราะมันจะไปไกลกว่าบัฟเฟอร์ HardwareSerial เริ่มต้นและคุณจะสูญเสียจุดสิ้นสุดของมัน
สิ่งนี้สามารถแก้ไขได้ค่อนข้างง่าย: ตั้งค่าขนาดบัฟเฟอร์ HardwareSerial ให้เป็นขนาดที่ใหญ่พอที่จะใส่แพ็คเก็ตที่ส่งทั้งหมดด้วยอาร์เรย์สี สำหรับฉันมันคือ 410
UI
ตัวซอฟต์แวร์ถูกนำไปใช้เป็นบริการแบบ win เพื่อกำหนดค่าพารามิเตอร์ทั้งหมด + เปิด/ปิดใช้งาน ฉันสร้าง Web UI ที่สื่อสารกับบริการผ่าน WebService บนบริการ อินเทอร์เฟซสุดท้ายบนหน้าจอโทรศัพท์มือถือมีลักษณะดังนี้:
ผลลัพธ์
ในท้ายที่สุด ผลลัพธ์ก็เป็นไปตามความคาดหวัง และตอนนี้เมื่อเล่นเกมบนคอนโซล ฉันก็ยิ่งดื่มด่ำกับบรรยากาศของเกมมากยิ่งขึ้น

จากผลงานโดยทั่วไป ฉันบันทึกวิดีโอโดยมีแสงบรรยากาศทำงานตามแผนของฉัน:

ตัวอย่างการทดสอบ 1: Pacific Rim, ฉากต่อสู้ในเซี่ยงไฮ้, ภาพยนตร์เรื่องนี้เหมาะสำหรับการทดสอบและจัดแสดง, ฉากและแสงวาบที่สว่างจำนวนมาก, ฟ้าผ่า ฯลฯ:

ตัวอย่างทดสอบ 2: วิดีโอบางรายการจาก MLP ที่รั่วไหลจาก YouTube เหมาะมากสำหรับการทดสอบฉากที่มีสีสันสดใส (ฉันชอบแถบสี) รวมถึงฉากที่เปลี่ยนแปลงอย่างรวดเร็ว (ในตอนท้ายของวิดีโอคุณจะเห็นเอฟเฟกต์ของความล่าช้า มองเห็นได้เฉพาะในวิดีโอเมื่อสิ่งนี้ไม่สามารถมองเห็นได้ในการรับชมจริงฉันพยายามวัดความล่าช้าโดยใช้วิดีโอ - กลายเป็น 10-20ms):

และสุดท้าย เป็นเรื่องน่าสังเกตเกี่ยวกับการใช้ทรัพยากรจาก HTPC:
HTPC ฉันมี ASRock Vision 3D บน i3 บริการแสงบรรยากาศกิน CPU ถึง 5-10% และ RAM ขนาด 32MB

ขอบคุณสำหรับความสนใจของคุณ ฉันหวังเป็นอย่างยิ่งว่าบทความของฉันจะช่วยใครซักคนได้

ทุกวันนี้ ใครๆ ก็มีทีวี หรือ LED, LCD หรือพลาสมา แล้วแบ็คไลท์มีไว้เพื่ออะไร? คำตอบนั้นง่ายมาก - ลดอาการปวดตาและเพิ่มรูปลักษณ์ที่น่าสนใจให้กับห้อง ดังนั้น embilite จึงมีทั้งจุดประสงค์ด้านการใช้งานและความสวยงาม

ด้วยเหตุผลเดียวกัน ฉันจึงต้องการสร้างแสงย้อนให้กับทีวีเครื่องใดเครื่องหนึ่งของฉัน ในการค้นหาระบบแสงสว่าง ฉันค้นคว้าและสรุปผล โดยที่ฉันตัดสินใจสร้างระบบแสงสว่างด้วยตัวเอง



นี่คือข้อสรุปของฉัน:

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

ฉันคิดว่าประเด็นเหล่านี้เพียงพอแล้วและหากคุณเห็นด้วยกับบางข้อเป็นอย่างน้อย คุณจะอ่านคำแนะนำของฉันและจะไม่ผิดหวัง

หมายเหตุ: หากคุณไม่เคยทำงานกับอุปกรณ์อิเล็กทรอนิกส์และ LED มาก่อน เยี่ยมมาก คุณมีโอกาสได้ฝึกฝน

ขั้นตอนที่ 1: รายการส่วนประกอบ

ทุกอย่างในรายการสามารถพบได้ง่ายในร้านค้าพิเศษในท้องถิ่น:

  1. ช่องเคเบิลพลาสติกประมาณ 3 เมตร กว้างประมาณ 2.5 ซม. ความยาวอาจแตกต่างกันไปขึ้นอยู่กับขนาดของทีวีของคุณ
  2. ขั้วต่อช่องเคเบิลรูปตัว L 4 ตัว (มุม)
  3. แถบ LED สีเดียว ฉันซื้อเข็ดยาว 5 เมตรโดยเลือก สีเขียวเมื่อมันเข้ามาใกล้กำแพงของฉัน ป้ายเทปเขียนว่า “SMD 3528 Single Color”
  4. อะแดปเตอร์จ่ายไฟเข้ากันได้กับแถบ LED
  5. เทปไฟฟ้าสำหรับการเชื่อมต่อ
  6. ไม้บรรทัด
  7. เลื่อยเลือยตัดโลหะขนาดเล็ก
  8. สายไฟพร้อมปลั๊ก ความยาวขึ้นอยู่กับความต้องการของคุณ
  9. ฟิล์มใส (ไม่แสดงในภาพ)
  10. ที่หนีบขนาดใหญ่สำหรับยึดการเชื่อมต่อ (ไม่ใช่ภาพ)
  11. กาวหรือฐานกาวที่สามารถเชื่อมชิ้นส่วนพลาสติกได้

หมายเหตุ: เมื่อซื้อแถบ LED โปรดขอให้ผู้ขายเลือกอะแดปเตอร์แปลงไฟที่เหมาะสมสำหรับคุณ

ขั้นตอนที่ 2: การวัดขั้นพื้นฐานและการเตรียมร่างกาย


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

ทำไมคุณต้องวัดทุกอย่างถูกต้อง? เหตุผลที่ชัดเจนคือการกำหนดขนาดของเฟรม แต่สิ่งสำคัญคือต้องแน่ใจว่าเฟรมซ่อนอยู่ด้านหลังทีวี

  1. กำหนดความยาวและความสูงของทีวีของคุณ ในกรณีของฉันคือ 90 * 50 ซม.
  2. วัดว่าตัวยึดอยู่ห่างจากขอบทีวีแค่ไหน

ด้วยพารามิเตอร์เหล่านี้ เราสามารถซ่อนทุกสิ่งไว้ด้านหลังทีวีได้ สิ่งสำคัญคือขนาดของวัตถุนั้นเล็กกว่าขนาดของทีวีเล็กน้อย

ดังนั้นฉันจะสร้างเฟรมที่จะตั้งอยู่บนตัวยึดทีวีและขนาดของมันจะเล็กกว่าขนาดของทีวี 8 ซม.

ขนาดทีวี (90*50 ซม.) - 8 ซม. = ขนาดกรอบ (82*42 ซม.)

เนื่องจากความกว้างของกรอบนั้นประมาณ 2 ซม. เราจึงเพิ่มเข้าไปในขนาด 8 ซม. ที่กล่าวถึงและรับขนาดกรอบดังต่อไปนี้: 84 * 44 ซม.

ตัวเชื่อมต่อรูปตัว L จะเพิ่มความกว้างของเฟรมแต่ละด้านประมาณ 3 ซม. ดังนั้นเราจึงคำนึงถึงพารามิเตอร์นี้ด้วย จากนั้นขนาดสุดท้ายของเฟรมจะเป็น 84 * 38 ซม.

ด้วยความช่วยเหลือ เลื่อยมือตัดขนาด 84 และ 38 ซม. จำนวน 2 ชิ้นจากช่องเคเบิล (วัดตามขนาดทีวีของคุณหากมีขนาดแตกต่างกัน)

ขั้นตอนที่ 3: การประกอบกรอบแอมไลท์






การใช้ตัวเชื่อมต่อรูปตัว L เราจะประกอบกรอบสี่เหลี่ยม ดูภาพที่แนบมาและปฏิบัติตามรายการ:

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

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

  1. ใช้กาวกับขั้วต่อ
  2. ทากาวที่ปลายเฟรม
  3. รอประมาณ 5-10 นาที
  4. ฉันเชื่อมต่อปลายของเฟรมเข้ากับขั้วต่อและยึดให้แน่นด้วยที่หนีบ
  5. ฉันออกจากโครงสร้างเป็นเวลา 30 นาที
  6. หลังจากกาวแห้งฉันก็ถอดแคลมป์ออก

ขั้นตอนที่ 4: ติดแถบ LED เข้ากับเฟรม







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

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

โปรดดูภาพที่แนบมาและปฏิบัติตามคำแนะนำ:

  1. เริ่มต้นด้วยการลอกฟิล์มกันรอยออกแล้วติดเทปตามด้านนอกของกรอบ โดยเริ่มจากตรงกลางด้านยาว
  2. ค่อย ๆ ลอกฟิล์มกันรอยออกและเพิ่มเทปเข้าไปจนกว่าจะถึงจุดเริ่มต้น
  3. งอเทปเล็กน้อยแล้วเริ่มติดกาวแถวที่สอง
  4. ลอกฟิล์มกันรอยออกทีละน้อยและเติมเทปเข้าไปอีกจนกว่าจะหมด

ขั้นตอนที่ 5: การเชื่อมต่อสายไฟ





แสดงอีก 3 ภาพ




เมื่อซื้อ สายไฟ LED, อะแดปเตอร์ และปลั๊กไฟจะจำหน่ายแยกต่างหาก เพื่อให้ทุกอย่างทำงานได้ คุณต้องเชื่อมต่อส่วนประกอบทั้งหมดให้เป็นวงจรเดียว

ดูภาพและปฏิบัติตามคำแนะนำ:

  1. ตรวจสอบอะแดปเตอร์ มีสายสีดำและสีแดงอยู่ที่ด้านหนึ่งและมีสายสีแดงสองเส้นที่อีกด้านหนึ่ง โปรดทราบว่าแถบ LED มีสายไฟสีดำและสีแดง
  2. บิดสายไฟสีแดงของเทปและอะแดปเตอร์ ทำเช่นเดียวกันกับสายไฟสีดำ
  3. ปิดการเชื่อมต่อที่เปิดโล่งด้วยเทปไฟฟ้า
  4. นำสายไฟออกและเชื่อมต่อแต่ละสายเข้ากับสายไฟสีแดงที่เหลือ 2 เส้น จากนั้นหุ้มฉนวนการเชื่อมต่อ

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

ขั้นตอนที่ 6: การติดตั้ง





หลังจากตรวจสอบแล้วก็ถึงเวลาติดตั้งไฟแบ็คไลท์ด้านหลังทีวี

มันง่ายมาก:

  1. ถอดทีวีออกจากที่ยึดติดผนังและวางไว้ในที่ปลอดภัย
  2. หากจำเป็น ให้ถอดสายไฟที่อยู่ด้านหลังทีวีออก
  3. แขวนโครงไว้บนตัวยึดติดผนัง ปรับให้อยู่ตรงกลาง
  4. วางอะแดปเตอร์แถบ LED ไว้ด้านบนของกรอบด้านใน หากต้องการ คุณสามารถยึดอะแดปเตอร์เข้ากับเฟรมโดยใช้เทปสองหน้าได้หากต้องการ
  5. วางทีวีไว้ด้านบนของเฟรม
  6. เสียบไฟเข้ากับเต้ารับที่ใกล้ที่สุด

เติมไวน์หรือชาหอมกรุ่นสักแก้วแล้วชมรายการโปรดของคุณในบรรยากาศที่สวยงาม

การปรับปรุงที่เป็นไปได้:

  1. สามารถใช้ริบบิ้นหลากสีพร้อมรีโมทคอนโทรล
  2. ติดตั้งเครื่องหรี่เพื่อควบคุมความสว่างของเทป

เพื่อลดความคิดเห็นเกี่ยวกับชุดว่ายน้ำลงเล็กน้อย ฉันจะเล่าประสบการณ์ของฉันในการสร้างแสงแบ็คไลท์แบบไดนามิกสำหรับทีวี หยุดสร้าง 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 และแตกต่างจากที่อื่น ๆ ตรงที่มันใช้งานได้ อย่างไรก็ตาม ทุกอย่างมีราคา และทีวีที่มี Ambilight และความดื่มด่ำที่เพิ่มขึ้นนั้นมีราคาแพงกว่ารุ่นอื่นๆ มากมาย

นักพัฒนาชาวรัสเซียได้เสนอวิธีการที่จะช่วยให้จอภาพจากผู้ผลิตรายใดสามารถติดตั้งไฟแบ็คไลท์แบบไดนามิกได้ ในการดำเนินการนี้ คุณไม่จำเป็นต้องนำอุปกรณ์ไปที่ศูนย์บริการด้วยซ้ำ เพียงใช้เวลาและความเพียรพยายามเพียงเล็กน้อยเท่านั้น

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

มีสองรุ่นหลักให้เลือก: เวอร์ชันจอภาพ (ไฟ LED 30 ดวง) และเวอร์ชันทีวี (ไฟ LED 60 ดวง) นอกจากนี้ยังมีวิธีง่ายๆ - สำหรับ LED 10 ดวง แต่เหมาะสำหรับจอภาพที่เล็กที่สุดเท่านั้น

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

mindrunway.ru

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

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


mysku.ru

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

  1. พื้นหลังแบบคงที่ - สามารถตั้งค่าสีใดก็ได้ สามารถปรับเรืองแสง LED ได้
  2. เพลงสี - ไฟแบ็คไลท์จะกะพริบตามเวลาพร้อมกับเสียงเพลง สีของแสงไฟหลังถูกตั้งค่าเป็นสีเขียว-เหลือง
  3. พื้นหลังแบบไดนามิก - การไหลของสีหนึ่งไปยังอีกสีหนึ่งอย่างราบรื่น
  4. การจับภาพหน้าจอเป็นโหมดหลักในการทำงาน

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

PaintPack ทำงานช้ากว่าอะนาล็อกอย่างเป็นทางการของ Philips เล็กน้อย แต่เมื่อคำนึงถึงความแตกต่างของต้นทุนและความเป็นไปได้ในการอัพเกรดอุปกรณ์ใด ๆ ทางเลือกก็ชัดเจน



บทความที่คล้ายกัน
 
หมวดหมู่