秋月リモコン学習キット用 機能アップファームウェア (v.01a)

概要

  1. 秋月電子通商PIC マイコン赤外線リモコン学習キット を製作して使ってみると、機能が貧弱でした。

  2. そこでハードウェアはそのままで、機能アップしたファームウェアを作成しました。

  3. [機能アップファームェア] と [秋月オリジナルファームウェア] の比較は以下です。

    No. 項目 機能アップ
    ファームウェア
    秋月オリジナル
    ファームウェア
    説明
    1 対応フォーマット 機能アップ版は SONY の可変長コードをサポート。
    NEC/AEHA/SONY でほとんどのリモコンに対応できる。
    AEHA とは家電協フォーマットのこと。
    NEC
    AEHA (48bit)
    SONY 12bit
    SONY 15bit
    SONY 20bit
    NEC
    AEHA (48bit)
    2 受信した
    リモコンコード表示
    秋月オリジナル版は正しい表示になっていない。
    サポートしているフォーマットも2つだけ。
    正しいコードを
    表示する
    MSB と LSB が反転
    データとアドレスが
    非分離
    3 任意のリモコンコード
    作成&送信
    × 作成したコードを学習リモコンに記憶して実用的に使える。
    機器の隠しコマンドを見つけることができる。
    あり なし
    4 学習リモコン機能 4個はいくらなんでも少なすぎる
    16個すべてのキーに
    学習可能
    4個のキーのみ
    学習可能
    5 キーのチャタリング対策 × プログラムでチャタリングを吸収しています
    チャタリングしにくい チャタリングしやすい
    6 記述言語 アセンブラのほうが細かく正確にタイミング作成可能
    アセンブラ C



機能アップ PIC16F886 チップの領布について

  1. プログラム書き込み済み PIC16F886 チップの領布をします

  2. プログラムのリリース履歴



ハードウェア

  1. ハードウェアは 秋月電子通商PIC マイコン赤外線リモコン学習キット をそのまま使います。

  2. PIC16F886 チップの交換が必要



各種リモコンフォーマットと本機での表示

  1. NEC フォーマット (32bit)

  2. AEHA フォーマット (48bit)

  3. SONY 12bit フォーマット

  4. SONY 15bit フォーマット

  5. SONY 20bit フォーマット



ディップスイッチとキーボード

  1. ディップスイッチ

  2. キーボード



電源 ON 直後の表示



アナライズモード

  1. 概要

  2. 操作

    1. 最初に出る表示

      No. 操作説明
      -
      ディップスイッチ S1 の1番を OFF にして電源 ON すると以下の表示が出ます。
      2行目の表示は [F1]〜[F4] キーに対応しています。
      +------------------+
      | Analyze mode     |
      | Recv Make -- --  |
      +------------------+

      * [F1] キーを押すと 2 にジャンプします。
      * [F2] キーを押すと 3 にジャンプします。


    2. リモコン受信してコードを表示

      No. 操作説明
      1
      最初、以下のように表示します。
      +------------------+
      | Receive Code     |
      | >Please send IR  |
      +------------------+

      2
      基板に向けて解析したいリモコンから発信すると、以下のようにリモコンコードを表示します。
      (この例は SONY 20ビットフォーマットのリモコンコードを表示しています。)
      * 1行目にはフォーマット種別を表示します。
      * 2行目にはコードを16進数で表示します。
      +------------------+
      | SONY 20          |
      | 77017A           |
      +------------------+

      * 受信解析できるリモコンコードは [NEC] [AEHA 48bit] [SONY 12bit] [SONY 15bit] [SONY 20bit] [MB type 1] [MB type 2] です。
      * 解析できないリモコンコードを受信した時は以下の表示になります。
      +------------------+
      | UNKNOWN          |
      |                  |
      +------------------+

      3
      新たなリモコンコードを受信すると No.2 を繰り返します。


    3. リモコンコード作成&送信

      No. 操作説明
      -
      任意のリモコンコードを作成して、それを送信できます。以下の表示になります。
      2行目の表示は [F1]〜[F4] キーに対応しています。
      +------------------+
      | Make & Send code |
      | NEC AEHA SONY -- |
      +------------------+

      * [F1] キーを押すと 4 にジャンプします。
      * [F2] キーを押すと 5 にジャンプします。
      * [F3] キーを押すと 6 にジャンプします。


    4. NEC コードの作成とそのコードを送信

      No. 操作説明
      -
      [F1] キーを押して NEC を選択すると、以下の表示になります。
      2行目の数字の下にカーソルを表示します。
      +------------------+
      | NEC making...    |
      | 000000FF         |
      +------------------+

      * S5 キー (←) を押すとカーソルは左に、S7 キー (→) を押すと右に1文字ずつ移動します。
      * S2 キー (↑) を押すとカーソル位置の数字をインクリメント (+1) します。
      * S10 キー (↓) を押すとカーソル位置の数字をデクリメント (-1) します。
      * S6 キー (●) を押すと作成したリモコンコードを送信します。押し続けると同じコードを繰り返し送信します。
      * 左から2文字ずつに区切ってバイトデータとして処理します。
      * バイトデータの下位にカーソルがある時は、インクリメントで桁上がり/デクリメントで桁下がり処理をします。
      * 最後の1バイトにカーソルは移動可能ですが、インクリメント/デクリメントは無効です。
      * 最後の1バイトにはその前の1バイトの反転データが自動的に計算されて入ります。


    5. AEHA コードの作成とそのコードを送信

      No. 操作説明
      -
      [F2] キーを押して AEHA を選択すると、以下の表示になります。
      2行目の数字の下にカーソルを表示します。
      +------------------+
      | AEHA making...   |
      | 000000000000     |
      +------------------+

      * S5 キー (←) を押すとカーソルは左に、S7 キー (→) を押すと右に1文字ずつ移動します。
      * S2 キー (↑) を押すとカーソル位置の数字をインクリメント (+1) します。
      * S10 キー (↓) を押すとカーソル位置の数字をデクリメント (-1) します。
      * S6 キー (●) を押すと作成したリモコンコードを送信します。押し続けると同じコードを繰り返し送信します。
      * 左から2文字ずつに区切ってバイトデータとして処理します。
      * バイトデータの下位にカーソルがある時は、インクリメントで桁上がり/デクリメントで桁下がり処理をします。
      * 6文字目にカーソルは移動可能ですが、インクリメント/デクリメントは無効です。
      * 6文字目には最初の2バイトを4ビットごとに Exclusive OR したデータが自動的に計算されて入ります。


    6. SONY コードの作成とそのコードを送信

      No. 操作説明
      1
      [F3] キーを押して SONY を選択すると、以下の表示になります。
      2行目の表示は [F1]〜[F4] キーに対応しています。
      +------------------+
      | SONY code length |
      |  12  15  20  --  |
      +------------------+

      * SONY リモコンコードには 12bit/15bit/20bit の3つのコード長があり、[F1]〜[F3] キーで選択します。
      * [F1] キーで 12bit、[F2] キーで 15bit、[F3] キーで 20bit のコード長を選択します。
      * 選択後は No.2 にジャンプします。

      2
      [F1] キーを押して SONY 12bit を選択すると、以下の表示になります。
      2行目の数字の下にカーソルを表示します。
      +------------------+
      | SONY 12 making.. |
      | 0000             |
      +------------------+

      * S5 キー (←) を押すとカーソルは左に、S7 キー (→) を押すと右に1文字ずつ移動します。
      * S2 キー (↑) を押すとカーソル位置の数字をインクリメント (+1) します。
      * S10 キー (↓) を押すとカーソル位置の数字をデクリメント (-1) します。
      * S6 キー (●) を押すと作成したリモコンコードを送信します。押し続けると同じコードを繰り返し送信します。
      * 左から2文字ずつに区切ってバイトデータとして処理します。
      * バイトデータの下位にカーソルがある時は、インクリメントで桁上がり/デクリメントで桁下がり処理をします。
      * SONY 12bit フォーマットでは最初の1バイトがデータコードで 7bit データです。
      * 次の1バイトがアドレスコードで 5bit データです。
      * 上の2つの制限により編集できないビットがあり、その部分へのインクリメント/デクリメントは無視します。


      [F2] キーを押して SONY 15bit を選択すると、以下の表示になります。
      2行目の数字の下にカーソルを表示します。
      +------------------+
      | SONY 15 making.. |
      | 0000             |
      +------------------+

      * S5 キー (←) を押すとカーソルは左に、S7 キー (→) を押すと右に1文字ずつ移動します。
      * S2 キー (↑) を押すとカーソル位置の数字をインクリメント (+1) します。
      * S10 キー (↓) を押すとカーソル位置の数字をデクリメント (-1) します。
      * S6 キー (●) を押すと作成したリモコンコードを送信します。押し続けると同じコードを繰り返し送信します。
      * 左から2文字ずつに区切ってバイトデータとして処理します。
      * バイトデータの下位にカーソルがある時は、インクリメントで桁上がり/デクリメントで桁下がり処理をします。
      * SONY 15bit フォーマットでは最初の1バイトがデータコードで 7bit データです。
      * 次の1バイトがアドレスコードで 8bit データです。
      * 上の2つの制限により編集できないビットがあり、その部分へのインクリメント/デクリメントは無視します。


      [F3] キーを押して SONY 20bit を選択すると、以下の表示になります。
      2行目の数字の下にカーソルを表示します。
      +------------------+
      | SONY 20 making.. |
      | 000000           |
      +------------------+

      * S5 キー (←) を押すとカーソルは左に、S7 キー (→) を押すと右に1文字ずつ移動します。
      * S2 キー (↑) を押すとカーソル位置の数字をインクリメント (+1) します。
      * S10 キー (↓) を押すとカーソル位置の数字をデクリメント (-1) します。
      * S6 キー (●) を押すと作成したリモコンコードを送信します。押し続けると同じコードを繰り返し送信します。
      * 左から2文字ずつに区切ってバイトデータとして処理します。
      * バイトデータの下位にカーソルがある時は、インクリメントで桁上がり/デクリメントで桁下がり処理をします。
      * SONY 20bit フォーマットでは最初の1バイトがデータコードで 7bit データです。
      * 次から2バイトがアドレスコードで 13bit データです。
      * 上の2つの制限により編集できないビットがあり、その部分へのインクリメント/デクリメントは無視します。




学習リモコン > 学習モード

  1. 概要

  2. 操作

    No. 操作説明
    1
    ディップスイッチ S1 の1番を ON、2番を OFF にして電源 ON すると以下の表示が出ます。
    +------------------+
    | Larn mode        |
    | Select Key ?     |
    +------------------+

    2
    例えば、[F1] キー (01) 押すと以下のようにキーコードを表示します。
    +------------------+
    | Larn mode        |
    | Select Key : 01  |
    +------------------+

    3
    基板に向けて学習元のリモコンから発信すると、[01] キーにリモコンコードを学習 (記憶) します。
    * リモコンコード受信が成功すると1行目の右のほうに [Good] を2回点滅表示して No.1 に戻ります。
    * リモコンコード受信が失敗すると1行目の右のほうに [Faild] を2回点滅表示して No.1 に戻ります。

    -
    No.1〜3を別なキーで実行します。




学習リモコン > 送信モード

  1. 概要

  2. 操作

    No. 操作説明
    1
    ディップスイッチ S1 の1番を ON、2番を OFF にして電源 ON すると以下の表示が出ます。
    +------------------+
    | Send mode        |
    | Select Key ?     |
    +------------------+

    2
    例えば、[F1] キー (01) 押すと以下のように表示して、学習したリモコンコードを送信します。
    +------------------+
    | Send mode        |
    | Select Key : 01  |
    +------------------+

    * キーを押し続けると同じリモンコードを連続して送信します。
     → SONY 機器では複数回の同じコード受信で反応するので、この仕様にしています。

    -
    他のキーを押すと、そのキーに学習したリモコンコードが送信されます。
    * No.2の表示を繰り返します。