2022年2月12日土曜日

RaspberryPiPicoでボリュームをコントロールする

 先日作成したArduino Microを使ったボリュームコントローラが割と便利だったので、今度はRaspberryPiPicoを使って同じものを作成してみました。

ArduinoMicroは1個2000~3000円くらいするので、1個550円のRaspberryPiPicoを使うことによって大幅にコストダウンすることができます。

現時点でボリュームをコントロールするという機能的には問題ないのですが、circuitPythonのフォルダがマウントされるため、微妙に美しくないです。


使用するもの

  • ロータリーエンコーダモジュール
  • RaspberryPiPico

接続

前回はロータリーエンコーダの5つのピンすべてをArduinoMicroに接続していましたが、よくよく考えてみたら入力ピンをプルアップに設定すればロータリーエンコーダの+ピンの接続が省略できることに気づきました。



# pin connection

# RaspPi Pico   Rotary Encoder module

# GP13       <-> SW

# GP14       <-> CLK

# GP15       <-> DT

# GND        <-> GND

#                + (open)


PiPicoの下準備

PiPicoにcircuitPythonをセットします。

1 PiPicoのBOOTSELボタンを押しながらUSBに接続

2 adafruit-circuitpython-raspberry_pi_pico-en_US-7.1.1.uf2 をぶちこむ

3 CIRCUITPYドライブが開くので、そこのlibフォルダにHIDライブラリadafruit_hidをぶちこむ

4 MuEditoまたはThonyを使ってPiPico上のcircuitPythonにアクセス




PythonCodeを書く

エディタからCIRCUITPYドライブ内のcode.pyを開き、下のコードを書いて上書きします。

前回のArduinoMicro版と比較すると、Pythonで記述しているため雰囲気が変わりますが、アルゴリズムは全く同じです。

ロータリーエンコーダのインターフェイス

回路図で書くと次のようなイメージです。


使用方法

ロータリーエンコーダを右に回すとマスターボリュームが上がります。

ロータリーエンコーダを左に回すとマスターボリュームが下がります。

ロータリーエンコーダを押すとミュート、もう一度押すとミュート解除します。


問題点

現時点では、CIRCUITPYドライブがマウントされた状態になっているため、なんか気持ち悪いです。

0 件のコメント:

コメントを投稿