ITmedia NEWS > STUDIO >
連載
» 2021年12月11日 07時00分 公開

Nゲージの模型をラズパイで動かす “らずてつ”その1――鉄道模型とラズパイをつなぐ名刺サイズの超小型PC「ラズパイ」で遊ぶ(第52回)

今回から鉄道模型の運転をラズパイで制御する仕組みに挑戦します。

[岩泉茂,ITmedia]

 筆者は鉄道が好きです。乗りに行くのが基本の“乗り鉄”ですが、その際には乗った列車の写真を撮ることもあるので、まあ“撮り鉄”と言えなくもないです。ただしその際には“怒号”とは無縁です。

 しかしこのご時世、なかなか鉄道を乗るためだけに出掛けるのも難しいところ。そんなときの楽しみの1つとして、筆者には“模型鉄”というジャンルも残されています。もっぱらNゲージですが、中学生の頃から色んなものを買ったり、不要なものを処分してはまた買ったりとそろえつつあります。好きなのは国鉄時代のローカル線なので、最大でも3両編成程度ですね。キハ20とか、キハ30とか、キハ40とか。電車でいってもクモハ12とか。そのあたりを集めています。

 ただ、模型をため込んでいくと、今度は「レイアウト」という、いわゆる“ジオラマ”を作りたくなってしまいます。鉄道博物館などにある、あれです。

 しかし、狭い3LDKのマンションに広大なレイアウトを敷く場所なんてありません。まあ許されるのは食卓の半分くらいの大きさでしょうか。

 とはいえ大きなレイアウトでなくても楽しめるもう1つのロマンがあります。それは「鉄道の自動運転」です。あらかじめ自分がプログラムを組んだ通りに走ってくれたら、それはすごいことのような気がしませんか。

 しかも我々の手の中にはラズパイがあるのです。これを使えば何かできそうな気がします。というか、さまざまに取り組んでこられた方も多いですね。ネットで調べるといろいろな方法がヒットします。

 それはそれとして、今回から鉄道模型の運転をラズパイで制御するという目標に向かって進んでみたいと考えています。ただし、今のところ筆者の頭の中にあるのは、ラズパイで電圧を制御して前進したり反転したり、速度を変えたりといったことくらいしかありません。

 果たして終着駅がどこになるのかも分かっていませんが、ひとまずお付き合いいただければと思います。最終的にはトミックスの「レイアウトベースキット」にポイントを2個仕込んで動かすことを目標とします。

Raspberry Pi トミックスのレイアウトベースキットに線路と駅を乗せた状態

Nゲージの模型をラズパイで動かす

 さて、まずはラズパイで模型を動かす方法について考えていきましょう。鉄道模型の動力車は直流モーターで動きます。電圧は12Vで、電圧を変えることによってスピードが可変します。鉄道模型を動かすために用意されている「パワーパック」がありますが、そこにあるつまみを回すことで電圧を可変し、鉄道模型の速度を変えています。

Raspberry Pi 模型を動かすパワーパック(例)

 ただしこれはアナログでのやり方です。デジタルしか扱えないラズパイの場合は「PWM」という方法を使います。PWMとは「Pulse Width Modulation」の頭文字を取ったもので、直訳すると「パルス幅変調」です。電源をオンオフするスイッチングの周期を変えることで、オンにしたパルス幅に比例した電圧が得られるという仕組みです。パルス幅をデジタルで変化させて任意の電圧を得ることになります。ラズパイでPWMを扱えるGPIOは2パターンあります。GPIO12とGPIO13、GPIO18とGPIO19です。ここでは1つのモーターを制御するだけなので、GPIO12のみを使います。

 あとラズパイに加えて、12Vの電圧でモーターを動かすためのモータードライバーが必要です。さまざまなモータードライバーがありますが、今回は秋月電子通商で販売されている「TB6612使用 Dual DCモータードライブキット」(以下、TB6612)を使います。出力電流が定格で1.2A、最大で3.2A流せます。パワーパックでは1.2A程度の電流となりますので、十分に対応できます。室内灯を多く取り付けた場合でも、これならばなんとかなりそうです。

 TB6612にラズパイのGPIO20、GPIO21を接続して、前進と後退を制御しましょう。TB6612は2つまでモーターを制御できますが、今回は1つだけを使います。今後もし複線にするときには、そちら側の制御も可能ですね。

Raspberry Pi TB6612モータドライバモジュール

 今回利用するNゲージの線路ですが、筆者の手持ちにあるトミックス製の物を使いました。トミックスの場合はレールとパワーパックを接続するのに「D.C.フィーダーN」を使います。またDC12Vを得るためにACアダプターを利用しますが、ブレッドボードで組み合わせやすいように「ブレッドボード用DCジャックDIP化キット」を使いました。ACアダプターですが、先ほども述べたように1.2A程度あれば十分なので、秋月電子通商で販売している12V2Aのものでよいでしょう。

Raspberry Pi D.C.フィーダーN
Raspberry Pi ブレッドボード用DCジャックDIP化キット

 もうひとつのパーツがありました。今回のシステムですが、ひとまずブレッドボード上で配線することになるので、TJC8コネクターをD.C.フィーダーNに取り付けておく必要があります。TJCBコネクターと、それに取り付けるコネクタ用ハウジングも用意しておきましょう。TJCBコネクターはコードにはんだ付けする必要があります。

Raspberry Pi TJCBコネクターをコードにはんだ付けしたところ
Raspberry Pi ハウジングを取り付けるとこのようになる。ちょっと下手くそだが申し訳ない

 ここまでで作業は終わったので、ラズパイと接続しましょう。つなげ方は表1のようになります。

ラズパイとTB6612の接続

DIP側
PWMA GPIO12
AIN2 GPIO21
AIN1 GPIO20
VCC ラズパイの3.3V端子
STBY 接続しない
GND ラズパイのGND
BIN1 接続しない
BIN2 接続しない
PWMB 接続しない

端子側
AO1 D.C.フィーダーNの白色
AO2 D.C.フィーダーNの茶色
BO2 接続しない
BO1 接続しない
VM AC電源の+
PGND AC電源のー

 これで準備は終わりました。ブレッドボード上に取り付けると以下の写真のようになります。次回からはプログラムを使って、鉄道模型を動かしてみます。

Raspberry Pi

Copyright © ITmedia, Inc. All Rights Reserved.