SSブログ

S88 Analog(ロータリースイッチ)を試す。 [S88]

 で、S88 Analogのロータリーエンコーダ版です。
 ネットでロータリーエンコーダのスケッチを探して、sakura87.net様のページを参考に入れたら、何の問題もなく動きました。割り込みを使っていないので、高速に回すと取り込みミスをしているような気もしますが、まあ、もっと回せばいいだけなので、何の問題もないです。多分。
 で、こちらがDCC/MMシールドに付けたものです。DCC/MMシールドとこのS88 Analog(ロータリーエンコーダ)の組み合わせ、どうも、何かのバッタモンの匂いがプンプンしますが、まあ、工作は個人の自由です。
re_DSC01891.jpg

 せっかくなので、動画です。


 とりあえず適当に作ったスケッチなので、前進しかしません・・・。
 128ステップにしたので、最高速にするためにはロータリエンコーダ(24クリックタイプ)を5回転ぐらいさせないと最高速に到達しません。もちろん、もっとスピードを粗く調節するのも可能ではありますが。
 あとは、他の方のを見ていたらエンゼル・エクスプレス様がロータリーエンコーダをマスコンのように使っていました。
 この動画ですね。
 こういう風なコントロールも良いかなあとも思いました。 5回転ぐるぐる回して最高速というのも、まあ、やった感があって楽しいんですけど、運転はかなり雑になります。

コメント(0) 

アクリル板が届いた。 [S88]

 あやのすけ様のBlogを参考アクリル板を頼んでおりましたが、注文から一週間後8/19に佐川急便が届けてくれました、が、不在で受け取れず、20日に受け取りました。
 Elecrowからは特に大きさのメールは来ませんでしたが、アクリルのサイズはぴったりでした。よかったよかった。
 で、S88 Masconと記念撮影です。
re_DSC01888.jpg

 アクリルの色ですが、一瞬悩んで、考えるのが面倒になり、あやのすけ様と全く同じ、裏は白、前面は透明にしました。前面は透明以外では液晶見えないのでダメですけどね。
 で、既存のS88 Masconに付けてみました。干渉もないし、私てきには満足です。
re_DSC01889.jpg

 次に、S88 Analogもアクリル板を買いつつ、基板も改版しました。
re_DSC01890.jpg

 どっかで見たものの、巨大版に見えるかもです。ええ、今度はロータリーエンコーダを付けてみました。あやのすけさんのLocoスロットルのパクリに近づいています。こっちのほうが倍以上の大きさありますけどね。
 で、Aliに頼んだ長いタクトスイッチが届かないので、こんな感じですよという、仮組写真です。送料無料で頼んだので、いつに着くのでしょう。土曜日に秋葉原でタクトスイッチで長いのないかなあと探してみたのですが、どこも9.5mmぐらいが一番長くて、それ以上はありませんでした。まあ、来るのを気長に待ちましょう。
re_DSC01892.jpg

 
コメント(0) 

EPSファイルでレーザーカット? [S88]

 あやのすけ様のBlogで、GerberファイルからEPSファイルに変換してElecrowに注文と書いてあったので、私も試してみました。
 ですが、私はKicadじゃないし、Macでもないので、かなり一日中右往左往していました。
 まず。Gerberファイルを用意します。私はmbeで作っているのでこんな画面ですが、
Gerber_1.png

そのうち作っていないコメント層(DOC)に適当に基板外形を作ってみます。
Gerber_DOC.png
見やすくしようと思って、背景を白に一瞬しています。

で、Gerber出力します。
Gerber書き出し.png

次にKicad(ver4.0.2でした)を立ち上げて、とりあえず適当なプロジェクトを作っておきます。
以下の例ではTest4というプロジェクトです。
で、GerbViewをクリックして立ち上げます。
Kicad_1.png

 ガーバーファイルを読み込みます。読み込みたいのはDOCファイルですが、そのままでは出てきませんので、ファイルダイアログの右下のファイルフィルターは「すべてのファイル(*)」にしておきます。
 読み込んだら、PCBNewにエキスポートを選びます。
Kicad_3.png

 ここが大切ですが、ボードファイル名は先ほどのKicadのプロジェクトのファイル名を指定して上書きしてしまいます。例ではtest4.kicad_pcbです。
Kicad_4.png

 GerbViewは閉じて、PCBNewを開きます。そして、SVGファイルのエクスポートを選びます。
Kicad_6.png

 書き出し設定が現れますが、SVGページサイズで、ボードの範囲のみを選んでおきました。
Kicad_7.png

 これで、Test4のフォルダにめでたくSVGファイルが出来上がりました。Chromeなどで普通に見ることができるファイルです。
 これをEPSファイルに変換するのは、あやのすけ様のBlogの通りで、InkScape(Win版もある)というソフトを使って開いて、名前を付けて保存でEPSファイルを指定して保存すれば完成です。

 そして、ここからが重要ですが、このファイル、ちゃんとしているのかどうかよくわからないのですが、ElecrowのLaser Cutting Serviceに出してしまいました。大丈夫だといいなあ。すごいちっちゃいアクリル板がきたら、どうしよう。

 あと、Elecrow、なんかいつの間にか基板が4,9ドル(5枚)と半額!になっていたので、適当に青や白の基板でS88 Mascon,Analogの改造基板を頼んでみました。

コメント(2) 

Masconにスピードメーターと圧力計をつける [S88]

 明日はJNMAフェスティバルを見に行こうかなあと思っております。
 さて、5月からS88 Masconにスピードメーターと圧力計をつけようとずるずるとやっております。
 最初はダイソーの100円時計でやってみて、まあ、それなりですが、360°が60分割のため、2km/hごとパタパタ値が変わるのと、時計の逆回転はスピードが遅いため、自己満足レベルでは満足レベル高いのですが・・・という感じでした。
 ということで、角度をちゃんと制御するならステッピングモーターだということで、秋月でステッピングモーターを買ってきて、制御実験を繰り返していたのですが、MDP-35Aは48ステップで時計より回転角が荒く、DRV8835を使用して、適当なPWMを使用したマイクロステップのスケッチを書いて、どうかなあとやっていました。
 しかし、マイクロステップ時に角度が等間隔にならず、出来が100円ショップ時計未満でしたので、ボツとしました。
 で、SPG27-1101が360°で120ステップということで、こっちを採用することにしました。100km/hまでの目盛りなら、1km/hで1ステップ動かすことになります。(本当はこのSPG27-1101でもマイクロステップを試してみたのですが、こっちもダメでした。ステッピングモーターではなく、私のスケッチかドライバの問題かと思います)
 そして、一応完成です。
 システムは、DSMainR5、S88 Masconと繋ぎ、S88 Masconからスピードメーター、圧力計を制御します。
re_DSC01645.jpg

 実験中ですので、ブレッドボードがスパゲティのようになっています。
re_DSC01646.jpg

 前回の時計流用品はメーター一つあたり108円(ダイソー)でしたが、今回は650円(モーター350円+ドライバ300円)です。二つで1300円。このごろ散財が激しいので、基板を作るかどうかは未定です。

 で、動画です。今回のは前のよりもいい感じです。子供も、「100キロ!」とか言いながら喜んで遊んでいました。やっぱり液晶と違ってアナログメーターは直感的にスピードが分かるような気がします。ただ、子供が「スピードが変わるとカタカタって聞こえるの?」と聞いてくるので、これは偽物だからね、と本物と違うことを断っておきました。(ステッピングモーターの音が結構うるさい)



参考に以前の100円時計のものの動画です。

S88 Analogと鉄コレのコントローラをつなぐ(pin change interruptを使う) [S88]

 複数の話題を一緒に書くと、後で探しづらいことに、このごろやっと気づいたので、単発の記事にしていきます。
 S88 Analogですが、鉄コレの101系コントローラとつないで実験をしていますが、あまり芳しくありません。
 いまはこんな感じに繋いでいて、すでに鉄道模型ですらありません。re_DSC01584.jpg
 DS One(DSJoyスケッチ)のS88端子にS88 Analogをつないで、DCC出力にはみるだけ君(DCCパケットの解析をしてくれる基板)をつないでいます。
 鉄コレのコントローラの波形はDU202(常点灯の12Vパルスとモーター駆動用の直流パルスの組み合わせ)と違い、12Vのパルス(周期は50us)のみでの駆動です。
 このため、スピードの検出が少々難しくて、まず、1ms周期のAD変換でスピードに変換してみたところ、ふらついてしまい、吊りかけ音がかなりふらつきます。(音無しのデコーダでは問題ないかもです)。平均化を入れるなどやり方はありますが、余り良くありませんでした。
 次に、今回、パルス幅を割り込みを使って検出してみることにしてみました。Arudinoには割り込みがいくつかありますが、サポートされていない、全てのIOピンに対しての割り込み(Pin Change Interrupt)とかいうのがあるということを調べていて知りました。コントローラからの信号はA3ピンに入れており、ここはArudinoの標準の割り込みでは使えないピンですが、この割り込みなら使用可能です。
 参考にしたページは、こちらこちらです。
 で、めでたく割り込みを使ってパルス幅を正確に検出することはできました。
こんなコードです。
セットアップで
  //pin change interrupt
  PCMSK1 |= (1 << PCINT11);  // A3(D17)ピンからのピンチェンジ割込みを使う
  PCICR  |= (1 << PCIE1);     // PCIE1グループからの割込み許可

割り込みは
//鉄コレコントローラパルス幅計測
ISR(PCINT1_vect)
{
  static int pulse_width_temp = 0;
  //A3(D17)のChangeで割り込みがかかる(はず)
  if(digitalRead(A3)==HIGH)
  {
    //開始
    pulse_width_temp = micros();
  }
  else
  {
    //終了
    A3_pulse_width += micros() - pulse_width_temp;
  }
}

 A3_pulse_widthにパルス幅をある程度溜め込んでから、平均化するようなルーチンです。
 で、パルス幅ですが、50us周期の信号は上記では12us~40usぐらいまでしか測れず、おまけにmicros()は4usの解像度しか持っていないようです・・・。
 なので、かなり離散的な値が出てきてと、書きながら、割り込み時に回数を記録して平均を取ろうと思いました。
 まあ、もう少し頑張んないとろくなものにはならなさそうです。

Kato E5系(HO)を「ぼくが運転!マスコン北海道新幹線はやぶさ」のマスコンで動かす。 [S88]

 題名が長すぎるような気もしますが、マスコン付きプラレールの名前が長すぎるだけだと思います。
 で、S88 Plarail Masconがとりあえず、動いたので、ふるさと納税の返礼品でいただいたKato E5系はやぶさ(HO)に2両増結した電車を動かしました。
 まず、今回のレイアウトです。いつもの部屋は新幹線を動かすのには狭いので、違う部屋に広げます。夜は寝る部屋になるので、昼間のうちに片付けないとです。
re_DSC01505.jpg
 レイアウトの形はあやのすけ様のを参考にしています。
 で、制御機器の写真は以下です。
re_DSC01501.jpg

 システム図を一応書くとこんな感じです。E5系は(台車モーターで改造がかなり面倒なため)DCC化していないので、Mp3サウンドデコーダV5のモーター線をそのままHOの線路に流しています。VVVF音はCV47:9のE231系(墜落じゃないやつ)にして、音は控えめにBoseのスピーカーから出しております。
S88 masconの説明.png

 赤外線による遠隔制御のメリットですが、こんな感じに優雅に足を組んで、上から目線で操作したり、
re_DSC01502.jpg

 レイアウトの真ん中でケーブルを気にせずに寝そべって操作したりというのが可能です。(笑)
re_DSC01503.jpg

 一応動画を載せておきます。まず、「ぼくが運転!マスコン北海道新幹線はやぶさ」のマスコンの場合です。東京から新函館北斗まで自動でアナウンスしてくれたような気がします。


 こっちはプラレールアドバンスのコントローラで動かしています。という動画です。


 一応どちらのコントローラでも、八畳ぐらいの部屋なら、受信機のほうを向けなくても受信しているようでした。(壁の色によってはだめかもですが)
 少し遊ぶと、アドバンスのコントローラのほうが使いやすいです。
 子供から、プラレールは二列車一緒に動かせるよ!と言われてしまいました。(私の作ったモノは現状1列車しか動かせません。コントローラごとの識別はしていますが)。アドバンスのコントローラ(車両付き)がAmazonで1200円で売っていたので、とりあえず買いました。
 いや、でも、複数コントローラバージョンとか作るのか?



プラレールのマスコンをDSJoyにつなぐ検討(その2) [S88]

 さて、5/3はプラレールのマスコンをDSJoyにつなげるべく秋葉原に行ってフォトトランジスタを物色しました。どう考えても、通販のほうが安いしゆっくり見られるのですが、まあ、せっかくの連休ですし。
 で、いくつか買ってみました。
(1)フォトトランジスタ3mm丸型 L-31ROPT1C
(2)赤外線リモコン受信モジュール SPS-444-1(38kHz)
(3)赤外線リモコン受信モジュールPL-IRM1261-C438
 まずは安直に(1)フォトトランジスタを使ってマスコンの受信実験です。・・・・素人にはだめですね。わかったことは、5V→抵抗(1kΩ)→Arudino In→フォトトランジスタ→GNDというつなぎ方では、全く信号が取れないという悲しい事実でした。リモコンから10mmていど離したらもうだめかなあということでした。
 で、(2)赤外線リモコン受信モジュールの資料を確認すると、2ページ目、Transmitterの項目で38KHzの搬送はローバスフィルターで平滑しつつ、トランジスタで増幅しているような回路図があります。(いや、そんなことも知らずに今まで実験してました・・・。)
 ネットで調べると、赤外線リモコンの通信フォーマット説明があります。ふーん。
 そして、Arduinoには簡単につながるようです。
 第23回 Arduinoでパーツやセンサーを使ってみよう~赤外線リモコン(前編)
 ということで、このページのまんまでArduino Unoと赤外線リモコン受信モジュールをつなげることにしました。VCC(5V)とGNDをそれぞれ繋ぎ、VoutはA1に繋いでいます。なお今回Voutのノイズがひどく、VCCとGNDに0.1uFのパスコンを入れて直りました。
re_DSC01508.jpg

 ライブラリもページのまんまを使います。
 Arduino-IRremote
 で、プラレールマスコンの信号はテレビのリモコンとは波形が少々異なるようですが、このライブラリのIRrecvDumpというサンプルでそのまま受信できましたので、何も考えずにこれで行くことにします。
 こちらが適当に作った受信のスケッチです。
 コンパイル時に注意があって、(ライブラリの所にも説明ありますが)
Make sure to delete Arduino_Root/libraries/RobotIRremote. Where Arduino_Root refers to the install directory of Arduino. The library RobotIRremote has similar definitions to IRremote and causes errors.
 とのことで、Arduino_Root/libraries/RobotIRremoteとバッティングしてコンパイルできません。消せばコンパイルできます。(私はRobotIRremoteを使ったことありませんので特に躊躇しませんでした)
 プラレールのマスコンとプラレールアドバンスのマスコンに対応していて、results.valueの値でどのボタンが押されているかを判断してシリアルに送信するだけです。results.valueがどうしてこのような値を取るかについてはライブラリの中身がよくわからなかったので、全く見ておりません。
 このソフトをちょっと改変して、DesktopStationのシリアルコマンドにしてしてDSoneなどに送れば、そのまま電車を操作させることも可能かと思いますし、適当にPWMに変換してやればアナログ電車をプラレールマスコンで操作させるのも可能かと思います。
 で、今回の目的はDSJoyに乗せますので、後はこれをDSJoyプロトコルにつなげれば出来上がりです。ということで、今度のつなぎも先ほど同様で、S88 Mascon基板のA1とVCCとGNDを赤外線リモコン受信モジュールに繋ぎます。
re_DSC01509.jpg
 で、こちらがS88 Plarail Masconスケッチです。(毎度のことながら、つなげるためだけで作ったのでかなり汚いです。)よく考えるとS88 Mascon基板はボタンすらないため、Loco番号すら変えられません・・・。SPI関連のポートが余っているので、そちらに移動させるか、S88 Analog基板用に作り直すか・・・。
 一応、S88 Mascon基板でプラレールアドバンスのコントローラが動きますよという動画です。



 
 


プラレールのマスコンをDSJoyにつなぐ検討(その1) [S88]

 題名の件、鉄道模型市のあとの飲み会で「えー、またそういうのつくるの?」と言われてしまいましたが、そういうのを作ろうと思います。
 S88 DSJoyは「電車でGo!マスコン」、「Tomix DU202-CL」と来ましたが、次はプラレールマスコンをつなげようと思います。
 なんと、プラレールのマスコンは実売価格4,000円台にして、新幹線3両+マスコンに加え、音声が付きつつワイヤレスという、お化けみたいなスペックのマスコンです。そして、幼稚園児、小学生低学年が触っても(おそらく)壊れない耐久性を兼ね備えています。大体、Mp3デコーダのジョイント音も、発車ベルやドア開け閉め音もプラレールが先に実現しています。そして、プラレールこそが、若者を鉄道模型へいざなう入り口のはずです。プラレールの資産を有効活用しつつステップアップできるはずです?
 で、まずはプラレールマスコンの赤外線信号がどうなっているかを確認します。
 これがプラレールのマスコンです。
re_DSC01495.jpg
 こっちが、プラレールアドバンスのマスコンというかコントローラです。
re_DSC01496.jpg
 こんな感じで、とりあえずはS88Detector基板を流用して、フォトトランジスタの出力をオシロで見ます。
re_DSC01497.jpg

 これが代表的な波形です。例として、Achのマスコンを”はやい”に合わせたときの赤外線の波形です。 オシロの信号はHの時は消灯でLの時は点灯です。長い点灯を1、短い点灯を0とすると、上記では、100110010となります。38kHzぐらいで変調されていますが、サチらせて変調は見えなくしております。
はやい_A.png

 プラレールのマスコンは9ビット、アドバンスのマスコンは8ビットの信号で、DCCに似たような信号が出ております。
 点灯開始から
0の時は500usで消灯、周期は1250us
1の時は1300usで消灯、周期は1800usというところでしょうか?
(DCCと違って消灯時の時間は一定のようです)

 で、これが繰り返し周期的に出ています。
 下記がプラレールアドバンスのマスコンのAchの周期で、Chごとに周期をずらすことによって、混線対策をして、複数のマスコンに対応させているようです。2回同じものを送るというのを繰り返すという形に見えます。下記の波形では一つ波形をだしたら30ms待ってもう一回波形を出す。これを130ms周期で繰り返すみたいなかんじです。
周期_A_アドバンス.png
 
まとめるとこんな表になりました。
プラレールマスコンプロトコル.png

で、受け側の処理としては
(1)点灯スタート↓でカウント開始
(2)800us後に状態を確認してLなら1、Hなら0
(3)8ないし9ビット格納後に消灯のまま5ms経ったらバッファリセットしつつ、S88へコマンドを格納する
 これで、行けそうな感じなので、S88 Mascon基板かS88 Analog基板を適当に改造して作ってみるつもりです。
 で、秋月で、適当に赤外線用のフォトトランジスタを買って試してみようかと思います。(どれが良いのかさっぱりわかりませんが)
 一点残念なのが、マスコンのボタンを押しても送信されないことです。さすがにそこら辺の改造を始めるなら、マスコン基板を分解して入れ替えるとか大変な作業になりそうですし。

 で、秋月でフォトトランジスタなどを買って、その2に続きます。

鉄コレ式制御器 国鉄101系運転台型コントローラーDX の波形 [S88]

 昨日、シュッシュポポンに行った影響で、なんとなくNゲージの長い編成を運転してみたくなったので、子供とImon横浜店の貸レイアウトに、ロマンスカーを2編成持って行って1時間遊んでいました。貸レイアウトデビューです。複線を1時間借りて税込み1620円でした。レイアウト自体は大きく、コントローラもTomixのN-S2-CLで、初めて使いましたが、音や線路の継ぎ目音なども聞こえてとても楽しかったです。レイアウトが大きすぎて、遠くのほうが見えませんでしたが・・・。
re_DSC01388.jpg

 さて、S88 Analogに「国鉄101系運転台型コントローラーDX」をMECYさんがつなげるとのことでしたが、N-DU202-CLとは波形が違いますと話したら、現物を送っていただいて、私の方でS88 Analogへの接続確認をすることになりました。
 で、これが写真です。
re_DSC01390.jpg

 普通に動かす分には、抵抗制御の音や線路の継ぎ目音、警笛や、ブレーキ音など聞こえ、とても楽しいコントローラです。
 ブレーキ部分はグレードアップパーツが発売されていますので、N-DU202-CLのブレーキレバーもグレードアップできないかなあと思っていたのですが、大きさが全然違いました・・・。
re_DSC01389.jpg

 で、本題ですが、これが停止時の波形です。残念ながら0Vで、常点灯に対応しておりません。
停止.png

 次に、速度調整ダイアルを左一杯にした場合の始動直後の波形です。
始動直後_速度ダイアル左一杯.png

 速度調整ダイアルを右一杯にした場合の始動直後の波形です。
始動直後_速度ダイアル右 一杯.png

 速度調整ダイアルを左一杯にした場合の最高速の波形です。
最高速_速度ダイアル左一杯.png

 速度調整ダイアルを右一杯にした場合の最高速の波形です。
最高速_速度ダイアル右一杯.png

 12VのPWMで、速度調整ダイアルとスロットルによって、PWMのDutyが変わるという方式になります。(N-DU202-CLは常点灯部分がPWMで、速度はDCの電圧だった)。
 技術的には、明らかに停止時の常点灯が可能だと思われますが、鉄コレって、前照灯も室内灯もないので、機能を切ったんでしょうね。
 で、ここまでならいいのですが、問題が一つあり、以下のおまけ波形です。1msぐらいに1回出ているようなフシがあります。
おまけ波形.png

 進行方向を逆にしても、出ます。
おまけ波形_逆側.png

 ±12Vが出てしまいますので、現状の方向検出では、いつもForwardになってしまいます。なぜなら、検出期間中、1回でもプラスの電圧(High)を検出したらForward、ずっと0V(Low)ならReverseという簡単なルーチンにしているためです。
 鉄コレ用に直すなら、側面の速度調整ダイアルを目いっぱい回しておいて、プラスの電圧が検出中の1/4以上ならForward、1/4未満ならReverseみたいなルーチンにすればよさそうです。
 と、ここまで書いて、よく考えるとS88 Analogにはボタンがいっぱいあるので、どこかのボタンを方向切り替えに割り当てればいいかなあともちょっと思いました。そうしたら、普通のパワーパック系もスロットル0から使えますし。
 まあ、ここら辺はまた追々考えていきます。すぐにゴールデンウィークですし・・・。

 
 

Tomix N-DU202-CLを買った [S88]

 来週N-DU204-CLが発売というこのタイミングで何をしているかというと、S88 Analogのデバッグをパルスコントローラ(というか常点灯コントローラ)でやりたいなあと思ってました。
 理由は常点灯のパルス信号で前進、後進が簡単に検出できるからです。
 しかし、普通のTCSパワーユニットN-1001-CLはアナログの常点灯させるわけでもないし、丸いツマミはあまり好みでもないし、と思いましたが、といって、N-DU204-CLは新発売で18,000円ぐらい払うのはわたしには高いよなあと思っておりました。
 で、よく見ている橋のくまさんのブログ様はYahooのオークションをよく使っておられるようなので、私も突然、Yahooオークションデビューしてみました。
 よくわかりませんが、N-DU202-CLが10,000円ぐらいで買えました。よかったよかった。

 で、今日から、S88 Analogのデバッグです。
re_DSC01343.jpg
 
 波形を見ていませんが、おそらく少々交流チックな波形が出ているようで、S88 Analogで計算しているスピードがふらついて、吊りかけ音がフニャフニャしていて気持ち悪いです。ちょっと平均化のサンプリング数を増やそうと思います。前進、後進は常点灯のおかげで、ばっちり検出できました。
 今週末をめどにいろいろと作っていこうかなあと思います。