さいつよのリモコン コミケット89

このページは、コミケット89で頒布した”さいつよのりもこん”のサポートページです。

irpo


さいつよのリモコンの機能

  • さいつよのリモコンをタップする(叩く)と、そのときのリモコンの方向(方位 & 傾き)に応じて予め学習させておいたリモコン信号を出す
    • テレビの上の方を狙って叩くと、チャンネルをUPとか・・・
    • エアコンの下の方を狙って叩くと、設定温度を下げるとか・・・
  • 時計を内蔵しており、指定した時刻にあらかじめ学習させておいたリモコン信号を出す

利用前の準備

ファームウエアとホストプログラムの入手

さいつよのリモコンに書き込むファームウエア(firmware.bin)と、各種設定を行う際に必要となるPC(Windows)上で動作させるホストプログラム(IRPoHost.exe)を以下のURLよりダウンロードしてください。
http://d-rissoku.net/irpo/irpo_fw.zip

ホストプログラム(IRPoHost.exe)の実行には、Visual Studio 2015 の Visual C++ 再頒布可能パッケージがお使いのPCにインストールされている必要があります。ホストプログラムを起動したときに、「コンピューターに msvcp140.dll がないため、プログラムを開始できません」というエラーが表示された場合は、Visual C++ 再頒布可能パッケージがインストールされていません。

Visual Studio 2015 の Visual C++ 再頒布可能パッケージは、以下のURLよりダウンロード可能です。
Visual Studio 2015 の Visual C++ 再頒布可能パッケージ

ファームウエアの書き込み

  1. ピンヘッダの1番と2番ピン(一番左の上下の2本)を適当なジャンパーピンなどでショートさせる。
    ピンショート
  2. この状態でmini USBケーブルを用いて、さいつよのリモコンとPCとを接続する。
    (さいつよのリモコンに、このとき乾電池は接続しないこと)
  3. エクスプローラ上に CRP DISABLED という名前のリムーバブルディスクが出現するのを確認する。
    firmwareupdate
  4. firmware.binというファイルが見えるので、これを削除する。
  5. ダウンロードしたファイル(irpo_fw.zip)内のfirmware.binをCRP DISABLED という名前のリムーバブルディスクにコピーする。
  6. コピーが完了したらさいつよのリモコンからmini USBケーブルを抜く
  7. ジャンパピンを抜く
  8. 以上でファームウエアの書き込みは完了です。

乾電池(1.5V 2本)の接続

さいつよのリモコンは、USBケーブルからの5Vまたは1.5Vの乾電池2本(3V)の給電で動作します。

ただし、現在のファームウエアにおいて、さいつよのリモコンは、PCにUSBで接続されているときはリモコンデータの学習 & 設定を行うモードとして動き、USB接続されていない場合に、リモコンとして動作する仕様となっているため、リモコンとして利用するためには、さいつよのリモコンに対して1.5Vの乾電池2本(3V)を接続してください。

乾電池を収めるケースを適当に準備し、乾電池2本からの3Vの電源を、さいつよのリモコンの以下の2つの端子に接続してください。

power_pin

なお、USBケーブルと乾電池の両方から給電されている場合、さいつよのリモコンは、USBケーブルからの電力を利用します。


利用方法

電源ON後にやること

USBケーブルまたは乾電池からの給電を初めて行ったときは、さいつよのりもこんを、その場で、数秒間、グルグルあらゆる方向、様々な軸で回転させてください。

この操作によって、さいつよのリモコンに搭載されている磁気センサーのキャリブレーションが行われます。

リモコン信号の学習と設定

さいつよのリモコンは、操作対象機器本来のリモコン(テレビを操作するのであれば、普段テレビを操作しているテレビ付属のリモコン)から出力されるリモコン信号を学習(=記録)し、学習したリモコン信号を再生することで、機器の操作を行います。

リモコン信号の学習と設定は以下の手順で行います。

  1. さいつよのリモコンとPC (Windows) をUSBケーブルで接続する。
    さいつよのリモコンの液晶画面に “Study Mode” と表示されるはずです。
  2. ホストプログラム(IRPoHost.exe)をコマンドプロンプトから /study 引数付きで起動する。
  3. さいつよのリモコンを任意の方向(方位・傾き)に向ける。
    方向(angle)は8方向を認識します。傾き(tilt)は1方向ごとに3傾き(上向き・水平・下向き)を認識します。
    方向や傾きが安定しない場合は、さいつよのりもこんを、その場で、数秒間、グルグルあらゆる方向、様々な軸で回転させてください。
  4. さいつよのリモコンの液晶画面の右側にある赤外線受信部に向かって学習させたいリモコン信号をだすリモコンを向けて、学習させたいリモコンのボタンを押す。
    ホストプログラムに以下のように、”New study data is available”という表示がされるはずです。
    study_data_available
  5. 英数字6文字以内で、この学習データに名前を付けて Enterを押します
  6. 「Write the data to device? [y/n]:」と聞かれるので、この学習データをさいつよのリモコンに記録する場合は y を、記録しない場合や n を押します。ここで y を押した場合、後述の Remote Mode において、学習時点と同じ、方向(方位・角度)にさいつよのリモコンを向けた状態で、さいつよのリモコンをタップすると、ここで学習したリモコン信号が送信されます。
  7. 「Save the data to file? [y/n]:」と聞かれるので、この学習データをPC上にファイルとして保存する場合はyを、保存しない場合はnを押します。ここでyを押した場合、保存したファイルを使って、今学習したデータを、別の方向(方位・角度)に対するリモコン信号としてさいつよのリモコンに、後で設定することができます。具体的には、IRPoHost.exeを以下のコマンドラインで実行してください。
    IRPoHost.exe /set angle tilt name datafile.bin
    
     angleには方位(0-7) tiltには傾き(0-2) nameには学習データの名前(6文字以下)
     datafile.binには、7.で保存した学習ファイルのファイル名を指定してください。

    また、保存したファイルを使って、タイマ機能の設定を行うことができます(後述)。

リモコンデータの送信

USBケーブルによってPCと接続されていない場合、さいつよのリモコンは、リモコン信号の送信モード(Remote Mode)として動作します。

リモコンデータの送信は以下の手順で行います。

  1. さいつよのリモコンを動かす。
    Remote Modeでは乾電池の消費を避けるため、さいつよのリモコンは操作を行っていない場合、液晶画面などをOffにし、スリープ状態になっています。さいつよのリモコンを動かしたり、持ち上げたり、一定上の加速度をさいつよのリモコンに与えると、スリープから復帰し、液晶画面などがOnになります。
    液晶画面に”Remote Mode”と表示されているはずです。
  2. 学習データを記録してある方向(方位・傾き)に、さいつよのリモコンを向ける。
    正しい方向を向けている場合は、液晶画面に設定した学習データ名が表示されるはずです。
  3. さいつよのリモコンをタップする(軽く叩く)。
    さいつよのリモコンの基板と垂直方向に基板を軽く叩いてください。叩いたときの方向に応じたリモコン信号が送信されます。
  4. さいつよのリモコンを適当な場所に静置する。
    一定時間、方向の変化がないと、さいつよのリモコンは、再度スリープ状態に戻ります。

タイマ機能の利用

さいつよのリモコンには、タイマ機能があり、毎日指定した時刻に、指定したリモコン信号を送信することができます。タイマ機能の設定は、以下の手順で行います。

  1. 上述の「リモコン信号の学習と設定」の手順にて、タイマ設定したいリモコン信号の学習データを、PC上にファイルとして保存しておく。
  2. さいつよのリモコンとPCをUSBケーブルで接続したStudy Modeにおいて、ホストプログラム(IRPoHost.exe)を以下コマンドで実行してタイマを設定する。
    IRPoHost.exe /alarm HH:MM datafile.bin
    
    HH:MMには 例えば12時30分にタイマを発動するのであれば 12:30 と指定。
    datafile.binにはPC上に保存したリモコン信号の学習データを指定。
  3. さいつよのリモコンがPCと接続されていない状態(Remote Mode)、かつ、スリープ状態であるときに、指定された時刻になると、スリープが自動で解除され、2.で指定したリモコン信号が送信されます。
    その後、操作がなければ、再びスリープ状態に戻ります。
    この動作は、毎日、指定した時刻に行われます。

なお、さいつよのリモコンの時計は、IRPoHost.exeを/studyオプションで起動した際に、自動的に、PCの現在時刻と同期されます。また、USBケーブルと乾電池が両方ともから給電がない場合、さいつよのリモコンの時計は、初期値にクリアされます。


ソースコード・回路図・ファームウエアビルド方法

さいつよのリモコンのファームウエアのカスタマイズ方法に関する情報です。

ビルド環境

さいつよのリモコンでは、マイコンにLPC11U67を利用し、そのファームウエアの開発環境として、LPCExpressoを利用しています。ソースコードを自分でビルドして、firmware.binを生成して、USBケーブル経由で、さいつよのリモコンのファームウエアを更新する方法は以下の通りです。

  1. LPCExpressoのインストール(とアクティベーション)
    https://www.lpcware.com/lpcxpresso/downloads/windows よりLPCXpresso IDE v8 をダウンロードしてください。インストール後、http://www.nxp-lpc.com/updated_materials/LPCXPresso/LPCXpresso.pdf の資料を参考にして、アクティベーションを実施
  2. 適当な場所にWorkspaceを作成する
  3. Quich Start PanelのImport project(s) を選択。
  4. ダウンロードしたさいつよのリモコンのZipファイル内にあるIRPoFw.zipというzipファイルをimportする
  5. (Debug)ビルドする
  6. Project Exporer Debugディレクトリ内のIRPo.afxファイルを選択して、右クリック -> Binary Utilities -> CreateBinaryを選択。
    これによりDebugディレクトリに IRPo.bin というファイルが生成される。
    これをfirmware.binにリネームする。
  7. チェックサムを書き込む(忘れやすいので注意)
    LPCXpressoのインストールディレクトリの bin 配下にあるchecksum.exeを利用して、firmware.binにチェックサムを付与する。
    ~\lpcxpresso\bin\checksum.exe -p LPC11U67 firmware.bin
  8. チェックサムを付与した firmware.bin を上述「ファームウエアの書き込み」記載の方法で、さいつよのリモコンにファームウエアを書き込む

デバッガつきのLPC Expressoの開発ボードのデバッガや、LPC-Linkなど専用のデバッガを使えば、SWD経由でのファームの書き込みやデバッグ機能(ブレーク、ステップ実行、変数ウォッチなど)を行うことができます。SWDのピン配置は以下の通りです。

swd