S88 Detectorで自動運転 その1 [自動運転]
前回、単純な往復運転をしたのだが、いくつか問題点があった。
(1)DesktopStationでセンサを踏んでイベントを開始してから、イベント中にもう一度センサを踏むと、最初からイベントが開始されてしまい、動きが変になる。
具体的には、センサを踏んだら、まず電車を止めて、方向転換して、走り出す、イベントがもう一回起きないようにWAITを入れておく。とやったのだが、センサを二回踏むため、そこで再イベントが発生し、はじめから(つまりまた止まる!)となってしまっていた。
(2)S88の検出間隔は1秒~3秒で選べるが、もっと頻繁にイベントを見てほしい。(1秒間隔だと列車通過後のイベント開始が結構ばらつくため(最大1秒))
(3)VVVFスケッチは音を滑らかにするため、速度にLPF計算(中身は60回分の速度バッファ)を持っており、すぐに止まらない。使いづらい・・・。
(4)S88 Control基板のRUN LEDが意味もなくピカピカ光っててイラつく(たぶん100ms周期)。
一つ、一つ、解決したので記す。
(1)再イベント問題
Yaasan様に確認したら、イベントの最後にExitを入れないと、再イベントになります。とのこと。
以前のスクリプトは
DESKTOPSTATION,SCRIPT,2013
SPEED,0,0,0
WAIT,20,,0
DIRECTION,0,2,0
SPEED,0,250,20
WAIT,50,,0
で、Exitを入れていない・・・。
で、直して、
DESKTOPSTATION,SCRIPT,2013
SPEED,0,0,0
WAIT,20,,0
DIRECTION,0,1,0
SPEED,0,250,20
WAIT,50,,0
EXIT,,,0
としたら、ちゃんと、WAIT後まで、再イベントが開始されなくなった。
(上記スクリプトはDESKTOPSTATION,からEXIT,,,0を選んで、EVスクリプトの画面で貼り付けするとそのまま、貼り付けられる)
スクリプトの説明は、Yaasan様のWikiにあるのだが、やはり、読んでからやらないとだめね。(日本語のページありませんでしたっけ?)
また、最新DesktopStation V0.94 (Nov 19, 2015)では、EVスクリプトタブの実行状態タブの実行ログ内でExit無しで再イベントが始まった警告(ForceExit)が出るようになり、わかりやすい。
(2)S88の取り込み周期
Yaasan様の最新DesktopStation V0.94 (Nov 19, 2015)で0.2秒間隔で取ってこれるようになっている。これで、イベント開始のばらつきが減ったので、停止位置が安定するようになった。
(3)VVVFスケッチはいわゆる加速率、減速率を緩慢にして、その状態でパラメータを固定のため、きびきびした運転ができない。この理由はデコーダー内部でモーター指示値を補間してやって、モーター音階を連続にするためである。DCCから一秒に数回モーター制御デコーダに指令が行くが、これを正直にVVVF音化すると、悲しいことに、全部ドレミファインバーター化する。(おまけにちょっとカッコ悪い音になる)。今回、この部分を普通のデコーダーのように加速率、減速率を変更できるようにした。だから、これで、即応にすると、ドレミファインバーター(カッコ悪い)になる。
スケッチはこちら(K97)。
CV3 加速率 0:即応、~255:緩慢
CV4 減速率 0:即応、~255:緩慢
(0~20あたりが実用域かなあと思う。電車、VVVFの選びによって違いそうだが)
最初、新しくCV値を作ろうとしてたが、Yaasan様から、それはCV3,4だと指摘され気づいた。(そんな基本的なパラメータがないわけないですよね)
あとは、DSmainR5からCV読み値機能が付くそうで、それ用に、notifyCVAck部分を少々書き直した。(CV読み込み対応のコントローラを持っていないのでこれで合っているかどうかはわからない)
なんか、Win10のPCを再インストールして、ArduinoのIDEを1.6.6にしたら、PWMDacSynthがWarningを出すようになった。まあ、ちゃんと動いているしいいか。
(4)S88 Control基板のピカピカLEDがイラつく
6個のセンサーの在線フラグが一つでも立っていると、RUN_LEDが付くようにした。これで、最初のセッティング時にシリアルコネクタをつけてPCで見なくても、センサとボリュームだけでどうにかなるはず?
スケッチは、こちら(K4)。
(1)DesktopStationでセンサを踏んでイベントを開始してから、イベント中にもう一度センサを踏むと、最初からイベントが開始されてしまい、動きが変になる。
具体的には、センサを踏んだら、まず電車を止めて、方向転換して、走り出す、イベントがもう一回起きないようにWAITを入れておく。とやったのだが、センサを二回踏むため、そこで再イベントが発生し、はじめから(つまりまた止まる!)となってしまっていた。
(2)S88の検出間隔は1秒~3秒で選べるが、もっと頻繁にイベントを見てほしい。(1秒間隔だと列車通過後のイベント開始が結構ばらつくため(最大1秒))
(3)VVVFスケッチは音を滑らかにするため、速度にLPF計算(中身は60回分の速度バッファ)を持っており、すぐに止まらない。使いづらい・・・。
(4)S88 Control基板のRUN LEDが意味もなくピカピカ光っててイラつく(たぶん100ms周期)。
一つ、一つ、解決したので記す。
(1)再イベント問題
Yaasan様に確認したら、イベントの最後にExitを入れないと、再イベントになります。とのこと。
以前のスクリプトは
DESKTOPSTATION,SCRIPT,2013
SPEED,0,0,0
WAIT,20,,0
DIRECTION,0,2,0
SPEED,0,250,20
WAIT,50,,0
で、Exitを入れていない・・・。
で、直して、
DESKTOPSTATION,SCRIPT,2013
SPEED,0,0,0
WAIT,20,,0
DIRECTION,0,1,0
SPEED,0,250,20
WAIT,50,,0
EXIT,,,0
としたら、ちゃんと、WAIT後まで、再イベントが開始されなくなった。
(上記スクリプトはDESKTOPSTATION,からEXIT,,,0を選んで、EVスクリプトの画面で貼り付けするとそのまま、貼り付けられる)
スクリプトの説明は、Yaasan様のWikiにあるのだが、やはり、読んでからやらないとだめね。(日本語のページありませんでしたっけ?)
また、最新DesktopStation V0.94 (Nov 19, 2015)では、EVスクリプトタブの実行状態タブの実行ログ内でExit無しで再イベントが始まった警告(ForceExit)が出るようになり、わかりやすい。
(2)S88の取り込み周期
Yaasan様の最新DesktopStation V0.94 (Nov 19, 2015)で0.2秒間隔で取ってこれるようになっている。これで、イベント開始のばらつきが減ったので、停止位置が安定するようになった。
(3)VVVFスケッチはいわゆる加速率、減速率を緩慢にして、その状態でパラメータを固定のため、きびきびした運転ができない。この理由はデコーダー内部でモーター指示値を補間してやって、モーター音階を連続にするためである。DCCから一秒に数回モーター制御デコーダに指令が行くが、これを正直にVVVF音化すると、悲しいことに、全部ドレミファインバーター化する。(おまけにちょっとカッコ悪い音になる)。今回、この部分を普通のデコーダーのように加速率、減速率を変更できるようにした。だから、これで、即応にすると、ドレミファインバーター(カッコ悪い)になる。
スケッチはこちら(K97)。
CV3 加速率 0:即応、~255:緩慢
CV4 減速率 0:即応、~255:緩慢
(0~20あたりが実用域かなあと思う。電車、VVVFの選びによって違いそうだが)
最初、新しくCV値を作ろうとしてたが、Yaasan様から、それはCV3,4だと指摘され気づいた。(そんな基本的なパラメータがないわけないですよね)
あとは、DSmainR5からCV読み値機能が付くそうで、それ用に、notifyCVAck部分を少々書き直した。(CV読み込み対応のコントローラを持っていないのでこれで合っているかどうかはわからない)
なんか、Win10のPCを再インストールして、ArduinoのIDEを1.6.6にしたら、PWMDacSynthがWarningを出すようになった。まあ、ちゃんと動いているしいいか。
(4)S88 Control基板のピカピカLEDがイラつく
6個のセンサーの在線フラグが一つでも立っていると、RUN_LEDが付くようにした。これで、最初のセッティング時にシリアルコネクタをつけてPCで見なくても、センサとボリュームだけでどうにかなるはず?
スケッチは、こちら(K4)。
2015-11-21 22:54
コメント(0)
トラックバック(0)
コメント 0