1. はじめに
本記事ではdSPACE ControlDeskのdigital I/Oピンの使い方とロータリエンコーダを使うためのブロック配置を説明します.
2. プラットフォームの接続方法
digital I/Oは50極のDsub digital I/OⒶポートとdigital I/OⒷポートを使用します.
それぞれのピンとチャンネルとの関連はMicroLabBox (BNCタイプ)の場合は以下のようになっています.
どれかのGNDはシステムのGNDに接続するようにしてください.
各プラットフォームの説明書は,MicroLabBoxの場合
dSPACEのソフトウェアをインストールしたときのフォルダ > Doc > MicroLabBoxHardwareInstallationConfiguration.pdf
が対応しています.
3. Simulink
digital I/Oを使うためのSimulinkブロックはよく使うものが3つあります.
- DIO_CLASS1_BIT_IN_BL1
デジタル入力
arudinoでいうこれ↓
pinMode(1, INPUT);
digitalRead(1);
- DIO_CLASS1_BIT_OUT_BL1
デジタル出力
こちらもarduinoでいうこれ↓
pinMode(1, OUTPUT);
digitalWrite(1, HIGH);
- EMC_Encoder_BL1
エンコーダ
チャンネルはProperty > Unit > Signal connector pin
に記載されているチャンネルが連動しています.
Parameters > Number of lines
に使用するエンコーダの1回転あたりのパルス数(PPR)を入力してください.
0~360 [deg]まで計測できますが,360以上は0に折り返されるので初期値などが重要です.
[1] dSPACE, "ブロックの説明(EMC_ENCODER_BLx)" ※要ログイン,
今回は以下の画像のようなモデルを取り扱います.
各ブロックの役割は以下の通りです.
電源電圧
- DS1202_SENSOR_SUPPLY
MicroLabBoxの側面最右側の電源供給ポート(バナナプラグ)の電源電圧を2-20Vのレンジで設定
角度計測関連
- direction: システムで取り扱う回転の向きに合わせて1か-1
- gear_ratio: 回転軸に対して歯車やプーリで伝達している場合のギア比
- angle: 回転軸の回転角度 [deg]
- speed: 回転速度?ブロックの設定をいじれば使えるみたいです
エンコーダ角度リセット
- EMC_ENCODER_POS_SET_BL1
EMC Encoder Position Set
への入力信号が立ち上がる(default)とPositionの値でリセットします. - init_sw: ControlDeskのnumeric inputなどで0→1に書き換えるとエンコーダの値が0にリセットされます.
- init_angle: リセット動作をしたときの角度