2013.07.10
メルクリンの古いZゲージをArduinoで命あるレイアウトに
「これをドイツで買ったの」と、鉄道ショーで私に近づいてきたLynnは言った。「これでジオラマを作ってくれる人を探しているんだけど」
数日後、私は彼女の家を訪れ、彼女のメルクリンミニクラブ(Zゲージ)のセットと、線路とアクセサリーを見せてもらった。1978年に父親へのお土産として買ったのだそうだ(当時は市販の鉄道模型ではZゲージが最小だった)。お父さんが亡くなり、鉄道セットは彼女の元へ戻ってきた。彼女は、それが走っているところを一度も見たことがないのだが、彼女の引退パーティーまでに運転してみたいと言うのだ。私は15×31インチ(38×79センチ)の卓上レイアウトを製作することに同意した。作業時間は5カ月もない。
機関車
ボロボロになったオリジナルの箱に入っていたLynnの機関車の清掃とテストは、まず行わなければいけない。最後に箱を開けてからどのくらいになるのだろう。注油や清掃はされていたのだろうか。モーターは12ボルトで焼けてないだろうか。
1978年、これが世界最小の模型機関車だった。車輪のゴミをとったら、きれいに回るようになった。
線路を1本磨いて、電源をつないで、機関車を載せた。最初はなんの反応もなかった。車輪に直接9ボルト電池の電極を接触させると少し動いた。掃除して電池をつないで、を繰り返すうちに、機関車は自力で動くようになった。後に、歯車の埃を取り、所定の場所に油を数滴たらしてやった。
エレクトロニクス
レイアウトの製作はコントローラーから始まった。箱の中には、列車といっしょにNゲージ用の12ボルトのパワーパックが入っていた。私が30年前に使っていたようなやつだ。Zゲージは最大で8ボルトまでとなっている。汽車を走らせるときに、ツマミを3分の2以上回さないように注意すれば、このパワーパックも使える。しかしそれを忘れると……シュシュシュー。この状況をLynnに話し、私は、Arduinoをベースにした8ボルトのコントローラーをレイアウトに組み込むことを提案した(そのときは機能がまだ曖昧な状態だったと思う)。
これは、動体検知を応用するのにもってこいのプロジェクトだ。汽車は、楕円形の線路の上をぐるぐる走るだけで、とくに何かをするわけではない。動体検知を使えば、部屋が無人になると汽車が止まり、また人が来ると動き出すというふうにできる。私はすでにParallaxのモーションセンサーを試していた。だが、それはプロジェクトに恒久的に埋め込むようには作られていなかった。少し調べてみると、パナソニックの32111を発見した。検知距離が調整でき、デジタル出力があり、黒いボディはフロントパネルの穴から顔を出しても目立たない。
もうひとつ組み込みたかった機能に、速度と方向のコンビネーションコントロールがあった。ひとつのツマミで汽車の速度と方向の両方をコントロールするというアイデアは、特別なことではないように見えるが、どういうわけか鉄道模型ではほとんど使われていない。Arduinoを使えば簡単だ。プログラムを使ってツマミの位置から速度と方向を設定できる。コントローラーには10Kオームの可変抵抗を使った。オーディオのイコライザー用ツマミのように、中央で止まるタイプのものだ。中央に回すと、ツマミは「カチッ」とスナップして、汽車は止まる。
Arduinoベースのコントローラーでは、モーターシールドがよく使われるが、私はArduinoの入出力ピンを別の目的に使いたかった。コントロールするモーターはひとつだけだ。そこで、400ミリアンペア(Zゲージには十分)まで制御できるL293Dチップを使うことにした。ブレッドボードやユニバーサルボードでも使いやすいDIPパッケージだ。
私のArduinoコントロールシールド。主要な部品は左上から時計回りでL293Dモーターコントローラー、フロントパネル用10ピンソケット、照明と照明センサー用のネジ端子、照明回路用の2N2222トランジスター、線路の電源用0.4アンペアのポリヒューズ、線路の電源用のネジ端子。
お次はインジケーターのライトだ。今時のプロジェクトには、フルカラーのライティングが欠かせない。パネル中央のライトは、レイアウトの状態を色で示すようになっている。赤は停止中、緑は走行中、白はスリープモードが起動したことを示し、スリープに近づくにつれて紫色に変化し、完全にスリープに入ると青になる。実を言うと、RGB LEDの制御には、汽車の制御と同じだけのピン数と、同じぐらいのコードを書く必要があるのだが、レイアウトに楽しい視覚効果を加えることができる。この回路には、建物の照明をコントトロールする回路も含まれている。それぞれ2N2222トランジスターを使い、数個のLEDを制御する。
汽車の制御用シールドはSparkFunのProtoShieldの基板を使っている。そこに、モーションセンサー、可変抵抗、LEDをテスト用にユニバーサルボードに組み込んで、Arduinoに仮接続した。Arduinoにはテスト用のコードをアップロードした。センサーの出力に10K オームのプルダウン抵抗を追加すると、回路は想定どおりに動作をしてくれた。
ユーザーインターフェイスの回路を基板に組み込むと、フロントパネルのデザインに取りかかった。これはFront Panel Expressに依頼して、2ミリ厚の陽極酸化アルミニウムで作ってもらった。届いたのは2週間後だ。素晴らしい出来映えで、サイズもピッタリだった。
木工
コントロール部とパネルはできた。いよいよ大工仕事の番だ。なぜ、レイアウト本体の製作をここまで伸ばしてきたかと言えば、答は簡単だ。コントローラーをレイアウトに組み込みたかったからだ。フロントパネルにフィットする本体を作りたかった。回路がうまく収まるレイアウトにしたかった。逆に聞こえるだろうが、過去のプロジェクトではこの方法でうまくやってきた。それに、木工のほうが簡単だ。私の本職は家具職人だからだ。
卓上型の小さなレイアウトは、引き出しに組み込むレイアウトを作るのとそう変わりはない。板材には無垢のレッドオークを選んだ。ハッキリとした木目のある木材が欲しかったのだ。私はいつも相欠きはぎ接合で板材を組むことにしている。デッキ板は大入れを彫ってはめ込む。相欠きはぎは、接着剤が乗る面積が大きくなるので、継ぎ目がしっかりと固定される。しかし、目の前に蟻継ぎ用の治具があったので、より装飾的に美しい蟻継ぎを採用することにした。
パネルは側板から6ミリほど奥に引っ込めたいと思った。そのほうが見栄えがいいばかりでなく、操作中や移動中に傷つけることがないからだ。フロントパネルを収める溝はプランジルーターで、ストレートビットとカラーを使って作った。カラーをテンプレートの縁に沿わせてやると、正確に、エッジが真っ直ぐな長方形の窪みができた。
デッキ板は1/4インチ厚の中密度繊維板(MDF)を切り出して使った。MDFはベニヤ板と違って内部のストレスがなく、完全に平らな状態で使えるからだ。正しく添え木を入れるとその状態を保ってくれる。
土台の箱を組み上げると、次に川床を取り付け、デッキ板の裏に松で補強材を貼り付けた。後でプラスティックの足を付けるためのコーナーブロックも、フライス盤で削りだして取り付けた。
仕上げは簡単だった。同僚にお願いして(もちろん事前にボスに知らせて同意をとっていた)、Lynnが選んだステインで着色し、会社で製品の仕上げに使っているラッカーで同色のものを吹き付けてもらった。仕上げが完了したら、足とフロントパネルを取り付け、回路を組み込んだ。
線路
線路をしっかりと固定するための重要ながら見落とされがちな2つのツールがある。画鋲とトマト缶だ。
これで、何もない平らな土台ができた。線路を敷くことができる。私は線路の通り道に、スプレー糊でコルクの道床を張り付けた。Lynnのメルクリンの線路を1本ずつよく確認してから、コルクの上にフォームボード用接着剤をコーキングガンで点々と置いていった。それをパレットナイフで平らに均し、線路を配置した。曲線線路は、ほとんどがカーブが大きくなっていた(最初からなのか使っているうちにそうなったのかはわからない)。また、真っ直ぐにしてやらないと、つなぎ目でねじれてしまう。これでは、この先の作業に支障をきたす。そこで画鋲を惜しみなく使い、線路が平らになるように押さえ付けた。接着剤が固まるまで数時間かかる。なので、その間に線路が真っ直ぐに平らにつながるように調整をした。
シーナリー
線路の上に山を作るときは、内側から作るのがよい。トンネル内の線路と道床は黒く塗った。トンネルになる部分には、ノコギリで切った青いスタイロフォームで囲い、これも黒く塗った。山の上部はスプレー糊で重ね合わせて作り、点検口を切り抜いた。残りの部分もそれぞれの位置に接着した。
スタイロフォームは、熱線カッターで薄く削ぐように切りながら大まかに成形した。つなぎ目の部分は36番の紙ヤスリで均した。表面のデコボコはあまり気にしなかった。グランドカーバーで覆うからだ。大きな窪みなどはSculptamold(訳注:水性の模型用成形材)で成形した。
岩はプラスターで作った。それを砕いて、トンネルの出口の脇に並べて岩肌を作った。接着剤が乾いたら、Sculptamoldを隙間に詰め込んで一体化した。岩肌は茶とグレーで塗装し、上から薄い黒を塗り、白でハイライトを入れた。
池と川の水面を作る前に、細く切ったスタイロフォームで水底を作り、彫ったり削ったり、継ぎ足したりして形を整えた。池の底には水で薄く伸ばしたプラスターを塗って滑らかにした。エアブラシを使って池の中央に近づくほど黒くなるようにグラデーションで塗り、池の深さを表現した。川底には公園で拾ってきた砂利を大さじ数杯分敷き詰め、木工用ボンドで固めてごつごつした質感を出した。
川と池の水面はEasyCastで作った。クラフトショップで売っている2液性のレジンだ。レイアウトを水平な場所に置き、池と川の底に穴がないことを確認してから、手前の川の出口をスタイロフォームの切れ端で塞いだ。レジンをかき混ぜるときにできる気泡は、流し込んでから表面を軽く叩くと抜ける。完全硬化まで72時間かかる。だが、24時間後にはもうベタベタしなくなっていた。
コースターフを重ねることで、スタイロフォームの塊がバイエルンの山に変身。
レジンが固まるのを待つ間、26ゲージのクラフト用針金を5回巻いて、木の骨組みを作った。輪を半分をきつくよじって幹にして、あとの半分の先は切り、放射状に広げて枝にする。これをツヤ消しのラテックスに浸して、スタイロフォームの切れ端に刺して乾燥させる。乾いたら、緑色のポリエステル繊維、ヘアースプレー、ターフで葉を作る。
レジンが完全に固まってから、グランドカバーを施し、トンネルの入口を取り付け、木を「植えた」。そして、コントローラーシールドとArduino Leonardoをレイアウトの下に恒久的に取り付け、列車が駅にいるかどうかを確認するための光センサーを線路の間に埋め込んだ。さらに、Lynnの機関車がそれらしく走るように、Arduinoのコードを調整した。
駅
メルクリンのWintersdorf駅舎キットが35年間、きれいな形で箱の中に入っていた。パーツは4色で成型されていたが、見栄えをよくするために、一部を塗り替えた(たとえば、赤い瓦屋根が明るすぎたので、かすれたテラコッタ色にした)。駅舎を部分的に組み立て、土台と屋根はまだ固定しないでおいた。
照明用に、私は床の大きさに合わせてユニバーサルボードを切り出し、表面実装の電球色LEDと抵抗をハンダ付けした。ボードの四隅に「脚」をハンダ付けして、ボードが天井の高さに維持されるように調整した。これを駅舎の中に収め、光が他の部屋に漏れないように黒い紙で蓋をした。土台と屋根は非溶剤系の接着剤で取り付けた。後になんらかの作業が必要になったときに外せるようにだ。
最後に食わせたのが「ディスコライト」だ。鉄道模型レイアウトでは、はぜる炎やアーク溶接の光や緊急車両の回転灯などといった光の効果が人気なので、私は、高速で色が変化するフルカラーのLEDをユニバーサルボードにハンダ付けし、Arduinoのデジタルピンから直接電源を取るようにした。3分間隔で、通常の室内灯が消えて、数秒間、ディスコライトが光るようになっている。このことは、レイアウトを届けるときまでLynnにはナイショにしておいた。
お届け
駅舎を取り付けて、レイアウトはパーティーでお披露目する準備が整った。私はこれを彼女のうちのコーヒーテーブルの上に置き、電源プラグを差し込んで、列車を置き、コントローラーのツマミを回した。レールが磨かれるまで、何度か機関車を押してやる必要があったが、Lynnは喜んでくれた。
パーティーのお客さんに会いにダイニングルームへ移動すると、コントローラーのライトが緑になり、やがて青に変わって列車は駅の前で停止した。「どうやったらまた動くの?」と彼女は私に聞いた。
「近づいてごらん」と私は教えた。彼女はレイアウトまで8フィート(2.4メートル)まで近づくと、再び列車が走り始めた。
Lynnのレイアウトが家にやって来た。
パーティーでは、レイアウトは大受けだった。ディスコライトの秘密がわかるまで、そう時間はかからなかった。列車は夕方まで美しく走り続けた。大勢の人がずっと近くで見ていて、動体検知機能のデモンストレーションはできないほどだった。
– Jeff Faust
[原文]