E1-2

Scratch と Arduino を活用したプログラミング教育の実践
A Study on the Practice of Programming Education Using Scratch and Arduino
天良 和男
Kazuo TENRA
東京学芸大学Tokyo Gakugei University
Email: ktenra@u-gakugei.ac.jp
あらまし：筆者は，世界的に普及しつつあるビジュアルプログラミング言語 Scratch やワンボードマイコ
ン Arduino などを活用した教材を使って様々な授業でプログラミング教育を実践してきた．初等中等教育におけるプログラミング教育の必修化の流れの中で，Scratch や Arduino などのオープンでユーザーフレンドリーな情報環境を活用することで，比較的容易にプログラミングの授業を展開することができる．
キーワード：プログラミング教育，Scratch，Arduino，3G シールド，IoT

1.

はじめに

2.

Arduino と Scratch

3.

Arduino を使ったプログラミング教育

AI（Artificial Intelligence; 人工知能）や IoT（Internetof Things：モノのインターネット化）は，従来のものづくりに大きな変革をもたらし，第 4 次産業革命を起こすともいわれている．そのような社会的変化の中にあっても，より良き社会を築いていくために必要な資質・能力が求められている．
とりわけ，論理的思考力や創造力，問題解決力などの能力を育成するにはプログラミング教育が極めて有効であることは論をまたない．このような状況の中で，筆者はかねてよりオープンソースハードウ
ェアであるワンボードマイコン Arduino やビジュア
ルプログラミング言語 Scratch を活用した教材を使ってプログラミングの授業を実践してきた．

Arduino は安価なオープンソースハードウェアであり，本体の回路図や開発環境である IDE が無料公開されており，取り扱いが容易である．
一方，Scratch は MIT（マサチューセッツ工科大）で開発された小学生にも使える教育用のプログラミ
ング環境で，ブロックを積んでいくことで視覚的にわかりやすいプログラムができるため，入門用のビジュアルプログラミング言語としで活用されている．
Scratch を使って Arduino を動かすには，一般のScratch ではなく，入出力端子を制御するためのブロックを追加した Scratch for Arduino などの環境が必要になる．

前任校の東京都立小石川中等学校において，論理的思考力や創造力，問題解決力などの能力を育成するための学校設定科目「Arduino によるフィジカルコンピューティング入門」を設置し，プログラミング教育を実践した．
この科目は選択科目であるため関心・意欲の高い生徒が履修していることから，Arduino 開発環境である IDE を使って Arduino 言語によるプログラミングを行わせた．なお，Arduino 言語は，C++言語のコンパイラと，Arduino としての各種ライブラリを組み合わせた形になっている．また，Arduino 用のシールドとして 3G シールドを活用させた．このシールドは第 3 世代（3rd. Generation）通信網と通信できるモジュールを載せた Arduino 用の拡張ボードである．
Arduino に 3G シールドを接続することにより，Wi-Fi ではなく 3G 回線で Web サーバやメールサーバなどと簡単に送受信することができ，Arduino に接続されたセンサやアクチュエータとスマートフォンなどの間でデータのやり取りを行うことができる．
図 1 は Arduino と 3G シールドであり，これにセンサを取り付けてた独自のアイデア作品を完成させることがこの科目の最終目標である．
図 2 は作品の１つである高齢者見守りシステムである．このシステムは，冷蔵庫のドアを開けると庫内の照明が点灯し，ドアを閉めると照明が消灯することを利用して，庫内に設置した光センサで照度を測ることにより冷蔵庫の使用頻度を知ることができる．Arduino は，アナログ入力ポートに接続された光センサから得た情報をもとに，照度変化の頻度が設定した値より少ないと 3G シールドを経由して電子メールをスマートフォンなどに送る．
これにより冷蔵庫を利用している独居高齢者の行動を見守ることができる．これは外部のコンテストに応募して受賞した作品である．これ以外にも植物遠隔水やりシステムやペット管理システム，心拍数測定システムなどの様々な作品が誕生した．
3G ｼｰﾙﾄﾞ
Arduino+3G ｼｰﾙﾄﾞ

SIM カード

図1― 85 ―Arduino冷蔵庫

Arduino+3G ｼｰﾙﾄﾞ 図 2

光センサ

高齢者見守りｼｽﾃﾑ

教育システム情報学会 JSiSE2016
第41回全国大会 2016/8/29-8/31

4.

Scratch を使ったプログラミング教育

文部科学省は，2016 年 4 月 19 日，小学校でのプログラミング教育の必修化を検討すると発表し，2020 年度からの新学習指導要領に盛り込む方向で議論が進みつつある．このような状況の中で，初等中等教育の教員を養成する本学の授業を担当する者として，特に小学校でのプログラミング教育に関する研究を行っているところである．
そこで，筆者が担当している本学の 1 年生に開講している共通必修科目「情報」と 2 年生に開講している「教育支援演習」の一部の時間において Scratchを使ったプログラミングの授業を行った．
両科目とも，Scratch によるプログラミングに費やした時間は 140 分（1 回 90 分で 1.5 回分）程度の短い時間ではあるが，「教員になったら小学生にぜひ教えてみたい」などの肯定的な感想が得られた．
授業では，主な命令ブロック（イベント，制御，動き，見た目，音，調べる）の機能を説明したあと，これらの機能を使って図 3 のような簡単なゲームの作成を行った．このゲームプログラムの動きは，左右に移動するボールに猫が衝突しないように上向きのキーを押すと猫がジャンプするが，衝突すると猫の色が青くなる．このプログラムは図 4 のようにブロック数は少なく簡単であるが，様々命令ブロックや並行処理などの多様な要素を含んでいる．

さに対して入力端子に Low の信号が与えられるようになっているが，光センサを手で覆うなどすれば入力端子に High の信号が与えられるようになっている．図 4(1)のプログラムでは，上向きの矢印キーを押すことで猫とボールとの衝突回避を行っていたが，図 6 のプログラムでは，光センサを手で覆うことで衝突回避を行うことができる．
初心者にはこのようなシンプルなプログラムや回路を使って体験させることが重要であると考える．
Arduino の取り扱いやその他の事例については，時間的な制約があるため，反転学習用として図 7 のような動画教材にして YouTube にアップし，限定公開の形で視聴できるようにした．

Arduino

図5

光センサ

光センサを取り付けた Arduino
変更箇所

図6

変更した猫のプログラム
Scratch

図 3 ゲームの動き

Arduino図 7 動画教材の例

6.

プログラミングは，論理的思考力や創造力，問題解決力などの能力を育成し，IoT 時代のイノベーションを創出する基礎になると考える．

(1)ボールのプログラム (2)猫のプログラム
図 4 ゲームプログラム

5.

おわりに

Arduino と Scratch の組み合わせ

教育支援演習の授業の最後に，Arduino と Scratchを組み合わせた事例も紹介した．
図 5 にように Arduino のディジタル入力端子に光センサ回路を取り付ける．図 4(1)のボールのプログ
ラムは変えないで，図 4(2)の猫のプログラムだけを図 6 のプログラムに変更する（変更箇所は 1 か所）．
図 5 は光センサである CDS セルと抵抗器だけの非常に簡単な回路であるが，光センサの周囲の明る参考文献(1) 天良和男:“フィジカルコンピューティングを取り入れた情報科教育の実践 ～教科横断的学習や授業支援システムによる反転授業を取り入れた授業展開”,
日本情報科教育会誌, Vol.7, No.1, pp.55-63 （2014）(2) 天良和男:“プログラミング教育必修化に対応する教育支援人材の育成 ～プログラミング教育必修化に向けての方策”, 日本情報科教育学会第 9 回全国大会
講演論文集, （2016）― 86 ―