線路の風景




PWM パワーパック

PIC(マイクロチップ社)マイコンを使ったPWM式コントローラー(パワーパック)です。

ハード構成は・・・
CPU PIC16F88
出力ドライバ(パワーMOS FET) 2SJ349,2SK2232
外部IF(RS232C) ADM3202AN
入力IF ロータリエンコーダ×1、プッシュスイッチ×1
表示デバイス 16文字×2行LCD

出力ドライバ段は、当初安く入手容易なのでフルブリッジのTA7291Pを使うつもりでしたが、
実験の結果、高周波時のPWM出力波形がくずれてしまうようなので諦めました。
パワーMOS FET、Pch,Nchをトランジスタと合わせてドライブ回路を組みました。
回路図は一番下のほうのリンク、"PWM コントローラーその2"をご覧ください。

外部IFはRS232Cを付けています。
現在は未使用で、今後もどのように使うかは未定ですが、
なにか拡張性を残しておきたいということで。

入力IFのロータリエンコーダは、回転時にクリック感があるタイプで、
マスコンのEB、Bn段、N、Pn段を指示するために使います。
(現在はB5段、P4段としています)
また、パラメタ設定時には値の変更に使います。
プッシュスイッチは運転モードとパラメタ設定モードの切換え、
パラメタ設定時には値の確定などに使います。

LCDは運転モード時、以下の項目を表示させています。
マスコンのポジション表示、
モータ逆起電圧A/D表示
出力ステップ値
出力周波数
出力デューティ比
また、パラメタ設定時は、項目に応じた内容を表示します。

外観はこんなかんじです。
PWM_controller.jpg - 28KB
(このときはブレッドボードに組んだだけの状態です)
PICなどのICは、LCDの下に隠れています。
TA7291Pもソケットを介して取り付けられるようになっていますが、
やめて、出力段は右上のブレッドボードにMOSFETで組んでいます。
LCDのすぐ右、白い棒状のスイッチが2コ並んでいるのが逆転スイッチですが、
現在はブレッドボードに出力段があるので使っていません。
LCD下の丸い緑のつまみがロータリエンコーダで、
プッシュスイッチは左端にちょこっと出ています。
さらに左側にはPicKit2を取り付けられるコネクタを設けてあります。
やはり、ロジックやパラメタをよく変える場合や、
でかいプログラムのデバッグには、なんらかのデバッガが必須ですね。
電源はACアダプタの+12Vを受け取るようになっていて、出力ドライバ段には
そのまま、各ICには三端子レギュレータを介して+5Vを供給します。
制御にPIC(マイコン)を使ったのは、
やはり京急2100形に代表される、最近のVVVF車の音を簡単に表現できるという点からです。

これですね。
動画:京急2100形(N)起動音

web拍手

ソフトウェア処理の主な流れは以下のようになります。
ロータリエンコーダの動きを検出
マスコンポジションを切換え
出力指示用ステップ値をマスコンポジションによって増加減
出力指示用ステップ値から、該当する出力周波数(実際の設定値は周期)を設定
出力指示用ステップ値、周波数(周期)からデューティ比を算出してPWM-ON時間を制御

出力指示用ステップは1バイト0〜255段としていますが、
出力周波数の変化はそれでは荒いので、内部では2バイト16ビットで計算しています。
う〜んPICでの16ビット(乗除もあるので最大32ビットまで使用)演算は面倒だぁ
ちなみにオールアセンブラです、Cならソフト簡単でしょうが、
結構、処理スピードやRAM容量を考えないといけないです。
まあ16F88の内蔵8MHzで動かしていることも一因ですが。
停車時のライトも常点灯できてるようですね。

力行時には周波数制御を行っていますが、
このときPWM-OFF時には出力ドライブ回路の2SK2232をONにしてブレーキをかけています。
これによって、多少音がはっきりするのですが、
ブレーキをかけない場合に比べて速度は若干低くなります。
373系の周波数パタンでは、やや音が聞こえにくいようです。
また、惰行時には音が気にならないようPWM周波数は12KHzにします。
(もっと高いほうがよいかも。現実は車輪、レールからの走行音が大きくなってきます)
そして、制動時には再度PWM周波数の制御を行います。
スピードメータ代わりにモータ逆起電圧をA/Dして表示するようにしていますが、
PWM周波数12KHzでは、(オシロで波形を見ると)検出できないようです。
この点まだ再検討が必要です。
現在はPWM周波数12KHz以外の周波数制御を行っているときのみ、
約200ms間隔でA/Dしています。
(基本的にPWM-OFF周期時はブレーキをかけたいのでA/D計測時のみブレーキをかけないよう制御)

音発生時のPWM周波数は200Hzから900Hzくらいで、
この出力はPICのTMR1オーバーフロー割り込みを使ってPWM-ON
CCP機能のコンペアモード、TMR1コンペア割り込みでOFFさせています。
したがって、PWM周波数はTMR1の設定値を変えることで周期、周波数を操作しています。
一方PWM周波数12KHzは、TMR1共用するには周波数が高すぎるので
CCP機能のうちTMR2を使ったPWMモードで出力させています。
PR2設定値等により周波数が決まります。
力行(制動)、惰行の切換えでは、このようにCCPモードも切換えています。


JR東海の373系(TOMIX)
動画:JR東海373系(N)起動音


そしてJR東日本の209系(TOMIX)です。
動画:JR東日本209系0番台(N)起動音

おっと、ここで問題
京急2100のライト=LEDでは気にならなかったのですが、
電球式常点灯では、発車時に暗くなってしまいました。
停車時は専用のパタン、12KHzで点灯してますが、
起動時は音用に周波数は数百Hz程度となり、
デューティも低いのでOFF時間が長く、ライトが暗くなってしまうのかと。
このあたりもまだまだ検討の余地があります。
また、個々の車両に対応するため、 加速度(調整の方法)や最高速度の調整などもこれからの課題です。


本格的に音を追求するならスピーカが必要でしょうが、
車両、線路側加工ゼロでもこのようなコントローラで、
それなりの効果は得られそうです。



JR東日本E231系1000番台(KATO)
動画:JR東日本E231系1000番台(N)起動音



東武7300系(TOMYTEC)
動画:Nゲージ東武7300系起動音
釣り掛け音は鉄コレの動力ユニットだと、まあまあ、らしく聞こえます。
KATOやMICROACEの動力ユニットはいまいちです。



キハ58系(TOMIX)
動画:キハ58系(Nゲージ)起動音
周波数など色々変えているうち、たまたまアイドルに(と思えば)聞こえる音がしたので、試してみました。
モーター車だけでは音が小さすぎるので、先頭の(トレーラー)キハ28にスピーカーを入れてます。
このキハ28は一つ前の製品で旧集電タイプ銀車輪、ライトは電球仕様でしたが、
電球を3φ白色LED+抵抗に置き換え、前面種別表示を最新の(急行)印刷済み導光材に(加工の上)変えてあります。
LEDはチラツキ低減も期待したものですが、これほど変動する波形ではだめだめですね。
音色もまあ〜聞こえなくも無い・・というレベルでしょうか。
(実際はいろんな音が混ざった複雑な音ですから難しいです)
Ntrain/kiha28speaker.jpg - 20KB
0.1mm洋白板にポリウレタン線を半田付けし、ライトユニットと床板の接点に挟み込むように導通させてます。
ダイオードブリッジやコンデンサも手元にある物を使ったので大きめです、
車端の貫通扉は窓パーツが入っていないので、線を延ばしてスピーカーをできるだけ後ろに向けました。
ブリッジを入れたのはモーター車の逆起電圧を計測しているので、影響を与えないためです。


JR東日本255系(MICROACE)ミュージックホーン
動画:255系(Nゲージ)ミュージックホーン
スピーカーを入れれば多少は音が大きくなるので、ミュージックホーンもやってみました。
これも音質は厳しいのですが、先頭のクハに組込み、連結面の貫通扉が無いので
車内の仕切り(ドア部分から車端までトイレ、洗面所の壁)をスピーカーの延長ホーンに見立て(?)てます、
気持ち音質が近づいた、ような、変わらないような・・・
ただし、さらにスピードを上げると走行音に消されて聞こえにくくなってきます。
でも(255系はVVVF車なので)起動音はうるさい位豪快にスピーカーから聞こえてしまいます。
もう少し考えないと・・




Next PWM コントローラーその2 update 2013/6/6

こちらもぜひ→ 橋梁通過音(電子工作)

1/150 家の中の横軽


BACK TO MENU PAGE メニューに戻る


電子工作、モジュール、車両など模型関係はブログに移行しております。

2013/06/06 更新
2009/04/28 更新(kawasawa)
inserted by FC2 system