2019年3月23日、株式会社ライカーズアカデミアの成果発表会にてMiotcraftを発表してきました。
現実世界からMinecraftを操作、またMinecraftの世界から現実世界に影響を与えることができます。
今回は、手元のボタンを押すとTNT爆弾が爆発したり、指定の場所に行くと現実世界のモーターが回るというものを発表しました。
発表の様子
発表用のアトラクションを小学生が作り、主なプレゼンとコーディングは大学生が担当しています。
仕組み
問題解決型基板SchooMyを使用しています。
回路設計をせずに色々なセンサーが使えるので、プログラミングに集中できます。
またArduino互換なので、やりたいことは検索すると大抵出てきます。
とはいえ、Minecraftと繋げている事例はなかったので、2つを組み合わせました。

Python⇔SchooMy
まずはSchooMyにはFirmataというPCとの通信プロトコルが書かれたプログラムを書き込みます。
PC側にはPythonを入れ、PyFirmataというライブラリを使って基板の中のFirmataと通信をします。
下記のサイトを参考にしました。
(やっていくうちに、実際に入れたライブラリはPyFirmataになり、最終的にはpyMataになりました。)
Python⇔Minecraft
Pythonを使うためのMODを入れて、Minecraftプログラミング環境を作ります。
MODを使うので、JAVA版Minecraftしか対応していません。
PythonでMinecraftプログラミングの例は書籍も出てますし、丁寧に解説されているサイトも多いですね。
私は下記を参考にしました。
![]() | Minecraftで楽しく学べる Pythonプログラミング 新品価格 |

Minecraft⇔SchooMy
あとはこれらをマージさせるだけです。
SchooMyのOUTAにスイッチコネクタンをつないで、下記のプログラムを実行させると、Minecraft上に「Hallo World!」が表示されます。
import mcpi.minecraft as minecraft
import pyfirmata
mc = minecraft.Minecraft()
board = pyfirmata.Arduino("COM3")
button = board.get_pin('d:5:i')
it = pyfirmata.util.Iterator(board)
it.start()
button.enable_reporting()
while True:
if str(button.read()) == 'False':
mc.postToChat("Hello world!")
board.pass_time(1)
あとはMinecraftの世界からLEDを光らせるなりモーター回すなり、動画のように現実世界からTNT爆発させるなり、好きにいじってください!
今後の展望
SchooMyを使ったことがないという方やPythonの開発環境構築をしたことがないという方の為に丁寧にHowToをまとめた記事を書きたいと思っています。
現在、Pythonでプログラムを走らせてからMinecraftの画面に切り替えて、、とやっているので、Minecraftから直接Pythonプログラムを叩く方法も調べないといけないので、まだしばらくお待ちください。
あとそもそもこれ、「Miotcraft」のプロジェクトなので、IoT化させないとゴールではないわけです。
IoT謳っておきながら今めっちゃ有線ですからね!
あかん!
SchooMyのIoT版は出ているので、それを使ってTNTを爆発させるのが当面やっていくことかなーって思ってます。
引き続き当ブログへの応援をよろしくお願いいたします。