Пусть описание принципа работы уникального смарт-девайса для упрощения взаимодействия в системе «человек машина» выглядит как реклама таблеток для похудения, но в данном случае это лучший способ объяснить для чего, почему и как собирался данный девайс.
Тему телевидения затрагивать в статье не буду, расскажу только про «гаджетостроение» и разработку интерфейса.
Эта статья частично является продолжением моей статьи Bluetooth пульт для телевизора, поэтому буду ссылаться на некоторые технические моменты, описанные в ней.
Сначала покажу как работает мой девайс (на видео он в левом нижнем углу, рядом с ресивером Дом.ru):
Снаружи девайс выглядит так:
Это в разобранном виде:
В качестве корпуса я использовал муляж камеры наблюдения. Такие муляжи продаются по 1-2 доллара в китайских интернет-магазинах. Конструкцию девайса можно посмотреть в предыдущей статье, а скетч с кодами кнопок для управления ресивером Дом.ru
IRsend irsend;
int ledPin = 13;
unsigned long a;
void setup() {
Serial.begin(9600);
Serial.setTimeout(4);
pinMode(ledPin, OUTPUT);
}
void S1() {irsend.sendNEC(0x8C03F, 32);delay(100);}
void S2() {irsend.sendNEC(0x820DF, 32);delay(100);}
void S3() {irsend.sendNEC(0x8A05F, 32);delay(100);}
void S4() {irsend.sendNEC(0x8609F, 32);delay(100);}
void S5() {irsend.sendNEC(0x8E01F, 32);delay(100);}
void S6() {irsend.sendNEC(0x810EF, 32);delay(100);}
void S7() {irsend.sendNEC(0x8906F, 32);delay(100);}
void S8() {irsend.sendNEC(0x850AF, 32);delay(100);}
void S9() {irsend.sendNEC(0x8D02F, 32);delay(100);}
void S0() {irsend.sendNEC(0x830CF, 32);delay(100);}
void Son() {irsend.sendNEC(0x800FF, 32);delay(100);}
void Smute() {irsend.sendNEC(0x818E7, 32);delay(100);}
void Splus() {irsend.sendNEC(0x8F807, 32);delay(100);}
void Sminus() {irsend.sendNEC(0x802FD, 32);delay(100);}
void loop()
{
if (Serial.available())
{ a = Serial.parseInt();
if (a==1) {S1();}
if (a==2) {S2();}
if (a==3) {S3();}
if (a==4) {S4();}
if (a==5) {S5();}
if (a==6) {S6();}
if (a==7) {S7();}
if (a==8) {S8();}
if (a==9) {S9();}
if (a==0) {S0();}
if (a==161) {Son();}
if (a==162) {Smute();}
if (a==163) {Splus();}
if (a==164) {Sminus();}
}
}
Если кто-то захочет сделать подобный девайс для управления ресивером Триколор ТВ, то скетч с кодами кнопок здесь:
IRsend irsend;
int ledPin = 13;
unsigned long a;
void setup() {
Serial.begin(9600);
Serial.setTimeout(4);
pinMode(ledPin, OUTPUT);
}
void S1() {irsend.sendNEC(0x8C03F, 32);delay(200);}
void S2() {irsend.sendNEC(0x820DF, 32);delay(200);}
void S3() {irsend.sendNEC(0x8A05F, 32);delay(200);}
void S4() {irsend.sendNEC(0x8609F, 32);delay(200);}
void S5() {irsend.sendNEC(0x8E01F, 32);delay(200);}
void S6() {irsend.sendNEC(0x810EF, 32);delay(200);}
void S7() {irsend.sendNEC(0x8906F, 32);delay(200);}
void S8() {irsend.sendNEC(0x850AF, 32);delay(200);}
void S9() {irsend.sendNEC(0x8D02F, 32);delay(200);}
void S0() {irsend.sendNEC(0x830CF, 32);delay(200);}
void Son() {irsend.sendNEC(0x800FF, 32);delay(100);}
void Smute() {irsend.sendNEC(0x818E7, 32);delay(100);}
void Splus() {irsend.sendNEC(0x828D7, 32);delay(100);}
void Sminus() {irsend.sendNEC(0x848B7, 32);delay(100);}
void loop()
{
if (Serial.available())
{ a = Serial.parseInt();
if (a==1) {S1();}
if (a==2) {S2();}
if (a==3) {S3();}
if (a==4) {S4();}
if (a==5) {S5();}
if (a==6) {S6();}
if (a==7) {S7();}
if (a==8) {S8();}
if (a==9) {S9();}
if (a==0) {S0();}
if (a==161) {Son();}
if (a==162) {Smute();}
if (a==163) {Splus();}
if (a==164) {Sminus();}
}
}
Видео с демонстрацией работы девайса с телевидением Триколор ТВ здесь.
Как считывать коды кнопок других ресиверов тоже описано в предыдущей статье
Теперь немного об интерфейсе.
Сначала был сделан такой интерфейс:
Но существенного удобства по сравнению с штатным пультом ДУ он не давал.
Потом я подписал некоторые кнопки, чтобы сделать чуть удобнее поиск нужного канала:
Но такой вариант тоже оказался не очень удобным.
На сегодняшний день интерфейс выглядит так:
Использовать такой интерфейс оказалось достаточно удобно.
В заключении скажу, что все андроид-приложения я делал, используя среду визуальной разработки android-приложений App Inventor 2.
Кому интересно как можно сделать такое приложение «с нуля» может посмотреть мое видео на эту тему (для просмотра необходимо перейти на youtube).
Автор: malyazin_2010