パソコンで鉄道模型を制御するための基礎検討(10)
PWR_S基板(PC制御対応の車両駆動用基板)のプログラム
上記hexファイルをダウンロードするには右クリックして「名前を付けてリンク先を保存」を選択してください。
書き込みツール等については「PICマイコンと開発ツール」のページやWeb情報を参照してください。
PCからの通信が2秒以上来ない場合はPC制御の車両駆動出力は0になり、PWR_S基板に接続された外部パワーパックの出力がリレー経由で線路へ出力されます。
PCからの制御命令や電流値読み出し命令はループネットワークプロトコルテーブルのPWR_Sの欄を参照してください。
PWR_PWMコマンドに続く8bitデータでPWM値(PWMデューティー比≒車両の速度)を指定します。
指定できる値域は0~200(0x00~0xC8)です。
指定したPWM値と出力のデューティー比は比例ではなく図のようになっています。
PWM指定値0~10付近まで出力0%なのはドライブICの特性によるものです。
また高速域より低速域でより細かい制御ができるように100付近で傾きをソフトで変えています。
PWR_Aコマンドを受信すると出力の電流値をA/D変換して送信します。
値域は0~254で単位は10mAです。
PWR_ACCコマンドは車両の進行方向および加速度を指定します。
コマンドに続く8bitデータの最上位1ビットで列車の進行方向を指定し、下位7bitで加速度を指定します。
さらに加速度が0か否かでPC制御と外部パワーパックによるマニュアル制御を切り替えます。
加速度 = 0を指定した場合は外部パワーパック出力がリレー経由で線路へ出力されます。
加速度 >= 1を指定した場合はPC制御の車両駆動出力がリレー経由で線路へ出力されます。
加速度で指定できる値域は0~126 (0x00~0xFE)です。
7bit加速度指定値=ACCとするとPWM値(駆動力)の変化は 250/ACC msec毎に1step(デューティー比で約±0.25%)づつになります。
なお、ACC=1~3の場合はハードウエアの制限によりACC=4とみなされます。
例としてPWM値0の状態からPWM最大値まで変化する時間はACC=4の場合25秒、ACC=126の場合約0.8秒になります。
PWR_ZOFコマンドに続く8bitでPWMが0付近の不感帯(車両のモーターやドライブIC特性に依存)を避けるためのオフセット値を指定します。
値域は0~126(0x00~0x7E)です。
オフセット値をZOFとするとPWM指定値が1以上の時にZOFが加算された値で出力のデューティー比が決まります。
加算された値が200を超えた場合は200(デューティー比100%)となります。
PWR_WOBコマンドは車両をより低速走行させることができるようにと追加しました。(効果は現状未確認)
0.1~0.4秒周期でその周期の1/10の時間幅のみ指定した値をPWM値に加算します。
この機能により低周波で駆動力を揺らすこと(Wobbling)ができます。
PWR_WOBコマンドに続く8bitデータの上位2bitで加算区間の時間幅を指定します。
0で10msec、1で20msec、2で30msec、3で40msecとなり、周期はその10倍となります。
下位6bitで指定できるPWMへの加算値の値域は0~126(0x00~0x7E)です。
なお車両停止状態で照明を点灯させる場合(PWM指定値=1)を考慮し、PWM指定値が2以上でのみ作動します。
上記のPWR_ZOF、PWR_WOBで適切な設定をすると
PWM=0で車両停止/消灯、PWM=1で車両停止/点灯、PWM > 1で車両走行
が安定に行なえることを狙っています。