Elektroniikan valmistajat ovat vähitellen tulleet siihen tulokseen, että paras kaukosäädin on käyttäjän kämmen. Joten uudessa sarakkeessa "Yandex.Station Mini" tarjoaa tällaisen hallinnan. Älä pidä syrjään trendeistä ja ystävistä. Esimerkiksi danucnnolsols-lempinimen Instructables kirjoittaja keksi yksinkertaisen laitteen, jonka avulla voit hallita televisiota eleillä. Oletuksena se on ohjelmoitu toimimaan Sony-televisioiden kanssa, mutta se voidaan myös konfiguroida ohjaamaan kaikkia muita televisioita, musiikkikeskuksia jne. Kuten KDPV: stä voidaan nähdä, koostuu
kotitekoinen tuote etäisyysmittarista
Työläs ja useita lisäkomponentteja. Voidaan tehdä vielä pienemmäksi:
Ja vieläkin kompakti, jos hylkäät leipälevyn ja yhdistät kaiken juottamalla langoilla. Mestari tekee Fritzing-ohjelmassa laitekaavion, josta kaikki eivät pidä, mutta älä kiirehdi tossut heittämistä. Tämä kaavioiden laatimismenetelmä voi myös olla kätevä. Päälaite yhdistää infrapuna-LEDin vastuksen kautta, ja kaikki RGB-LED-kiteet on kytketty suoraan. Hän kirjoittaa, että myös vastukset ovat toivottavia täällä, mutta itse asiassa niitä tarvitaan.
Kokoamallaan piirin, isäntä vie kirjaston
täällä, ja komentokoodit ovat
täälläkirjoittaa ja täyttää luonnoksen:
/ * Pyyhkäisemällä kaukosäädin
Tämä luonnos käyttää ultraäänimittausta käyttäjän eleen määrittämiseen ja lähettää IR-signaalin sony-televisioon annetun komennon perusteella.
- Suuri pyyhkäisy (> 10 tuumaa) = Kanava ylös
- Matala pyyhkäisy = Kanava alas
- Korkea pito (> 10 tuumaa) = Äänenvoimakkuuden lisäys
- Matala pito = Äänenvoimakkuus alas
- Peiteanturi (<3in) = Kytke päälle / pois päältä
Luonut Dan Nicholson.
Tämä esimerkkikoodi on julkinen.
Tämä koodi käyttää IRremote-kirjastoa (https://github.com/shirriff/Arduino-IRremote)
* /
# sisällytä
// Määrittää ohjaustoiminnot
#define CONTROL_CH 1 // Kanavan vaihto
#define CONTROL_VOL 2 // Volume
#define CONTROL_POW 3 // Virta
#define CONTROL_UP 1
#define CONTROL_DOWN -1
#define DIST_MAX 20 // Suurin etäisyys tuumina, kaikkea yllä olevaa ei huomioida.
#define DIST_DOWN 10 // ylös / alas-komentojen kynnys. Jos korkeampi, komento on "ylös". Jos alempi, "alas".
#define DIST_POW 3 // Tehokomennon kynnysarvo, alempi kuin = virta päällä / pois
// IR-PIN
const int irPin = 3; // tämä on määritelty kirjastossa, tämä var on vain muistutus. TÄMÄN VAIHTAMINEN EI MUUTA PIN-KIRJASTOA
// 2 nastainen pingianturi
const int pingPin = 8;
const int echoPin = 7;
// Vahvistus LED-nastat
const int led = 13; // sisäinen LED virheenkorjausta varten
const int ledR = 11;
const int ledG = 10;
const int ledB = 9;
// LED ajastimessa
allekirjoittamaton pitkä ajastin;
// IR-lähetinobjekti
IRsend irsend;
// Virran vahvistuslippu (tarvitsee kaksi pyyhkäisyä signaalin lähettämiseksi)
boolean powerConfirmed = false;
tyhjä asennus () {
// alusta sarjaliikenne ja aseta nastat
Serial.begin (9600);
pinMode (led, OUTPUT);
pinMode (ledR, OUTPUT);
pinMode (ledG, OUTPUT);
pinMode (ledB, OUTPUT);
pinMode (pingPin, OUTPUT);
pinMode (echoPin, INPUT);
ajastin = millis ();
}
tyhjä silmukka ()
{
// Serial.println (millis ());
pitkä kesto, tuumaa;
int arvo;
// Tarkista lukema
kesto = doPing ();
// Ajastin toimintojen vahvistamiseksi (tällä hetkellä vain virta)
if (ajastin & & ajastin <(millis () - 5000) && (millis ()> 5000))
{
Serial.println ("ajastimen nollaus");
ajastin = väärä;
}
digitalWrite (led, LOW);
setColor (0, 0, 0); // pois päältä
// muunna aika etäisyydeksi
tuumaa = mikrosekuntiaTo-tuumaa (kesto);
// Jos on vähemmän kuin tuumaa, toimi
if (tuumaa DIST_MAX)
{
doIR (CONTROL_CH, arvo); // pyyhkäise
}
muu
{
// tilavuus
int d = 500; // ensimmäinen viive on pidempi yhden tilavuuden muutoksessa
// toista, kunnes käsi poistetaan
kun taas (tuumaa DIST_DOWN)
{
digitalWrite (led, HIGH);
palauta CONTROL_UP;
}
muu
{
digitalWrite (led, LOW);
palauta CONTROL_DOWN;
}
}
/ *
* Sammuta oikea IR-koodi
* /
tyhjä doIR (sisäinen ohjaus, int val)
{
kytkin (ohjaus)
{
tapaus CONTROL_POW:
// voima
Serial.println ("virta päälle / pois päältä 0xa90");
varten (int i = 0; i <3; i ++)
{
setColor (255, 0, 0);
irsend.sendSony (0xa90, 12); // Sony TV: n virtakoodi
viive (40);
}
break;
tapaus CONTROL_CH:
setColor (0, 255, 0);
// lähtö 'kanava ylös / alas' riippuen val
if (val == CONTROL_UP)
{
digitalWrite (led, HIGH);
varten (int i = 0; i <3; i ++)
{
irsend.sendSony (0x90, 12);
viive (40);
}
Serial.println ("kanava ylös 0xD00A");
}
else // alas
{
varten (int i = 0; i <3; i ++)
{
irsend.sendSony (0x890, 12);
viive (40);
}
Serial.println ("kanava alas 0x3002");
}
break;
tapaus CONTROL_VOL:
setColor (0, 0, 255);
// lähtö 'äänenvoimakkuus ylös / alas' riippuen val
if (val == CONTROL_UP)
{
digitalWrite (led, HIGH);
varten (int i = 0; i <3; i ++)
{
irsend.sendSony (0x490, 12);
viive (40);
}
Serial.println ("äänenvoimakkuus ylöspäin 0x490");
}
else // alas
{
varten (int i = 0; i <3; i ++)
{
irsend.sendSony (0xC90, 12);
viive (40);
}
Serial.println ("volyymi alas 0xC90");
}
break;
}
}
tyhjä setColor (int punainen, int vihreä, int sininen)
{
analogWrite (ledR, punainen);
analogWrite (ledG, vihreä);
analogWrite (ledB, sininen);
}
pitkä doPing ()
{
digitalWrite (pingPin, LOW);
viiveMikrosekunnit (2);
digitalWrite (pingPin, HIGH);
viiveMikrosekunnit (5);
digitalWrite (pingPin, LOW);
paluu pulseIn (echoPin, HIGH);
}
pitkät mikrosekunnitToInches (pitkät mikrosekunnit)
{
// Parallaksin PING))))) mukaan)
// 73,746 mikrosekuntia per tuuma (ts. Ääni kulkee nopeudella 1130 jalkaa per
// toinen). Tämä antaa pingin kulkeman matkan, lähtevän
// ja palata, joten jaamme kahdella saadaan esteen etäisyys.
// Katso: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
paluu mikrosekuntia / 74/2;
}
pitkät mikrosekunnitToCentimeters (pitkät mikrosekunnit)
{
// Äänen nopeus on 340 m / s tai 29 mikrosekuntia senttimetriltä.
// Pingli kulkee edestakaisin, jotta saadaan etäisyys
// esine otamme puolet kuljetusta etäisyydestä.
paluu mikrosekuntia / 29/2;
}
Ohjelman ominaisuus on lähettää virheenkorjausviestit tällä hetkellä tapahtuvasta Arduino IDE -sarjaportin monitorille. Kun olet varmistanut, että kaikki toimii oikein, voit jatkossa antaa virran laitteelle tietokoneesta, mutta virtalähteestä.
Komentojen lähetysjärjestys:1. Kytke televisio päälle tai pois päältä: aaltoile kämmenesi etäisyysmittarin edessä 0 - 75 mm: n etäisyydellä. RGB-LED-valo palaa violetti 5 sekunnin ajan, kun se palaa, aaltoile samalla samalla etäisyydellä.
2. Pienennä kanavien lukumäärää - heilauta etäisyydellä 75 (ei sisälly) 250 mm: iin. Zoom - sama, mutta etäisyydellä 250 (ei mukana) 500 mm: iin.
3. Pienennä tai lisää äänenvoimakkuutta - samalla tavalla kuin kanavilla, mutta älä heilauta, vaan pidä kämmenttä liikkumattomana. Kun käyttäjä pitää kämmenään, äänenvoimakkuus etäisyydestä riippuen pienenee tai kasvaa saman logiikan mukaisesti kuin kanavanumero.
Muiden toimintojen (EPG, teksti-TV, matalataajuinen sisääntulo jne.) Käyttämiseksi pidä säännöllinen kaukosäädin vieressäsi. Nykyaikaisissa olosuhteissa on suositeltavaa ohjelmoida laite ohjaamaan DVB-T2-vakiovastaanotinta. Musiikkikeskuksessa kaikki on erilainen: analoginen lähetys pysyy toistaiseksi, vaikka tulevaisuudessa tapahtuu siirtyminen käynnistyvään DAB + tai DRM +.
Rakenteen virheenkorjauksen jälkeen se tulisi laittaa minkä tahansa rakenteen runkoon - valmistetusta
tee se itse pleksilasiista, vanerista, mihin tahansa sopivaan valmiiseen laatikkoon, esimerkiksi juottamiseen. Koteloon tulee olla reikää etäisyysmittarille, kaapelille ja molemmille LEDille. On suositeltavaa ohjata etäisyysmittari ja RGB-LED-valo yhteen suuntaan ja IR-diodi vastakkaiseen suuntaan.