はじめてのdSPACE ControlDesk

## はじめに
ControlDeskの初歩的な使い方を簡単にまとめました．
プロジェクトの作成，レイアウトの配置，dSPACE MicroLabBoxのDACとADC周りを使うところまで解説します．
DAC側でLチカ，ADC側でボリュームの値の読み込みを行ってみます．
※Ｌチカとアナログ値読み込みは後ほど追記します．

## 前提条件
- [ControlDeskインストール済](https://qiita.com/3084LAB/items/0233e51fb36330a3245f)
- [MATLAB/SimulinkでSDFファイルをビルド済](https://qiita.com/3084LAB/items/aab159e6d9f77fb1f289)

## 必要なもの
- 同軸(BNC)ケーブル
簡易的にデバッグするときのみ端がミノムシとかICクリップになっているものが便利．
- 抵抗付きLED (390~1000 Ω)
こういう商品が便利かと．
[1] 秋月電子, "抵抗内蔵5mmLED 5V 赤色 640nm OSR6LU5B64A-5V",
https://akizukidenshi.com/catalog/g/g106245/
[2] Amazon, "発光ダイオード 抵抗器付き",
https://www.amazon.co.jp/dp/B0CZTHJJR8/?coliid=INNG3Q7JADX8G&colid=1QCNOV2UUFURI&ref_=list_c_wl_lv_ov_lig_dp_it&th=1

- ボリューム (10KBなど)
- 5V電源

## 1. ProjectとExperimentの作成
**1. ControlDeskの起動**
ControlDeskを起動します．

![30_dspace_home.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/1cc53b5d-e9e4-13a3-f529-e3802c1a0b2b.png)

**2. 新規Projectの作成**
ホーム画面にある```New Project + Experiment'''をクリックするか，
メニューから`File > New > Project + Experiment`を選択し、プロジェクト名と保存場所を指定してNextボタンをおします．保存場所はファイルアイコンから新規でフォルダを追加できます．
複数名で使用する場合は特に，プロジェクト名はわかりやすいものにしたほうが後々困りません．
![31_dspace_folder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/4764c728-df43-721c-6e01-3eea40285103.png)

**3. 新規Experimentの作成**
Experiment名を設定してNextボタンをクリック．
![32_dspace_set_experiment.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/1168d77d-58c9-0812-17ab-c26c44ce5d3d.png)

**4. ターゲット接続の設定**
使用するdSPACEハードウェア（例：DS1202）を選択して`Next`ボタンをクリック．
![33_dspace_set_platform.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/dadd4b7b-6e9d-450b-a1c5-a224ee399b03.png)

**5. SDFファイルを選択**
1. `Import from file ...`をクリック
2. Simulinkでビルドした後に生成された.sdfファイルを選択
3. Finishボタンをクリック
![34_dspace_set_sdf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/0c8587c0-2b2e-7d80-21d9-413900887af5.png)
sdfファイルのControlDeskのバージョンが異なるなどのエラーが出なければプロジェクト作成完了です．


## 2. レイアウトの編集
**1. 新規レイアウトの作成**
初期はLayout1という名前のレイアウトが自動生成されます．
ここにInstrumentと呼ばれる数値入力ボックスや数値ディスプレイ，プロットを配置していきます．
![35_dspace_layout.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/01e25c2e-f975-625e-407e-b715a4ac3c44.png)

**2. Variableの配置**
画面下部のVariablesパネルの`simulink_test.sdf > Model Root`内にsimulinkで配置したブロック一覧が表示されています．
まず，Constantブロックに対応したInstrumentを生成します．
Constantをクリックすると右側に項目が出現します．その表からレイアウトパネルにドラッグ＆ドロップするとInstrumentの種類を選択する画面がでるので，`Numeric Input`を選択してください．
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/60ccd3d1-27bf-e65c-d979-ca50da998113.png)


数値入力用のInstrumentが生成されました．
![37_dspace_variable_dnd2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/b56d5cc9-42f2-82c0-7285-4ef75a5c066b.png)

※空のInstrumentを配置してからVariableを連動する手法もあります．

次に，Scopeブロックに対応したInstrumentを生成します．
同様の操作をして今度はNumeric Inputではなく`Display`を選択してください．
![38_dspace_variable_dnd3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/e58a0e01-bcd0-3105-2f27-5ab3f0e58a46.png)

この状態で緑の`Homeタブ > Go Online`ボタンを押すと値の変更やセンサ値の表示などができるようになります．
計測などが終了したらGo Offlineボタンを押してください．
![39_dspace_goonline.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/52b8301d-3808-9524-211a-b68bd86bad9e.png)

他に，右側のInstrument Selectorパネルを展開し，レイアウトパネルにドラッグ＆ドロップすると様々なInstrumentを配置することができます．
例えば，時系列データを見る場合は`Time Plotter`を配置して，VariablesからScopeをグラフ内にドラッグ＆ドロップします．
![42_dspace_timeplotter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/ba69458d-3e2a-bdb5-1455-9265a0b454e2.png)

その後，青い三角`Homeタブ > Start Measuring`ボタンをおすと計測が開始されます．
Stop Measuringボタンを押すとそこで計測終了します．
![43_dspace_timeplotter2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654082/c94e36b4-c6d6-c4eb-4179-faddeae4eb4e.png)

## 3. 時系列データ保存
### 1. 保存
`Stop Measuring`を押して計測終了した後，Plotter内で右クリックし`Save Displayed Data as New Mearument`を選択するとGenerate Measurementというウィンドウが出現します．
Start timeとStop timeに保存したい区間を設定し，`OK`ボタンを押すと`Projectタブ > Project名 > Experiment名 > Measurement Data`の中にsdd_001.mf4という項目が生成されます．
その項目の上で右クリックし`Rename...`でファイル名をわかりやすいものに変更しておくことをおすすめします．
例）20241203_hogetest_try1.mf4

### 2. CSVエクスポート
1. その項目の上で右クリックし`Export...`をクリック
2. 保存したいフォルダに移動
3. ファイル名を変更する場合は変更し，ファイルタイプをmf4からcsvに変更
4. `Save`ボタンをクリック

## 4. その他の設定項目
### 1. バッファする時間の設定
`Messurement Configurationタブ > Acquisition`を選択した状態で`Properties`タブを開くと`Measurement buffer size`という項目があります．
Time Plotterなどでシグナルの値を保存できる最大値を意味しています．
デフォルトでは60 sになっているので，計測する時間に合わせて変更してください．

例えば60 sの場合，`Start Measuring`してから70秒後に`Stop Measuring`すると最初の10秒分はデータが消失するので気をつけてください．
メモリに余裕がある場合は想定の倍以上確保しておくことをおすすめします．

### 2. サンプリング周波数の確認
サンプリング周波数はsimulinkのモデル設定で指定しますが，ControlDeskでチェックすることができます．
`Measurement Configurationタブ > Acquisition > Platform > HostService`の`Properties`にある`Sampling period`という項目がサンプリング周期です．