airpocketのアイコン画像
airpocket 2023年08月22日作成 © MIT
製作品 製作品 閲覧数 403
airpocket 2023年08月22日作成 © MIT 製作品 製作品 閲覧数 403

microbitでプラレールハック その2 リモコンポイント

microbitでプラレールハック その2 リモコンポイント

はじめに

この記事は、otamaさんが作成したmicroガタゴッtという作品について説明する記事のその2です。
小学校高学年くらいなら出来る内容だと思いますが、プラレールに穴をあけたりしんちゅう線を曲げたりするため、すこしむずかしいかもしれません。

microガタゴッtとは

maicroガタゴッtは たのしいmicrobitコンテスト2023 にエントリーするために作成されました。
プラレールをハックしてmicrobitをつかって次の4つの機能を追加します。。

①プラレールをリモコン操作する
②駅位置を検知して自動停発車する
③ポイントをリモコンで切り替える
④自動踏切を作る

すべて組み込むとこんな感じに遊べます。

ここに動画が表示されます

この記事について

この記事では、microガタゴッtに追加する機能③について扱います。

できたもの

キャプションを入力できます
ポイントとサーボをしんちゅう線でつなぎ、リモコン操作でプラレールのポイントを切り替えます。

部品表

部品名 個数 備考
micro:bit 2 V1でもV2でもOK
プラレールポイント 1
GeekServo 9G Servo-Gray 1 なるべく大きい方が良い
LEGOテクニック 適量 サーボを段ボールに固定します
LEGOテクニック歯車(大) 1
micro:bit用ワークショップモジュール 1
φ1しんちゅう線 10cm程度
段ボール 適量

必要な工具はこちら

工具名 備考
ニッパー しんちゅう線を切るのにつかいます
ラジオペンチ しんちゅう線を曲げるのにつかいます
φ1ドリル しんちゅう線を通す穴を開けます。セットで購入しておくと便利です
ピンバイス ドリルを固定するハンドルです

工作

写真の様に、段ボールの上にサーボとプラレールのポイントパーツを固定します。
サーボには歯車を取付け、歯車とポイントの可動レール(黄色い部品)をしんちゅう線でつなげます。
写真内では、歯車に付けた黒いコネクタパーツと、ポイントの側面にドリルで穴を開けてしんちゅうを通し、折り曲げて固定しています。ポイント側は、青いレールは貫通し、黄色いレールに引っ掛けています。

コーディング

今回、microbit公式のmicropython環境でコーディングしました。
送信機側と受信機側をコーディングしています。受信機側がプラレールに載せる側のmicrobitです

送信機側にはプラレールのリモコン制御用のコードも含まれていますが、このまま使用しても問題ありません。
送信機側、受信機側ともBボタンを押すたび、ポイントのサーボが動きます。
サーボの角度は工作した内容に合わせて調節が必要ですので適宜変更してください。

送信機側microbit

# Imports go at the top
from microbit import *
import radio
display.show(Image.HAPPY)
flag_a = 0
flag_b = 0
radio.on()
radio.config(group=1)
while True:
    if button_a.was_pressed():
        if flag_a == 0:
            flag_a = 1
            radio.send('a')
            display.show('a')
        elif flag_a == 1:
            flag_a = 0
            radio.send('b')
            display.show('b')
    if button_b.was_pressed():
        if flag_b == 0:
            flag_b = 1
            radio.send('c')
            display.show('c')
        elif flag_b == 1:
            flag_b = 0
            radio.send('d')
            display.show('d')

ポイント側microbit

# Imports go at the top
from microbit import *
import radio
radio.config(group=1)
radio.on()

# Code in a 'while True:' loop repeats forever
while True:
    if button_a.was_pressed():
        display.show('c')
        pin0.write_analog(69)
    if button_b.was_pressed():
        display.show('d')
        pin0.write_analog(100)

    message = radio.receive()
    if message:
        display.show(message)
        if message == 'c':
            pin0.write_analog(69)
        if message == 'd':
            pin0.write_analog(100)
1
airpocketのアイコン画像
電子工作、プログラミング、AI、DIY、XR、IoT M5Stack / Raspberry Pi / Arduino / spresense / K210 / ESP32 / Maix / maicro:bit / oculus / Jetson Nano / minipupper etc
ログインしてコメントを投稿する