MECHATRAXのブログ
弊社製品やサービスに関するブログです。企画や開発の際の参考になれば幸いです。
ラズベリーパイ用高精度A/D変換モジュール「ADPi Pro」の使い方
ラズベリーパイ用高精度A/D変換モジュール「ADPi Pro」の使い方
始めに
今回は、弊社製品のラズベリーパイ用高精度A/D変換モジュール「ADPi Pro」の使い方をご紹介いたします。
使用するもの
- Raspberry Pi(A+ / 3A+ / B+ / 2B / 3B / 3B+ / 4B(2GB、4GB、8GB)にて動作確認済み)
- ADPi Pro
- slee-Pi 3 (必須ではありませんが、電源ノイズを低減しラズベリーパイ本体に十分な電源供給を行うため、併用を推奨しております。)
- ACアダプタ (DC6~24V出力、外径5.5 mm、内径2.1 mm、センタープラスのDCプラグであれば、slee-Pi 3 付属の変換ハーネスでそのまま接続できます、推奨はこちら。)
- 付属のねじ・ナット・スペーサ
- PC
ハードウェアの組立て
付属のナット・スペーサをラズベリーパイに取り付けます。
slee-Pi 3をスタックし、スペーサを取付けます。※ピンヘッダをさす位置がずれないように注意してください。
ADPi Proをスタックし、ねじを留めます。※ピンヘッダをさす位置がずれないように注意してください。
これでハードウェアの組立ては完了です。
パッケージのインストール
slee-Pi 3のCN1に付属の「DCジャック – XHP-2コネクタ変換ハーネス」を取付け、ACアダプタを接続し電源を投入します。
ラズベリーパイが起動したら、ログインしてください。弊社で推奨するシリアル通信を使ったログインの方法はこちらを参照してください。
まず初めにリポジトリの追加を行います。下記のコマンドを実行してください。
curl https://mechatrax.github.io/setup.sh | sudo bash
続いてADPiのパッケージのインストールを行います。下記のコマンドを実行してください。
sudo apt update
sudo apt install adpi-utils
さらにslee-Pi 3のパッケージのインストールを行います。下記のコマンドを実行してください。slee-Pi 3を併用していない場合は不要です。
sudo apt install sleepi3-firmware sleepi3-utils sleepi3-monitor
最後に再起動してください。
sudo reboot now
※パッケージの詳細はこちらのGitHubをご覧ください。
adpictlコマンドの実行
パラメータの設定
下記のようなコマンドを実行することで各種パラメータを設定できます。
adpictl set PARAMETER ...
PARAMETERには次のいずれかが設定可能です。
PARAMETER | 説明 |
freqency <VALUE> | サンプリング周波数を設定します。単位は Hz です。 VALUEには、470、242、123、62、50、39、33、19、17、16、12、10、8、6、4のいずれかが設定可能です。デフォルトは470です。 |
gain <VALUE> | 電圧レンジを設定します。ゲイン倍率を指定します。 VALUEには、1、2、4、8、16、32、64、128のいずれかが設定可能です。デフォルトは1です。 |
output <CH> {on|off} | 接続先 CH の電源端子の出力状態(ON/OFF)を設定します。デフォルトはOFFです。 電源端子は各CHのターミナルブロックの1番になります(詳細はこちら)。 |
scale <VALUE> | 電圧レンジを設定し、分解能を指定します。単位は mV です。 VALUEには、0.000004650、0.000009310、0.000018620、0.000037250、0.000074500、0.000149010、0.000298020、0.000596040のいずれかが設定可能です。デフォルトは0.000596040です。 |
実際に実行するときは下記のようになります。
mtxpi@raspberrypi:~$ sudo adpictl set frequency 242
mtxpi@raspberrypi:~$ sudo adpictl set gain 2
mtxpi@raspberrypi:~$ sudo adpictl set output 1 on
mtxpi@raspberrypi:~$ sudo adpictl set scale 0.000298020
計測値の取得
下記のようなコマンドを実行することで各種計測値を取得できます。
adpictl get COMMAND ...
COMMANDに指定可能な引数を下記に示します。
COMMAND | 説明 |
freqency | 設定されているサンプリング周波数を表示します。 単位は Hz です。 |
gain | 設定されている電圧レンジに対応したゲイン倍率を表示します。 |
output <CH> | 接続先 CH の電源端子の出力状態(ON/OFF)を表示します。 |
scale | 設定されている電圧レンジに対応した分解能を表示します。 単位は mV です。 |
temperature | ADC 内部の温度を表示します。 単位は ℃ です。 |
voltage <CH> | 接続先 CH の測定した電圧を表示します。 単位は mV です。 |
実際に実行すると下記のようになります。
mtxpi@raspberrypi:~$ sudo adpictl get frequency
470
mtxpi@raspberrypi:~$ sudo adpictl get gain
1
mtxpi@raspberrypi:~$ sudo adpictl get output 1
off
mtxpi@raspberrypi:~$ sudo adpictl get scale
0.000596040
mtxpi@raspberrypi:~$ sudo adpictl get temperature
36.647601052
mtxpi@raspberrypi:~$ sudo adpictl get voltage 1
0.842800560
adpictlの詳細はこちらのGItHubをご覧ください。
電圧の計測
ここでは一例として、下記のような回路で電圧の取得を行います。
まず、ゲイン倍率を1に設定します。(ゲイン倍率を4~128に設定すると、計装アンプが動作するため、入力電圧が計測範囲内に収まるように回路を変更する必要があります。詳細はこちらのGitHubをご覧ください。)
sudo adpictl set gain 1
次にCH1の電源端子の出力をONにします。CH1は主にセンサー等への電源供給を想定した端子です。
sudo adpictl set output 1 on
最後に電圧の計測を行います。
sudo adpictl get voltage 1
すると下記のように計測値[mV]が出力されます。ここで使用した金属皮膜抵抗はそれぞれの誤差が1%、電源端子の出力は12 Vなので、ここで計測される電圧の理論値は1966.9~2033.6 mVとなります。
mtxpi@raspberrypi:~$ sudo adpictl get voltage 1
1985.763883800
理論値の範囲に収まる電圧が計測されることが確認できました。