赤外線リモコンの検討(製作編1)

f:id:torusanada98:20210814070435j:plain

製作編1

リモコン機能を移植したソフトをDACユニットに書き込み動作確認を行います。

移植ソフト動作確認

移植ソフトは、マイコン基板単体でリモコン受信確認までできているので、問題はないとおもいつつDACユニットのマイコン基板へ転送して、まずはキー操作への影響が無い事を確認します。電源オンするとデモ表示は問題ありません。ヘッドフォンの音がおかしいです。モノラルで中抜けの音です。どうやらDAC ICへのコマンドが正しく発行されていないようです。最初に原因として思い当たった点は、ライブラリ間の競合です。DACユニットのソフトウェアではI2C処理用のLCD表示用のを使用しています。リモコン受信用のソフトウェアはタイマー割り込み用のを使用しています。試しに、リモコン受信処理ソフトを無効化してみました。

f:id:torusanada98:20210814070501p:plain

写真はライブラリをコメントアウトしていますが、このライブラリで定義された関数も全て無効化しています。改めてソフトを転送して音を聴いたところ、正常再生する事が確認できました。しかし、次の障害発生です。本体のキーが機能しません。ソースを見直したところ、位相切り替えキー用ポートとリモコンの割り込み処理モニター用ポートが競合している事がわかりました。割り込み処理モニター用ポートを4に変更したところ、本体のキー機能は復活しました。作成した回路図ですが、PBをデジタルI/Oポート、PAをアナログI/Oポートとしていたようです。PB4に割り込み処理モニター出力を変更した回路図を作成しました。

f:id:torusanada98:20210814070528p:plain

リモコン受信ソフト修正

samplecode05まで戻ってソフトを移植用に再修正を行います。新たなsamplecod06では以下の修正をします。

・130msウエイトをMsTimer2を使わずにMain loop内に実装

・Int0をトリガ条件をFALLINGからLOWに変更

・キーコードの受け渡し変数keyのグローバル変数

最初はInt0処理の修正です。

f:id:torusanada98:20210814070609p:plain

修正は単純で、130msタイマー用にInt_WTにミリ秒単位の初期値を保存するだけです。次はMain処理です。

f:id:torusanada98:20210814070628p:plain

Int0が無効時に130ms経過を判断してInt0を有効化しています。わざわざMsTimer2を使って複雑にする必要は全くありませんでした。やれやれ。写真は正常時の受信波形とディーガリモコン受信時の波形です。

f:id:torusanada98:20210814070745j:plain

f:id:torusanada98:20210814070757j:plain

f:id:torusanada98:20210814070806j:plain

どちらも問題なく応答しています。

再移植

demo13のソフトに上記で修正したリモコン受信ソフトを再移植します。具多的な対応は以下のとおりです。

・Samplecode06を移植

・Main loopにInt0処理を追加

・Int0処理モニタ出力ポートをPB4に修正

・Ver2.00に変更

写真はMain loopの一番おしりの部分です。

f:id:torusanada98:20210814070840p:plain

2つのDAC ICへアッテネーションコマンドを発行して最後に130msタイマー処理を行っています。上記で再移植したソフトをDACユニットへ書き込み動作確認を行いました。再生音に問題はありません。またキー操作およびその機能にも問題ありませんでした。

受信モジュールの接続

動作確認用にDACユニットのマイコン基板に受信モジュールを接続します。DACユニットのarduino UNOにはバニラシールド基板が乗っていますが、全端子がピンソケットとして乗っているので接続には問題ありません。電源とGNDおよびPB2にピン端子を利用してφ3.5のステレオミニジャックを接続しました。

f:id:torusanada98:20210814070909j:plain

f:id:torusanada98:20210814070920j:plain

これで準備完了です。電源オンしてリモコン受信を試してみました。波形は以下のとおりです。

f:id:torusanada98:20210814070943j:plain

正常に受信できています。アッテネータおよびLCD表示も正常に機能しています。減衰量もダイレクトに指定できるので、操作性も格段に向上しました。まぁ、今までが悪すぎただけですが・・・。これで動作確認は完了です。次回は機内の実配線を行い完成を目指します。

 

つづく(製作編2)