2017年12月8日金曜日

Google Homeで家電を制御してみる

Google Home Miniをせっかく購入したのでこの前作ったIR Stationを使って赤外線リモコンが使える家電をGoogleアシスタントで制御してみた。

流れとしてはGoogleアシスタントをIFTTTと連動させて、IFTTTからIR Stationを呼び出す感じ。
まずは手始めにシーリングライトをオンオフするところから始めてみた。

まずIR StationをどうやってIFTTTと連動させるかなんだけど、Webhookが使えそう。

Chromeのデベロッパーツールで学習リモコンのボタンをクリックしたときの動作を見てみるとsendでIDをPOSTしてる模様。
IDはどうやらリモコンを登録した順番に割り振ってるようで、さらにPOSTじゃなくてGETでも赤外線を飛ばすことができた。

とりあえず必要なリモコンのボタンをどんどんIR Stationに割り振ってIDをデベロッパーツールで調べれば行けそう。


IDの調べ方はIR StationのページをChromeで開いた状態でF12を押してデベロッパーツールを開いて学習リモコンのボタンをクリック。
するとsendが読み込まれるのでそこのForm DataというところにIDが出てくる。この数字がクリックしたボタンに割り当てられてるIDになるみたい。

そしてWebから
http://IR StationのIPアドレス/signals/send?id=先程のID

とすればIR Stationから赤外線を飛ばすことができる。
IFTTTのWebhookを使うためにポートを開けてIR Stationを外部から制御できるようにしておかないといけない。

あとはIFTTTで連動するだけ。Webhookのアドレスの部分はグローバルIPかDDNSを入れる感じ。

ネット経由の割にはだいぶレスポンスが良い。
HomeBridgeとかよりは設定が簡単でいいなぁ

これで赤外線リモコンが使えるものはほぼ音声で制御できるかも?

2017年12月4日月曜日

Google Home Miniを買ってみた

楽天ブックスで半額セールをしていたのでついGoogle Home Miniを買ってしまった。
半額なら最低限普通のスピーカー的な使い方ができれば問題ないかなと言うことで…
おもったよりだいぶ小さい箱。

箱を開けると本体が。ファブリック感が良い。

付属品はちょっとした説明とACアダプタのみ。
ACアダプタはmini USBでデザインとか質感はなかなか良いと思う。

裏面のオレンジ色はゴムで結構グリップする。本体にはACアダプタとミュートスイッチぐらいしか無いかも。タッチ式のボタンはあるようだけど。

音声認識中は真ん中あたりのLEDが光るっぽい。本体の左右を触ると音量の上げ下げができる。

とりあえず電源を入れるとGoogle Homeアプリから設定するように言われるのでGoogle Homeアプリから自宅のWiFiに繋いだり個人設定すれば普通に使える状態に。
音質的には声は聞きやすいかも。低音は物足りないけど作業用BGMぐらいだったら問題ないかもなぁ

IFTTTでも使えるようなので色々連動させてカスタムコマンドで遊んでみようかな

2017年12月3日日曜日

S270を買ってみた

結局PX-BCUDだけだとBS/CSしか見れなくて微妙に不便なのでPX-S1UD V2.0のOEM元?であるS270をポチってみた。
11/11のセールにポチって届くのに3週間かかった…
セールだから仕方ないね

中国から来た割には箱が原型をとどめている

日本語の説明も書いてある!
ISDB-T対応の国の言語それぞれで説明が書いてあるのかな

付属品はアンテナとそのスタンド2種類、アンテナ変換アダプタとUSB延長ケーブル

アンテナ端子はそのままだと日本のF型と互換性がないので付属の変換アダプタをぶっ刺します。

PX-S1UD V2.0とそっくりというかそのまんま?

とりあえずWindowsで動作確認。
ドライバはPX-S1UD V2.0のものをダウンロードして使用してみた。
BondriverはBondriver_BDATを使用した。
PX-BCUDで環境は整っているのでチャンネルスキャンするだけで普通に使えたー
今度はRaspberry Piでためしてみよ。

2017年12月2日土曜日

IR Stationを作ってみた

Wi-Fi接続の学習リモコンといえばIRKitとかeRemoteとかいろいろ出てるけどどれも意外と値段が張る…
IRKitに関してはオープンソースなので回路図やソフトウェアが公開されていて部品を買って組み立てれば多少はお安くなるんだろうけども、結構部品もお高い。

安価なWiFi搭載マイコンである、ESP-WROOM-02を使って学習リモコンを作っている例が何件かあったので調べてみた。
1つはminIRum。IRKitの一部機能を実現しているもの。
作者さんのサイトではHomebridgeでHomeKit互換の学習リモコンとしての使用例が。IRKit互換なのでHomebridgeではIRKit用のプラグインそのまま使えるっぽい?
もう一つはIR Station。こちらはフル機能の学習リモコンで、タイマーなども使える模様。ブラウザから操作するので対応機種選ばなそう。

ということで今回はIR Stationを作ってみることに。
どちらもESP-WROOM-02なのでハードだけ作ってしまえばソフト書き換えでどっちにでもなりそうだし。

ソースコードや回路図はGithubのIR Stationにアップロードしてくださっているのでそちらを利用させていただいた。

とりあえず部品は手持ちのものを利用して作成することに。
前にAtmega328やRaspberry Piで学習リモコンを自作した時の余りを利用した。

ESP-WROOM-02はだいぶ前に購入して、ユニバーサル基板に実装していたものを再利用した。


ケース買ってからLEDの位置を決めようかと思っていたので赤外線LEDの実装適当。
RGB LEDもケースに入れるときかな…

ソフトの方はArduinoから書き込む。
ESP8266の設定はGithubに書いてあるとおりなんだけど、NTPを使って時刻が正常に取得できなかったのでNTPのサーバーの変更を行った。
ntp.cppのIPAddress timeServerのところをNICTのIPアドレスに変更した。

これで正常に時間が設定されるようになった。

ついでにルータからIR Stationのホスト名を取得するとESP_から始まるデフォルトのホスト名になっていたのでホスト名を"IR-Station"に変更してみた。

修正箇所はwifi.cppの57行目あたりにWiFi.biginがあるのでその上に
WiFi.hostname("IR-Station");
と追加した。

プログラムを焼いたらお次はSPIFFSにWebサーバ用のデータを書き込む。
ファイルシステムにデータをアップロードするためにArduinoにプラグインを追加しないといけない。
Arduino ESP8266 filesystem uploader
こちらからツールをダウンロードしてドキュメントの中にあるArduinoフォルダにtoolsというフォルダを作ってESP8266FSフォルダごと突っ込むだけ。

あとはツールのESP8266 Sketch Data Uploadからデータをアップロードするだけ。
マイコンの設定が正常に行われてないとうまく書き込めないので注意。

起動するとIR-StationというSSIDでAPモードで立ち上がるのでパスワード(IR-Station)を入れて192.168.4.1にアクセスするとWiFiの設定ができる。
あとは自宅のWiFiに繋げば完成っぽい。

詳しい使い方は作者さんのページがわかりやすい。

一応ダイキンのエアコンとNECのシーリングライトがうまく動いてるのですごく便利になった。
エアコンのリモコン信号は特殊な物が多いのでエアコンのリモコンを学習できるリモコンなら他の製品も問題なく動きそう。
ESP-WROOM-02ならRaspberry Piみたいに電源切るとき気を使わなくても良いし、低消費電力だし。
後はこれを小型のケースに組み込みたいな

2017年11月8日水曜日

DuinoFun UHS miniを買ってみた

Arduino用のUSB Host ShieldのArduino Pro mini版のクローンを買ってみた。
Circuits@HomeのUSB host mini r1.0のコピーっぽい?MAX3241Eは3.3V駆動なので、レベル変換がついてないUSB host miniは3.3V駆動のArduino Pro mini用に作られてるっぽい。
結局重ねて使うことも無いと思うしESP32とかでも使ってみたいのでピンヘッダを必要最低限にしてみた。

V_BUSとVCCはパターンカットで切り離して、V_BUSに5V、VCCに3.3Vをわけれ入れられるようにした。
そうしないと3.3Vで動くUSBデバイスしか動かせないし…

これならブレッドボード上でArduino Pro Micro以外でも試せそう。
一応Arduino Pro microで動作確認。

ライブラリはUSB Host Shield Library 2.0を使用した。
とりあえずこの環境での動作は問題なさそうなので今度は別なマイコンでも試してみたいなぁ

2017年11月3日金曜日

Orange Pi PCにArmbianを入れてKernel 4.xを使ってみた

久しぶりにRaspberry Piを引っ張り出してきたんだけど、そういえばOrange Pi PCでも同じことできるんじゃないかということで久しぶりにOrange Pi PCを引っ張り出してきた。
以前はテレビに繋いで使ってたんだけどFireTV Stick2が来てから全然使ってなかったし。

ディストリビューションはArmbianを使ってみることに。Armbianは今のところデフォルトでKernel 3.4系みたいだけど、PX-BCUDはカーネル4.7以降だとカーネルモジュールが組み込まれているようなのでArmbianのNightly Buildに切り替えて、カーネルを入れ替えてみた。

まずはarmbian-configでNightly Buildに切り替える。

sudo  armbian-config

これでSystemの設定から変更することができる。
少し時間がかかる。

古いバージョンを消去する。
sudo aptitude remove ~nlinux-dtb ~nlinux-u-boot ~nlinux-image ~nlinux-headers
sudo aptitude remove ~nlinux-firmware ~narmbian-firmware ~nlinux-$(lsb_release -cs)-root 1 aptitude remove ~nlinux-firmware ~narmbian-firmware ~nlinux-$(lsb_release -cs)-root
(勝手に改行されてるけど2行です…

あとは新しいバージョンのカーネルやヘッダをインストール。

sudo apt-get install linux-image-dev-sun8i linux-dtb-dev-sun8i linux-headers-dev-sun8i
sudo apt-get install linux-u-boot-orangepipc-dev linux-$(lsb_release -cs)-root-dev-orangepipc
sudo apt-get install sunxi-tools swconfig a10disp
sudo reboot

これで再起動後にカーネル4.11.12で起動した。
H3のカーネル4.xはまだ使えないモジュールがあったり不安定だったりするのでまだまだだろうけど、一応Raspberry Pi同様にPX-BCUDを動かすことができた。

ただなんかVLCでhttpストリーミングしてるとOrange Pi PCが落ちるんだよなぁ…
何が悪いんだろ…

2017年10月29日日曜日

PX-BCUDをRaspberry Piで使ってみた。

だいぶ前に買ったUSB接続のBS/CSチューナー、PX-BCUDをいつのまにかLinuxで使えるようにしてくれた人が居たようなのでためしにRaspberry Pi 3 Model Bで試してみた。

さらにRaspbianの最新バージョンだとモジュールが組み込まれているのでUSBに接続するだけで認識するみたい。

こんな感じでモジュールが勝手に読み込まれてた。

B-CASリーダとして使っていたSCR3310-NTTComもLinux対応だったのでこいつも普通に認識してそうな感じ。

あとは録画ツールの準備。
PX-BCUDではrecpt1の派生であるrecdvbで使えるようにしてくださってる人がいるのでそれを使うことに。
デフォルトではtsの復号化をしてくれないのでB-CASカードでtsを復号化してくれるようにlibarib25も必要。

まずはlibarib25のセットアップ。

カードリーダを使うためのライブラリとcmakeを入れる。

sudo apt-get install cmake libpcsclite-dev

libarib25をダウンロードして解凍

wget https://github.com/stz2012/libarib25/archive/master.zip -O libarib25.zip
unzip libarib25.zip

libarib25をmakeするためのディレクトリに移動してmakeしてinstall

cd libarib25-master
cmake.
make
sudo make install

次にrecdvbをセットアップする
recdvbは派生が色々あるようだけど今回はdogeel版を使用してみた。

recdvbをダウンロードして解凍

wget https://github.com/dogeel/recdvb/archive/master.zip -O recdvb.zip
unzip recdvb.zip

recdvbをlibarib25を有効にしてmakeしてinstall
cd recdvb-master
sudo apt-get install autoconf
./autogen.sh
./configure --enable-b25
make
sudo make install


これで一通りの準備が整った…ハズ。

カードリーダーにB-CASを差し込んで(例によって差し込む向き注意)テストしてみる。
recdvbにはネットワーク越しでVLCでテレビを視聴できる機能もあるのでこの機能で見れるか試してみた。

recdvb --http 8080 --b25 --strip
これでRaspberry Piのポート8080に接続すると復号化された映像をVLCから再生できる。

クライアントのPCにはVLCをインストール。iPadのVLCアプリでも可能だった。
メディア→ネットワークストリームを開くから
http://ラズパイのIP:8080/チャンネル
という形でアクセスするとテレビを視聴できるはず。
チャンネルはrecdvb -helpで一覧を見ることができる。
例えばラズパイのIPがで192.168.0.2のBS11を見たい場合は
http://192.168.0.2:8080/211
をVLCから開けば再生できるはず。

とりあえずLinuxで使えることが確認できた。
Chinachuとかを使えば低消費電力な録画サーバーの構築とかもできそうだなぁ

2017年10月27日金曜日

27UD58P-Bを買ってみた

バックライト基板を修理して使っていたサブ液晶がおなくなりになってから数ヶ月、やっぱりサブ液晶がないと不便。(スイッチで遊ぶにしても…

たまたまNTT-XのX-Dayで27UD58P-Bが37800円でセールしていたのでついポチってしまった。
X-Dayだと代引き手数料かかるみたいだけどそれでもかなりお安かったので(生産終了品なんだけどね
箱がでかい。

実際4KディスプレイはTNとAH-IPSあたりを店頭で見比べていたんだけどAH-IPSのほうが好みの発色だったので。TNだと下から覗き込むと色だいぶ変わってしまっていたし。
やっぱり4Kは広い。
結局Windows 10だとデフォルトでDPIが150%になるんだけど、125%にして使ってみてる。

設置したところでスイッチどこにあるのかすげー探したんだけど、結局LGのロゴの下辺りにスティックがあって、それを押すとスイッチになってた。
さらに倒すとOSDが操作できるという。
操作感はなかなかよい。

スタンバイになるとアイコンがばらばらになるという不具合も起こってないし、唯一の欠点はスタンバイ時にLEDが点滅することぐらいかな…
昔LG使ってたときもそういうのあった気がするけどコレが寝てる間に気になる。

まぁAH-IPSの4Kディスプレイとしてはかなり安く導入できたので良しとしよう。

2017年9月30日土曜日

モバイルWi-Fiルーターを買ってみた

iPad miniに格安SIMを入れて使っているんだけど、他のデバイスでWifiを使いたいときにiPadを持ってきていなかったりするのでモバイルWiFiルータを買ってみた。

DMM mobileのSIMを使っているのでDocomoのモバイルWiFiルータが一番手軽に入手できそうということでL-03Eあたりを狙っていたんだけど、たまたまL-02Fの中古がクレードル付きで2000円ぐらいで購入できたのでこちらにしてみた。4バンド対応だし。

L-03Eも中古で2000円ぐらいだったんだけど、ボタンの操作感が微妙というので…
L-02FはタッチパネルのLCDがついてるし、クレードルで有線LANが使えるのが便利そうというのもあったので。
しかもその有線LANがLANとWANモード切り替え対応で、クレードルをLANモードにするとLANポートに繋いだ機器をネットに繋げられるんだけど、WANモードにすると逆に家や滞在先のホテルなどの有線LANを無線化できるっぽい。

というわけで早速DMM mobileで使えるように設定。
iPadはnano SIMで契約しているのに対して、L-02Fはmicro SIMなのでSIM変換アダプタを使用した。

初回起動はスタートアップウィザードが自動的に走るみたい。

言語は日本語と英語が選択可能


APN設定はデフォルトではmopera Uしかはいっていないので新規追加でDMM mobileの情報を追加する。
すべて本体で設定できるのは便利かも。


文字入力はさすがにフリックは使えなかった。


プロファイルを保存したら選択して次へ。
次にWiFiの設定とかあるけどデフォで進んだら繋がった。


設定はとっても簡単だなぁ

なんか不具合があるのでとりあえずアップデートしておいた。

2017年9月4日月曜日

ESP-WROOM-32の簡易開発ボードを買ってみた

ちょっと前にESP-WROOM-32とピッチ変換基板を買っていたんだけど、
PCに繋いでプログラム書き込んだりなんだりするのが面倒なのでシリアル変換アダプタ付きのピッチ変換基板を買ってみた。
ebayでそこそこ安かったやつを選択。450円ぐらいだった。
シリアル変換ICはCP2102を採用してるっぽい。
eBox ESP32-Tのクローンかな?

この開発ボードは両面対応で、ESP32-BitってモジュールとESP-32Sというモジュールに対応している。
ESP-32Sは技適を取得して日本でも売られているESP-WROOM-32とピン配置が互換なのでこのボードで使用できる。ただし裏面に実装。

というわけで早速裏面のESP-32SのところにESP-WROOM-32を実装してみた。
GNDパターンが結構熱を吸収してしまうので結構大変だった。フラックスちょっと塗ってなんとかカバー。

この開発ボードにはLEDが2個ついていて、片方は電源LED、片方はIO2に繋がってた。
microUSBから電源も取れるのですごく便利になったぞ。
Arduino IDEから書き込みするときはIDEの方から書き込みボタンを押すと自動的に書込みモードになるようになっているみたいなので便利。(一部開発ボードは自動書込みのためにコンデンサを追加したりしないとできなかったりするみたい)

ただ一つこのボードで注意しないといけないのは5Vの隣のGNDっていうシルクが間違ってて、実はGNDじゃなくてCMD(GPIO11)につながってる…
この罠に引っかかってちょっと悩んだ…
ちなみにCMDは内蔵SPIフラッシュと接続されてるっぽいので通常は使わない端子っぽい。
CMDってシルク印刷されてるボードもあるようだし、コピーしたときにミスったのかな

2017年9月3日日曜日

Creative AE-5で汎用品のLEDテープを使ってみた

友人がCreative Sound BlasterX AE-5を買ったというので見に行ったら、意外と付属のLEDテープ1本だと心もとなそう…
だからといって見に行った当時はSound BlasterX AE-5 ライティング キットがまだ発売日未定だった。

なければ自作しようということでAE-5で使えそうなLEDの調査をしてみたところ、説明書にはもうLEDテープ用コネクタのピンアサインが乗っていた。
LEDテープ用コネクタはJSTのXHコネクタ(4ピン)を使用していた。
ピンアサインは下記のようになっているっぽい。
1 - Ground
2 - Clock
3 - Data
4 - 5V

もうここまで来るとシリアルLEDチップを使ったLEDテープに候補が絞られるし、純正のLEDテープは3本しか線がつながっていないのでほぼWS2812Bと断定できそう。LEDを覗き込むと黒い点がはいっているのでWS2812Bと断定してWS2812BのLEDテープを買ってみた。

AE-5 ライティングキットのLEDテープは1m/30個のLEDテープっぽんだけど今回は1m/60個のLEDテープにしてみた。
AE-5の仕様上は100個までっぽいので1m品を2本用意。eBayで850円ぐらいだった。

そしてWS2812BのLEDテープだと端子がJSTのSMコネクタ(3pin)がよく使われてるみたいなので、AE-5からLEDテープ接続用のケーブルを作ってみた。

WS2812Bは通信用にAE-5のClockピンしか使わないのでClockピンがWS2812BのDINにつながるように配線。DataピンがあるのはWS2822Sとかにアップグレードできるようにかな?

1mが2本だと120個になってしまうので、AE-5が扱える100個ぴったりになるように25個ずつにしてみた。

シリアルLEDチップのLEDテープは方向性があるので注意。DINがサウンドカード側、DOUTが次のLEDテープになるように配線。SMコネクタのセットもeBayで一緒に購入しておいた。オスメス5個セット、ケーブル付きで120円ぐらい。


LEDテープをケースに貼って、AE-5のLEDポートにXHコネクタを差し込めば完成。


設定でLEDを100個にすると全部点灯した。純正LEDテープだと1本あたり10個なので、10の倍数じゃないと設定できない模様。
やはり一粒ずつ制御できるLEDだといろんなパターンがつかて面白いなぁ
とりあえず動画もとってみた。
とりあえず1000円ぐらいでこんなに光らせることができた!
この互換LEDテープはLEDの間隔が純正の半分なのでその分LED多い!明るい!

2017年9月1日金曜日

Raspberry Piの常時稼働用にSanDiskの産業用microSDを買ってみた。

Raspberry Pi用のmicroSDを探していたらSanDiskの産業用microSDがそんなに値段が変わらなかったので買ってみた。

とりあえずあんまり容量いらないので8GBを選択。
SDSDQAF-008G-Iってやつ。
ケースにはいってるだけのバルク品だった。さすが産業用。

MLCチップ採用ってのと、高耐久って書いてあったので…
まぁRaspbianの方も一時ファイルやログをRAM Diskにするともっと持つんだろうけど。


とりあえず読書速度をテストしてみたところまあまあの結果に。
ちなみにリーダライタはMobileLite G4を使用した。
通常のこの価格帯のmicroSDと遜色ない読み書き性能っぽい。
結局耐久性は使ってみないとわからないけども、とりあえず常時稼働用のRaspberry Pi 3Bに使ってみようかな。

2017年8月19日土曜日

Nintendo Switchのドックを延長してみる

スイッチを買ってからほぼドックモードでプレイしているんだけど、ドックごと画面の後ろにおいてしまうと持ち出すとき不便だし、外に置く場所がないしということで
ドックをUSB Type-C延長ケーブルで延長してみた。


延長ケーブル自体はeBayで500円ぐらい。L字タイプの1m品。
USB Type-Cは向き関係ないのでL字タイプだと左右どちらにでも出せる。

あとは単純にこれをドックに指すんだけど、どうも抜けそうで怖い…
ということでドア用のクッションテープを張ってみた。

これなら抜けない。

問題の動作だけど、1m延長したぐらいでは特に問題なさそう。
画面も正常に出るし、ドックに繋いでるUSB3.0のLANアダプタ経由でインターネット対戦もできてる。

ドックで挟まれてない分、すのこタンとか使えば冷却性能も上がるかな?

そういえば海外ではもうすでに3000円ぐらいで買えるようなドック互換ケーブルも出てきてるみたい。ちなみに普通のType-C→HDMIケーブルとかでは画面が表示されない模様。

2017年8月14日月曜日

LANのクロス変換アダプタを安価で作ってみる。

最近はAuto-MDIX対応の機器が増えてるのであんまり使う機会がないけど、LANのクロス変換アダプタってたまに欲しくなったりする。
そんなに使うものでもないのでダイソーで売ってたLAN延長コネクタを改造して作ってみた。
前回PoEのインジェクタ作ったときと同じものを購入。
前回は青しか売ってなかったんだけど、今回は白しか売ってなかった。
ダイソーとかたまーに仕様が変わるので横から覗いてちゃんとピンが8本出ていることを確認したw
一応パッケージにはギガビットとは書いてないのでコスト削減で4本に減らされていたら大変だし。

このアダプタは接着剤などは使われていないので割れば簡単に開けることができる。

内側から爪のところにマイナスドライバーを突っ込んで片方の端子を外す。

ピンを真っ直ぐにするとピンを抜くことができる。

とりあえずピンを全部抜く。

クロス配線にして戻す。効果が有るかわからないけどついでにより線にしてみた。

あとは元通りに戻すだけ。
見分けがつかないので一応ハウジングにマジックで書いて完了。

クロス変換アダプタと言ってもストレートケーブルが1本必要なんだけど、それもダイソーで購入できるので合計で216円でクロス変換アダプタを作ることができた!
クロスケーブルの罠にハマっていた友人が居たのでプレゼントしました。


結線間違えると機器が壊れる可能性があるのでこれをやるときは慎重に。自己責任でどうぞ。

Related Post

Google Homeで家電を制御してみる

Google Home Miniをせっかく購入したのでこの前作ったIR Stationを使って赤外線リモコンが使える家電をGoogleアシスタントで制御してみた。 流れとしてはGoogleアシスタントをIFTTTと連動させて、IFTTTからIR Stationを呼び出す感じ。...