
この記事ではテレビのトピックには触れません。「ガジェットエンジニアリング」とインターフェイスの開発についてのみ説明します。
この記事の一部は、私の記事「 テレビ用Bluetoothリモートコントロール 」の続きであるため、ここで説明するいくつかの技術的なポイントを参照します。
まず、デバイスの動作を説明します(ビデオでは、Dom.ruレシーバーの隣の左下隅にあります)。
外では、デバイスは次のようになります。

これは分解図です:

ケースとして、私は偽の監視カメラを使用しました。 このようなモデルは、中国のオンラインストアで4〜5ドルで販売されています。 デバイスの設計については、 前の記事 、および受信機を制御するためのボタンコードのスケッチDom.ruを参照してください。
こっち
#include <IRremote.h>
IRsend irsend;
int ledPin = 13;
符号なし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);}
ボイドループ()
{
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){マイナス();}
}
}
IRsend irsend;
int ledPin = 13;
符号なし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);}
ボイドループ()
{
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){マイナス();}
}
}
誰かがTricolor TVレシーバーを制御するための同様のデバイスを作成したい場合、ボタンコードのスケッチは次のとおりです。
こっち
#include <IRremote.h>
IRsend irsend;
int ledPin = 13;
符号なし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);}
ボイドループ()
{
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){マイナス();}
}
}
IRsend irsend;
int ledPin = 13;
符号なし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);}
ボイドループ()
{
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){マイナス();}
}
}
Tricolor TVを使用したデバイスの操作を示すビデオはこちらです。
他の受信機のボタンコードの読み方は、 以前の記事でも説明されています。
インターフェースについて少し説明します。
まず、インターフェースが作成されました。

しかし、彼は標準のリモートコントロールと比較して大きな利便性を与えませんでした。
次に、目的のチャンネルの検索をもう少し便利にするために、いくつかのボタンに署名しました。

しかし、このオプションはあまり便利でもありませんでした。
今日、インターフェースは次のようになります。

このインターフェースを使用することは非常に便利であることが判明しました。
結論として、App Inventor 2 Androidビジュアル開発環境を使用して、すべてのAndroidアプリケーションを作成したと言えます。
このようなアプリケーションをゼロから作成する方法に興味がある人は誰でも、このトピックに関するビデオを見ることができます(YouTubeで視聴する必要があります)。
PS初心者およびプロ向けのarduinoに関する100以上の教材のコレクションはこちら
PPSオンラインArduino Guictimesコースはこちら。