基本
TPIPAquarium.exe.configは、
<!-- 使用するデバイスの設定 -->
<devices>
の下にデバイスを書くことでAquariumで操作するデバイスを追加できる。
プロパティを指定しない場合の構文
<device name ="デバイスの名前" driver="ドライバの種類" address="I2Cアドレス" />
「デバイスの名前」はUserMain.pyで使用する名前のことで、好きな名前を指定できる。
「I2Cアドレス」は基板ごとに設定したアドレスを指定する。
「ドライバの種類」は以下のとおり
BatteryMonitor(今回は使用しない)
VideoSelector
MotorDriver
ServoDriver
MotorDriverGroup
SoundSelector(今回は使用しない)
プロパティを指定する場合の構文
プロパティを指定することでデバイスの動作を細かく指定できる。.
<device name ="デバイスの名前" driver="ドライバの種類" address="I2Cアドレス">
<properties>
<add name="プロパティの名前" value="プロパティの値" />
<add name="プロパティの名前" value="プロパティの値" />
</properties>
</device>
プロパティを指定する場合はデバイス構文の最後に「/」がないことに注意。
BatteryMonitor
説明
電池の電圧を調べるデバイス。旧基板ではモータドライバのADC機能を用いて行う。新基板では使用しない。
デバイスの名前はダミー。
I2Cアドレスはモータドライバのアドレスを使用する。
プロパティ
name
Aquariumでゲージを描画する際に表示される名前を指定するプロパティ。
値はstring型。指定は必須。
MotorDriver
説明
モータドライバを扱うデバイス。
プロパティ
limit
モータの出力の上限を指定するプロパティ。
値は0~127までのint型。デフォルトは127。
3V用のモータを使用する場合等に使用する。
shutdownLimit
モータの出力の下限を指定するプロパティ.
値は0~127までの整数.デフォルトは0.
この値以下の出力が指定された場合は,モータを停止する.
モータの負荷が大きい場合,出力が小さいとモータが回らず
ロックした状態となるので,ドライバに負荷がかかってしまう.
これを避けるために,動き出す出力未満ではモータを停止状態にするように調整する.
swapDirection
モータの回転方向を反転するかどうかを指定するプロパティ.
値はbool型。デフォルトはfalse。
配線を間違えて,モータが逆回転する場合などに用いると良い.
MotorDriverGroup
説明
複数のモータを同期させて動かしたい場合に使用する。(並列接続とは違う)
主に足回りに利用する.
各モータドライバはチャンネルとして扱う。
アドレスはプロパティで指定するため、デバイスのI2Cアドレスはダミー。
例文
足回りに使用する場合はこんな感じ
<device name="Wheel" driver="MotorDriverGroup" address="0xF0">
<properties>
<add name="channels" value="2"/>
<add name="channel0Name" value="Left"/>
<add name="channel0Address" value="F0"/>
<add name="channel0Limit" value="127"/>
<add name="channel0Swap" value="true"/>
<add name="channel1Name" value="Right"/>
<add name="channel1Address" value="F2"/>
<add name="channel1Limit" value="127"/>
<add name="channel1Swap" value="true"/>
</properties>
</device>
プロパティ
channels
デバイスに所属するモータの数(=チャンネルの数)を指定するプロパティ。
値はint型。指定は必須。
以下のプロパティの?にはチャンネル番号(0から数える)が入る。
channel?Name
各チャンネルの名前を指定するプロパティ。
値はstring型。指定は全チャンネルごとに必須。
channel?Address
各チャンネルのモータドライバのアドレスを指定するプロパティ。
値は2桁の16進数(0xは書かない)。指定は全チャンネルごとに必須。
channel?Limit
channel?のドライバに対するMotorDriverのlimitプロパティに相当する.
詳しくはMotorDriverのlimitプロパティを参照すること.
channel?Swap
channel?のドライバに対するMotorDriverのswapDirectionプロパティに相当する.
詳しくはMotorDriverのswapDirectionプロパティを参照すること.
channel?ShutdownLimit
channel?のドライバに対するMotorDriverのshutdownLimitプロパティに相当する.
詳しくはMotorDriverのshutdownLimitプロパティを参照すること.
ServoDriver
説明
サーボドライバを扱うデバイス。8こまでのサーボをチャンネルとして制御できる。
プロパティ
channels
デバイスに所属するサーボの数(=チャンネルの数)を指定するプロパティ。
値はint型。デフォルトは8。
以下のプロパティの?にはチャンネル番号(0から数える)が入る。
channel?Max
各チャンネルのサーボの角度制限の最大値を指定するプロパティ。
値は0~180までのint型。デフォルトは180。
サーボを回し過ぎると何かにぶつかってしまう場合等に使用。
channel?Min
各チャンネルのサーボの角度制限の最小値を指定するプロパティ。
値は0~180までのint型。デフォルトは0。
サーボを回し過ぎると何かにぶつかってしまう場合等に使用。
channel?UpdateImmediately
Aquariumで各チャンネルのサーボの現在の角度を読む際に、サーボドライバに問い合わせる(false)か、
Aquarium内で保持しておいた値を利用する(true)かを指定するプロパティ。
値はbool型。デフォルトはtrue。
Angleを変更した後、すぐに値を読み込むと更新されていなかったりする問題を修正するプロパティ。
SoundSelector
説明
サウンドセレクタをを扱うデバイス。今回は使用しない。
VideoSelector
説明
ビデオセレクタを扱うデバイス。