これはObniz Advent Calendar 2018の9日目の記事です
2018年7月7,8日に金沢にてNT金沢というイベントが開催されていました
togetterにて雰囲気がまとめられています[ ここ ]
私もESP8266を複数台使用して子どもに大人気のプラレールを自動制御をしたものを展示していました
さて本題ですが、obnizでも簡単にプラレールハックができるのではいか?ということで、obnizを使ってプラレールを制御してみました
作ってみた
ということで作ってみたものが以下の動画になります
車両は一方向のみ走行するようにし、駅は島式ホームにしてみました
本当はNT金沢で展示したように立体交差させたかったのですが、レールを作るのに時間が要するのと制御が複雑化するので今回は単純なものにしました
また自動でのプラレール制御は行っていません
obnizはweb上でマイコンを制御できるところが長所だと思うため、自動化よりは自分で制御したほうが良いと判断しました
材料
最低限必要な材料です
下の材料の他にもレールの改造と短いレールを作るために3Dプリンタを必要とします
-
R-01 直線レール 10本
-
R-03 曲線レール 11本
-
R-08 ストップレール 2本
-
R-11 ターンアウトレール L 2本
-
R-11 ターンアウトレール R 2本
-
J-14 ブロック橋脚 3個 (任意)
-
J-17 ニュー踏切 1本 (直線レールでも代用可)
-
デジタル・マイクロサーボ(SG90) 4個
-
obniz 1個
-
ブレッドボード
-
ジャンパーワイヤ
-
お好きな車両
レールの改造
ターンアウトレール
サーボモータでターンアウトレールを制御できるように改造をします
ターンアウトレールの裏側にペットボトルの切れ端を下記の画像のように接着剤等で貼り付けます
こうすることでバネのようにポイントが切り替えが可能となります
つぎにサーボモータをターンアウトレールに固定するために、3Dプリンタで固定するものを作ります
githubにてモデルデータを公開しているため、ダウンロードして印刷すれば完成します
印刷後、サーボモータをネジで固定し、糸などでターンアウトレールとサーボモータの羽をくくりつければ改造完了です
ストップレール
ターンアウトレールよりは簡単で、サーボモータをネジ等で固定し、ポイントとサーボモータの羽を固定すれば改造完了です
自家製プラレール
ターンアウトレールにてレールを並行分岐させるとレールが少し足りない事態になります
今回作成したものは2本の自作レールが必要になります
1本目が通過線のすぐ横にあるレールです
1/4直線レールよりも少し小さいレールでないとはまりません
トミカからそのようなレールは現在のところ販売されていない(2018/11/21現在)ため、3Dプリンタで作ります
もちろんこのデータもgithubに公開済みですので、ダウンロードして印刷すれば完成します
2本目が駅にて一番外側にあるレールです
レールというよりはレールとレールを接続するためのコネクタというべきでしょうか
もちろんトミカからそのようなレールは現在のところ販売されていない(2018/11/21現在)ため、3Dプリンタで作ります
このデータはgithubにはありません(ゴメンナサイ)
しかし、githubにて"レールと繋がる部分(rail_down.stl)、レールの長さの部分(rail_middle.stl)、レールと繋げる部分(rail_top.stl)"と、レールを各パーツごとに公開しています
ThinkerCad等の3Dモデルソフトまたはアプリにて各パーツをインポートしくっつけて作成をしてください
プログラム
プログラムはobnizのリポジトリところで公開をしています
サーボモータとobnizの接続は以下のようになっています
0pin -- vcc
1pin -- gnd
3pin -- レールの一番外側にあるストップレールのサーボモータのsignal
4pin -- レールの一番外側から二番目にあるストップレールのサーボモータのsignal
5pin -- ストップレールを分岐させるためのターンアウトレールのサーボモータのsignal
6pin -- 通過線とストップレールの分岐をさせるためのターンアウトレールのサーボモータのsignal
レールを組み立て、レールの改造し、obnizとサーボモータを接続し、プログラムを起動すると以下のような画面になります
マニュアルモード | お手軽モード |
---|---|
マニュアルモードとお手軽モードの2つを表示しています
マニュアルモードでは各ストップレールやターンアウトレールを制御していくものです
車両が一台であれば容易に制御できますが2台以上になるとかなり難しいです
次にお手軽モードですが、停止させたい駅や通過させたい駅へ簡単に誘導してくれます
マニュアルモードよりも容易に制御することができます
また、お手軽モードでは駅へ停止命令を出したときにデフォルトでは10秒経過後に自動で発車をします
操作画面にて、すこし技術的な話をすると、レイアウトはbulmaというCSSライブラリで作っています
軽量でかつjavascirptの依存がないためobnizが読み込んでいるjqueryにも影響がでないと判断してこのライブラリを使用しました
トグルスイッチについてもbulmaで書かれているbulma-switchというライブラリで実現しています
ライブラリをつかいつつJavaScriptでいい感じにプログラムをかき、いろいろ微調整して完成をしました
まとめ
obnizを使ってプラレールをスマートフォン等の端末で操作できるものを作ってみました
obnizのおかげでマイコンのプログラムとWebアプリを同時に作ることができるのため、短時間でスマホで動かすおもちゃが作れるので便利です(しかし、ネット環境がないと動かせないのがネックですが・・・)
最後に宣伝です
いつもはブログにて活動をしています
obnizだけでなくARに挑戦したり、いろいろ作ってみた記事を掲載しています
それでは良いお年を