筆者は鉄道が好きです。乗りに行くのが基本の“乗り鉄”ですが、その際には乗った列車の写真を撮ることもあるので、まあ“撮り鉄”と言えなくもないです。ただしその際には“怒号”とは無縁です。
しかしこのご時世、なかなか鉄道を乗るためだけに出掛けるのも難しいところ。そんなときの楽しみの1つとして、筆者には“模型鉄”というジャンルも残されています。もっぱらNゲージですが、中学生の頃から色んなものを買ったり、不要なものを処分してはまた買ったりとそろえつつあります。好きなのは国鉄時代のローカル線なので、最大でも3両編成程度ですね。キハ20とか、キハ30とか、キハ40とか。電車でいってもクモハ12とか。そのあたりを集めています。
ただ、模型をため込んでいくと、今度は「レイアウト」という、いわゆる“ジオラマ”を作りたくなってしまいます。鉄道博物館などにある、あれです。
しかし、狭い3LDKのマンションに広大なレイアウトを敷く場所なんてありません。まあ許されるのは食卓の半分くらいの大きさでしょうか。
とはいえ大きなレイアウトでなくても楽しめるもう1つのロマンがあります。それは「鉄道の自動運転」です。あらかじめ自分がプログラムを組んだ通りに走ってくれたら、それはすごいことのような気がしませんか。
しかも我々の手の中にはラズパイがあるのです。これを使えば何かできそうな気がします。というか、さまざまに取り組んでこられた方も多いですね。ネットで調べるといろいろな方法がヒットします。
それはそれとして、今回から鉄道模型の運転をラズパイで制御するという目標に向かって進んでみたいと考えています。ただし、今のところ筆者の頭の中にあるのは、ラズパイで電圧を制御して前進したり反転したり、速度を変えたりといったことくらいしかありません。
果たして終着駅がどこになるのかも分かっていませんが、ひとまずお付き合いいただければと思います。最終的にはトミックスの「レイアウトベースキット」にポイントを2個仕込んで動かすことを目標とします。
さて、まずはラズパイで模型を動かす方法について考えていきましょう。鉄道模型の動力車は直流モーターで動きます。電圧は12Vで、電圧を変えることによってスピードが可変します。鉄道模型を動かすために用意されている「パワーパック」がありますが、そこにあるつまみを回すことで電圧を可変し、鉄道模型の速度を変えています。
ただしこれはアナログでのやり方です。デジタルしか扱えないラズパイの場合は「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つだけを使います。今後もし複線にするときには、そちら側の制御も可能ですね。
今回利用するNゲージの線路ですが、筆者の手持ちにあるトミックス製の物を使いました。トミックスの場合はレールとパワーパックを接続するのに「D.C.フィーダーN」を使います。またDC12Vを得るためにACアダプターを利用しますが、ブレッドボードで組み合わせやすいように「ブレッドボード用DCジャックDIP化キット」を使いました。ACアダプターですが、先ほども述べたように1.2A程度あれば十分なので、秋月電子通商で販売している12V2Aのものでよいでしょう。
もうひとつのパーツがありました。今回のシステムですが、ひとまずブレッドボード上で配線することになるので、TJC8コネクターをD.C.フィーダーNに取り付けておく必要があります。TJCBコネクターと、それに取り付けるコネクタ用ハウジングも用意しておきましょう。TJCBコネクターはコードにはんだ付けする必要があります。
ここまでで作業は終わったので、ラズパイと接続しましょう。つなげ方は表1のようになります。
| 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電源のー |
これで準備は終わりました。ブレッドボード上に取り付けると以下の写真のようになります。次回からはプログラムを使って、鉄道模型を動かしてみます。
部屋の二酸化炭素濃度を測定しよう ラズパイでCO2センサーを作る
550円の「Raspberry Pi Pico」でIoT その1:気温と湿度、気圧を測定する
ラズパイで「Windows 10 on ARM64」を動かす(オーバークロック編)
ラズパイで「Windows 10 on ARM64」を動かす(インストール編)
ラズパイで「Windows 10 on ARM64」を動かす(事前準備編)
ラズパイ一体型キーボード「Raspberry Pi 400」レビュー 特例制度のWeb申請で“技適なし”を回避した
ラズパイ一体型キーボード「Raspberry Pi 400」の性能は? ベンチマークテストで従来モデルと比べた
ラズパイで気温と湿度を測定、LINEで通知を受け取る 〜前編〜
ラズパイを無線LANルーター化する 〜アクセスポイント編〜
本格的な撮影が楽しめる公式カメラモジュール「Raspberry Pi High Quality Camera」を試す
ラズパイで新型コロナウイルス解析に参加する 〜Ubuntu Serverの構築編〜
ラズパイでスマートスピーカーを作る 「アレクサ!あしたの天気は?」 〜ソフトウェア準備編〜
これが“らずキャン△”だ! キャンプ場で役立つ「気温・湿度・気圧センサー」の作り方
ラズパイで「YouTube」と「Amazon プライムビデオ」を見るCopyright © ITmedia, Inc. All Rights Reserved.
Special
PR