Processing による加速度センサを活用したプログラミング教育の試み
土肥 紳一 1), 今野 紀子 1), 酒造 正樹１) , 前田 英作１)
1) 東京電機大学 システムデザイン工学部
dohi@mail.dendai.ac.jp

Attempt of computer programming education that uses acceleration sensor byProcessing language
Shinichi Dohi 1), Noriko Konno 1), Masaki Shuzo 1), Eisaku Maeda 1)
1) School of System Design and Technology, Tokyo Denki Univ.

概要「重力加速度(9.8m/s2)を意識したことはありますか？」物理学等を学んだことのある人にとっては，重力加速度はお馴染みであるが，重力加速度を実際に測定し，数値として見たことのある人は少ないと思われる．システムデザイン工学部デザイン工学科の「コンピュータプログラミングⅡ」の授業では，Processing を使ってオブジェクト指向の入門を学習する．毎回の授業では，理解度調査のアンケートを実施し，さらに授業の前期，中期，後期に受講者のモチベーションを測定し，分析を行っている．中期のモチベーションの分析
結果から，「ゲームなど遊びの要素を加えながら，学生が楽しめる工夫を増やす」が，授業改善策の一つとして提案された．これを受けて，小型無線多機能センサ(TSND151)を活用
し，重力加速度の測定を授業中に行った．本論文では，授業内容，加速度センサの導入までの経緯，受講者への効果等について述べる．

1

はじめに

2

2017 年 4 月に，システムデザイン工学部(定員2.1 Processing の採用

コンピュータプログラミングⅡ

240 名)が，東京都足立区の北千住にある東京千住

デザイン工学科の開設に当たり，プログラム言キャンパスに開設した．システムデザイン工学部

語を何にするかを検討した．情報環境学部ではは，2001 年 4 月に千葉ニュータウンキャンパスにJava 言語を導入したが，初学者にとって煩雑な操開設した情報環境学部(定員 240 名)が発展的に改作が多い言語であった．Java の環境をインターネ

組し，誕生した学部である．システムデザイン工ットからダウンロードし，テキストエディタを使

学部は，情報システム工学科(定員 130 名)とデザってソースプログラムを入力し，コンパイルを行イン工学科(定員 110 名)の 2 学科で構成されている．

う．コンパイルエラーが発生した場合は修正を行

以下は，デザイン工学科について述べる．

い，再びコンパイルを行い，実行に至る．ここま

デザイン工学科のプログラミングに関する授での手順は，細かいことに注意を払わないといけ

業は，1 年生の後期に「コンピュータプログラミ

ない煩雑な操作が多い．デザイン工学科の授業時ングⅠ」で手続き型の基本を学習する．その後，2

間数は，2017 年度は 90 分，半期で 15 回であった年生の前期に「コンピュータプログラミングⅡ」が，2018 年度は 100 分，半期で 14 回になった．

でオブジェクト指向の入門を学習する．デザイン

情報環境学部では，50 分 2 コマ連続で半期に 27

工学科は，工学の知識と技術を基礎に，設計段階回実施ししてきたが，約半分の時間になった．単から人間・社会への作用まで全体像を見渡しなが位数も 4 単位から 2 単位に半減した．

らデザインする能力を身につけ，グローバルな環

デザイン工学科のプログラミング言語は，スケ

境で創造を実践する能力を養成する．情報環境学

ッチブックに絵を描く感覚でプログラミングでき部の時代のように，コンピュータ，ネットワーク，

る Processing を採用した．元々Processing が，このプログラミング，データベース等の専門家を目指ような設計思想で開発されており，デザイン工学

す人達とは，かなり違っている．

科のプログラム言語として最適だと判断した．さらに，情報環境学部で 2013 年～2016 年に開催し

表 1

章立て

た高大連携型授業「プログラミング入門体験」のはじめに

11 章 配列

経験があった．近隣の高等学校から土曜日の 10:00

1 章 ようこそ Processing へ

12 章 データ～12:00 に登校してもらい開講した．少ないタイピ

2 章 コードを書いてみよう

13 章 拡張3 章 描く

14 章 インタフェース(※)

4 章 変数15 章 ArrayList オブジェクト(※)

した高校生の評判は非常に良かった．その他，デ5 章 反応16 章 HashMap オブジェクト(※)

ザイン工学科の研究室のいくつかでは，Processing

6 章 移動，回転，伸縮

17 章 継承(※)

を使ったアプリケーションの開発を行っており，

7 章 メディア

付録 A コーディングの心得

8 章 動き付録 B デバッガ

9 章 関数

Processing クイックリファレンス

ング量で，結果がグラフィカルに表示され，参加

これらのことも，導入の後押しとなった．
2.2 教科書について

10 章 オブジェクト

教科書は，オライリーの「Processing をはじめ
表 2

よう 第 2 版」を使っている[1]．1 年生後期に「コンピュータプログラミングⅠ」で，1 章～9 章，11
章の配列(オブジェクトを除く)までを学び，残りの内容
1回する事を学ぶ．専門用語(フィールド，メソッド，インスタン

る．この書籍の「はじめに」には，「『Processing
載がある．簡潔な例題と説明が，初学者にとって学びやすい構成になっているが，説明不足な点もス，コンストラクタ，オブジェクトの生成等)を学ぶ．
2回
3回

複数生成し表示する．PImage オブジェクトを取り上げる．
4回

元配列にインタフェースを取り入れることによって，異なる
オブジェクトを配列で利用できることを学習する．
5回

く，便利なオブジェクトである．add，get，remove 等のメソだ後に，14 章から 17 章を先に学び，その後，12ッドを使ってオブジェクトを管理することを学ぶ．
6回

は表 1 に，授業スケジュールは表 2 示す．筆者に3 モチベーションの分析
3.1 モチベーションの測定

ることを学ぶ．
7回
8回
9回

自由記述の欄を設け，授業に対する要望や感想を聞いている．集計結果は授業用の web サイトで公開し，次の授業の冒頭で講評する．授業毎に結果

中間試験
12 章 CSV 形式のデータを Table オブジェクトに入力し，折れ線グラフの表示を行い，これに必要なオブジェクトについて学習する．

10 回

12 章 JSON 形式のデータを JSONObject オブジェクトに入力し，その内容を表示することを学習する．これに必要なオブジェクトの扱いを学習する．

11 回

ステムを活用する．回答は，各調査項目に対して，「はい」「いいえ」の 2 択で回答を求める．その他，

17 章 親クラス（スーパークラス），子クラス（サブクラス）
について学習する．中期アンケート調査実施．

調査を目的としたアンケート調査を実施している．
アンケート調査は，web ブラウザで回答できるシ

16 章 HashMap オブジェクトは，put，get 等のメソッドを使い，順番を意識することなくオブジェクトをキーで管理でき

授業は 2 クラスに分割し，その内の 1 クラス，
約 60 名を測定対象とした．授業では毎回，理解度

15 章 ArrayList オブジェクトは，配列のように複数のオブジ
ェクトを管理できる．あらかじめ大きさを決めておく必要がな

章を独自に執筆した．授業では，第 11 章まで学んて執筆した章は，※で示した．

14 章 インタフェースを定義することによって，異なるオブジェクトを同一視できるようになる．前回取り上げた，１次ンクラス(ArrayList，HashMap)，インタフェース，章と 13 章に戻る流れを組んだ[2]．教科書の章立て

11 章 複数のオブジェクトを扱うために，オブジェクトの１次元配列の活用について学習する．JitterBug オブジェクトをいるが，情報環境学部での経験から，コレクショ
継承を理解することが重要と考え，14 章から 17

10 章 オブジェクト複数のオブジェクトを活用することについて学ぶ．前期アンケート調査実施．

ある．補足資料を適宜準備し，練習問題も準備することで対応した．教科書は 13 章まで掲載されてガイダンス，10 章 オブジェクトオブジェクトを利用するために，フィールド，メソッドの概念を理解し，クラスを定義

章を，「コンピュータプログラミングⅡ」で学習すをはじめよう』は教科書ではありません」との記

授業スケジュール

13 章 PDF 形式のファイルの出力，サウンドの再生を学習す
る．これに必要なオブジェクトの扱いを学習する．

12 回

13 章 Arduino との連携を学習する．加速度センサを活用し，加速度を測定し，グラフ表示を行う．

13 回

プログラムコンテスト：これまで学習してきた内容を基に，プログラムコンテストを実施する．後期アンケート調査実施．

14 回

期末試験

をフィードバックすることで，教授者の一方的な授業の防止になっている[2]．

的に行っている[3]．モチベーションは，表 3 に示

受講者のモチベーションは，情報環境学部で開す SIEM アセスメント尺度の各質問項目に対して，

発 し た SIEM(Systematical Information Education

受講者が「1:まったくそう思わない」「2:あまりそ

Method ジーム)を使って，測定および分析を継続う思わない」「3:どちらともいえない」「4:ややそう思う」「5:強くそう思う」の 5 段階のリッカート尺

数を SIEM アセスメント項目とする．CS 分析の結度で回答を求める。モチベーションは，「(17)重要果を表 5 に示す．図 1 と図 2 はそれぞれを偏差度」と「(19)期待度」の積の平均で算出する．した

値化しプロットしたものであり，縦軸が満足度偏がって，モチベーションの最小値は 1，最大値は差値(SLD:Satisfaction Level Deviation score)，横軸

25 になる．

がモチベーションとの関連性を表す関連度偏差値(RLD:Related Level Deviation score)となっている．

表 3

SIEM アセスメント尺度

因子１：授業構成因子(1) 成功機会度

表 4 基本統計量

授業中にできた・わかったという実感がありま
すか．

前期(4 月)中期(5 月)後期(7 月)
15.9(2) 親性度

授業の内容は親しみやすいですか．

平均

18.0

15.9

(3) 愉楽度

このプログラミングの授業は楽しいと思いま

標準誤差

1.0

0.9

1.0

すか．

中央値

18.0

16.0

16.0

このプログラミングの授業は理解しやすいで

最頻値

25.0

16.0

20.0

すか．

標準偏差

6.6

6.3

6.5

自分が入力したプログラムの動作結果を見る

分散

43.0

40.0

41.7

のは楽しいですか．

尖度

-0.1

-0.6

-0.3

(6) 意義の明確度

授業の意義や目的がはっきりしていますか．

歪度

-0.7

-0.2

-0.5

(7) 好奇心喚起度

授業では好奇心を刺激されますか．

範囲

23

24

24

最小

2

1

1

最大

25

25

25

合計

826

765

622

(4) 理解度(5) 知覚的喚起度

因子２：自発性因子(8) 将来への有用度

将来に役立つと思いますか．

(9) 向上努力度

もっとプログラミングの勉強を努力しようと(10)自己コントロー

授業で学習したことを基にして，自分で工夫し思いますか．
ル度(11)自己目標の明確度

ョン度(13)所属集団の好意力度(RLD=66.4)」「将来への有用度(RLD=63.1)」「愉

自分の到達すべき学習の目標がはっきりして楽度(RLD=60.2)」「知覚的喚起度(RLD=60.1)」「自いますか．

己 コ ン ト ロ ー ル 度 (RLD=57.7) 」「 好 奇 心 喚 起 度(RLD=56.9)」が強く関与していることが判明した．

授業中，学生・教員などとのコミュニケーショ
ンはありますか．
教員やクラスのメンバーは好意的ですか．
演習問題などは授業内容と一致していますか．

致度(16)参加積極度(SLD=59.6) 」「 所 属 集 団 の 好 意 的 反 応 度

休まずに出席しようという意欲が起こる授業度(SLD=55.1)」が高くなっている．これらがモチですか．

ベーションに繋がっていることが分かった．

授業での自分の参加態度は積極的ですか．

モチベーション評価項目(17)重要度の合致度(SLD=66.4)」「知覚的喚起度(SLD=64.7)」(SLD=57.9)」「向上努力度(SLD=57.4)」「参加積極因子４：参加性因子(15)参加意欲度

また，このクラス集団の満足度では「コンテンツ「 将 来 へ の 有 用 度 (SLD=59.6) 」「 参 加 意 欲 度

的反応度(14)コンテンツの合

このクラス集団のモチベーションには,「向上努

勉強してみようと思いますか．

因子３：双方向性因子(12)コミュニケーシ

全体

プログラミングを学習することは重要だと思

表 5 CS 分析結果

いますか．
(18)現状認知度

現在の時点で，プログラミングの知識・技術は(19)期待度

もっとプログラミングの知識や技術を高めた

身についていると思いますか．
いと思いますか．

3.2 中期における分析結果
中期におけるモチベーションの分析結果を以下に述べる．中期におけるモチベーションの平均値は，前期(18.0)から中期(15.9)にかけて 2.1 の低下がみられた．この様子を表 4 に示す．学習者のモチベーションに繋がる要因と満足度について
CS(Customer Satisfaction)分析を施行した[4]．本分
析では，目的変数をモチベーションの値，説明変SIEM アセスメント項目
成功機会度
親性度
愉楽度
理解度
知覚的喚起度意義の明確度
好奇心喚起度将来への有用度
向上努力度
自己コントロール度
自己目標の明確度
コミュニケーション度
所属集団の好意的反応度
コンテンツの合致度
参加意欲度
参加積極度

中期
後期
満足度 関連度 改善度 満足度 関連度 改善度(SLD) (RLD) (ILI) (SLD) (RLD) (ILI)
34.3
49.1
7.3
49.7
40.1
-4.8
42.8
53.0
5.8
48.7
43.4
-2.5
42.8
60.2
11.2
45.5
57.1
7.2
39.4
50.5
5.7
30.9
44.4
6.4
64.7
60.1
-2.1
64.4
50.6
-6.8
48.9
42.3
-3.2
44.5
46.2
0.8
46.7
56.9
6.0
46.6
48.2
0.7
59.6
63.1
1.6
62.3
68.2
2.7
57.4
66.4
4.1
59.2
62.7
1.6
48.9
57.7
4.6
55.0
61.4
3.0
36.0
31.8
-1.9
31.9
39.1
3.3
39.4
36.0
-1.5
39.3
33.2
-2.8
57.9
37.0 -12.9
59.2
40.6 -13.0
66.4
43.5 -13.0
62.3
45.7
-9.3
59.6
48.3
-6.0
53.9
64.4
5.0
55.1
44.0
-7.5
46.6
54.6
5.2

80

LED

70

満足度(偏差値)

コンテンツの合致度
所属集団の好意的反応度60

知覚的喚起度

参加意欲度

将来への有用度
向上努力度

参加積極度

50

自己コントロール度
好奇心喚起度意義の明確度
親性度

40

愉楽度

理解度

コミュニケーション度
自己目標の明確度

成功機会度

30

20
20

30

40

50

60

70

80

関連度(偏差値)

図 1 CS グラフ(中期)80

USB ポート

70
コンテンツの合致度

満足度(偏差値)60

知覚的喚起度将来への有用度
向上努力度

所属集団の好意的反応度
自己コントロール度

50

成功機会度

40

コミュニケーション度

親性度

図 3 TSND151 の様子

参加意欲度

好奇心喚起度 参加積極度

意義の明確度愉楽度線多機能センサ(TSND151)である[5]．TSND151 の

自己目標の明確度

30

理解度

様子を図 3 に示す．

20

10
20

30

40

50

60

70

80

関連度(偏差値)

図 2 CS グラフ(後期)
3.3 後期に向けた授業改善策提案
表 5 の改善度(ILI:Improvement Level Index)は，5以上は要改善，10 以上は即改善項目と考えられる．
後期への提案事項では，改善度指数が 5 以上である項目のうち上位 2 項目を目安にし，改善が効果的であると判断される項目について提案する．
CS 分析の結果から，「コンテンツの合致度」「所
属集団の好意的反応度」「参加積極度」「参加意欲度」「意義の明確度」「知覚的喚起度」「自己目標の明確度」「コミュニケーション度」においてモチベーションへの成果が得られている．さらなるモチ
ベーション向上のためには，関連度は高いが満足度が低い項目，すなわち「愉楽度(ILI=11.2)」「成功機会度(ILI=7.3)」の改善，工夫が効果的である．
具体的には，①ゲームなど遊びの要素を加えながら，学生が楽しめる工夫を増やす，②授業中に練習問題や基礎演習などを取り入れることで，学生ができた・わかったという実感や成功体験を得る
機会を増やすなどが有効と考えられる．

4 授業改善策への対応
4.1 加速度センサの活用
授業改善策のひとつとして提案された「ゲームなど遊びの要素を加えながら，学生が楽しめる工夫を増やす」を受けて，加速度センサを授業で活用することを考えた。使用したセンサは，小型無このセンサは，国際電気通信基礎技術研究所(ATR :Advanced Telecommunications ResearchInstitute International)で開発されたものである．加速度・角速度センサ，地磁気センサ，気圧センサが搭載されている．姿勢角を表すクオータニオン
値を取得することもできる．16bitAD コンバータ
が 4ch 搭載されている．大きさは，40mm(W) ×50mm(H) × 14mm(D)，重さは約 27g である．無線
接続は Bluetooth Ver2.0+EDR Class2 (通信距離最長10m)である．有線の接続は microUSB B タイプで接続できる．授業では TSND151 を 30 セット
準備した．
4.2 TSND クラスの作成
本講義において Processing と TSND151 を接続した事例は無いため，ATR から公開されている，開発 者 向 け FAQ[6] ， 小 型 無 線 多 機 能 セ ン サ(TSND151)コマンドインタフェース仕様書[7]，センサと直接バイナリ通信する Python のサンプルプ
ログラム(Python 2.7 で動作確認済み)[8]を参考に，Processing で TSND クラスを試作した．
「コンピュ
ータプログラミングⅡ」の授業はオブジェクト指向の理解であり，TSND クラスとして提供できることに拘った．
最初にノート PC と USB ケーブルで接続した
TSND151 で正しくデータを収集できることを確認することを最初に行った．これは，公開されているセンサと直接バイナリ通信する Python のサン
プルプログラム(Python 2.7 で動作確認済み)を試す
ために，ノート PC に Python 2.7 を導入し，データ収集できることを確認した．Python のサンプルプ
ログラムを参考にしながら，少しずつ Processing

に移植した．
試作した TSND クラスは，x 軸，y 軸，z 軸方向

サイトからダウンロードした[9]．
5.4 サンプルプログラムの実行の加速度と各軸回りの角速度の情報を取得できる．

x 軸，y 軸，z 軸の加速度をコンソールに表示すなお，ブルートゥースによる無線での接続は，複るプログラムの例を，図 5 に示す．なお Tsnd ク

数のセンサを同時に使うことによるペアリングのラスは，現時点で試作段階であることを補足説明

混乱が予想されたため，授業では USB による有線

した．プログラムの要点を以下に述べる．

での接続を行うことにした．

5 授業の実施

port = new Serial(this, "COM3", 115200); は，ノート PC と TSND151 を接続するシリアルポートとの通信速度を設定し，Serial オブジェクトを生成する．なお，"COM3"は，使用する環境によって

5.1 実施日
加速度センサの活用は，2018 年 7 月 2 日(月)に実施した 12 回目の授業で実施した．当初の授業内
容は，教科書の第「13 章 拡張」を予定していた．
Processing と Arduino との接続等が行えることを教他の番号に変わる．事前にデバイスマネージャで確認し，その値を設定する．
tsnd = new Tsnd( ); は，Tsnd オブジェクトを生成する．

授者がデモを見せる程度にとどめ，番外編としてtsnd.setUsb(0x01, 0x0A); は，TSND151 の加速

加速度センサを使うことを説明した．また，本日度センサを利用するための設定を行う．最初の実の授業実施方法は普段と異なり，2～3 名でグルー

引数は，サンプリング周期である．2 番目の実引

プを作り，提示された資料を基に，各グループで数は，平均するサンプル数である．この設定で，相談しながら受講者が能動的に学習するための指毎秒 100 個のデータを取得できる．

導方法(アクティブ・ラーニング)を取り入れること

tsnd.setStartParameter( ); は，測定を開始する
ための準備を行う．
tsnd.measure( ); は，測定を開始する．
tsnd.getX( )，tsnd.getY( )，tsnd.getZ( )は，x 軸，
y 軸，z 軸の加速度のデータを受け取る．
dispose( )メソッドは，「閉じる」ボタンが押された時に，tsnd.setStopParameter( ); を実行し，測定を停止する．

を説明した．
5.2 TSND151 の貸し出し
配布物は，センサ，USB ケーブルである．グループの代表者がセンサ一式を受け取りに来るよう指示した．センサ一式毎に 1 から 30 番の番号を付けた付箋を用意し，教室前方の机に並べた．この一部を図 4 に示す．付箋に借用者の学籍番号と名前を記載してもらい，センサ一式を貸し出した．

import processing.serial.*;Serial port;
Tsnd tsnd;
void setup() {port = new Serial(this, "COM3", 115200);
tsnd = new Tsnd();tsnd.setUsb(0x01, 0x0A);
tsnd.setStartParameter();
tsnd.measure();}void draw() {int x;
int y;
int z;
while (port.available() > 0) {tsnd.measure();x = tsnd.getX();y = tsnd.getY();z = tsnd.getZ();
println("x y z = " + x + " " + y + " " + z);}}
void dispose() {tsnd.setStopParameter();}

図 4 TSND151 を並べた様子
5.3 USB シリアルドライバのインストール
TSND151 と受講者のノート PC を接続するために USB シリアルドライバをダウンロードし，イン
ストールする必要がある．ドライバは，ATR の web

図 5 加速度を表示するプログラム
TSND 151 の表面には，x 軸，y 軸，z 軸の向きが記載されている．プログラムを実行する前に，

TSND 151 の電源を入れる．「ピィ」と音がした後，軸，ｚ軸の加速度データをコンマで区切って出力

図 3 に示した LED が白色で時々点滅する．

する．

Processing の 「 実 行 」 を ク リ ッ ク す る と「TSND151 USB SET Termination.」が表示され，計

count++; はファイルに書き込んだレコード数に 1 を加える．

測結果が表示される．この表示は，すぐに上の方

dispose()メソッドは，バッファの出力とファイへスクロールするため，計測に失敗した時でない

ルのクローズ，最後に書き込んだレコード数を表2と見えない．地球の重力加速度は 9.8m/s であり，示する部分を追加する．

机上に置いた場合は，x 軸，y 軸，z 軸のいずれかが，±9800 前後の数値として計測結果が表示される．図 5 は，図 3 に示した配置で測定した結果である．z 軸の値が 9800 前後になっていることが分
かる．受講者の様子を図 6 に示す．データがリア
ルタイムで表示され，またセンサを少し傾けるだ
けで数値が大きく変化し，受講者の興味を喚起できた．

import processing.serial.*;PrintWriter output;
Serial port;
Tsnd tsnd;
int count = 0;
void setup() {output = createWriter("data/tsnd.csv");
output.println("x,y,z");count++;
port = new Serial(this, "COM9", 115200);
tsnd.setUsb(0x01, 0x0A);
tsnd.setUsb();
tsnd.setStartParameter();
tsnd.measure();}void draw() {int x;
int y;
int z;
while (port.available() > 0) {tsnd.measure();x = tsnd.getX();y = tsnd.getY();z = tsnd.getZ();
println("x y z = " + x + " " + y + " " + z);
output.println(x + "," + y + "," + z);
count++;}}
void dispose() {tsnd.setStopParameter();
output.flush();output.close();println(count + " records output.");}

図 7 データを保存するプログラム
図 6 受講者の様子
5.5 データの保存

TSND 151 の電源が入っていること（時々LEDが白色で点滅すること）を確認し，「実行」をクリ

9 回目の授業で，CSV 形式のファイルの読み込

ックする．数秒間，TSND 151 を色々な方向に傾け

み，出力を学習している．教科書の p190 で学習して計測する．最後に実行ウインドウの「閉じる」

た PrinterWriter オブジェクトを利用する．この実をクリックする．書き込んだレコード数と用的な応用として，測定結果を CSV 形式のファイ「TSND151 Stop.」が表示される．短い時間である

ル tsnd.csv に保存するプログラムを試した．プロが，1000 件近いデータが得られている．この様子

グラムの例を，図 7 に示す．図 5 のプログラムにを図 7 に示す．

加筆した部分を，赤色で示した．プログラムの要

5.6 グラフの表示

点を以下に述べる．
int count = 0; はファイルに書き込んだレコード
数（行数）を数える変数である．
output = createWriter("data/tsnd.csv"); は CSV 形式のファイルを data フォルダの中に作成する．

図 8 は図 7 のプログラムで保存した CSV 形式のデータを読み込み，x 軸，y 軸，z 軸方向の加速度について，折れ線グラフを表示するプログラム
である．軸を区別するために，x 軸は白色，y 軸は赤色，z 軸は青色にし，各々のグラフが重ならな

output.println("x,y,z"); はヘッダーを出力する．

いように表示した．グラフを表示する部分は，

count++; はファイルに書き込んだレコード数

drawGraph 関数を定義し，各軸のグラフを表示しに 1 を加える．
output.println(x + "," + y + "," + z); は，ｘ軸，ｙた．図 7 のプログラムで保存した tsnd.csv は Excel
で開いてグラフ表示することもできる．この様子

Table table;
float x;float y;float oldX;
float oldY;
void setup() {size(480, 480);
background(0);strokeWeight(1);table = loadTable("tsnd.csv", "header");stroke(255, 255, 255);
drawGraph("x", 0);stroke(255, 0, 0);drawGraph("y", 150);
stroke(0, 0, 255);
drawGraph("z", 300);}

void drawGraph(String item, int yBase) {for (int i = 0; i < table.getRowCount(); i++) {int val = table.getInt(i, item);x = map(i, 0, table.getRowCount() - 1, 0, width);y = map(val, -30000, 30000, height / 3, 0) + yBase;if (i != 0) {line(x, y, oldX, oldY);}
oldX = x;
oldY = y;}}

か否かを聞いた結果，約 40%が「はい」であった．
プログラムを専門としない学科ではあるものの，
約 40%の受講者が改良してみたいと思ってくれた
ことは，人材育成に貢献できたと考えている．設問 5 と設問 6 は重力加速度の意識を授業の前後で聞いた結果，授業前は約 40%の意識であったが，授業後は約 60%に向上した．残りの 40%は，授業後も意識していないことになるが，今後，この数字を減らせるように授業を工夫する必要がある．
設問 11 は，アクティブラーニングと普段の授業を比較したものであり，約 75%が普段の授業よりも良いと回答した．一方，約 25%は普段の授業の方が良いことを示しており，受講者全員にとって良いわけでなく，この辺りの兼ね合いは難しいことも分かった．
設問1 ノートPCでシリアル通信できることは，知っていましたか．

図 8 グラフを表示するプログラム

はい
いいえ
未回答

を図 9 に示す．このグラフは，ｘ軸，ｙ軸，ｚ軸

010の各計測結果を散布図で表示したものである．各軸の変化が，図 8 に示した実行結果と同じになっていることを確認できる．

20

30

40

50

60

70

80

90

100

80

90

100

80

90

100

80

90

100

設問3 Tsndオブジェクトは，使い易かったですか ．

はい
いいえ
未回答
0

10

20

30

40

50

60

70

設問4 Tsndクラスを，改良してみたいと思いますか．

はい
いいえ
未回答
0

10

20

30

40

50

60

70

設問5 普段の⽣活で，加速度を意識したこと はあり ますか ．

はい
いいえ
未回答
0

6.1 選択式の回答について主なものを紹介する．図 10 は選択項目の回答を抜粋して示したものである．設問 1 はノート PC
でシリアル通信できることを聞いた結果，知らな

30

40

50

60

70

はい
いいえ
未回答
0

授業毎に実施しているアンケート調査結果から

20

設問6 本⽇の授業を受けて，加速度を意識できるようになりましたか．

図 9 Excel による加速度の表示

6 受講者の反応

10

10

20

30

40

50

60

70

80

90

100

90

100

設問11 グループで相談しながらプログラムを学ぶ授業は，普段の授業よりも良いですか．

はい
いいえ
未回答
0

10

20

30

40

50

60

70

80

図 10 選択項目のアンケート調査結果(抜粋)

かった受講者が約 80%いることが分かった．セン
サとの接続の体験の効果が期待される．設問 3 は

6.2 センサ(TSND151)の活用について

Tsnd オブジェクトの使い易さを聞いた結果，約授業毎に実施しているアンケート調査でセンサ55%が「はい」であった．低い値になった理由は，の活用について自由記述を求めた．大半の指摘は，メソッドの仕様等の説明が不十分であったと考えゲームのコントローラへの応用であった．その他，られる．設問 4 は，Tsnd クラスを改良してみたい

以下の指摘があった．

・スマホなどのデバイスで傾きを検知して画面表示を変える．

から後期(15.9)にかけて低下しなかった．通常は中スマホケースに搭載して落下を検知したら画面を守る安全期から後期にかけて低下するのが一般的であるが，装置的なものを発動させる．
・加速度・角速度などを計測すると同時に，筋電図や心電図，脳波などの生体信号を計測することが出来ます．

これを抑えられたことは，加速度センサを授業に取り入れた一つの効果として考えられる．

・家がどのくらい傾いてしまったかが数値で出るので分かりや
すい．
・交通事故時の，加速度と人体の損傷度合の関連を導くのに活受講者が使っているノート PC は，キーボードやマウスが入力装置として機能し，その結果はデ用できそうだと思いました．シートベルト着用時との違いなィスプレイに画像や文字，そしてスピーカから音ど．

として出力できる．入力装置に加速度センサが 1・坂などの角度を測定する．エレベーターやボールを上から落とす時など，上下に動くものの加速度を測定する．
・重力加速度は確かにあると再確認出来て，力の合成についても確かめられた．

つ加わっただけであるが，受講者の興味や関心を喚起できていることが，アンケートの調査結果から分かった．センサの活用は，受講者のクリエイ

・乗り物の乗り心地の測定

ティブな発想に繋がったと考えている．さらに受・人が勉強している時どのような姿勢を取っているか調べるこ講者の約 40%が Tsnd クラスを改良してみたいと思とが出来るかもしれないと思った．
・普段の生活の中で体全体の加速度を調べることで，普段どのったことは，大きな成果であると考えている．
今後は，加速度以外の情報の活用，ブルートゥ

くらい体が傾いていて，どの程度健康に影響してくるのかが分かるような生体センサーを作ることに活用できる．
・余談ですけど，エレベーターの中とかで計測をしたら面白いと思いました．やってみたいなぁと．

特に，「人が勉強している時どのような姿勢を取っているか調べることが出来るかもしれないと思ースでの接続，計測結果のリアルタイムによるグラフの表示等を行い，さらなる受講者のモチベー
ションの向上を目指したい．

謝辞った」との指摘は，受講者が自発的にセンサ活用を考え，自らフィードバックをかける環境を与えることができたのは，今回実施したアクティブラーニングの授業を取り入れた成果と考えられる．
6.3 授業に対する要望と感想授業に対する要望と感想に記載された内容の一

本研究の一部は，NEDO の次世代人工知能・ロボット中核技術開発／次世代人工知能技術分野／
イノベーション・リビングラボの先導研究の一部として実施したものである．

参考文献

部を以下に示す．
・TSND151 が面白かった[1]・グループでの授業も良かったです．普段の授業は静かで喋りにくい部分もあるので，グループ：講義＝１：２くらいの割合だといいと思いました．

[2]・グループでやる方がいつもの授業よりやりやすかったです．
・とても楽しかったです．
・期末テストまでにまた練習問題をいっぱい出してほしいです．

[3]

・心電図みたいで面白かったです．激しく動かしたので実行してみたら凄かったです．

[4]

グループ学習と普段の授業の割合は，１対２位が良いとの指摘が印象的であった．生体信号に興[5]味を持っている受講者がおり，IoT に関連した話
題をプログラミングの授業に取り入れることが，[6]

受講者の興味を喚起する上で重要であると感じた．
[7]

7 まとめと今後の課題
SIEM によるモチベーションの分析結果から提[8]案された授業改善策，「ゲームなど遊びの要素を加えながら，学生が楽しめる工夫を増やす」ことを受けて，加速度センサを授業で活用した．後期のモチベーションは表 4 に示したように，中期(15.9)[9]

Casey Reas，Ben Fry 著，船田 巧 訳，Processing をはじめよう 第 2 版
https://www.oreilly.co.jp/books/9784873117737/ 2018 年 9 月
3 日閲覧
コ ン ピ ュ ー タ プ ロ グ ラ ミ ン グ Ⅱ ， web サ イ ト ，https://dohi.chiba.dendai.ac.jp/~dohi/computer-programming2/ad/ 2018 年 9 月 3 日閲覧
土肥紳一，宮川治，今野紀子：SIEM によるプログラミ
ング教育の客観的評価，情報科学技術フォーラム情報科
学技術レターズ，pp.347-350，2004
南 学，学生による授業評価への CS 分析の適用，三重大学教育学部附属教育実践総合センター紀要，pp.29-34，2007
小型無線多機能センサ
https://www.atr-p.com/products/TSND121.html
2018 年 9 月 3 日閲覧
開発者向け FAQ
https://www.atr-p.com/support/TSND-todeveloper.html 2018
年 9 月 3 日閲覧
小型無線多機能センサ（TSND151) コマンドインタフェース仕様書
https://www.atr-p.com/products/pdf/TSND151-cmd-spec.pdf
2018 年 9 月 3 日閲覧
センサと直接バイナリ通信する Python のサンプルプログ
ラム(Python 2.7 で動作確認済み)
https://www.atr-p.com/support/program/TSNDSamplePG.py
2018 年 9 月 3 日閲覧
TSND121/TSND151 用:USB シリアルドライバ
http://www.atr-p.com/support/TSND-tools.html 2018 年 9 月 3日閲覧