Произвођачи електронике постепено долазе до закључка да је најбољи даљински управљач длан корисника. Тако у новој колони "Иандек.Статион Мини" пружа такво управљање. Не стојите по страни од трендова и пријатеља. Тако је, на пример, аутор упутства под надимком дан_ницхолсон смислио једноставан уређај који вам омогућава да управљате телевизором помоћу покрета. Подразумевано је програмирано за рад са Сони ТВ-има, али такође може бити конфигурисано за контролу било којег другог телевизора, музичког центра итд. Као што се може видети из КДПВ, састоји се од тога
домаће из претраживача домета
Ардуино и неколико додатних компоненти. Може се учинити још компактнијим:
А још компактније ако напустите плочу и све повежете лемљењем помоћу жица. Мајстор прави дијаграм уређаја у програму Фритзинг који се не свиђа свима, али не жури бацити папуче, ова метода прављења дијаграма такође може бити згодна. Главни повезива инфрацрвену ЛЕД преко отпорника, а сви кристали РГБ ЛЕД-а су директно повезани. Он пише да су отпорници овде такође пожељни, али у ствари су и потребни.
Након састављања круга, мајстор узима библиотеку
овде, а командни кодови су
овдепише и испуњава скицу:
/ * Превуците даљински управљач
Ова скица користи ултразвучни даљиномјер за одређивање гестове корисника и шаље ИР сигнал на сони ТВ на основу дате наредбе.
- Високо прелазите прстом (> 10ин) = Канал горе
- Слаби прелазак = Канал доле
- Високо задржавање (> 10ин) = повећање гласноће
- Мало задржавање = смањење гласноће
- Сензор поклопца (<3ин) = Укључивање / Искључивање
Направио Дан Ницхолсон.
Овај пример кода је у јавној домени.
Овај код користи библиотеку ИРремоте (хттпс://гитхуб.цом/схиррифф/Ардуино-ИРремоте)
* /
#инцлуде <ИРремоте.х>
// Дефинише за контролне функције
#дефине ЦОНТРОЛ_ЦХ 1 // Промјена канала
#дефине ЦОНТРОЛ_ВОЛ 2 // Волуме
#дефине ЦОНТРОЛ_ПОВ 3 // Снага
#дефине ЦОНТРОЛ_УП 1
#дефине ЦОНТРОЛ_ДОВН -1
#дефине ДИСТ_МАКС 20 // Максимална удаљеност у инчима, а све горе занемарено.
#дефине ДИСТ_ДОВН 10 // Праг за наредбе горе / доле. Ако је виша, наредба је "горе". Ако је ниже, „доле“.
#дефине ДИСТ_ПОВ 3 // Праг за команду напајања, нижи од = укључивање / искључивање напајања
// ИР ПИН
цонст инт ирПин = 3; // ово је дефинисано у библиотеци, овај вар је само подсетник. ПРОМЕЊИВАЊЕ ОВО НЕ БИ ПРОМЕНИЛИ ПИН У КЊИЖНИЦИ
// 2-полни сензор за пинг
цонст инт пингПин = 8;
цонст инт ецхоПин = 7;
// Потврда ЛЕД пинови
цонст инт лед = 13; // интерни ЛЕД за уклањање погрешака горе / доље
цонст инт ледР = 11;
цонст инт ледГ = 10;
цонст инт ледБ = 9;
// ЛЕД на тајмеру
непотписани дуги тајмер;
// Објекат ИР предајника
ИРсенд ирсенд;
// Ознака потврде напајања (потребна су два превлачења за слање сигнала)
боолеан поверЦонфирмед = лажно;
воид сетуп () {
// иницијализирати серијску комуникацију и поставити пинове
Сериал.бегин (9600);
пинМоде (лед, ОУТПУТ);
пинМоде (ледР, ОУТПУТ);
пинМоде (ледГ, ОУТПУТ);
пинМоде (ледБ, ОУТПУТ);
пинМоде (пингПин, ОУТПУТ);
пинМоде (ецхоПин, ИНПУТ);
тимер = миллис ();
}
воид петља ()
{
// Сериал.принтлн (миллис ());
дуго трајање, инча;
инт вредност;
// Проверите за читање
трајање = доПинг ();
// Тајмер за потврђивање акција (тренутно само напајање)
иф (тимер && тимер <(миллис () - 5000) && (миллис ()> 5000))
{
Сериал.принтлн ("ресетовање тајмера");
тајмер = лажно;
}
дигиталВрите (лед, ЛОВ);
сетЦолор (0, 0, 0); // искључено
// претворити вријеме у даљину
инчи = микросекунде улаза (трајање);
// Ако је удаљен мање од мак инча, поступите
ако (инчи <ДИСТ_МАКС)
{
// Дебуг излаз
Серијски.принт (инча);
Сериал.принтлн ("ин");
// Ако је врло близу, то је сигнал "напајања"
ако (инча <ДИСТ_ПОВ)
{
Сериал.принтлн (тајмер);
// укључено или искључено
иф (тајмер)
{
доИР (ЦОНТРОЛ_ПОВ, 0);
тајмер = лажно;
кашњење (2000); // не желим да ово шаљем више од једном. 2 секунде кашњења
}
друго
{
Сериал.принтлн ("постављена застава напајања");
тимер = миллис ();
сетЦолор (255.50,50);
кашњење (500);
}
}
елсе // је јачина звука или канал
{
// Удаљеност одређује смер управљања
валуе = хандлеДист (инча);
// сачекај пола секунде
кашњење (300);
// проверите поново, да ли је рука нестала?
иф (микросекунде улаза (доПинг ())> ДИСТ_МАКС)
{
доИР (ЦОНТРОЛ_ЦХ, вредност); // прелазите прстом
}
друго
{
// волумен
инт д = 500; // прво кашњење је дуже за једну промену јачине звука
// понављајте док рука не буде уклоњена
док (инчи <ДИСТ_МАКС)
{
валуе = хандлеДист (инча); // је горе или доле?
доИР (ЦОНТРОЛ_ВОЛ, вредност); // паљење ИР сигнала
кашњење (д); // сачекај
инцхес = микросекундеТоИнцхес (доПинг ()); // поново проверити за руку
д = 100; // кашњења су краћа за брзо подешавање вишеструке јачине
}
кашњење (500); // ово зауставља случајну промену канала након подешавања јачине
}
}
}
кашњење (50); // Довољно кратак да открије све потезе.
}
/ *
* Ако је удаљеност испод прага, означите као 'горе' и укључите одговарајућу ЛЕД.
* /
инт хандлеДист (инчни инчи)
{
иф (инчи> ДИСТ_ДОВН)
{
дигиталВрите (лед, ХИГХ);
повратак ЦОНТРОЛ_УП;
}
друго
{
дигиталВрите (лед, ЛОВ);
повратак ЦОНТРОЛ_ДОВН;
}
}
/ *
* Искључите исправан ИР код
* /
воид доИР (инт контрола, инт вал)
{
прекидач (управљање)
{
случај ЦОНТРОЛ_ПОВ:
// снага
Сериал.принтлн ("укључивање / искључивање 0ка90");
за (инт и = 0; и <3; и ++)
{
сетЦолор (255, 0, 0);
ирсенд.сендСони (0ка90, 12); // Шифра напајања Сони ТВ
кашњење (40);
}
одмор;
случај ЦОНТРОЛ_ЦХ:
сетЦолор (0, 255, 0);
// излази 'канал горе / доље', зависно од вал
иф (вал == ЦОНТРОЛ_УП)
{
дигиталВрите (лед, ХИГХ);
за (инт и = 0; и <3; и ++)
{
ирсенд.сендСони (0к90, 12);
кашњење (40);
}
Сериал.принтлн ("повезивање канала 0кД00А");
}
друго // доле
{
за (инт и = 0; и <3; и ++)
{
ирсенд.сендСони (0к890, 12);
кашњење (40);
}
Сериал.принтлн ("канал доле 0к3002");
}
одмор;
случај ЦОНТРОЛ_ВОЛ:
сетЦолор (0, 0, 255);
// излаз 'гласноћа горе / доле', зависно од вал
иф (вал == ЦОНТРОЛ_УП)
{
дигиталВрите (лед, ХИГХ);
за (инт и = 0; и <3; и ++)
{
ирсенд.сендСони (0к490, 12);
кашњење (40);
}
Сериал.принтлн ("запремина до 0к490");
}
друго // доле
{
за (инт и = 0; и <3; и ++)
{
ирсенд.сендСони (0кЦ90, 12);
кашњење (40);
}
Сериал.принтлн ("запремина до 0кЦ90");
}
одмор;
}
}
воид сетЦолор (инт црвена, инт зелена, инт плава)
{
аналогВрите (ледР, црвени);
аналогВрите (ледГ, зелена);
аналогВрите (ледБ, плава);
}
дуго доПинг ()
{
дигиталВрите (пингПин, ЛОВ);
делаиМицросецондс (2);
дигиталВрите (пингПин, ХИГХ);
делаиМицросецондс (5);
дигиталВрите (пингПин, ЛОВ);
повратни пулсИн (ецхоПин, ХИГХ);
}
дуге микросекундеТоИнче (дуге микросекунде)
{
// Према Параллаковом листу података за ПИНГ))), постоје
// 73.746 микросекунди по инчу (тј. Звук креће се 1130 стопа по перу)
// други). Ово даје раздаљину коју је прешао пинг, прелазио
// и вратимо се, па делимо са 2 да бисмо добили удаљеност препреке.
// Погледајте: хттп://ввв.параллак.цом/дл/доцс/прод/ацц/28015-ПИНГ-в1.3.пдф
повратне микросекунде / 74/2;
}
дуге микросекундеТоЦентиметерс (дуге микросекунде)
{
// Брзина звука је 340 м / с или 29 микросекунди по центиметру.
// Пинг путује назад и назад, тако да проналази удаљеност од
// предмет преузимамо половину пређене удаљености.
повратне микросекунде / 29/2;
}
Карактеристика програма је слање исправљачких порука о ономе што се тренутно догађа на монитору Ардуино ИДЕ серијског порта. Након што се уверите да све исправно функционише, убудуће уређај можете напајати не из рачунара, већ из напајања.
Редослед слања наредби:1. Укључите или искључите телевизор: махните дланом испред алата за даљину на удаљености од 0 до 75 мм, РГБ ЛЕД лампица ће се 5 секунди запалити љубичастом бојом док је упаљена, поново мажите на истој удаљености.
2. Смањите број канала - љуљајте се на удаљености од 75 (није укључено) до 250 мм. Зум - исти, али на удаљености од 250 (није укључено) до 500 мм.
3. Смањите или повећајте јачину звука - исто као и код канала, али не машите, већ држите длан непомично. Док корисник држи свој длан, јачина звука, овисно о удаљености, смањује се или повећава по истој логици као и број канала.
Да бисте користили остале функције (ЕПГ, телетекст, бас улаз, итд.), Треба да држите редован даљински управљач поред себе. У савременим условима, препоручљиво је програмирати уређај за контролу ДВБ-Т2 стандардне телевизора. У случају музичког центра све је другачије: аналогно емитовање је и даље ту, мада ће у будућности доћи до преласка на почетни ДАБ + или ДРМ +.
Након уклањања грешке на конструкцији, требало би да се постави у тело било које конструкције - од произведене
уради сам од плексигласа, шперплоче, до било које погодне готове кутије, на пример, лемљењем. У кућишту треба предвидјети рупе за даљиномјер, кабл и обе ЛЕД. Препоручљиво је усмерити даљиномер и РГБ ЛЕД у једном смеру, а ИР диоду у супротном смеру.