ზარი

არიან ისეთებიც, ვინც ამ ამბებს შენამდე კითხულობს.
გამოიწერეთ ახალი სტატიების მისაღებად.
ელფოსტა
სახელი
გვარი
როგორ გინდა წაიკითხო ზარი?
სპამი არ არის

დისპლეის ჩარჩოს გარშემო დინამიური განათების მქონე ტელევიზორები Philips-ის ერთ-ერთი გამორჩეული ფუნქციაა. და ბევრი სხვასგან განსხვავებით, ის მუშაობს. თუმცა, ყველაფერს თავისი ფასი აქვს და ტელევიზორები Ambilight-ით და გაზრდილი ჩაძირვით უფრო ძვირია, ვიდრე ბევრი სხვა მოდელი.

რუსმა დეველოპერებმა შემოგვთავაზეს მეთოდი, რომელიც საშუალებას მისცემს ნებისმიერი მწარმოებლის მონიტორებს აღიჭურვოს დინამიური განათებით. ამისათვის თქვენ არც კი გჭირდებათ მოწყობილობის სერვის ცენტრში გადატანა: ამას მხოლოდ ცოტა დრო და გამძლეობა სჭირდება.

ზოგადად, ასეთი განათების შეძენა შესაძლებელია რადიო კომპონენტების სახით და დამოუკიდებლად კონფიგურაცია. მაგრამ, როგორც პრაქტიკა გვიჩვენებს, ეს თითქმის შედარებულია PaintPack-ის მზა ვარიანტებთან.

არსებობს ორი ძირითადი მოდელი: მონიტორის ვერსია (30 LED) და ტელევიზორის ვერსია (60 LED). ასევე არის ძალიან მარტივი - 10 LED-ისთვის, მაგრამ ის შესაფერისია მხოლოდ ყველაზე პატარა მონიტორებისთვის.

ტელევიზორის ვერსია აღჭურვილია გარე კვების წყაროთი. ასევე მის სასარგებლოდ არის LED-ების უფრო დიდი რაოდენობა, რაც იძლევა უფრო დიდ განათებას (სხვა სიტყვებით რომ ვთქვათ, ის უფრო ფართო და მაღლა ანათებს). თუ ასეთი ვარიანტები რაიმე მიზეზით არ არის შესაფერისი, შეგიძლიათ დაუკავშირდეთ დეველოპერებს: მცირე დამატებითი გადახდისთვის ისინი შემოგთავაზებენ შეცვლილ ვერსიას.

mindrunway.ru

PaintPack, ფაქტობრივად, არის პატარა ქეისი, რომელსაც ორივე მხრიდან უკავშირდება მოსახსნელი LED ზოლები. ყუთი შევსებით შეიცავს ინდიკატორებს და დენის კონექტორს, ასევე microUSB კომპიუტერთან დასაკავშირებლად. ასევე არის სამაგისტრო კონექტორი (დასაკუთრებული) ორი მოწყობილობის სერიულად დასაკავშირებლად.

მოწყობილობის კორპუსი მოთავსებულია ტელევიზორის ან მონიტორის უკანა მხარეს. შემდეგ LED ზოლები იდება ინსტრუქციის შესაბამისად, დენი უკავშირდება და იწყება მაგია. PaintPack-ის კომპიუტერთან USB კონექტორის საშუალებით დაკავშირებისას, თქვენ უნდა დააინსტალიროთ დრაივერები და დააკონფიგურიროთ მოწყობილობა შეფუთულ პროგრამაში.


mysku.ru

დაყენება ხდება AmbiBox პაკეტის გამოყენებით. თქვენ უნდა გადახვიდეთ მენიუში "ინტელექტუალური განათება", აირჩიეთ ეკრანის გადაღების მეთოდი და პროგრამაში შემოთავაზებული მუშაობის ერთ-ერთი რეჟიმი:

  1. სტატიკური ფონი - შესაძლებელია ნებისმიერი ფერის დაყენება, LED სიკაშკაშის რეგულირება.
  2. ფერადი მუსიკა - უკანა განათება დროთა განმავლობაში აციმციმდება მუსიკის ხმასთან ერთად. განათების ფერი დაყენებულია მწვანე-ყვითელზე.
  3. დინამიური ფონი - ერთი ფერის გლუვი ნაკადი მეორეში.
  4. ეკრანის გადაღება არის მუშაობის მთავარი რეჟიმი.

ეს რეჟიმი საშუალებას გაძლევთ გადაიღოთ ფერები ფილმებიდან და თამაშებიდან, რომლებსაც უყურებთ. განათების ფერი შეიცვლება ეკრანზე გამოსახულების მიხედვით, დაყოფილია ზედა, ქვედა და გვერდით ზონებად (თითოეული ცალკე).

PaintPack მუშაობს ოდნავ ნელა ვიდრე ოფიციალური Philips ანალოგი. მაგრამ ღირებულების სხვაობის გათვალისწინებით და ნებისმიერი მოწყობილობის განახლების შესაძლებლობის გათვალისწინებით, არჩევანი აშკარაა.

შუადღე მშვიდობისა.

ჩემი პირველი სტატიისთვის მე ავირჩიე ჩემი ერთ-ერთი ყველაზე წარმატებული ხელნაკეთობა: Ambilight-ის HDMI-გამტარი ანალოგი Philips-ისგან, ამიერიდან ამ კომპოზიციას „ატმოსვეტს“ დავარქმევ.

შესავალი
ინტერნეტში არც თუ ისე რთულია მზა/გახსნილი გადაწყვეტილებების და სტატიების პოვნა იმის შესახებ, თუ როგორ უნდა გააკეთოთ Ambilight მონიტორის/ტელევიზორისთვის, თუ გამოსახულებას კომპიუტერიდან აჩვენებთ. მაგრამ ჩემს მულტიმედიურ სისტემაში, კომპიუტერიდან ტელევიზორში სურათების გადატანა იკავებს დროის მხოლოდ 5%-ს, მე უფრო მეტ დროს ვთამაშობ სათამაშო კონსოლებზე, რაც იმას ნიშნავს, რომ მომიწია რაღაცის გამომუშავება.
საწყისი მონაცემები:
  • 60 დიუმიანი პლაზმური ტელევიზორი
  • HTPC ეფუძნება Asrock Vision 3D 137B
  • Xbox 360
მოწყობილობების უმეტესობა იყენებს HDCP-ს კონტენტის დასაკრავად, თუნდაც თამაშის დროს.
მოთხოვნა:
აუცილებელია ცენტრალიზებული Atmosvet მხარდაჭერა ტელევიზორთან დაკავშირებული ყველა მოწყობილობისთვის.
განხორციელება
არ გეტყვით, როგორ მივამაგრე ტელევიზორს 4.5 მ LED ზოლი და რა უნდა გაკეთდეს Arduino-თ, შეგიძლიათ გამოიყენოთ იგი როგორც ბაზა.

ერთადერთი გაფრთხილება:
შევამჩნიე, რომ ეკრანის ბოლოში უცნაური ციმციმები იყო, თავიდან შეცდომა დავუშვი სიგნალზე, გადავუხვიე დეფლიკერს, შევცვალე სურათის ზომა და ამოთხარე კიდევ რამდენიმე რამ, გაუმჯობესდა, მაგრამ ეს არ დაეხმარა ციმციმის დროს. დავიწყე ყურება. აღმოჩნდა, რომ მბჟუტავი მხოლოდ ფირის ბოლოს იყო და შემდეგ ნათელი სცენების დროს. მულტიმეტრის აღებით გავზომე ძაბვა ფირის დასაწყისში, შუა და ბოლოს და გამოვიცანი ციმციმის მიზეზი: ფირის დასაწყისში იყო 4,9 ვ (დიახ, ჩინური კვების წყარო იძლევა ძაბვას გადახრით, ეს არ არის მნიშვნელოვანი), შუაში 4.5 ბოლოს 4.22 - ძაბვის ვარდნა ძალიან მნიშვნელოვანია, პრობლემის მოგვარება უბრალოდ მომიწია - ელექტროენერგიის მიწოდებიდან შევაერთე ფირის შუაში და გავატარე მავთულის უკან. ტელევიზორი. ეს მყისიერად დაეხმარა, ნებისმიერი ციმციმი საერთოდ შეწყდა.

გადაიღეთ სურათი ვებკამერით
იდეის შესამოწმებლად და მისი ვიზუალიზაციის პირველი სატესტო ვერსია შეირჩა ვებკამერის საშუალებით სურათის გადაღებით) ასე გამოიყურებოდა:

დაბალი ფერის რენდერმა და მაღალი შეყოვნება აჩვენა, რომ ამ განხორციელების გამოყენება არანაირად არ შეიძლება.

გადაიღეთ სურათები HDMI-ით

შესაძლო ვარიანტების შესწავლის პროცესში, ყველაზე საიმედო და ეკონომიურად აირჩიეს შემდეგი სქემა:

  • ყველა მოწყობილობის სიგნალი მიეწოდება 5 in-1out HDMI გადამრთველს, რომელიც მხარს უჭერს HDCP-ს
  • გამომავალი სიგნალი მიეწოდება 1in-2out HDMI სპლიტერს, რომელიც არა მხოლოდ მხარს უჭერს HDCP-ს, არამედ გამორთავს მას გამოსავალზე (ჩინელის წყალობით).
  • ერთ-ერთი გამომავალი სიგნალი მიდის ტელევიზორზე
  • სხვა გამომავალი მიდის HDMI-დან AV კონვერტორზე
  • S-Video სიგნალი მიდის გადაღების ყუთში ICONBIT-დან
  • გადაღების ყუთი დაკავშირებულია მუდამ ჩართულ HTCP-თან USB-ის საშუალებით, რომელიც დაკავშირებულია ტელევიზორის Arduino კონტროლერის ფირზე.

თავდაპირველად ის ველურად გამოიყურება და ყავარჯნებს ჰგავს, მაგრამ:

  • მუშაობს.
  • მთლიანობაში, ეს ყველაფერი, ჩინეთიდან შეკვეთა, 3-4 ათასი მანეთი დამიჯდა.

რატომ არ გამოვიყენე HDMI გადაღების დაფა? ეს მარტივია: ყველაზე იაფი და ხელმისაწვდომი ვარიანტია Blackmagic Intensity Shuttle, მაგრამ ის ვერ მუშაობს 1080p/60fps სიგნალით, მხოლოდ 1080p/30fps - რაც მიუღებელია, რადგან... არ მინდოდა კადრების სიჩქარის დაწევა, რომ სურათის გადაღება შემეძლო. + ეს ღირდა დაახლოებით 10 ათასი. რუბლი - რომელიც არ არის იაფი გაურკვეველი შედეგით.

დანაკარგები HDMI-ზე S-ვიდეოზე კონვერტაციაში უმნიშვნელოა LED ფონური განათების 46x26 გარჩევადობით ფერების გადასაღებად.

თავდაპირველად ვცადე EasyCap გამომეყენებინა S-video-ს გადასაღებად (მას ბევრი ჩინური ვარიაცია აქვს), მაგრამ საქმე იმაშია, რომ იქ გამოყენებული ჩიპი უკიდურესად ღარიბია და არ შეიძლება openCV-ით მუშაობა.

ერთადერთი უარყოფითი ის არის, რომ გამომავალი S-Video სიგნალი შეიცავდა შავ ზოლებს კიდეებზე, რაც წყვეტს რეალურ შინაარსს (დაახლოებით 2-5%), გამომავალი სურათი ამოვიღე გადაღების დაფიდან ამ ზოლების მოსაშორებლად, გამოსახულების დაკარგვა ამ სფეროებში პრაქტიკულად არ იმოქმედა შედეგზე.

პროგრამული უზრუნველყოფა
ჩემთვის ეს იყო ყველაზე მეტად საინტერესო ნაწილი, იმიტომ მე ნამდვილად არ მიყვარს ტექნიკის შეხება.

სურათის გადასაღებად გამოვიყენე openCV და კერძოდ მისი .NET wrapper emgu CV.

მე ასევე გადავწყვიტე გამომეყენებინა რამდენიმე განსხვავებული ტექნიკა გამოსახულების შემდგომ დამუშავებისთვის და მისი მომზადებამდე, სანამ ფერთა სიას გავუგზავნიდი კონტროლერს.

ჩარჩოს დამუშავება
1. გადაღებული ჩარჩოს მიღება
2. ჩამოჭრა ჩარჩო შავი ზოლების აღმოსაფხვრელად
აქ ყველაფერი მარტივია:
frame.ROI = new Rectangle(8, 8, frame.Width - 8, frame.height - 18 - 8);
ამოჭრა 8 პიქსელი ზემოდან, 8 მარჯვნიდან და 18 ქვემოდან (მარცხნივ არ არის ზოლი).
3. მოდით შევცვალოთ ჩარჩოს ზომა უკანა განათების გარჩევადობამდე, არ არის საჭირო ჩვენთან ჯანსაღი სურათის გადატანა
არც არაფერი რთული, ჩვენ ამას ვაკეთებთ openCV-ის გამოყენებით:
ჩარჩო. ზომის შეცვლა (LedWidth - 2*LedSideOverEdge,
LedHeight - LedBottomOverEdge - LedTopOverEdge,
INTER.CV_INTER_LINEAR);
ყურადღებიანი მკითხველი შეამჩნევს ცვლადების სიმრავლეს. ფაქტია, რომ ჩემი ტელევიზორის ჩარჩო საკმაოდ დიდია, გვერდებზე იკავებს 1 LED, ზემოდან 1 და ქვემოდან 3, ამიტომ ზომის შეცვლა ხდება დისპლეის პირდაპირ განლაგებულ LED-ებზე, ხოლო კუთხეებს მოგვიანებით ვამატებთ. . ზომის შეცვლისას ჩვენ უბრალოდ ვიღებთ საშუალო ფერებს, რომლებიც LED პიქსელებს უნდა ჰქონდეთ.
4. მოჭრილი ჩარჩოდან ჩვენ LED-ების რუკას ვაკეთებთ
აქაც ყველაფერი მარტივია, ჩვენ სულელურად მივდივართ თითოეულ მხარეს და თანმიმდევრულად ვავსებთ 136 მნიშვნელობის მასივს LED-ების ფერით. ხდება ისე, რომ ამ დროისთვის ყველა სხვა ოპერაციების შესრულება უფრო ადვილია 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-დან, ვამცირებთ Saturation კომპონენტს და ვუბრუნდებით RGB-ს.
7. დეფლიკერი
ისე ხდება, რომ შეყვანის სურათი "ირყევა" - ეს არის ანალოგურ სიგნალად გადაქცევის შედეგი, როგორც მე მჯერა. თავიდან ვცადე მისი გადაჭრა ჩემი გზით, შემდეგ გადავხედე VirtualDub-ში გამოყენებული Defliker ფილტრის წყაროებს, გადავწერე C#-ში (ეს იყო C++-ში), მივხვდი, რომ არ მუშაობს, რადგან ძალიან შთამბეჭდავია. რომ ის ებრძვის კადრებს შორის მბჟუტვას, საბოლოოდ, მე გავაერთიანე ჩემი ხსნარი და ეს დეფლიკერი და მივიღე რაღაც უცნაური, მაგრამ მან მოსალოდნელზე უკეთ იმუშავა. ორიგინალური დეფლიკერი მუშაობდა მხოლოდ მთელი ჩარჩოს ინტენსივობით, მე მჭირდება თითოეული LED ცალკე. თავდაპირველმა დეფლიკერმა შეადარა ინტენსივობის ცვლილება ჯამის სახით, მე მირჩევნია შევადაროთ ფერის ვექტორის სიგრძე. მნიშვნელობა წინა ჩარჩოების ფანჯარაში. და არის ბევრი სხვა წვრილმანი, რის შედეგადაც ცოტა დარჩა თავდაპირველი დეფლიკერი.
მთავარი იდეა: წინა კადრების საშუალო ინტენსივობის საფუძველზე, შეასრულეთ მიმდინარე ჩარჩოს მოდიფიკაცია, თუ მისი ინტენსივობა არ არის უფრო მაღალი ვიდრე გარკვეული ზღურბლი (მე მაქვს ეს ბარიერი საბოლოო დაყენებაში 25), თუ ბარიერი გადალახულია, მაშინ ფანჯარა გადატვირთულია, ცვლილებების გარეშე.
ოდნავ შეცვლილი (კონტექსტიდან ამოვარდნილი წაკითხვისთვის) კოდი ჩემი დეფლიკერიდან:
Array.Copy(_leds, _ledsOld, _leds.Length);< _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) >for (var i = 0; i< LedLumWindow; j++) { _lumData = (int) lumSum; } } else { for (var j = 0; j < LedLumWindow - 1; j++) { _lumData = _lumData; } _lumData = (int) lumSum; if (lumSum >0) ( მასშტაბი = 1.0f/((საშუალო + 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 >max) max = g;< _softening) { if (diffR >თუ (b > max) max = b;< _softening) { if (diffG >ორმაგი s;< _softening) { if (diffB >თუ (მაქს*მაქს > 255) s = 255.0/მაქს;
else s = მასშტაბი;

r = (int)(s*r);

g = (int) (s*g);
b = (int) (s*b);
// შენარჩუნება highlight double k;< _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 >თუ (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);
9. შეინახეთ მიმდინარე მდგომარეობა ისე, რომ პაკეტის გაგზავნის ძაფმა დაიჭიროს იგი და გაუგზავნოს უკანა განათების კონტროლერს.
მე განზრახ გამოვყავი ფრეიმების დამუშავების პროცესი და პაკეტების კონტროლერზე გაგზავნა: პაკეტები იგზავნება ერთხელ გარკვეული ინტერვალით (ჩემთვის ეს არის 40 ms), რათა Arduino-მ შეძლოს წინას დამუშავება, რადგან უფრო ხშირად 30ms-ზე ახშობს, ასე რომ ბრუნავს. რომ ჩვენ პირდაპირ არ ვართ დამოკიდებული კადრების სიხშირეზე და არ ვერევით ამ პროცესში (მაგრამ პაკეტის გაგზავნა ასევე კარგავს დროს).
ცოტა რამ Arduino-ს შესახებ
თქვენ არ შეგიძლიათ უბრალოდ აიღოთ და გაგზავნოთ სოლიდური პაკეტი სერიიდან Arduino-ში, რადგან ის სცილდება ნაგულისხმევი HardwareSerial ბუფერს და თქვენ დაკარგავთ მის დასასრულს.
ეს შეიძლება მოგვარდეს საკმაოდ მარტივად: დააყენეთ HardwareSerial ბუფერის ზომა საკმარისად დიდი, რომ მოერგოს მთელ გაგზავნილ პაკეტს ფერების მასივით, ჩემთვის ეს არის 410;
UI
თავად პროგრამული უზრუნველყოფა განხორციელდა როგორც win სერვისი, ყველა პარამეტრის კონფიგურაციისთვის + ჩართვა/გამორთვა გავაკეთე ვებ UI, რომელიც დაუკავშირდა სერვისს სერვისზე WebService-ის მეშვეობით. მობილური ტელეფონის ეკრანის საბოლოო ინტერფეისი ასე გამოიყურება:
შედეგი
საბოლოო ჯამში, შედეგმა გაამართლა ყველა მოლოდინი და ახლა კონსოლებზე თამაშისას კიდევ უფრო ვიძირები თამაშის ატმოსფეროში.

სამუშაოს საერთო შედეგად, მე ჩავწერე ვიდეო ატმოსფეროს შუქით, რომელიც მუშაობს ჩემი სქემის მიხედვით:

ტესტის ნიმუში 1: წყნარი ოკეანის ზღვარი, შანხაის ბრძოლის სცენა, ეს ფილმი კარგია ტესტირებისთვის და ჩვენებისთვის, ბევრი ნათელი სცენა და ციმციმები, ელვისებური დარტყმა და ა.შ.:

ტესტის ნიმუში 2: ზოგიერთი ვიდეო MLP-დან, რომელიც გაჟონა YouTube-დან, ძალიან შესაფერისია ნათელი ფერებით სცენების შესამოწმებლად (მომეწონა ზოლები), ასევე სცენების სწრაფად შეცვლისთვის (ვიდეოს ბოლოს შეგიძლიათ ნახოთ დაგვიანების ეფექტი , ჩანს მხოლოდ ვიდეოში, როდესაც ეს არ არის შესამჩნევი რეალურ ყურებაში, ვცადე შეფერხება გამეზომა ვიდეოს გამოყენებით - აღმოჩნდა 10-20ms):

და ბოლოს, აღსანიშნავია HTPC-დან რესურსების მოხმარების შესახებ:
HTPC მაქვს ASRock Vision 3D i3-ზე, ატმოსფერული განათების სერვისი ჭამს CPU-ს 5-10% და 32MB RAM.

გმადლობთ ყურადღებისთვის, იმედი მაქვს, რომ ჩემი სტატია ვინმეს დაეხმარება.

ქვემოთ მოცემულია პროექტი Ambilight განათების შესაქმნელად ტელევიზორის ან მონიტორისთვის. წინა სტატიაში, "დინამიური ტელევიზორის უკანა განათება", გამოიყენა მარტივი მიდგომა ოთხი RGB LED ზოლის გამოყენებით, რაც საშუალებას აძლევს ტელევიზორის თითოეულ მხარეს მხოლოდ ერთი ფერის ჩვენებას.
ამ სტატიაში ჩვენ გავაუმჯობესებთ განათებას RGB LED პიქსელების გამოყენებით, რაც საშუალებას გვაძლევს გავაკონტროლოთ თითოეული RGB LED. დაწვრილებით აქ: .

ასე რომ, რაც ჩვენ გვჭირდება:
- ციფრული ლენტი, რომელიც დაფუძნებულია ახალ WS2801 კონტროლერზე. ერთი ასეთი ზოლი (25 LED) საკმაოდ საკმარისია ჩვეულებრივი საშუალო მონიტორისთვის. მანძილი RGB მოდულებს შორის არის დაახლოებით 10 სმ. დიდი ტელევიზორისთვის შეიძლება დაგჭირდეთ 2 ასეთი ლენტი
- სტაბილიზირებული 5 ვ დენის წყარო RGB LED-ის გასაძლიერებლად. ელექტრომომარაგების მაქსიმალური დენი უნდა შეირჩეს RGB LED მოდულების ენერგიის მოხმარების საფუძველზე. თუ გამოიყენება ერთი ზოლი (25 RGB LED), მაშინ საჭიროა ელექტრომომარაგების დენი 1.5A, თუ 2 ზოლები, მაშინ 3A, შესაბამისად.
- Arduino კონტროლერი, კონექტორები და სხვა წვრილმანები.

Arduino-სთან და PSU-სთან ლენტით დაკავშირების გასაადვილებლად, მცირე ცვლილებები განხორციელდა. ფირის მონაცემებისა და საათის ხაზებისთვის, დამაკავშირებელი კონექტორები იყო შედუღებული, რათა მათი უსაფრთხოდ ჩასმა არდუინოს კონექტორებში. ელექტრომომარაგების დასაკავშირებლად, კონექტორი იყო შედუღებული. საერთო საფუძველი იყო შედუღებული კონექტორიდან Arduino-მდე. ქვემოთ მოცემულ ფოტოში, ვფიქრობ, ყველაფერი საკმაოდ ნათელია:

Arduino-ში მე-13 პინი გამოიყენებოდა საათისთვის, ხოლო მე-11 პინი მონაცემებისთვის. გარდა ამისა, არ დაივიწყოთ "მიწა".

ახლა ჩვენ უნდა გადავწყვიტოთ, როგორ დამონტაჟდება ეს ყველაფერი ტელევიზორის ან მონიტორის უკანა კედელზე. აქ ბევრი ვარიანტია და თქვენ შეგიძლიათ უბრალოდ დაამაგროთ LED-ები ლენტით მონიტორის უკანა მხარეს, ან შეგიძლიათ ამოჭრათ ლამაზი შაბლონი ან პლექსიგლასი. ჩვენი შაბლონი დამზადდება თხელი პლასტმასისგან, მონიტორისა და სამაგრისთვის საჭირო ყველა ჭრილით:

შემდეგ, თქვენ უნდა თანაბრად მოათავსოთ 25 RGB LED-ები. მე მივიღე მანძილი LED- ებს შორის დაახლოებით 50 მმ.

შაბლონის დამზადებისას არ დაბლოკოთ სავენტილაციო ხვრელები მონიტორზე, ასეთის არსებობის შემთხვევაში.

ყველა RGB LED პიქსელის დამაგრების შემდეგ, რჩება მხოლოდ Arduino კონტროლერის მიმაგრება. ორმხრივი ლენტი საუკეთესოდ შეეფერება ამ მიზნებისათვის. USB კაბელს ვუკავშირებთ Arduino-ს და 5V კვების წყაროს RGB LED ზოლს.

პროგრამული უზრუნველყოფა

თქვენ შეგიძლიათ ჩამოტვირთოთ ყველა საჭირო პროგრამა GitHub-დან. Arduino->LEDstream საქაღალდეში არის Arduino-ს ესკიზი. შეადგინეთ იგი და ჩატვირთეთ კონტროლერში.

კომპიუტერი იყენებს პროგრამულ უზრუნველყოფას Processing IDE-სთვის, რომელიც ცალკე უნდა იყოს გადმოწერილი და დაინსტალირებული (არ ავურიოთ Arduino Processing-ში!). თუ თქვენს კონფიგურაციას არ აქვს 25 RGB LED, მაშინ ესკიზზე ცვლილებების შეტანა დაგჭირდებათ. ასევე, თქვენ უნდა აირჩიოთ COM პორტი, რომელზეც Arduino კონტროლერი არის დაკავშირებული მონაცემების გადასაცემად (იხილეთ ეკრანის სურათი ქვემოთ).

პროგრამა მუშაობს შემდეგნაირად: გაშვების შემდეგ პროგრამა მუშაობს ფონზე და მუდმივად იღებს ეკრანის სკრინშოტებს და აანალიზებს ცალკეული წერტილების ფერებს პერიმეტრის გარშემო. შემდეგ ის ითვლის წერტილების საშუალო ფერს და მონაცემებს გადასცემს Arduino კონტროლერს. და არ აქვს მნიშვნელობა რა მუშაობს კომპიუტერზე - მედია ფლეერი, ბრაუზერი ვიდეო YouTube-დან თუ სხვა რამ.

ჩვენ არ განვიხილავთ პროგრამის კოდს, რადგან... კარგად არის კომენტირებული. სხვათა შორის, Colorswirl საქაღალდეში არის დემო ესკიზის მცირე მაგალითი, რომელიც აჩვენებს RGB LED-ებიცისარტყელა.
ზოგიერთმა ძველმა მოწყობილობამ შეიძლება ვერ გაუმკლავდეს დატვირთვას (მაგალითად, ნეტბუქებზე პირველი ატომები), რადგან ამ შემთხვევაში, რეზოლუციის შემცირება, მაგალითად, 800x600, დაგეხმარებათ.

იმისათვის, რომ ოდნავ განზავდეს საცურაო კოსტუმების მიმოხილვები, მე გეტყვით ჩემს გამოცდილებას ტელევიზორის დინამიური განათების აშენებაში. შეწყვიტე მუშკისგან ჰაბრის დამზადება
ძირითადი ნაწილი უკანა განათებაჯერ კიდევ LED ზოლია, ამიტომ გადავწყვიტე სათაურში ჩამეტანა. თუმცა მშენებლობაში კიდევ რამდენიმე კომპონენტი იყო ჩართული.

თუ დიდი ხანია გსურდათ შუქის მიმაგრება თქვენს არა Philips ტელევიზორზე, მაგრამ გეშინოდათ ცდა, სცადეთ. უფრო ადვილია ვიდრე ჩანს.

დამწყებთათვის, შედეგის მოკლე ვიდეო.


ამ მომენტში - უკანა განათება კიდევ უფრო მაგარი მუშაობს - პარამეტრებში ვაყენებ უფრო მაღალ სიკაშკაშეს და უფრო მაღალ განახლების სიჩქარეს, ახლა სამოქმედო ფილმებში ან სცენებში კლუბში (როდესაც ჩარჩოში არის სტრობული ციმციმები) - მთელი კედელი უბრალოდ ფეთქდება. სინათლე

როგორ გაკეთდა ეს საკმაოდ მარტივი იყო:
+
+
+
ცოტა გამბედაობა=
ამბილაითი

უფრო დეტალურად პუნქტებზე:
1 იმ დროს უკვე მყავდა მალინკა. მანდ ვიყიდე ამაზონზე, მაგრამ მგონი აქ წარმომავლობას არ აქვს როლი - დაფა ერთიანია და აბსოლუტურად ყველგან შეგიძლია იყიდო - მთავარია მეორადის ყიდვას არ გირჩევ. მაქსიმალური სიხშირით მუშაობის გარკვეული დროის შემდეგ, დამატებითი რადიატორების გარეშე, მან დაიწყო გაუმართაობა. მე ცარცის მდე გადახურება, მაგრამ ეს შეიძლება იყოს უბრალოდ წარმოების დეფექტი. ჟოლო ძალზე მგრძნობიარეა დენის წყაროს მიმართ, ამიტომ დაუყონებლივ შეინახეთ ნორმალური ელექტრომომარაგება ტალღის დაბალი დონით... (და ისე, რომ არ ჩამოცურდეს დატვირთვისას)
2 რეალური ლენტი. ვფიქრობ, ვიდეოში საკმაოდ კარგად მუშაობს. თავად ფირზე არაფერია განსაკუთრებული, რომ ტელევიზორის ზუსტად 3 მხარისთვის იყო საკმარისი. მოსახვევები მავთულის ნაჭრებით შევადუღე (თავდაპირველად შეერთება კონექტორებით გავაკეთე, მაგრამ სწრაფად გავბრაზდი, რომ მავთულის გრძელი ნაჭრები იყო გამოსული - ყველაფერი დავჭრა და წვრილად გავწურე)
3 გენიალური ჰიპერონის პროგრამა. Raspberry-ზეა დაყენებული (მულტიმედია OpenElec მაქვს OS) იდიოტების ინსტრუქციის მიხედვით. მე კი პირველად მივხვდი სწორად. ექსპლუატაციის დროს, ის სულელურად იჭერს ფერთა მონაცემებს ეკრანის კიდეებიდან, აფასებს მას და აგზავნის საკონტროლო სიგნალებს LED ზოლზე. ფირზე ციმციმებს ცისარტყელას ყველა ფერი, აუდიტორია აღფრთოვანებულია. ექსპლუატაციის დროს, 30 გიგას წონის fullHD თამაშისას, პროცენტზე დამატებითი დატვირთვა არის 5-10%. სიჩქარეზე არანაირად არ მოქმედებს.

შედეგი გადააჭარბებს ჩვენს ყველაზე დიდ მოლოდინს:
LED სიმკვრივით 30 ტონა მეტრზე, მთელი კედელი ტელევიზორის უკან (დაახლოებით 10-15 სანტიმეტრის დაშორებით) ეკრანის ფერებშია შეღებილი. ვიზუალურად სცენა შორდება... ისე, რამდენადაც ეს კედელია. გადაცემაში შეფერხება არ არის. თვალით მაინც შეუძლებელია თვალის დევნება. ყველაფერი გლუვი და ნათელია. არსებობს მაგარი პროგრამა თქვენი სმარტფონისთვის, რომლითაც შეგიძლიათ განათება გადართოთ ლაუნჯ რეჟიმში - დააყენეთ სასურველი ფერი/სიკაშკაშე, ან გაუშვით ერთ-ერთი შემოთავაზებული ნიმუში (როგორიცაა წითელი შუქი, ან უბრალოდ ცისარტყელა, ან, მაგალითად, , ფერის გადასვლები).
როდესაც მულტფილმების ყურებისას უკანა განათება გამორთულია, ჩემი ქალიშვილი აღშფოთებულია და ყველაფრის უკან დაბრუნებას ითხოვს.)))

კარგად, MySKU პოლიტიკის შესასრულებლად, თავად ნაწილების მიმოხილვა:
LED ზოლები - განხილული ბევრჯერ. ზუსტად იგივე მივიღე. ძალიან კარგი. ხარისხი შესანიშნავია. აჩვენებს, თუ მეხსიერება ემსახურება, 16 მილიონ ჩრდილს. ზუსტად არ დამითვლია. საჭიროებს დამატებით სიმძლავრეს - პლიუსი მინუსი დავკიდე 5V 2A ბლოკზე - საკმარისზე მეტი 2 მეტრზე. მე ვფიქრობ, რომ ეს საკმარისი იქნება 3-ისთვის, მაგრამ ამის გარანტიას არ ვიძლევი. საკონტროლო კონტაქტები დავაკავშირე ჟოლოს GPIO-ს.

Malinka არის ერთი დაფის კომპიუტერი. მხოლოდ ზარმაცებს არ უნახავთ. შესანიშნავია როგორც Linux-ის საფუძვლების დაუფლებისთვის, ასევე მინიმალისტური და მოქნილი მედია ცენტრის შესაქმნელად. ჩემთვის აღმოჩნდა იდეალური ვარიანტი: გადახვევს ჩემთვის ხელმისაწვდომ ნებისმიერ შინაარსს, მუშაობს ინტერნეტ ტელევიზორის დისპლეის მიმღებად, თავს იჩენს AirPlay სიგნალის მიმღებად, როდესაც მსურს რაიმეს გაშვება ტელეფონიდან ან ლეპტოპიდან. შესანიშნავი რამ - 3 ვატი და ბევრი გართობა + HDMI CEC მხარდაჭერა ყუთიდან - ყველაფერი კონტროლდება ორიგინალური ტელევიზორის დისტანციური მართვისგან.

და ბოლოს, კიდევ ერთი ვიდეო:

რამდენიმე დღის წინ გადავწყვიტე კიდევ გამეკეთებინა დემოვიდოები, უკვე ახალ ბინაში.

კედლის ფერი პისტასფერია, პარამეტრები არ შემიცვლია და არც შევცვლი. ასე რომ, ფერები ოდნავ მწვანეა. მომწონს და შენი აზრი არ მაინტერესებს)

+69-ის ყიდვას ვაპირებ დაამატეთ რჩეულებში მიმოხილვა მომეწონა +16 +48

ზარი

არიან ისეთებიც, ვინც ამ ამბებს შენამდე კითხულობს.
გამოიწერეთ ახალი სტატიების მისაღებად.
ელფოსტა
სახელი
გვარი
როგორ გინდა წაიკითხო ზარი?
სპამი არ არის