Turinys:

Talpinė prisilietimo nuotaika/„Ambilight“: 8 žingsniai
Talpinė prisilietimo nuotaika/„Ambilight“: 8 žingsniai

Video: Talpinė prisilietimo nuotaika/„Ambilight“: 8 žingsniai

Video: Talpinė prisilietimo nuotaika/„Ambilight“: 8 žingsniai
Video: raunam kelma su naujuteliu opeliu, pjaunam stoga, lauzom, droziam, jojam 2024, Liepa
Anonim
Talpinė jutiklinė nuotaika/„Ambilight“
Talpinė jutiklinė nuotaika/„Ambilight“

Ši pamoka yra greitas mano patirties, kuriančios daugiafunkcinį nuotaikos šviesą, aprašymas. Tikimasi tam tikrų pagrindinių žinių apie elektronines grandines. Projektas dar nebaigtas, reikia atlikti kai kurias papildomas funkcijas ir koreguoti, tačiau jis jau veikia. Jei jūs, vaikinai, esate sužavėti šia pamoka, aš ją atnaujinsiu. Sistemos esmė yra „Arduino“. Jis apdoros įvestį iš USB arba kiekvieno talpinio jutiklinio įvesties ir valdys RGB lemputę. Ši instrukcija yra padalinta į tris dalis:- talpinė jutiklinė dalis apima nematomus įvesties mygtukus;- „moodlight“skyrius apima nuotaikos šviesos valdymą; Atsakomybės apribojimas: Elektronika gali būti pavojinga, jūs patys esate atsakingi už padarytą žalą. Kai kurie kodai yra surinkti iš forumų ir juose gali nebūti jo savininko vardo. Praneškite man ir aš pridėsiu jūsų vardą.

1 žingsnis: elementų sąrašas

Šiam nurodymui reikalingi šie komponentai:- „Arduino“+USB kabelis- „Duonos lenta“- Kompiuterio maitinimo šaltinis- 3x RGB juostelės, apsilankykite dealextreme.com.- 3x „TIP120 FET“, pvz., Http://uk.farnell.com/stmicroelectronics/tip120 /darlington-tranzistorius-to-220/dp/9804005- krūva rezistorių (6 * 10 kiloOhm, 3 * 2 megaOhm)-daug laidų. - Įrankiai Talpinis prisilietimas- Metaliniai žiedai įžeminimo plokštėms- Varinė viela arba plokštė- Kažkas, į ką jį pastatyti (pavyzdžiui, knygų lentyna:)

2 žingsnis: talpinis lietimas - pagrindai ir grandinė

Talpinis prisilietimas - pagrindai ir grandinė
Talpinis prisilietimas - pagrindai ir grandinė
Talpinis prisilietimas - pagrindai ir grandinė
Talpinis prisilietimas - pagrindai ir grandinė
Talpinis prisilietimas - pagrindai ir grandinė
Talpinis prisilietimas - pagrindai ir grandinė

Kadangi tapiau savo knygų lentynas, turėjau galimybę jas taip pat „atnaujinti“. Norėjau valdyti nuotaikos šviesą nematomu prisilietimu. Iš pradžių mano planas buvo tam naudoti specialų IC (pvz., „Atmel QT240“). Bet tada aš atsitiktinai pateko į puslapį, kuriame paaiškinta, kad „Arduino“gali imituoti talpinį jutiklį programine įranga. Elektroninę grandinę galima rasti paveikslėlyje, jutiklis yra spiralinė varinė viela (paprastumo dėlei rodomas tik vienas). Jautrumą kontroliuoja prieš kiekvieną kaištį esantys rezistoriai. Jie gali svyruoti nuo 1 megaohmo (absoliutus prisilietimas) iki 40 megaohmų (12–24 colių atstumu), priklausomai nuo to, ar reikalingas absoliutus ar artimas prisilietimas (galiausiai naudojau 2M omų rezistorius). Eksperimentuokite su vertėmis, kol jutiklis elgsis taip, kaip norima. Patartina kiekvienos spiralės gale sumontuoti laidų paviršių (atskirtą plonu nelaidžiu gabalu), prijungtą prie grandinių žemės. Taip jutikliai bus stabilesni ir mažiau veikiami triukšmo. Dar keletas nuotraukų apie jutiklių įrengimą knygų lentynoje. Taip pat sumontuotas kištukas, kad vėliau būtų lengva prijungti prie grandinės. Užpildas naudojamas paslėpti viską, o po to jie yra paruošti dažymui.

3 žingsnis: talpinis prisilietimas - kodas ir testavimas

Talpinis prisilietimas - kodas ir testavimas
Talpinis prisilietimas - kodas ir testavimas

Šis šaltinio kodas gali būti naudojamas „Arduino“derinimui, patikrinkite vertes naudodami „arduino“serijos monitorių. Sukuriamos šešios vertės. Pirmasis yra sistemos veikimo matas. Antroji - šeštoji yra kiekvieno kaiščio jutimo vertės. Vertės turėtų kilti artėjant prie piršto. Jei ne, patikrinkite, ar nėra blogų jungčių ir trukdžių. Norint nustatyti jautrumą, galima pakeisti rezistoriaus reikšmes. Įdiegus „jei tada“struktūrą, kuri suaktyvinama esant tam tikrai loginei slenksčiui, galima atlikti perjungimą. Tai bus naudojama galutiniame arduino kode. Daugiau informacijos, kurią rekomenduojama perskaityti: https://www.arduino.cc/playground/Main/CapSense--- „Arduino CapTouch“derinimo kodas ---#include void setup () {CapSense cs_2_3 = „CapSense“(2, 4); // 10M rezistorius tarp 2 ir 4 kaiščių, 4 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense cs_2_4 = CapSense (2, 7); // 10M rezistorius tarp 2 ir 7 kaiščių, 7 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense cs_2_5 = CapSense (2, 8); // 10M rezistorius tarp 2 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense cs_2_6 = CapSense (2, 12); // 10M rezistorius tarp 2 ir 12 kaiščių, 12 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense cs_2_7 = CapSense (2, 13); // 10M rezistorius tarp 2 ir 13 kaiščių, 13 kaištis yra jutiklio kaištis, pridėkite laidą, pašalinkite sąranką () {Serial.begin (9600);} void loop () {long start = millis (); ilgas bendras1 = cs_2_3.capSense (30); ilgas viso2 = cs_2_4.capSense (30); ilgas viso3 = cs_2_5.capSense (30); ilgas viso4 = cs_2_6.capSense (30); ilgas viso5 = cs_2_7.capSense (30); Serial.print (milis () - pradžia); // patikrinkite našumą milisekundėmis Serial.print ("\ t"); // skirtuko simbolis, skirtas debug windown spacing Serial.print (total1); // spausdinimo jutiklio išėjimas 1 Serial.print ("\ t"); Serijinis atspaudas (iš viso2); // spausdinimo jutiklio išvestis 2 Serial.print ("\ t"); Serijinis atspaudas (iš viso3); // spausdinimo jutiklio išvestis 3 Serial.print ("\ t"); Serijinis atspaudas (iš viso4); // spausdinimo jutiklio išvestis 4 Serial.print ("\ t"); Serial.println (iš viso5); // spausdinimo jutiklio išvesties 5 uždelsimas (10); // savavališkas delsimas apriboti duomenis iki nuoseklaus prievado} --- END ---

4 žingsnis: nuotaikos šviesa - pagrindai ir grandinė

„Mood Light“- pagrindai ir grandinė
„Mood Light“- pagrindai ir grandinė
„Mood Light“- pagrindai ir grandinė
„Mood Light“- pagrindai ir grandinė
„Mood Light“- pagrindai ir grandinė
„Mood Light“- pagrindai ir grandinė

Dabar atėjo laikas sukurti sistemos išvesties dalį. Kiekvienai spalvai valdyti bus naudojami „arduino“PWM kaiščiai. PWM reiškia impulsų pločio moduliaciją, labai greitai įjungiant ir išjungiant kaištį, šviesos diodai bus pritemdyti nuo 0 iki 255. Kiekvienas kaištis bus sustiprintas FET. Kol kas sistemoje yra tik vienas kanalas kiekvienai spalvai, tai reiškia, kad visos RGB juostos bus valdomos vienu metu ir reikia 3 PWM kaiščių (po vieną kiekvienai spalvai). Ateityje noriu turėti galimybę valdyti kiekvieną iš keturių RGB juostų. Tai reiškia, kad 4*3 = 12 PWM kaiščių (ir tikriausiai „Arduino Mega“). Gerai, laikas kai kurioms schemoms! Tai (žr. Paveikslėlį) yra pagrindinis grandinės vaizdas (netrukus bus gražesnis). Komplekte yra ir talpiniai jutikliai (žalia dalis). Iš esmės reikia paaiškinti tris komponentus:- FETTai stiprintuvas, apie kurį kalbėjau. Jis turi vartus, šaltinį ir kanalizaciją. Tai sustiprina pojūčius mažą srovę ant vartų (prijungtą prie „Arduino“) ir atveria kelią RGB juostai, kuri maitinama 12 voltų. Šaltinis turi būti +12V, nutekėjimas GND (antžeminis). Patikrinkite savo FET specifikacijų lapą, kad būtų tiksliai nustatyta. Kiekvienas RGB kanalas turi būti išdėstytas prieš savo FET. Šia prasme jis veikia kaip „Arduino“valdomas jungiklis.- RGB juosta Ši 12 voltų RGB juostelė yra įprasto anodo (+) tipo. Tai reiškia, kad bendras laidas turi būti prijungtas prie +12 V, o srovė nuskendo per kiekvieną atskirą spalvų kanalą. Juostelėje yra rezistorių, todėl nesijaudinkite!- Rezistoriai Trys 10 000 rezistoriai užtikrins, kad FET neįsijungtų, kai jie neturėtų įsijungti. Trys kiti apribos maksimalią srovę, kurią išleis FET. Trys didžiausi rezistoriai jau yra RGB juostelėje. Aš lituodavau USB kabelius prie RGB juostų, kad galėčiau juos lengvai prijungti. Ant mano duonos lentos dedami kištukai iš seno stebulės. Sultims naudokite seną kompiuterio maitinimo šaltinį, 12 V maitinkite RGB juostelę ir galiausiai 5 V grandinei, jei norite, kad ji veiktų be USB kabelio.

5 žingsnis: nuotaikos šviesa - kodas ir valdymas

Nuotaikos šviesą valdo talpiniai jutikliai. Kol kas spalvų keitimui užprogramavau tik 2 ir 3 jutiklius. Kiti jutikliai kol kas neveikia. Čia yra kodas: --- „Arduino Mood Control Code“---#include const boolean invert = true; const long timeout = 10000; // Talpinio jutiklio deklaracijaCapSense In1 = CapSense (2, 4); // 2M rezistorius tarp 4 ir 2 kaiščių, 2 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In2 = CapSense (2, 7); // 2M rezistorius tarp 4 ir 6 kaiščių, 6 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In3 = CapSense (2, 8); // 2M rezistorius tarp 4 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In4 = CapSense (2, 12); // 2M rezistorius tarp 4 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In5 = CapSense (2, 13); // 2M rezistorius tarp 4 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, foliją // PWM kaiščio deklaracijosint PinR1 = 3; int PinG1 = 5; int PinB1 = 6; // Kiti kintamieji // pradėk nuo raudonos spalvos kaip spalva Spalvumas1 = 255; // pradėti visu ryškumuint RedValue1, GreenValue1, BlueValue1; // RGB komponentai netaiko sąrankos () {// nustatyti jutiklio skirtojo laiko reikšmes In1.set_CS_AutocaL_Millis (skirtasis laikas); In2.set_CS_AutocaL_Millis (skirtasis laikas); In3.set_CS_AutocaL_Millis (skirtasis laikas); In4.set_CS_AutocaL_Millis (skirtasis laikas); In5.set_CS_AutocaL_Millis (skirtasis laikas);} void loop () {long start = millis (); ilgas bendras1 = In1.capSense (30); long total2 = In2.capSense (30); long total3 = In3.capSense (30); long total4 = In4.capSense (30); ilgas bendras5 = „In5.capSense“(30); jei (iš viso2> 150) {Spalva1 ++; // padidinti spalvą, jei (spalva1> 255) {// spalva1 = 0; }} else if (iš viso3> 200) {Spalva1--; // sumažinti spalvą, jei (spalva1 <0) {// spalva1 = 255; } // konvertuoti atspalvį į rgb hueToRGB (spalva1, ryškumas1); // rašyti spalvas į PWM kaiščius analogWrite (PinR1, RedValue1); analogWrite (PinG1, GreenValue1); analogWrite (PinB1, BlueValue1);} // funkcija, skirta spalvai paversti raudona, žalia ir mėlyna. unsigned int segment = scaledHue / 256; // segmentas nuo 0 iki 5 aplink spalvų ratą unsigned int segmentOffset = scaledHue - (segmentas * 256); // pozicija segmente unsigned int komplimentas = 0; unsigned int prev = (ryškumas * (255 - segmentOffset)) / 256; unsigned int next = (ryškumas * segmentOffset) / 256; if (apversti) {ryškumas = 255-ryškumas; komplimentas = 255; ankstesnis = 255-ankstesnis; kitas = 255-kitas; } jungiklis (segmentas) {atvejis 0: // raudona RedValue1 = ryškumas; GreenValue1 = kitas; BlueValue1 = komplimentas; pertrauka; 1 atvejis: // geltona RedValue1 = ankstesnė; GreenValue1 = ryškumas; BlueValue1 = komplimentas; pertrauka; 2 atvejis: // žalia RedValue1 = komplimentas; GreenValue1 = ryškumas; BlueValue1 = kitas; pertrauka; 3 atvejis: // žalsvai mėlyna RedValue1 = komplimentas; GreenValue1 = ankstesnė; BlueValue1 = ryškumas; pertrauka; 4 atvejis: // mėlyna RedValue1 = kita; GreenValue1 = komplimentas; BlueValue1 = ryškumas; pertrauka; 5 atvejis: // purpurinė numatytoji: RedValue1 = ryškumas; GreenValue1 = komplimentas; BlueValue1 = ankstesnis; pertrauka; }}--- GALAS ---

6 žingsnis: „Ambi Light“- „Arduino Side“

Žinoma, būtų visiškai šaunu, jei galėtumėte valdyti nuotaikos šviesą iš savo kompiuterio. Pavyzdžiui, sukurti ambilight ar garsu valdomą diskoteką. Šiame skyriuje daugiausia dėmesio skiriama „ambilight“daliai, ateityje pridėsiu daugiau funkcijų. Na, nėra jokių papildomų grandinių, nes visa tai yra „Arduino“. Mes ketiname naudoti serijinio ryšio galimybes ir tam tikrą „Processing 1.0“programinę įrangą. Prijunkite „arduino“prie kompiuterio naudodami USB kabelį (jei į jį įkėlėte eskizus, tai jau yra). Jei norite naudoti „arduino“, turite pridėti papildomą kodą nuosekliam ryšiui. Kodas persijungs į klausymo režimą, įjungdamas talpinius jutiklius, kol iš kompiuterio gauna RGB reikšmes. Tada jis nustato RGB reikšmes PWM kaiščiams. Tai kol kas mano galutinis kodas, patikrinkite pakeitimus patys: --- „Arduino Ambilight Code“---#include const boolean invert = true; const long timeout = 10000; long commStart = 0; char val; // Talpinio jutiklio deklaracijaCapSense In1 = „CapSense“(2, 4); // 2M rezistorius tarp 4 ir 2 kaiščių, 2 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In2 = CapSense (2, 7); // 2M rezistorius tarp 4 ir 6 kaiščių, 6 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In3 = CapSense (2, 8); // 2M rezistorius tarp 4 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In4 = CapSense (2, 12); // 2M rezistorius tarp 4 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, folijaCapSense In5 = CapSense (2, 13); // 2M rezistorius tarp 4 ir 8 kaiščių, 8 kaištis yra jutiklio kaištis, pridėkite laidą, foliją // PWM kaiščio deklaracijosint PinR1 = 3; int PinG1 = 5; int PinB1 = 6; // Kiti kintamieji // pradėk nuo raudonos spalvos kaip spalva Spalvumas1 = 255; // pradėti visu ryškumuint RedValue1, GreenValue1, BlueValue1; // RGB komponentai netaikomi () {Serial.begin (9600); // pradėti serijinį ryšį // nustatyti jutiklio skirtojo laiko reikšmes In1.set_CS_AutocaL_Millis (skirtasis laikas); In2.set_CS_AutocaL_Millis (skirtasis laikas); In3.set_CS_AutocaL_Millis (skirtasis laikas); In4.set_CS_AutocaL_Millis (skirtasis laikas); In5.set_CS_AutocaL_Millis (skirtasis laikas);} void loop () {long start = millis (); ilgas bendras1 = In1.capSense (30); long total2 = In2.capSense (30); long total3 = In3.capSense (30); ilgas viso4 = „In4.capSense“(30); ilgas bendras5 = „In5.capSense“(30); if (Serial.available ()) {// Jei galima skaityti duomenis, val = Serial.read (); // skaityti ir saugoti val commStart = millis (); if (val == 'S') {// Jei gautas pradžios simbolis, tuo tarpu (! Serial.available ()) {} // Palaukite kitos vertės. RedValue1 = Serial.read (); // Kai bus galima, priskirti. while (! Serial.available ()) {} // Tas pats kaip aukščiau. GreenValue1 = Serial.read (); while (! Serial.available ()) {} BlueValue1 = Serial.read (); } Serial.print (RedValue1); Serial.print (GreenValue1); Serial.println („BlueValue1“); } else if ((millis () - commStart)> 1000) {if (total2> 150) {Color1 ++; // padidinti spalvą, jei (spalva1> 255) {// spalva1 = 0; }} else if (iš viso3> 200) {Spalva1--; // sumažinti spalvą, jei (spalva1 <0) {// spalva1 = 255; }} hueToRGB (spalva1, ryškumas1); } analogWrite (PinR1, RedValue1); analogWrite (PinG1, GreenValue1); analogWrite (PinB1, BlueValue1);} // funkcija, skirta spalvai paversti raudona, žalia ir mėlyna. unsigned int segment = scaledHue / 256; // segmentas nuo 0 iki 5 aplink spalvų ratą unsigned int segmentOffset = scaledHue - (segmentas * 256); // pozicija segmente unsigned int komplimentas = 0; unsigned int prev = (ryškumas * (255 - segmentOffset)) / 256; unsigned int next = (ryškumas * segmentOffset) / 256; if (apversti) {ryškumas = 255-ryškumas; komplimentas = 255; ankstesnis = 255-ankstesnis; kitas = 255-kitas; } jungiklis (segmentas) {atvejis 0: // raudona RedValue1 = ryškumas; GreenValue1 = kitas; BlueValue1 = komplimentas; pertrauka; 1 atvejis: // geltona RedValue1 = ankstesnė; GreenValue1 = ryškumas; BlueValue1 = komplimentas; pertrauka; 2 atvejis: // žalia RedValue1 = komplimentas; GreenValue1 = ryškumas; BlueValue1 = kitas; pertrauka; 3 atvejis: // žalsvai mėlyna RedValue1 = komplimentas; GreenValue1 = ankstesnė; BlueValue1 = ryškumas; pertrauka; 4 atvejis: // mėlyna RedValue1 = kita; GreenValue1 = komplimentas; BlueValue1 = ryškumas; pertrauka; 5 atvejis: // purpurinė numatytoji: RedValue1 = ryškumas; GreenValue1 = komplimentas; BlueValue1 = ankstesnis; pertrauka; }}--- GALAS ---

7 žingsnis: „Ambi Light“- kompiuterio pusė

Kompiuterio šone vykdomas „Processing 1.0“eskizas, žr. Ši maža (šiek tiek netvarkinga) programa kiekvieną akimirką apskaičiuoja vidutinę ekrano spalvą ir siunčia ją į nuoseklųjį prievadą. Tai dar labai paprasta ir gali būti šiek tiek patobulinta, tačiau ji veikia labai gerai! Ateityje atnaujinsiu kelias atskiras RGB juosteles ir ekrano skyrius. Taip pat galite tai padaryti patys, kalba yra gana paprasta. Štai kodas: --- Processing 1.0 Code --- import processing.serial.*; Import java.awt. AWTException; import java.awt. Robot; import java.awt. Rectangle; import java.awt.image. BufferedImage; PImage screenShot; Serial myPort; static public void main (String args ) {PApplet.main (new String {"--present", "shooter"});} void setup () {size (100, 100); //size(screen.width, screen.height); // Spausdinti nuosekliųjų prievadų sąrašą derinimo tikslais: println (Serial.list ()); // Žinau, kad pirmasis „Mac“serijos sąrašo prievadas // visada yra mano FTDI adapteris, todėl atsidarau Serial.list () [0]. // „Windows“kompiuteriuose paprastai atidaromas COM1. // Atidarykite bet kokį prievadą, kurį naudojate. Eilutės portName = Serial.list () [0]; myPort = new Serial (this, portName, 9600);} void draw () {// image (screenShot, 0, 0, width, height); ekrano vaizdas = „getScreen“(); spalva kleur = spalva (0, 0, 0); kleur = spalva (ekrano kopija); //myPort.write(int(red(kleur))++, '+int (žalia (kleur))+', '+int (mėlyna (kleur))+13); //myPort.write(int(red(kleur))); //myPort.write (','); //myPort.write(int(green(kleur))); //myPort.write (','); //myPort.write(int(blue(kleur))); //myPort.write:(13); užpildyti (kleur); rect (30, 20, 55, 55);} spalvos spalva (PImage img) {int cols = (img.width); int eilutės = (img. aukštis); int dimensija = (img.width*img.height); int r = 0; int g = 0; int b = 0; img.loadPixels (); // Ga elke pixel langs (dimensija), skirta (int i = 0; i <(dimensija/2); i ++) {r = r+((img.pikseliai >> 16) & 0xFF); g = g + ((img.pikseliai >> 8) & 0xFF); b = b + (img.pikseliai & 0xFF);} int vidutinis_r = r/(matmuo/2); int vidurkis_g = g/(matmuo/2); int vidurkis_b = b/(matmuo/2); spalva vidutinis_klr = spalva (vidutinis_r, vidurkis_g, vidurkis_b); myPort.write ('S'); myPort.write (vidutinis_r); myPort.write (vidutinis_g); myPort.write (mean_b); return (mean_clr);} PImage getScreen () {GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment (); GraphicsDevice gs = ge.getScreenDevices (); „DisplayMode“režimas = gs [0].getDisplayMode (); Stačiakampio ribos = naujas stačiakampis (0, 0, mode.getWidth (), mode.getHeight ()); BufferedImage desktop = new BufferedImage (mode.getWidth (), mode.getHeight (), BufferedImage. TYPE_INT_RGB); pabandykite {darbalaukis = naujas robotas (gs [0]). createScreenCapture (ribos); } catch (AWTException e) {System.err.println ("Nepavyko užfiksuoti ekrano."); } return (naujas PImage (darbalaukis));} --- END ---

8 žingsnis: rezultatas

Rezultatas
Rezultatas
Rezultatas
Rezultatas

Ir tai yra rezultatas, jis iš tikrųjų yra mano lovos apačioje. Man vis tiek reikia pakeisti audinį, jis labiau išsklaidys šviesą. Daugiau nuotraukų apie tai netrukus. Tikiuosi, kad jums patinka šis pamokomas dalykas, taip pat tikiuosi, kad tai yra jūsų kūrybiškumo pagrindas. Dėl laiko ribų tai parašiau labai greitai. Jums gali tekti turėti tam tikrų pagrindinių arduino/elektronikos žinių, kad tai suprastumėte, tačiau ateityje planuoju ją atnaujinti, jei ji bus gerai priimta.

Rekomenduojamas: