編集履歴一覧に戻る
swerveのアイコン画像

swerve が 2021年02月14日00時35分07秒 に編集

初版

タイトルの変更

+

テレビの小さな電源ボタンの状態を遠くからでも見やすくするデバイス

タグの変更

+

ATtiny

+

カラーセンサ

+

秋葉原2021

+

LED

+

Arduino

本文の変更

+

# 作ったもの 見えにくいテレビの電源ボタンの状態遷移(OFFからON)をテレビ上方に取り付けたテープLEDによって遠くから見えるようにするデバイス @[youtube](https://youtu.be/eyZacmLTU5M) # 動機 家のテレビ(東芝レグザZ740)の電源ボタンがあまりにも見えにくく、かつ画面の起動に時間がかかる(10秒程度)という仕様?があります。 つまり電源ON時にリモコンでの操作が受付られているのかが非常に分かりにくいという欠点があります。 このため操作できてないと思って電源ボタンを複数回押してしまいますが、これによって永遠にテレビの電源のON-OFFを繰り返す羽目になったり、10秒待ってから起動してない事に気づくなどの無駄な時間が発生するといった現象が発生します。少し分かりにくいですが、この動画では開始して1秒で電源をONにしており、画面への表示までに10秒程度かかっていることがわかります。 @[youtube](https://youtu.be/OhE_dTZeiek) 動画ではテレビの右下をよく見ると電源ボタンがあり、電源がOFFの時は赤、ONの時は緑に点灯しているのですが、 光り方がとても弱く、近くに行かないと見えなかったり、光の当たり具合によっても見えなかったりします。 そこで電源ボタンの様子が遠くからでも見えるようにしたいと考えました。 これに対してボタン近くに拡大鏡のようなものを置いたり、アンプで増幅するといった解決法がありますが、 テレビが切り替わる時以外には目立たないでほしいと考えたため、カラーセンサとマイコンを使って切り替わりを検知するといった方式にしました。 # システム構成 電源ボタンが赤から緑に変化する瞬間を検知するために付近にカラーセンサを取り付けます カラーセンサとATtinyはI2Cで通信しており、テレビがONになったのを検知したらテープLEDを光らせます。 ![システム構成](https://camo.elchika.com/6eb4efdad6d72002a6b6c39578af597be98e13e8/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f31353364333761632d616138632d346561392d386465382d356166363030313263336137/) # 回路構成 主な材料(入手先はあってるかは分かりませんが...) | 部品名 | 個数 | 備考 | |:---:|:---:|---| | ATtiny85-20PU | 1 | [入手先:秋月](https://akizukidenshi.com/catalog/g/gI-09573/) | | ICソケット 8ピン | 1 | [入手先:秋月](https://akizukidenshi.com/catalog/g/gP-00017/) | | I2C対応デジタルカラーセンサモジュール | 1 | [入手先:秋月](https://akizukidenshi.com/catalog/g/gK-08316/) | | 三端子レギュレーターNJU7223DL1 | 1 | [入手先:秋月](https://akizukidenshi.com/catalog/g/gI-03705/) | | チップ抵抗 2012サイズ 1k,10k | 少々 | | | チップコンデンサ 2012サイズ 0.1μF | 2 | | | XHコネクタ(2,4ピン)| 少々 | | | PchチップMOSFET IRLML6402(20V3.7A)| 1 | [秋月で売ってるもの](https://akizukidenshi.com/catalog/g/gI-02553/)| | 抵抗各種(1k)| 少々|| | ユニバーサル基板 | 1 | 72*47サイズ| |基板用マイクロUSBコネクタ(電源専用)| 1 | [秋月で売ってるもの](https://akizukidenshi.com/catalog/g/gC-10398/)| |3mm砲弾LED(緑)| 1 | [秋月で売ってるもの](https://akizukidenshi.com/catalog/g/gI-11637/)| |3mm砲弾LED(赤)| 1 | | |DC5VテープLED(青)| 1 | [ピカリ館で売ってるもの](https://www.akiba-led.jp/product/1623)| I2Cで通信出来て、そのほかにピンが3本程度出ているものの中で一番小型だったATtiny85を使用しています。 回路図は以下のようになっています ![回路図](https://camo.elchika.com/238e1995eb12d6fb603de2fba856967d101404fb/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f62623434326538652d366639392d346335362d626631662d313734313563353338303262/) 実装はユニバーサル基板で行いました ![表](https://camo.elchika.com/fa1b39b7635f22d84d91bef89d08de1addd7d942/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f62313731363433302d303737622d346133352d626139352d373330363666393166396235/) ![裏](https://camo.elchika.com/e81f0514155f843e2762aab792a3a8fb5e051ff9/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f64353965666237312d323363332d343361622d623161632d376232356161356336653964/) I2Cのプルアップ抵抗をつけ忘れて通信できないバグに気づくまでに一日かかった事が反省点ですね また給電はUSBで行っています。 最初はテレビ背面にあるUSBポートを使用しようとしましたが、 テレビの電源がOFFになるとUSBポートへの給電も切られるらしく使い物になりませんでした。 結果としては近くにあったNintendoSwitchのUSBポートを拝借しましたが、この用途に使っていいのかは分かりません。 # ハードウェア 設計はSolidWorksで行いました ![CAD](https://camo.elchika.com/af3dbf679de1e35ac13cb2531d5657a3970c5760/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f33623065313235352d323362382d343062352d383030612d393662653765633066306433/) 2パーツ構成になっていて、片方のパーツに回路を差し込んだ後に蓋をして固定するといった形状になっています 設計が終わったら3Dプリンターで印刷しました ![回路と組み合わせた様子](https://camo.elchika.com/31edf0f3c7d157d7e2966effe5c956d669025b56/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f32306536336631612d616438342d343063382d393665662d373437313138616266643363/) ![蓋をした後](https://camo.elchika.com/29854063429d97a629943f1d1cc744d90234583f/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f62303139666265352d393461612d343932622d623137362d306430393963636263363033/) 電源ボタンの光り方が弱いため、太陽光などの外乱に弱いので センサー全体を覆うような形状にして遮光するようにしています ![テレビに実際に取り付けた様子](https://camo.elchika.com/f6578df13d9796fbaaff677514ad8894c232adc1/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f32363337373762392d376538382d343737662d393365622d6463303763343538313562642f39356136623039382d386535362d346538382d623039622d636333613365623462633461/) さらにテレビ自体の表面が凸凹している為、 遮光性をよりよくするためにセンサー部周囲にスポンジを取り付けテレビの表面と密着するようにしました # ATtiny85のソースコード ```arduino:電源ボタンの色に応じてテープLEDを点灯するコード #include <Wire.h> #include <FaBoColor_S11059.h> #define ntone 350 #define htone 440 #define BUZZER 3 #define LED 1 #define IDC 4 int flag=1; int i=0; int j=0; FaBoColor faboColor; void setup() { faboColor.begin(); pinMode(BUZZER,OUTPUT); pinMode(LED,OUTPUT); pinMode(IDC,OUTPUT); } void loop() { uint16_t r,g,b,i; faboColor.readRGBI(&r, &g, &b, &i);//カラーセンサからの値読み込み if(flag==1){ if(g<2){//電源ボタンが赤になったことを検知 flag=0;//電源OFF } digitalWrite(LED,HIGH); } else{ if(g>=3){//電源ボタンが緑になったことを検知 flag=1;//電源ON tone(BUZZER,htone); for(j=0;j<200;j++){ analogWrite(LED,250-j); delay(25); } } digitalWrite(LED,HIGH); } if(flag==0){ digitalWrite(IDC,LOW); } else{ digitalWrite(IDC,HIGH); } delay(10); } ``` # 完成した後での改良点、感想 設計から完成まで3日もかかってしまったことが反省点です。 カラーセンサが繊細で遮光が完全でないと動作が不安定になる事がよくありました。 テープLEDはフルカラーの物にしたりすると見た目はより楽しくなるかもしれないですね # おわりに 既製品(テレビなど)に合うように使いやすさ向上のデバイスを作ることは楽しいですが、 欲を言えばそもそもそんな手間がいらない既製品にしてほしいものですね