Nゲージ「電車でGo」マスコン制御のメモ





Nゲージ「電車でGo」マスコン制御


■制御の内容■

●マイコンは、Nゲージ制御状態になってからは

(1)プレステパッド(「電車でGo」コントローラ)の状態(マスコン、ブレーキ、ボタン)を確認
(2)7セグLEDにマスコンの位置(0〜5:1桁)、速度パラメータ(0〜250:3桁)、ブレーキ位置(0〜8、E1〜E6:2桁)を表示
(3)速度パラメータ調整
(4)PWM出力

の処理サイクルになります。((1)〜(4)を繰り返す)
1サイクル((1)開始から(4)終了まで)は数百ミリ秒くらいあります。
※厳密には(2)をWait時間(処理空き時間)にも入れています。

●Nゲージの速度を変えるのは、以前作った「PIC16F84A使用 NゲージPWMコントローラ」をベースにしています。
 250段階の速度があります。
 つまり速度パラメータが[0]なら出力無し[1]で最低出力[250]で最高出力(最高速度)となるわけです。
 ※今回は速度パラメータが[20]以下の場合、PWM出力をしない設定にしました。(つまり[20]を最低出力に設定しました)

●今回使ったPS用「電車でGoコントローラ」はプレステコントローラの通信規格を使えばマスコンやブレーキ、ボタンの状態を取得できます。
 プレステパッドとマイコンの通信に関しては勝手に公表(転載)していいものなのか判断できなかったので省略させていただきますが、ロボコン等でもよく使われているので調べれば情報は入手しやすいかと思います。
 マスコン(アクセル)は0〜5の6段階ブレーキ0〜8通常ブレーキ9段階E1〜E6 (9〜14)非常ブレーキ6段階計15段階があります。

●マイコン処理(3)速度パラメータ調整で、

 ・初期速度パラメータ[0]
 ・速度パラメータにマスコンの数値の2倍を+(加算)する。
 ・ブレーキが
   通常ブレーキだったら速度パラメータにブレーキ数値を(減算)する。
   非常ブレーキだったら速度パラメータにブレーキ数値と更に20を(減算)する。
   非常ブレーキMAX(14)だったら速度パラメータを[0]にする。(緊急用)
 ・マスコンが「0」なら慣性走行(徐々に減速する)という事で、速度パラメータを数サイクル毎に−1する。

 と設定しました。
 実際に走らせながら調整して自分の好みに設定しました。
 加減速にリアリティを追求するか楽しさを追求するか好みが分かれるところかと思います。
 楽しさ重視なら加速はさらに早く、減速も早く設定すると良いでしょうか。
 慣性走行時の微減速が不要な事もあるかと思います。


実際の速度パラメータの変化ですが、
例えば、
(1)最初にマスコンを「5」にすると処理サイクルごとに速度パラメータが
  [0]→[10]→[20]→[30]→・・・→[150]→[160] となって行く。
(2)マスコンを「3」に戻すと
  [160]→[166]→[172]→[178]→[184] となる。
(3)マスコンを「0」に戻すと徐々に
  [184]→[183]→[182] となる。
(4)ブレーキを「2」にすると
  [182]→[180]→[178]→[176] となる。
(5)非常ブレーキ「E1(9)」にすると
  [176]→[147]→[118] となる。
(6)非常ブレーキMAX「E6」にすると
  [118]→[0] と、どの速度であっても一気に[0]になる



戻る