プログラミングの活用を見据えた教育用マイクロコンピュータとソフトウェアの比較検討

横浜総合高等学校 康 允範(かん ゆんぼむ)先生

マイコンはハードルが高い?

ご本人提供
ご本人提供

今回はマイクロコンピュータ(マイコン)とそれらを制御するソフトウェアの比較についてお話しします。そもそもマイコンとはどういうものかというと、定義的には「コンピュータの分類の一つを表し、マイクロプロセッサーを使って作られた小型のコンピュータ一般をさす」(日本大百科全書)となっています。「マイクロコントローラの略」と言われることもあります。

 

具体的には、micro:bit、CyberPi、Arduinoなどが挙げられます。

 

マイコンはいわゆるIoT(Internet of Things:モノのインターネット)などに使われています。有名なものとしては、Apple Watchなどのスマートウオッチや、ウェアラブルウオッチがあります。腕時計に温度計や、脈拍を測るセンサー、振動センサーなどを組み込んで、それらが健康的に過ごすための指標となる数値を取得して表示します。それをAI機能で分析して、「最近運動していませんよ」といったことを警告するというのが、機能として一番身近なものでしょう。

 

 

こういったマイコンに対して、以前の私はいくつかの懸念点と思われるイメージを持っていました。

 

まずは「工学的な知識が必要なのではないか」というイメージです。実際、工学的な知識が若干は必要だと思いますが、このイメージからハードルの高さを感じていました。

 

また、ロボット制御には様々なパーツが必要で、値段が高そうなイメージがありました。さらには、そもそもプログラミングが必修化されてプログラミングだけで手いっぱいの中でマイコンまでやる余裕があるのか、という考えもあるかと思います。私自身、情報科の教員になるまでは、マイコンなどほとんど触ったことがなく、工学系の知識が必要だということもあって苦手意識さえ持っていました。

 

 

ロボカップジュニアのOnStageリーグでロボットに出会う

 

では、なぜそんな私がこのテーマをやるのかというと、前任校の科学部でロボットを作っている生徒たちがいて、そこの顧問になったため生徒と一緒に勉強した、ということがキッカケとなっています。彼らは、ロボカップジュニアのOnStageリーグ(※1)に挑戦していました。

 

それまで私の中ではロボットの大会というと、テレビで取り上げられるロボコンのように、玉を投げたり障害物を乗り越えたりする、というイメージがありました。しかし、OnStageリーグは、自律型のロボットの2分間のダンスや演技に対して、パフォーマンス審査とインタビュー審査で審査をするというものでした。パフォーマンス審査ではダンスや演技を行うのですが、インタビュー審査では、インタビューや面接形式で、自分たちのロボットがどんな構成で、どういったところを工夫したのか、実際のプログラミングのソースコードを見せて、コンセプトも含めてプレゼンします。これが教育的にも非常に良かった。

 

※1 https://www.robocupjunior.jp/info.html#dance

 

そういったことを生徒と一緒に勉強する中で、これは情報教育として充実しているということを実感して、プログラミングだけでなく、物を作り上げていくというところで、マイコンに興味を持つようになりました。今日は、このような私の経験を踏まえて、マイコンやソフトウェアをご紹介しながら、それぞれを比較して、皆さんが教育用マイコンについて理解し、不安感を和らげていただくこと、そして教育用マイコンとソフトウェアの選定材料となる情報を得てもらうこと、この2つをご提供できればと思います。

 


 

校種ごとのプログラミング教育の目標とマイコン活用の意味

 

まず、現在プログラミング教育がどのような流れになっているのか、ざっくりと説明します。

 

プログラミングが小中高と必修化され、小学校に関しては昨年度から、中学校では今年度から拡充、そして高校ではいよいよ来年度から「情報Ⅰ」が全面実施となります。今、情報科の皆さんは教科書を選定し終えて、「情報Ⅰ」に向けて環境を整えている段階だと思います。

 

※クリックすると拡大します。

 

このプログラミング教育で、どういったことを求められているのか、狙いにするのか、というのは、校種ごとに異なります。

 

小学校では、いわゆるプログラミング、コーディングをゴリゴリできるようになるというより、プログラミング的思考を身に付けて、try and errorを繰り返しながら、コンピュータが身近なところで活用されていること、問題の解決には手順があることを知ることが求められます。

 

中学校では従来のセンサーを使った「計測、制御のプログラミング」に加えて、今回の学習指導要領からは、ネットワークを利用した双方向性のあるコンテンツのプログラミングについて学びます。そして、高校では「プログラミングを問題解決や探究により活用する(モデル化、シミュレーションも含む)」ということになっています。

 

 

このような学習指導要領の中で「なぜマイコンを使うのか」ということですが、大きく2つの意味があると思います。

 

まず、マイコンはプログラミング的思考・体験に非常に適しています。実際、プログラミングをして、それが自分の思いどおりに動くか動かないかということをリアルで体験でき、非常に身近に感じられると思います。

 

さらに、問題解決のために、センサーで取得した明るさや温度といったリアルの情報を分析したり、動きに転用したりといったことができます。高校の学習指導要領には、「適切なソフトウェア、開発環境、プログラミング言語、外部装置などを選択すること」とありますが、こうしたマイコンなども外部装置として適切なものを選択していく必要があると思います。

 

 

micro:bit、CyberPi、Arduino、Raspberry Piを徹底比較!

 

こういった背景を踏まえて、ハードウェアを具体的に紹介していきます。

 

今回ご紹介するハードウェアは、micro:bit、CyberPi、Arduino、Raspberry Piの4つです。厳密に言うと、Raspberry Piはマイコンというよりは、シングルボードコンピュータといわれるものですが、今回は比較ということでマイコンの一種として話を進めていきます。

 

micro:bitとCyberPiは、結構な数の基本センサーやモジュール、ボタンなどが内蔵されています。一方、ArduinoやRaspberry Piは、複雑なことができますが、基本的なセンサーやモジュールが付いていないため、外付けする必要があります。

 

micro:bitとCyberPiは易しくて、簡単な制御が可能ですが、複雑な制御をしようとするとしんどいところもあります。一方で、Arduino、Raspberry Piは、扱いは難しいですが、複雑な制御が可能です。

 

 

○micro:bit 比較的安価で制御も容易、情報量も豊富

 

一つひとつの特徴を見ていきましょう。micro:bitの特徴は、比較的安価で制御も容易であることです。多くの学校で使われているので、情報量も豊富です。様々なセンサーが付いているので、手軽に制御ができるといったところで魅力的です。

 

 

○ネットワークに強いCyberPi、公式テキストで授業にすぐ使える

 

CyberPiは、最近出てきた商品です。ネットワークに強みがあるというのがこのマイコンの特徴です。micro:bitになく、CyberPiにあるものが、フルカラーディスプレー、ジョイスティック、Wi-Fiモジュールです。まだ発売されてから間もないために情報量は少ないですが、公式テキスト(まだ和訳はありません)が、授業でそのまま使えるレベルで充実しており、教育用に特化しているのも魅力です。

 

 

○Arduinoはハードウェアな電気信号の扱いが得意

 

Arduinoは、センサーやLED、モータの制御などハードウェアな電気信号を扱うことが得意です。ピンを刺せる箇所が多く、これで様々なセンサーをつないで制御することができます。さらに、拡張モジュール(シールド)をはめて、簡単に拡張するということも可能です。

 

 

○複雑なことができるのはRaspberry Pi

 

Raspberry Piの大きな特徴は、Linux系のOSで動作するので、アプリやOS処理が可能なことです。インターネットで検索したり、モニターにつないで映像を出力したりすることまでできます。個人的には、4つの中では、一番複雑なことができると感じています。

 

 

4つのマイコンの内蔵モジュールの比較がこちらです。ArduinoとRaspberry Piには、基本的に内蔵モジュールはありませんが、Raspberry Piの一部のモデルにはWi-Fiモジュールが搭載されていて、ネットワークにすぐ接続できます。

 

micro:bitやCyberPiは多くのモジュールが入っているので、最初から手軽にセンサーの制御などができるのが特徴です。

 

 

Raspberry PiやArduinoは電子工作が必要となるケースが多いです。電子工作自体、手間がかかり大変な部分もありますが、その一方で、一個一個の部品がどのような動作をしているのか、ということを考えながら、回路も含めて作っていかなければならないので、プログラミング的思考の題材として扱うことができるのではないかと思います。

 

また、理科の電気回路や、技術科の「エネルギー変換に関する技術」の単元でも扱うことができるというメリットもあります。

 

micro:bitに関しては、サードパーティー(コンピュータ本体のメーカーとは直接の関係がないメーカー)の拡張モジュールも、カセットのように簡単にはめられるので、電子工作の負担は軽いと思います。

 

CyberPiは、mBuildという規格でセンサーやモータなどのモジュールを差し込み口に差していくだけで簡単に追加していくことができ、電子工作の負担は非常に軽いです。一方で、いわゆる回路を作ったり、ワニ口クリップで接続したりといったことについては、一工夫が必要になってくるので、電子工作をやりたいのであればmicro:bit、複雑なことをやりたいのであれば、ArduinoやRaspberry Piの方がよいかもしれません。

 

 

マイコンに使えるソフトウェアの特徴は

 

ここからはソフトウェアの紹介をしていきます。全てのハードウェアで全てのソフトウェアが使えるというわけではありませんので注意してください。

 

ソフトウェアはハードウェア以上にいろいろなものがありますが、ハードウェアの比較と同様に大きくビジュアルプログラミング言語とテキストプログラミング言語に分けてみました。

 

MakeCodeとmBlockはビジュアルとテキストの両方を備えています。テキストプログラミング言語は、非常に多くの種類がありますが、今回は、小学校・中学校での実践を踏まえた上での検討をしていきたいと考えているので、ビジュアルプログラミング言語を扱えるものを中心に紹介します。

 

 

○プログラミングの入門にうってつけのScratch、Microbit Moreで活用範囲も拡大

 

まずScratchです。プログラミングの入門編として有名で、情報量も非常に豊富です。Scratch単体ではmicro:bitの制御は簡単なことしかできませんが、Microbit Moreを活用するとmicro:bitの全てのセンサーを活用することができるようになります。ただ、micro:bitの制御のためには、パソコンと常時接続しておく必要があります。

 

 

○MakeCodeはmicro:bitと好相性、テキスト言語の使用も可能

 

MakeCodeは、micro:bitの制御で一番活用されているソフトウェアではないかと思います。micro:bitの付属センサーだけでなく、カセットを取り付ける形で拡張機能を追加することも可能です。そういったところでサードパーティーの拡張センサーも多く提供されています。

 

さらにMakeCode は、Minecraft(※2)というゲームのプログラミングとしても使用可能なので、非常に夢があってとっつきやすい、という特徴もあります。

 

Scratchと違ってMakeCodeは「アップロードモードのみ」であり、プログラムをmicro:bitに一回ごとにアップロードして動作を確認するというひと手間がかかります(シミュレーターで動作を確認することは可能)。しかし、アップロードモードの方が時間のロスなく制御することできるので、一長一短になります。

 

さらにMakeCodeは、ビジュアルプログラミング以外にJavaScriptとPythonといったテキスト言語を扱うことができ、ブロックからテキストへのコードの変換が可能です。

 

 ※2 https://www.minecraft.net/ja-jp

 

 

○mBlockはCyberPiを制御できてネットワークに強い、Google Workspaceとの連携もできる

 

mBlockは、Scratchベースで作られているので、Scratchでできることはほとんどできます。CyberPiを制御できるソフトウェアで、Scratchよりもデバイス間連携やネットワーク連携が容易、つまり、ネットワークに強みを持つ製品です。さらには、Google Workspaceなどのクラウドサービスとの連携ができ、Google Classroomで課題を出したり、Googleスプレッドシートに書き込んだり、データを取り込んだりすることもできます。

 

また、ライブモードとアップロードモードの切り替えが可能です。Pythonも扱うことができ、ブロックからPythonに変換したソースコードの閲覧も可能です。ただし、変換したものを直接編集することはできませんが、変換したらどのようにコードが変わるのか参考にすることはできます。このコードはコピペもできますのでコピペした後に編集することは可能です。

 

さらに、Pythonエディタというものがあり、サードパーティーのライブラリの使用も可能です。Pythonは、様々なライブラリを追加して機能を増やすことができるのが特徴ですが、mBlockもこれが可能です。

 

 

ソフトウェアの比較表

 

プログラミング言語とソフトウェアの比較がこちらです。

 

ビジュアルプログラミング(ブロックタイプ)は、今回紹介したScratch、MakeCode、mBlockの全てで扱えます。JavaScriptに関しては、MakeCodeで、Pythonに関してはmBlockとMakeCodeで扱うことができます。

 

下の表では、各ハードウェアに対してどういったOSやソフトウェアが使えるか、ということを一覧にしました。実は、ScratchはArduinoやRaspberry Piでも使えます。やろうと思えば小学校でArduinoやRaspberry Piを使ってScratchを用いた授業が可能です。ただ、基本的にはテキスト言語で操作するのがメジャーです。

 

 

校種ごとのお勧めの組み合わせ

 

ここまでハードウェアとソフトウェアの比較検討をしてきましたが、ここからは校種ごとの個人的なお勧めの一例をご紹介させていただきます。多くのものがオープンソースであるため、GitHub(※3)などには様々な実践方法が載っていますが、教員が授業の中でできるというレベルで、校種ごとに検討してみました。

 

※3 https://github.co.jp/

 

CyberPiをScratchで制御することはできませんが、ScratchベースのmBlockで制御できるので、全てのハードウェアをScratch系で制御できます。Scratchで制御できるハードウェアの中でもmicro:bitについては、Microbit Moreでセンサーの制御をより詳細にできるので、中学校レベルまで活用することが可能なのではないかと思われます。mBlockでmicro:bitを制御することも可能ですが、メッセージ機能(スプライトやデバイスが連携するためのメッセージ機能)が使えないため、今回は割愛しています。なお、矢印が点線になっているところは、「使うことができないわけではない」という意味を含んでいます。

 

Scratch以外では、micro:bitでいうと、MakeCodeが小学校高学年から高校まで使えるのではないかと思います。逆に、小学校低学年のところが点線になっているのは、この年齢層に関しては、スプライトが使えるかどうか、という点を考慮しているからです。スプライトは、画面上で、ゲーム感覚でキャラクターを表示して動かすことができるものですが、これがあることは、初学者にとってはとても有効であると思われるので、この有無を鑑みています。

 

小学校に関しては基本的にビジュアルプログラミングを扱うことができること、中学校は、センサー制御と双方向デバイス間での連携ができることを想定しています。さらに、中学校でコーディング(テキストプログラミング)はまだハードルが高いと感じるので、そこに関しては、ビジュアルプログラミングが使えるものということで考えました。

 

高校に関しては、データ分析やネットワーク越しに情報を取得したり吐き出したり、テキスト言語が使えるかどうかを考慮しています。さらに、「情報Ⅱ」に関しては、AIやIoT的なことを無理なくできるか、拡張性が高いかというところを判断基準にしてみました。

 

※クリックすると拡大します。

 

「どのような力を育みたいか」を考え、学校の特色、カリキュラム、時代に沿って最適なものを選ぶ

 

まとめです。私が今回いろいろと調査したり、一通り触ってみたりして感じたのは、まず「どのような力を育みたいか」、そして「学校の特色やカリキュラムと時代に沿って適当なものを選択していく必要がある」といったところが重要であるということです。それぞれのハードウェア、ソフトウェアに特色があるので、児童生徒に対してどのような力を付けさせたいのか、何に対してどのように一緒に学んでサポートしていきたいのか、ということに左右されると感じました。

 


また、忘れてはいけないのは環境です。自治体によってプロキシサーバーの有無、セキュリティーの厳しさ(ドライバーが入れられるかどうか、Googleと連携できるかどうかなど)など様々です。選定にあたっては、こういった環境を確認する必要があります。

 

さらには、プログラミング言語はテキストプログラミング言語を採用するのか、テキストだとすればPythonなのかJavaScriptなのか、といったことも考えなければなりません。Pythonであれば構文は簡単ですし、AIやIoTを学んだりデータ分析をしたりすることもできます。JavaScriptであればGoogle Apps Script(GAS)との親和性が高いです。

 

今回私が提供した内容も、数か月後には大きく変わっているかもしれません。5年後も同じもので続けていけばよいのか、と言われると、それは正直違うのではないかと感じています。アンテナを張って、時代に沿って選定していかなければならないのではないかと思います。

 

今現在、個人的には、CyberPiとmBlock、micro:bitとMakeCodeの組み合わせが小学校から高校までオールインワンで活用でき、電子工作も少なく手軽でよいのではないかと感じています。一つのツールでビジュアルとテキストを切り替えながら制御できるということは、生徒も教員もやりやすいのではないかと思います。

 

皆さんの不安感が、この動画で和らげられたり、教材選定の材料になったのであれば幸いです。MakeblockやCyberPiに関しては、私自身のYouTubeチャンネルやウェブサイト「あるふネット

 

でまとめているので、ぜひそういったところもご覧いただき、情報交換ができれば嬉しいです。

 

第14回全国高等学校情報教育研究会全国大会(大阪大会) 口頭発表/オンデマンド発表 より