Výrobcovia elektroniky postupne prichádzajú k záveru, že najlepším diaľkovým ovládačom je dlaň používateľa. Takže v novom stĺpci "Yandex.Station Mini" poskytuje takúto správu. Nestojte bokom od trendov a priateľov. Napríklad autor Instructables pod prezývkou dan_nicholson prišiel s jednoduchým zariadením, ktoré vám umožňuje ovládať televízor pomocou gest. V predvolenom nastavení je naprogramované tak, aby pracovalo s televízormi Sony, ale dá sa nakonfigurovať aj na ovládanie akýchkoľvek iných televízorov, hudobných stredísk atď. Ako je možné vidieť z KDPV, spočíva
domáci produkt od hľadača rozsahu
Arduino a niekoľko ďalších komponentov. Dajú sa urobiť ešte kompaktnejšie:
A ešte kompaktnejšie, ak opustíte dosku a spojíte všetko spájkovaním pomocou drôtov. Majster vytvorí v programe Fritzing diagram zariadenia, ktorý sa každému nepáči, ale neponáhľajú sa hodiť papuče, táto metóda zostavovania diagramov môže byť tiež výhodná. Master spája infračervenú LED cez odpor a všetky kryštály RGB LED sú priamo spojené. Píše, že tu sú potrebné aj odpory, ale v skutočnosti sú potrebné.
Po zostavení obvodu hlavný počítač prevezme knižnicu
tua príkazové kódy sú
tuzapíše a vypĺňa náčrt:
/ * Diaľkové ovládanie potiahnite prstom
Táto skica používa ultrazvukový diaľkomer na určenie gesta používateľa a na základe zadaného príkazu vydá infračervený signál do sony TV.
- Vysoké prejdenie prstom (> 10 palcov) = kanál nahor
- Nízke potiahnutie = Kanál nadol
- Vysoké podržanie (> 10 palcov) = Zvýšenie hlasitosti
- Nízke podržanie = Zníženie hlasitosti
- Senzor krytu (<3in) = Zapnutie / vypnutie
Vytvoril Dan Nicholson.
Tento vzorový kód je verejne prístupný.
Tento kód používa knižnicu IRremote (https://github.com/shirriff/Arduino-IRremote)
* /
#include
// Definuje riadiace funkcie
#define CONTROL_CH 1 // Zmena kanálu
#define CONTROL_VOL 2 // Zväzok
#define CONTROL_POW 3 // Napájanie
#define CONTROL_UP 1
#define CONTROL_DOWN -1
#define DIST_MAX 20 // Maximálna vzdialenosť v palcoch, všetko vyššie sa ignoruje.
#define DIST_DOWN 10 // Prah pre príkazy nahor / nadol. Ak je vyšší, príkaz je "hore". Ak je nižšia, „dole“.
#define DIST_POW 3 // Prah pre príkaz napájania, nižší ako = zapnutie / vypnutie napájania
// IČ PIN
const int irPin = 3; // to je definované v knižnici, tento var je iba pripomenutie. ZMENA TOHO V KNIŽNICI NEZMení PIN
// 2-kolíkový snímač pingov
const int pingPin = 8;
const int echoPin = 7;
// Potvrdzovacie LED kolíky
const int led = 13; // interná LED na ladenie hore / dole
const int ledR = 11;
const int ledG = 10;
const int ledB = 9;
// LED na časovači
nepodpísaný dlhý časovač;
// IR vysielač objekt
IRsend irsend;
// Príznak potvrdenia napájania (na odoslanie signálu je potrebné dva ťahy)
boolean powerConfirmed = false;
neplatné nastavenie () {
// inicializuje sériovú komunikáciu a nastaví kolíky
Serial.egegin (9600);
pinMode (led, OUTPUT);
pinMode (ledR, OUTPUT);
pinMode (ledG, OUTPUT);
pinMode (ledB, OUTPUT);
pinMode (pingPin, OUTPUT);
pinMode (echoPin, INPUT);
časovač = millis ();
}
prázdna slučka ()
{
// Serial.println (millis ());
dlhé trvanie, palce;
int hodnota;
// Skontrolujte čítanie
durácia = doPing ();
// Časovač na potvrdenie akcií (momentálne iba výkon)
if (časovač && časovač <(milis () - 5000) && (milis ()> 5000))
{
Serial.println („reset časovača“);
časovač = false;
}
digitalWrite (led, LOW);
setColor (0, 0, 0); // off
// previesť čas na vzdialenosť
inches = mikrosekundyToInches (trvanie);
// Ak je vzdialená menej ako max
if (palce DIST_MAX)
{
doIR (CONTROL_CH, hodnota); // prejdite prstom
}
inak
{
// objem
int d = 500; // prvé oneskorenie je dlhšie pre jednu zmenu objemu
// opakujte, až kým neodstránite ruku
while (palce DIST_DOWN)
{
digitalWrite (led, HIGH);
návrat CONTROL_UP;
}
inak
{
digitalWrite (led, LOW);
návrat CONTROL_DOWN;
}
}
/ *
* Vypnite správny IR kód
* /
neplatný doIR (int control, int val)
{
spínač (ovládanie)
{
prípad CONTROL_POW:
// power
Serial.println („zapnutie / vypnutie 0xa90“);
pre (int i = 0; i <3; i ++)
{
setColor (255, 0, 0);
irsend.sendSony (0xa90, 12); // Výkonový kód televízora Sony
oneskorenie (40);
}
break;
prípad CONTROL_CH:
setColor (0, 255, 0);
// výstup 'kanál hore / dole' v závislosti od hodnoty val
if (val == CONTROL_UP)
{
digitalWrite (led, HIGH);
pre (int i = 0; i <3; i ++)
{
irsend.sendSony (0x90, 12);
oneskorenie (40);
}
Serial.println ("channel up 0xD00A");
}
else // down
{
pre (int i = 0; i <3; i ++)
{
irsend.sendSony (0x890, 12);
oneskorenie (40);
}
Serial.println ("down down 0x3002");
}
break;
prípad CONTROL_VOL:
setColor (0, 0, 255);
// výstup 'zvyšovanie / znižovanie hlasitosti' v závislosti od hodnoty val
if (val == CONTROL_UP)
{
digitalWrite (led, HIGH);
pre (int i = 0; i <3; i ++)
{
irsend.sendSony (0x490, 12);
oneskorenie (40);
}
Serial.println ("zvýšenie objemu 0x490");
}
else // down
{
pre (int i = 0; i <3; i ++)
{
irsend.sendSony (0xC90, 12);
oneskorenie (40);
}
Serial.println ("zníženie hlasitosti 0xC90");
}
break;
}
}
void setColor (int červená, int zelená, int modrá)
{
analogWrite (ledR, red);
analogWrite (ledG, green);
analogWrite (ledB, modrý);
}
dlhá doPing ()
{
digitalWrite (pingPin, LOW);
oneskorenieMikrosekundy (2);
digitalWrite (pingPin, HIGH);
oneskorenieMikrosekundy (5);
digitalWrite (pingPin, LOW);
spätný pulzIn (echoPin, HIGH);
}
dlhé mikrosekundyToInches (dlhé mikrosekundy)
{
// Podľa údajového listu spoločnosti Parallax pre PING))))
73,746 mikrosekúnd na palec (t. J. Zvuk sa pohybuje rýchlosťou 1130 stôp za
// sekundu). To dáva vzdialenosť ubehnutú pingom, odchádzajúcou
// a vrátiť sa, takže delíme 2, aby sme dostali vzdialenosť od prekážky.
// Pozri: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
návratové mikrosekundy / 74/2;
}
dlhé mikrosekundyToCentimetre (dlhé mikrosekundy)
{
Rýchlosť zvuku je 340 m / s alebo 29 mikrosekúnd na centimeter.
// Ping cestuje von a dozadu, aby zistil vzdialenosť
// predmet, vezmeme polovicu prejdenej vzdialenosti.
návratové mikrosekundy / 29/2;
}
Programom je zasielanie ladiacich správ o tom, čo sa momentálne deje, monitoru sériového portu Arduino IDE. Po overení, či všetko funguje správne, v budúcnosti nebudete môcť zariadenie napájať z počítača, ale zo zdroja napájania.
Poradie odosielania príkazov:1. Zapnite alebo vypnite televízor: mávnite dlaňou pred zameriavačom vzdialenosti vo vzdialenosti 0 až 75 mm, LED dióda RGB sa na 5 sekúnd rozsvieti nachovo, zatiaľ čo keď svieti, znova mávnite v rovnakej vzdialenosti.
2. Znížte číslo kanálu - výkyv vo vzdialenosti od 75 (okrem) do 250 mm. Priblíženie - rovnaké, ale vo vzdialenosti 250 (okrem) do 500 mm.
3. Znížte alebo zvýšte hlasitosť - rovnaké ako pri kanáloch, ale nemávajte, ale dlane držte nehybne. Zatiaľ čo používateľ drží dlaň, hlasitosť sa v závislosti od vzdialenosti znižuje alebo zvyšuje podľa rovnakej logiky ako číslo kanála.
Ak chcete používať ostatné funkcie (EPG, teletext, basový vstup atď.), Mali by ste mať pri sebe pravidelný diaľkový ovládač. V moderných podmienkach sa odporúča programovať zariadenie tak, aby ovládalo štandardný set-top box DVB-T2. V prípade hudobného centra je všetko iné: analógové vysielanie zostáva zatiaľ, aj keď v budúcnosti dôjde k prechodu na počiatočné DAB + alebo DRM +.
Po odladení štruktúry by sa mala umiestniť do tela akejkoľvek konštrukcie - z vyrobenej
Urob to sám z plexiskla, preglejky, do akejkoľvek vhodnej hotovej škatule, napríklad spájkovanie. V kryte diaľkomeru, kábla a oboch diód LED by mali byť otvory. Odporúča sa nasmerovať zameriavač a RGB LED v jednom smere a infračervenú diódu v opačnom smere.