BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(準備とハードウェア編)
秋月電子で格安で売っているArduino互換のSeeeduino XIAO というマイコンボードをご存知でしょうか?
ARM Cortex M0+(クロック48MHz)搭載で、なんと580円(2021年11月現在)
スイッチサイエンスでも取り扱いがありますが、現在は売切れ中のようです。
https://wiki.seeedstudio.com/jp/Seeeduino-XIAO/
こちらに日本語での解説がありますので興味のある方は読んでみてください。
本日はこのXIAOを使って赤外線リモコンを受信して、BlueSnowDACのロータリーエンコーダーが回っているように操作する方法でIRリモコン対応させてみます。
その前に、いくつか基本的な仕組みを書いておきます。
ロータリーエンコーダーの基本動作
ロータリーエンコーダーは、ボリュームのように回転する操作ノブですが、クルクルと360度以上どこまでも回るものです。
回路的には内部にスイッチが2つ入っていて、プルアップしておくと位相をずらしたA相B相が波形として出てきます。
回転方向で(時計回り=CW、反時計回り=CCW)A相とB相のどちらが先に来るかが変わるため回転方向を認識することが出来ます。
マイコンでエンコーダーを認識する時は、それぞれの相にチャタリング処理を入れたり、途中で戻したときの挙動なども考慮する必要があるのですが、今回は読み取りではなく「操作」なので気にしなくてOKです。
ロータリーエンコーダーへの介入
ロータリーエンコーダーをあたかも回しているように外部介入するには以下のようにします。
この場合、ロータリーエンコーダーはクリックがあるタイプで、クリックのところで2つのスイッチが共にOPENになっている必要があります。(秋月のクリックつきはOK)
キーポイントは、オープンドレイン駆動です。トランジスタならオープンコレクタ駆動。
通常のプッシュプル駆動出力をA相、B相ラインに接続すると、エンコーダー内部スイッチがONのときプッシュプル駆動回路に過電流が流れて故障の原因になります。
これらを踏まえてArduinoから操作してみます。
IRremote ライブラリのインストール
IRリモコンのライブラリは幾つか種類があるようですが、ここでは一番情報の多いIRremoteを使ってみます。
Arduino IDE の「ツール」->「ライブラリを管理」からライブラリマネージャを呼び出します。
検索ウインドで「IRremote」と入れると見つかります。バージョンは 3.4.0 になっていました。
ネット検索でヒットするIRremoteの使い方は現在のバージョン3系と違っているようでした。
最新版で挑戦してみます。
Seeeduino XIAO ボード登録
Arduino標準のボードを使うときは下記の設定は必要ありません。
Seeeduino XIAOをArduino IDEに登録するには「ファイル」の「環境設定」で追加のボードマネージャーのURL 欄に下記をコピペ
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
「OK」を押します。
そのあと、「ツール」->「ボード」->「ボードマネージャ」から
「Seeed」を検索して Seeed SAMD board インストールします。
これでXIAOを使うことが出来るようになります。紛らわしいですが XIAO RP2040は別の基板です。 ラズパイpicoのCPUを積んだものです。
ボードの設定は、こんな感じでボードを選択していきます。特に難しい所はないと思います。
書き込むにはシリアルポートも「XIAO」と書いてあるポートを選択します。
ハードウェアの準備
まずは、IR受信をするセンサーを取り付けます。
私が使ったのは秋月電子で売っていたPL-IRM2161-XD1 というものですが、今は売っていません。
GP1UXC41QSあたりでOKと思います。フィルタの周波数は38kHz中心というものが感度が取りやすいと思います。日本のAV機器で良く使われているNECフォーマットのものが38kHzだからです。多少周波数が違っていても感度が悪くなるくらいで2~3mくらいなら受信できます。(ぴったりなら6~7mはいけるし、壁の反射でもいける)
電源電圧3.3Vでも使えるものを選択してください。
最終的な繋ぎはこんな感じですが、A相、B相、電源の接続は後回しにして、
IRセンサーだけ付けて、USB-Cから給電してソフトウェアを書き込んだり設定したりします。
ちょっと長くなってきたので、続きはまた。
※)XIAOのコンパイル環境(Arduino純正ではないArmコンパイラ)は、OneDriveと相性がよろしくないようです。OneDriveを使用していると、コンパイラのPathが通らなくてエラーがでることがあります。
« BlueSnowDACにSPDIF入力を付ける方法(秋月電子 AE-DIR8416編) | トップページ | BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(ソフトウェア編) »
「BlueSnowDAC」カテゴリの記事
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(メニュー操作編)(2021.11.27)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(ソフトウェア編)(2021.11.24)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(準備とハードウェア編)(2021.11.23)
- BlueSnowDACにSPDIF入力を付ける方法(秋月電子 AE-DIR8416編)(2021.11.15)
- BlueSnowDACにSPDIF入力を付ける方法(WM8805編)(2021.11.07)
「Arduino」カテゴリの記事
- MUSES72323 Balanceボリュームの表示機追加について(2022.12.24)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(メニュー操作編)(2021.11.27)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(ソフトウェア編)(2021.11.24)
- BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(準備とハードウェア編)(2021.11.23)
- ArduinoによるOLED表示機 電流削減に挑戦してみました(2021.02.21)
コメント
« BlueSnowDACにSPDIF入力を付ける方法(秋月電子 AE-DIR8416編) | トップページ | BlueSnowDACにIRリモコンを増設する方法 Seeeduino XIAO(ソフトウェア編) »
たかじんさん、みなさま
Blue Snow DAC が完成して、おおよそ2週間になります。 使ってみて、やはりリモコンが欲しいなと思います。 この記事にある Seeeduino XIAOが、秋月でも欠品中なので、すぐに試みることはできないわけですが、マイコン未経験者の私には、わからないことだらけです。
Seeeduino XIAO に PL-IRM2161-XD1 をつけて、パソコンに Ardino IDE をインストールし、USBケーブルでつなげば、リモコン信号をSeeeduino XIAO からパソコンがもらったり、プログラムを Seeeduino XIAO に書き込んだりできるという理解でよろしいでしょうか。
# PL-IRM2161-XD1 は、IrBerryDAC で使ったのが手元にあります。
そして、NECフォーマットのリモコンの場合は、ダウンロードした SimpleReceiver_Test_XAIO_2.ino をダブルクリックして、Seeeduino XIAO に書き込めばよいということでしょうか。
# C言語の経験はあるので、プログラムの中身はわかりました。 ライブラリの充実って、すごいですね。
追伸: 製作例集(4)に、Blue Snow DAC を書き込みました。
いつもながら、ありがとうございます。
投稿: n'Guin | 2022年4月18日 (月) 17時25分
たかじんさん、みなさま
前の書き込みをして、ダウンロードしたファイルをみていたら・・・
#define DECODE_NEC // Includes Apple and Onkyo
とあることに気がつきました。
Apple Remote を別の機器(私の場合は、たかじんさんの VOL-12, VOL-01 & SEL-12基板によるプリアンプ)に使っている場合は、別のフォーマットのものを選ぶ必要があると言うことですよね・・・・。
気がついて良かった~~~。 たかじんさん、いつもながら、ありがとうございます。
投稿: n'Guin | 2022年4月18日 (月) 17時33分
n'Guinさん
おおぉ。 ついにArduinoにまで手を伸ばしてきましたね。
製作例集(4)の方も拝見させて頂きました。 秋月のSPDIF基板、確かにチップが小さいです。 あれだけ面積あるので、1608使って欲しいです。
色々と苦労されていらっしゃいますが、ちゃんと完成まで到達できる技術力は素晴らしいと思います。ケースの選定もgoodでかっこいいです。
XIAOの方は、
https://nw-electric.way-nifty.com/blog/2021/11/post-27dab4.html
こちらのソースコードを使用された方が良いかもしれません。
リモコンコードを解析して、ソースを改変するところが最大の山場ではあるのですが、Arduinoの書込み方法など分からない所が沢山出てくるかもしれません。適時、ネット検索してみてください。 Arduinoは初心者向け情報の多さでも抜群です。
同じApple Remote を使うと、混信というか、同時に動いてしまいますね。。。
投稿: たかじん | 2022年4月19日 (火) 21時22分