micro:bit(マイクロビット)を超える? 教育用マイコン である makeblock社 の CyberPi(サイバーパイ)を動かすプログラミングソフト、mBlock でプログラミングをしてディフェンスゲームを作ってみましょう!
mBlock(エムブロック)は、ビジュアルプログラミング(ブロック)として有名な Scratch(スクラッチ)をベースとして作られており、Scratch でできることはほとんど mBlock でできます!
今回はプログラミング入門編ということで、この動画を見れば mBlock の使い方がわかり、誰でもゲームを作ってみることができます。mBlock も Scratch も 無料でダウンロードできますので(UIは異なりますがスマホでもダウンロード可)、動画を見ながらぜひ一緒にディフェンスゲームを作ってみませんか?
本動画の内容はプログラミングの基礎がほとんど含まれています。そして、本動画の内容を理解することによってCyberPi を制御することができるようになるものとなっています!
以降では、動画でも触れる「mBlockとは」といった点を中心に、動画の補足内容を記載しています。「mBlock で Python を用いたプログラミング」についてにも画像を交えて補足していますので良ければご覧ください。
mBlock(エムブロック)とは
mBlock(エムブロック)は Scratch(スクラッチ)をベースとして作られており、基本的な部分は Scratch とほとんど同じです。
Scratch は、ブロック型のビジュアルプログラミング言語であり、ブロックを組み合わせるだけで誰でも簡単にプログラムを組むことができます。
その特性故に、小学校でも導入され始めている「プログラミングの入門ソフト」と言っても過言ではないでしょう。
mBlock が Scratch よりも優れている点
今回の動画では、Scratch ではなく、mBlock を使用しているのですが、その理由は下記の二点となります。
- ネットワーク接続に強みがあり、IoT や STEAM教育 にも適している CyberPi(サイバーパイ)を制御することができる
- Scratch よりもより高度なことができる上に、デバイス制御の点でわかりやすい設計
なお、本記事の内容は、Scratch を用いた場合でも同様のゲームを作成することが可能となります。
しかし、今回のゲームにジョイコンの要素を取り入れたりと、デバイスと連携をしたい場合は、mBlockを用いて作成することをオススメします。
CyberPi をジョイコン化してゲームに取り入れた記事はコチラをご覧ください。
また、CyberPi や mBlock についての詳細はコチラにまとめていますので良ければご覧ください。
マルチOS対応
Scratch(スクラッチ)等のビジュアルプログラミング言語を扱うソフトのほとんどがマルチOS対応です。mBlockもそれに漏れず、マルチOS対応となっています。
iOS と Android でもやろうと思えばブラウザでできますが、CyberPi などのデバイス連携は、対応するドライバが今のところ(2021年6月現在)ないため、ブラウザ上ではできません。
なお、現在(2021年6月)の Mac版アプリ v5.3.0 においては、一部のブロックが使用できないため、注意が必要です(本記事の内容においては問題ありません)。
Python対応
mBlock(エムブロック)は、テキストプログラミング言語である Python(パイソン)を扱うことが可能です(iOS と Android のアプリでは Python は使えません(2021年6月現在))。
現在(2021年6月)では、Python でプログラムを記述する方法は「Pythonエディターを使用する」方法と「Pythonエディターを使用しない」方法の2つがあり、それぞれにメリットがあります。
Pythonエディターを使用しない
ブロック型ビジュアルプログラミング言語(Scratch)のプログラムを Python に変換したものを参照することが可能で、参照したものをコピーして貼り付けるだけで、Python でプログラミングすることができます。もちろん、一から Python で記述したり、貼り付けたものを編集することも可能です。
(MakeCode の JavaScript のようにビジュアルプログラミング言語とテキストプログラミング言語の「変換・編集」をひと手間で行うことは今のところできません)
なお、現在(2021年6月)においては、すべてのブロックを Python に変換したりすべての機能を Python で使用したりすることができません。しかし、「not supported yet」という記載からわかるように、今後サポートされていく可能性は大いにあるでしょう。
しかし、サポートされていないものの多くは「スプライトの制御」や「拡張機能」のもので、CyberPiの制御に関しては、ほとんど Python がサポートされている印象です。
Pythonエディターを使用する
Pythonエディターを使用することで、テキストプログラミング言語でのプログラミングを行う上で便利な機能を活用することができます。また、より Python らしいことができます。
画面左下にはプロジェクトファイルとしてソースコードが記述されたファイルやプログラミングで用いる画像ファイル等の管理が可能です。
また、エディター上部にはタブがあり、複数ファイルをタブで切り替えながらプログラミングをすることができます。
下部には、コンソール画面があり、ここに直接コードを入力して、動作を確認することが可能です。例えば、「print(“hello world”)」と入力してEnterキーを押下すると、「hello world」と画面上に出力してくれます。
実際にプログラムを記述するエディター画面では、変数名や関数名の補完機能や色分け、インデントの整形補助やインデント毎の表示/非表示の機能等が実装されています。
さらには、mBlock に含まれている既存のPythonライブラリだけでなく、追加でライブラリを追加することが可能です。なお、追加ライブラリを使用してCyberPi等のデバイスと連携したい場合、PCとデバイスは接続しておく必要があります(つまり、アップロードモードは使えず、ライブモードにする必要があります)。
少しではありますが、Google の Colaboratory と mBlock の Pythonエディター で動作を比べてみました。その結果、「Colab ではできて mBlock ではできない」というものは、 あるふ が確認したところでは見られませんでした。
つまり、
Pythonの開発環境にもなり得る
といっても良いのではないでしょうか。
コメント