Jump to content

Pašdarināts Ambilight paveids


Bruketajs
 Share

Recommended Posts

Par projektu un izpildi var tikai likt atzīmi teicami. Būtu  labi ja vairāk cilvēkiem nagi niezētu, ko pašam uztaisīt. Cita lieta, man nav dots saprast, nah** televizoram vajag to pakaļas gaismu, bet nu labi, es esmu visu šito navorotu un bildes ulučšizaizeru nīdejs.

Link to comment
Share on other sites

Nezinu kā šis, bet orģināls man patika, sākuma jocīgi, bet ir tur kautkas!:biggrin:

Link to comment
Share on other sites

Manam ar ir ambilights. Nav tā, ka nevaru iztikt, nav tā, ka baigi pamanu, bet kad paspaidi pulti, tad tomēr liekas ka foršāk, kad viņš ir ieslēgts.

 

No sētas puses pa logu gan viņas izskatās izskatās pretīgi - pretīgāk kā krāsainās ziemas svētku eglītes lampiņas ar pretīgu melodiju !  :D


Ps. izskatās labi. Varbūt, maķenīt uz stūriem pietrūkst tās gaismas.

Link to comment
Share on other sites

Protams, gaisma televizra pakaļā čakarē acis un liekas, ka melnā līmenis ir zemāks. Tas ir kārtējais ulučšizaizers, jo ražotāji nevar uztaisīt LCD matricu, kurai nespīdētu cauri gaisma un aizliek acis ar krāsainu gaismu no TV pakaļas. Man tas atgādina krāsainu bērnu grabuīti, kurš novērš uzmanību no patiesās problēmas.Tāpat ir ar pārejiem ulučšizaizeriem , kuri itkā ''uzlabo'' bildi. Nafig  uzlabot, vajag padot uz televizru kvalitatīvu nepārkomresētu signālu ar lielu bitraitu un neko tur uzlabot nevajadzēs.

Link to comment
Share on other sites

pirms 10 stundām , Didzis teica:

nah** televizoram vajag to pakaļas gaismu

Es arī pievienojos "nesapratēju" nometnei. Tā teikt - grāmatu lasījis neesmu, bet ir viedoklis :D

Link to comment
Share on other sites

pirms 2 stundām , Didzis teica:

Tas ir kārtējais ulučšizaizers

 

Brilles esot tāds ļaužu bieži lietots bildes "ulučšizaizers". Tās arī vajag nafig?

  • Patīk 1
Link to comment
Share on other sites

Interesanti. Pašam arī ir vienam TV pielikta balta LED lenta aizmugurē. It kā prasts konstants fona apgaismojums, bet tāpat padara TV skatīšanās procesu patīkamāku.

Link to comment
Share on other sites

Ja godīgi, šis "ulučšaizers" nav nekāds brīnums, bet par to naudu ir samērā ok. Ja senos laikos Philips tv ar Ambilight maksāja labu ciparu, tad tagad pa to sīknaudu var ielikt tīri eksperimentam. 

Link to comment
Share on other sites

pirms 12 stundām , Didzis teica:

Cita lieta, man nav dots saprast, nah** televizoram vajag to pakaļas gaismu

Pilnīgi loģisks jautājums. Atbilde ir tāda, ka mēģinam kompensēt to, ka tv ekrāns nav 65". Senāk, kad Philips to sāka, bija apgalvojums - cilvēks tāpat pa malām nesaskata sīkas detaļas, tālab pietiek tikai ar harmoniskām krāsām. Bilde liekas mazliet lielāka. Manā gadījumā mazliet prasās pamainīt ledu leņķi, lai gaismas pleķis izlien vairāk uz āru. 

  • Patīk 1
Link to comment
Share on other sites

Nu bet es par ko, nevar atļauties nopirkt lielu televizoru, liekam pakaļas gaismu un itkā palielinam bildi mazam ekrānam. Vai tad tas nav ulučšizaizers? Tieši tāds pats, kā attēla apstrāde, kura itkā kompensē videokompresijas sapistu bildi.

Link to comment
Share on other sites

Didzi, ja negribi ulučaizeri, tad atliek tik skatīties kineskopa TV, jo apraidē (arī HD) bilde ir ar laukiem un LCD matricas principā bez pēcapastrādes nevar normāli parādīt tādu bildi. Tas, ka ražotāji raksta, ka matrica atbalsta interlaced/progressive ir pupu mizas jeb iekļauta pēcapstrāde.

 

Par to piegaismošanu - man nav, bet esmu paskatījies esot ciemos - ne labs ne slikts, bet interesants efekts. :)

Link to comment
Share on other sites

Ir man 7. Sērijas Philips, ambilight ir ok :yes4: Visi uzlabojumi atslēgti, tikai dinamiskais kontrasts, rāda labi.

Edited by MasteR's
Link to comment
Share on other sites

Racer, protams, ka digitālajā laikmetā bez video apstrādes neiztikt. Par to tak runa neiet. Runa ir piemēram par Lattelekoma  sakmpresēto bildi ar drausmīgiem artifaktiem. Ja vēl uz teļuka ieslēdz ulučisaizerus, tad bilde vēl vairāk tiek sapista. Nē, nu dažiem jau patīk tie bezreljefa plastalība ģīmji. Es vienkārši gribu pateikt, ka kvalitatīvam attēlam ar augstu bitraitu  nafig nevajag nekādus ulučšizaizerus, bet sūdu par konfekti neviena digitālā apstrāde neuztaisīs un  neviena pakaļas gaisma ekrāna lielumu nepalielinās.

Link to comment
Share on other sites

Man savam Philipsam bilde patīk, kad ir uzlikts "Kino" uličaizers. Ar citiem, tostarp arī BEZ uličaizeriem bilde izskatās vairāk pēc plastmasas un ziepju operas. Šis man patīk labāk, par izslēgtiem uličaizeriem.

Man pofig dabiskums, ja tā bilde izskatās tā kā viņa izskatās.

 

Laikam arī es vēl aizvien esmu pieradis pie CRT trubām. :D

Link to comment
Share on other sites

Man arī patīk veco Philipsu bilde - šefam tāds ir ar visai tizlu ambilight, bet strādā vēl šodien pēc viena padārga remonta un bilde no parastiem avotiem (HTB+ un mūsu kanāli) ir gana laba. Uz sava es savukārt agrāk izmantoju  Nvidia algoritmus iekš KODI, bet kopš pāriešanas uz Odroid, man tas ir liegts... nākas iztikt.

Link to comment
Share on other sites

Uz Nvidia un AMD Libreelec buildiem, pie Video setingiem ir papildus opcijas, attēla procesēšanai - Scaling un Deinterlace, ja nemaldos - nu jau kautkādu laiku iztieku bez.

 

 

Link to comment
Share on other sites

@Didzis - es arī esmu vecs konservants, tāpat kā Tu! BET Ambilight skatoties koncertus ir SUPER fīča! Protams, ja aizmugurē nav kaut kādas raibas vai krāsainas tapetes. Konkrēti runa par 65" TV, skatījāmies Pink Floyd dazādas dziesmas, kā arī dzīvos končus... super un viss!

 

Ja nepatīk - nelieto! Tikai neuzskati tos, kam šī fīča patīk, par ar prātu apdalītajiem. Sarunājuši?

 

Un tagad pieturēsimies pie tēmas - tas ir konkrētā risinājuma apspriešanas, nevis sāksim svētos karus  vai filozofēsim par citiem attēlu uzlabotājiem.

Link to comment
Share on other sites

Prasās savādāk izvietot laikam, jo orģinālais ambilight plašāks. Bet cepuri nost, nav vairs tas lags, kas bija vērojams agrākām versijām :) 

Link to comment
Share on other sites

pirms 16 stundām , itanium teica:

Neesmu vēl pats meklējis, bet var ar Android TV kasti (Kodi) kas tāds ir iespējams?

Pie nosacījuma, ja pie Kodi pluginiem ir Hyperion un piespraustais Arduino atpazīstas kā usb-serial paveids. Vēl iespējamas nianses ar attēlgrābšanu, tā teikt, jo Android kastes izmanto visādus interesantus variantus, lai atskaņotu to video.

pirms 15 stundām , Zin... teica:

Prasās savādāk izvietot laikam, jo orģinālais ambilight plašāks. 

Jā, tas tiesa - būs jādomā par trīsstūrveida starplikām, lai ledu leņīs ir cits. Pašlaik tiešām ir šaurs un spilgts kūlis.

Link to comment
Share on other sites

  • 1 month later...

Iedvesmojos no @Bruketajs projekta, šodien pasūtīju  WS2812B, 60 led/m 

Man ir KII pro ar libreelec + kodi, arduino platīte, kā arī vecs pc baroklis mētājas! 

Varētu būt kruts efekts priekš tumšajiem rudens/ ziemas vakariem! 

  • Patīk 1
Link to comment
Share on other sites

Man kāreiz arī pāris dienas atpakaļ ienāca prātā doma, ka varētu kautko līdzīgu uztaisīt, tīri aiz neko darīt. Sēdēju, domāju kā dabūt datus no PC uz LED'iem. Ar vadiem garlaicīgi, vajag wireless.

Ir krājumos daudz nrf24l01 moduļi, bet tad tikuntā viens modulis kautkādā veidā jāpieķīmiķo pie PC. Ienāca prātā doma, ka varētu vienu NRF moduli pie lediem, bet datora galā izmantot Logitech Unifying Receiver, jo tas izmanto to pašu Nordic čipu. Sāku jau ķidāt ārā vienu receiveri, lai varētu pārflašot firmwāri, bet tad ienāca prātā cita - vēl ģeniālāka ideja, kāpēc gan LED'i nevarētu izlikties par peli (vai citu HID devaisu) un tad sapāroties ar PC. Pēctam var izmatot to pašu Logitech peles draiveri, lai sūtītu datus uz lediem. Pietam paralēli pele un klaviatūra var mierīgi strādāt, jo var sapārot līdz pat 6 devaisiem. Divi - vienā risinājums. 

Sāku lasīt Logitech HID++ protokola specifikāciju un uznāca miegs, aizgāju gulēt. Tagad, kā jau ar visām citām ģeniālajām idejām, pazuda iedvesma un slinkums sākt par jaunu.

Sausais rezultāts - izķidāts un izmests Logitech Receivers :D Nepatīk vairs Ambilight.

Edited by AndrisBB
  • Haha 4
Link to comment
Share on other sites

Pamēģini vēl un neaizmirsti uzrakstīt kas sanāca! Pat mani, pārliecinātu Philips nīdēju, šī tēma pamudināja aizdomāties par smuklampiņu lietderīgumu.

Link to comment
Share on other sites

Galvenais ir uzreiz uzsūtīt kādu mazarduino ar kvalitatīvu usb>serial portu iekšā - jo vairāk ledi, jo lielāks ātrums cauri tur nepieciešams. Pēdējoreiz pārflashoju testam NodeMCU un tas arī kkā strādā tai Arduino režīmā, bet reizi pa reizei ir glitchs.

Ja vajag, iedošu arī savus konfigus un pārlāpīto sketchu.

Pašlaik cīnos ar vienu interesantu gļuku - ja lietojam to ambilight arī ikš Kodi menu, izslēdzot, kāds no lediem paliek iedegts un naktī klusu zvēro aiz tv... 

Link to comment
Share on other sites

Man kaut kādi divi arduino mājās mētājas. Cerams ka derēs. Nu ja nē, tad domās. 

 

Pirms 23 minūtēm , Bruketajs teica:

Ja vajag, iedošu arī savus konfigus un pārlāpīto sketchu.

Kad tik tālu būšu ticis, tad gan jau ka vajadzēs! 

Bet nu man būs konfigs savādāks - lielāks tv un 60 ledi uz metru. 

Pirms 24 minūtēm , Bruketajs teica:

izslēdzot, kāds no lediem paliek iedegts un naktī klusu zvēro aiz tv... 

Šo es domāju risināt ar 5v releju ko pie usb barošanas pieslēgšu - izslēgs gan ledus, gan arī pastiprinātāju. 

Link to comment
Share on other sites

Pirms 48 minūtēm , Ronalds teica:

Bet nu man būs konfigs savādāks - lielāks tv un 60 ledi uz metru. 

Pilnīgi nav problēma. Viens cipars sketchā ar kopējo skaitu un jāsaklikšķina konfigurēcija iekš atmoconf vai līdzīga tooļa. 

Link to comment
Share on other sites

Neliek man tie led'i mieru, tapēc domāju kādu pusstundu/stundu pačakarēties.

 

No sākuma kā "proof of concept" domāju uztaisīt Python scriptu, kurš taisa screenšotus un sadala augšējo malu klasteros, katram klāsteram izrēķina "vidējo" krāsu un caur seriālo portu visu aizsūta uz mikrokontrolieri. Pagaidām tikai augšējo malu, jo nav man tik daudz ledu, lai aptītu visam ekrānam apkārt, bet ir 60 gabali. Augšējai malai pietiek ar 48, tapēc izmantošu tik daudz.

 

Ideja apmēram tāda kā bildē - 64px plata josla gar augšu, tad sadala to 48 klasteros un katram klāsterim izrēķina vidējo krāsu. Sapako visu struktūrā, enkodē datus kā base64 un aizsūta kā stringu mikrokontrolierim.

 

Uz mana ekrāna enkodēts strings izskatās apmēram tā:

dnZ2i4uLi4uLi4uLjY2Nj4+PkZGRkpKSj4+Pk5KSmZiYmZiYmZiYmpmZk5OTkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQysfJzczMz8zLzM7Ly8vLycnK1NPS0tLS09LR1tXU0tLS1NPS09PT1NPSz9DQ1NTUycnJ19LOz8/PzsvK1dHR3NrazsvLzc3N

Python kods:

import Image
import pyscreenshot as ImageGrab
import time
import math
import base64
import serial
import array

import struct
import sys

def average_image_color(src_image):
	h = src_image.histogram()

	r = h[0:256]
	g = h[256:256*2]
	b = h[256*2: 256*3]

	return (
		sum( i*w for i, w in enumerate(r) ) / sum(r),
		sum( i*w for i, w in enumerate(g) ) / sum(g),
		sum( i*w for i, w in enumerate(b) ) / sum(b)
	)

def main():
	leds = 48.0

	port = sys.argv[1]
	baud = 115200
	timeout = 1

	print port
	serial_port = serial.Serial(port, baud) 
	# serial_port.open()

	if serial_port.is_open:
		while True:
			data = []
			image = ImageGrab.grab()

			width = image.width / leds
			height = 64
		
			for i in range(0, int(leds)):
				left = int(math.floor(i * width))
				upper = 0
				right = int(math.floor((i * width) + width))
				lower = height

				cell = image.crop((left, upper, right, lower,))
				average = average_image_color(cell)
				values = list(average)
				data = data + list(average)

			data = struct.pack('{0}B'.format(len(data)), *data)
			encoded = base64.b64encode(data)
			encoded = "=" + encoded

			print encoded
			serial_port.write(encoded);

			time.sleep(1)

if __name__ == "__main__":
	main()

 

 

 

screen.png

Link to comment
Share on other sites

Kā devboardu domāju izmantot ST Nucleof429ZI. Nekāda īpaša iemesla kapēc tieši to man nav, vienkārši pirmā pa rokai.

 

Tad uz microkontroliera var vienkārši sēdēt loopā un gaidīt "=" simbolu. Tad nolasīt datus un kautko darīt. Pagaidām viss hardkodēts.

	uint8_t buffer[192];
	uint8_t char_received;

	while (1)
	{
		HAL_UART_Receive(&huart3, &char_received, 1, HAL_MAX_DELAY);

		if(char_received == 61)
		{
			HAL_UART_Receive(&huart3, buffer, 192, HAL_MAX_DELAY);
			HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7);
			// Process data
		}
	}

 

Ok, šodien vairs nav laika, jāiet uz pabu.

Link to comment
Share on other sites

Labs sākums. Gatavs nekas nebija, ka jālasa pašam kopā? Hyperion jau ir viss atstrādāts šai jomā. Un arī nodrošināts pret datu gļukiem ar atslēgvārdu katras paketes sākumā.

  • Patīk 1
Link to comment
Share on other sites

Vispār jūtos ieintriģēts, būs jāapskatās kā tas izskatās (man ar viens čoms ko līdzīgu ir izveicis) un moš jāuztaisa kas līdzīgs ap savu plazmu, Pašlaik gan jūtos gana priecīgs filmas skatoties, bet kāpēc gan neizvirst, pamēģinot? ;)

Link to comment
Share on other sites

Nu, izmaksas jau nekādas, ja kaut kāda Kodi/Linux kaste tiek lietota. Cik zinu, arī Enigma2 kastes šo atbalsta, bet neesmu mēģinājis.

Link to comment
Share on other sites

1 stundu atpakaļ, Bruketajs teica:

Labs sākums. Gatavs nekas nebija, ka jālasa pašam kopā? Hyperion jau ir viss atstrādāts šai jomā. Un arī nodrošināts pret datu gļukiem ar atslēgvārdu katras paketes sākumā.

Es vairāk esu ieinteresēts tehniskajā risinājumā nekā gatavajā rezultātā :D, redzēs kas sanāks.

Link to comment
Share on other sites

Inspektors Caps

Es teiktu, ka Ambilight nav ne bildes uzlabotājs, ne palielinātājs, bet gan istabas apgaismojums, kas ir sasaistīts ar TV attēlu. Vārdi "ambient lighting" to arī nozīmē. Principā tas ir kā gaismas mūzika un disko gaismas telpai.

 

Lasot tēmu, aizdomājos par šo:

Citēt

A sketch is the name that Arduino uses for a program. It's the unit of code that is uploaded to and run on an Arduino board.

Kādam ir kāda doma kādēļ programmu nevarēja saukt par programmu? Varbūt tādēļ, lai programma un attiecīgi programmēšana neaizbiedētu humanitāro skicētāju "atvērtos" prātus? :D

Link to comment
Share on other sites

Šodien mazliet turpinājums, piestrādāju pie firmwares.

Nav diezko prātīgi sēdēt visulaiku ciklā un lasīt datus no serialā porta "polling" modē, tāpēc bij divi varianti - izmantot interruptus vai DMA. Tākā pirmstam īpaši nav bijusi vajadzība pēc DMA, tad izmantošu to. Ja kāds nezin tad DMA (Direct Memmory Access) ir technoloģija kas atļauj kopet datus no vienas vietas atmiņā uz citu bez processora iejaukšanās, būtībā pasaki no kuras adreses uz kuru pārkopēt un cik daudz. DMA kontrolieris datus pārkopēs un kad pabeigs, tad izsauks interruptu. Tādā veidā processors pa to laiku var darīt ko citu. Šinī gadījumā tehniski nebūs kopēšana no atmiņas uz atmiņu, bet no seriālā uz atmiņu.

Tad kad vajadzīgais datu daudzums pārkopēts, tad programma decodēs datus atpakaļ no base64 uz rgb. Te paldies kādam labvēlim kurš uzrakstijis C funkciju priekš tā un ielicis githubā. https://github.com/littlstar/b64.c

 

Kā error checkings pagaidām ir vienkārša pārbaude uz "=" simbolu paketes sākumā. Ir seriālajam portam uz mikrokontroliera tāda lieta kā IDLE_ERROR checkings, bet tas nav implementēts pagaidām HAL bibliotēkā, ašam negribējās to pārrakstīt, domāju ka esošais varētu darboties OK.

 

Lai notestētu vai encodings/decodings strādā, es Pythonā izdrukāju RGB datus un tad kad mikrokontrolieris decodē es izpirintēju atpakaļ konsolē, lai var salīdzināt.

 

Screenshot from 2017-08-28 12-23-51.png


Pirms 8 minūtēm , Inspektors Caps teica:

Varbūt tādēļ, lai programma un attiecīgi programmēšana neaizbiedētu humanitāro skicētāju "atvērtos" prātus?

tāda arī visa doma tam Arduino bija. Kautkādā Itālijas universitātē tas bij kolumbiešu studenta projekts - izveidot vieglu variantu kā visādu radošo studiju studenti varētu programmēt mikrokontrolierus. Projekts saucās Wiring un ir vēl dzīvs. Arduino vēljoprojām viņu izmanto. Kad viņs pabeidz studijas un aizbrauca atpakaļ uz Kolumbiju viņa pasniedzējs vienkārši nozaga viņa kursadarbu, nosauca par Arduino un pasniedza kā savu.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...