ハードウェア・開発ラズパイとUSB赤外線リモコンアドバンスでエアコンの操作に対応させたいと思います。エアコン対応はちょっと面倒くさいです。エアコンのリモコンは全ての情報を毎回送信しています。いうことかというと”温度をあげる”ボタンを押すと、例えば今の設定が25°Cなら温度26°Cの命令と同時に電源ON、冷房、風量1、風向きはスイング、タイマーセットなし...など全機能の情報が同時に送信されています。単純に学習リモコンのように覚えるだけだと、組み合わせが膨大になります。冷房、温度28°C、風量1、風向きスイング...冷房、温度28°C、風量2、風向きスイング...冷房、温度28°C、風量1、風向き固定...冷房、温度28°C、風量2、風向き固定......風量2つと風向き変えるだけで4つ。温度を5種類変えたければさらに×5。暖房、冷房、ドライで×3。タイマー使うならさらに...使う機能をグッと絞って少ないパターンを記憶するのも手ですが、今回は送信するコマンドを解析して自分でコマンドを生成するようにしました。ちなみにエアコンはDAIKINです。リモコンには”ARC446A3”と書かれています。USB赤外線リモコンアドバンスのコマンドの解析USB赤外線リモコンアドバンスには有志の方がメーカー提供のWindows版をLinuxに移植したbto_advanced_USBIR_cmdというプログラムがあり、それを使ってリモコンのコマンドを学習したり、赤外線を送信したりしています。〜赤外線リモコン操作〜更新履歴2019/09/10ツールへのリンクを修正しました。2017/12/19新規作成。時間を有効活用するため早起きしよう!と決めたのはいいんですけどやっぱり起きれません。pocketsコマンドを生成するためにはまずこのbto_advanced_USBIR_cmdが学習した内容のファイルがどういう形式なのか調べないといけません。bto_advanced_USBIR_cmdのソースを参考に進めていきます。Linux.GitHubこのファイルには0xで始まる16進数の数値がカンマ区切りのテキストで並んでいます。0x00,0x13,0x00,0x10,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x11,0x00,0x12,0x03,0xc0,0x00,0x86,0x00,0x41,0x00,0x13,0x00,0x31,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x31,0x00,0x13,0x00,0x10,0x00,0x13,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x32,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x31,0x00,0x13,0x00,0x31,0x00,0x12,0x00,0x11,0x00,0x12,0x00,0x32,0x00,0x12,0x00,0x31,0x00,0x13,0x00,(省略)ソースと照らし合わせながら見て分かったことは...4バイトで1セット。その4バイトのうち、最初の2バイトで赤外線をONにする長さ、後ろの2バイトで赤外線をOFFにする長さを表しているということでした。最初の4バイト、”0x00,0x13,0x00,0x10”が意味するところは、まず上位2バイトと下位2バイトをまとめて0x0013と0x0010、それぞれを10進数に直すと19と16。LEDのONが19、LEDのOFFが16。この19,16という数字は実際の長さを周期(38khzの場合は26μs)で割ったもののようです。赤外線リモコンのフォーマットにはいろいろあるようですが、私が使っているDAIKINのエアコンは家製協フォーマットをベースにしているようです。pockets赤外線のオンとオフの時間の長さでビットの0か1かが決まります。いうとオンの時間は常に一定でオフの時間が短いと0、長いと1になります。0か1以外にLEADERコードやSTOPコードと呼ばれる特殊な信号もあります。上記の情報を元にこのファイルをビットにして表示するプログラムを作りました。get_bits(data)dump(bits)dump_bits.pyという名前です。USB赤外線リモコンアドバンで記録したファイルを標準入力から流し込んで使います。1オンとオフの長さは多少ばらつきがありました。最後にそれぞれの数値が何回出現したか表示しています。0か1かはオフの長さで判断しますが、以下の基準を使ってます。45〜55...長い15〜20...短いこれは実際に記録したコマンドを何個か調べて、この範囲だったからという安直な理由です。以下のサイトにDAIKINのコマンドの構成がありました。pocket最初は0が5回続いてSTOPコード、LEADERコードがきて64bitの後にSTOPコード...とサイトの説明通りになっています。LEADERコードは(多少の誤差はあるが)全て同じようです。STOPコードに関しては中2つ以外は誤差とは呼べないくらいの差があるので、3種類あるのでしょうか。次はデータ部分を解析して見ます。その2〜前回はUSB赤外線リモコンアドバンス向けのデータの解析を行いました。次はエアコンのコマンド部分を見ていきます。このコマンド部分を組み立てて上記の形式に変換して保存、赤外線送信という流れです。20202020/02/16昨年に引き続いての出走。20202020/01/26佐賀30K(サガサーティーケー)に参加しました。去年は参加しなかったので2年ぶりの参加です。...第58回鳥栖市祝成人ロードレース2020/01/16ほぼ毎年参加している鳥栖ロードレース。祝日とはいえ、月曜日のマラソン大会は初めてです。...福岡で別府大分ジョグトリップ20192019/12/15今年で3回目の出場、福岡で別府大分ジョグトリップ。...第28回きやまロードレース大会2019/12/01去年に続き今年も参加、きやまロードレース大会。子供が多くて、活気のある大会です。Tensorflow2に合わせて記事を更新しました。最新版に合わせて更新。