情報処理学会第 85 回全国大会

6G-01

micro:bit PC -10 キープログラミングによるデータロガーと無線通信木室 義彦†

古里 健一†

瀧内 大史†

家永 貴史††福岡工業大学 情報工学部
1.緒言
今日の情報社会では，児童生徒もプログラミングを経験し，コンピュータでできることできないことを体験することが重要である[1]．この教材としてセンサを搭載したプログラミングロボットは，プログラムの振る舞いやセンサの働きが分かりやすいという特徴がある．しかし，センサデータを簡単に記録，送信し，ロボットやプログラムの動きと比較，確認できるものは少なかった．
一方我々は，10 個の数字キーのみでプログラミング可能な移動ロボット教材を開発し，晴眼盲弱の区別なく容易にプログラミングを学習できることを示してきた[2]．今回，micro:bit (v1.5) 搭載のロボット玩具を用い，データロガーおよび無線通信の機能を簡単に利用する方法を検討したので報告する．
2.PC を使わない micro:bit プログラミング
2.1 micro:bit と 10 キープログラミング
micro:bit は，小学校高学年向けに設計されたマイコンボードであり，ボタンや LED といった入出力機能の他に，加速度，磁気，光，温度の各種センサ，無線通信機能が標準搭載されている．開発環境
として PC の web ブラウザで動作するブロックプロ
グラミング言語が提供されている．これに対し，PC を使わず，マイコンボードに直接 10 キーパッドを接続し，テキストプログラミングを行うのが，我々が提案している 10 キープログラミングである．
プログラミング対象は移動ロボットを基本とし，前進後退，左右回転の基本命令を[5]キーの上下左右に配置し，人間の身体性と一致させて覚えやすくしている(Fig. 1)．繰返しや条件分岐の制御命令は，残りの 5 つのキーに配置されており，FOR 文，IF文，WHILE 文を記述できる．なお，3.1 節の Fig. 3のようにロボットなしでも動作する．
10-keypad
FORNEXT

12

3

2.2 micro:bit とセンサ
micro:bit や移動ロボットのセンサを選びやすくするため，Fig. 2 のようにセンサの物理的，意味的な位置とキー配置とを一致させている．micro:bit
基板左右の A，B の 2 つのボタンと基板中央の光センサ（LED アレイ）は，キーパッド中段に配置している．磁気センサと加速度センサは，[5]キーの上下に配置している．それぞれ「地図は北が上」，「重力は下向き」という理由からである．温度センサは棒温度計の液溜を意図し，最下段にしている．
ロボット前方の障害物までの距離を検出する超音波センサは，キーパッド前方左右および残りの 2 つのキーに配置している(Fig. 2 網掛け部分)．なお，
micro:bit のエッジコネクタ P0～P2 もキーに配置できれば，入力端子（センサ）や出力端子として使用可能となっている．
Sonar sensor
RXTX

A
ButtonLightSensor

B
Button

Sonar

Mag

10cm

ALightButtonmicro:bitSonar
170cm

motor + crawler

P0, P1, P2

Mag & Accel

Accel

Sonar30cm

BButton

Sonar
90cm

Temp

Fig. 2 Sensor layout on numeric keypad
以上のセンサは，移動ロボットを制御する条件分
岐命令で使用される．このため，センサ出力は，すべて ON/OFF の 2 値として処理している(Table 1)．
光センサは，明暗の 2 値（閾値は自動設定），磁気センサは，磁北の方向に幅 30[deg]の範囲，加速度センサは，基板が水平から 45[deg]以上傾いた時，または，加速度の絶対値が±0.2G 以上変化した時にON になる．温度センサは，今のところ 25±5℃の範囲を超えた時に ON としている．また，超音波セン
サの検出距離値を固定し，[1]と[3]，[9]，[7]の 4 つのキーそれぞれに 10cm と 30cm，90cm，170cm のセンサを設定している．それぞれ，設定距離値以内で反射波が返る場合に ON となる．

456ENDIF

789Sensor

ON condition

RUN ELSE RESET*0#Sonar

fixed detecting range (10,30,90,170 cm)

BEEP

micro:bitIF

Table 1 "ON" condition of each sensor

Fig. 1 micro:bit with numeric keypad & commands
micro:bit PC - data logger and wireless communication with numeric key programming Y.Kimuro†,K.Furusato†,T.Takiuchi† and T. Ienaga††Fukuoka Institute of Technology

4-383

A,B buttonpressedLight

brightnessMag.

±15[deg] from the northAccel.

tilted at 45[deg] or shaken

Temp.

±5 over from 25[℃]

Copyright 2023 Information Processing Society of Japan.
All Rights Reserved.

情報処理学会第 85 回全国大会

3.micro:bit によるデータロガー
3.1 データロギングの方策
データロギングのために新たな命令を学習し，プログラムを作成することは，初学者やプログラミン
グを専門としない教員には，簡単ではない．このため，モード設定のみでデータロギングを可能とすることを考えた．すなわち，学習者が作成したプログ
ラム内にセンサを用いる IF 文があれば，IF 文の実行と同時にそのセンサデータの出力と記録を行うというものである．センサを用いる最も簡単なプログ
ラムは，Fig. 3 (a) に示す 4 行のコード(7 つの数字列)である．センサ ID は，2.2 節で説明した各センサのキー配置の数字である．
3.2 データロガーの実行手順
データロギングを行う場合は，ログモードにセットする．具体的には，設定コマンドの[#]+[0]を押下後，[5]をタイプするとトグル動作でログモードのON/OFF が切り替わる(Fig. 3 (b))．ログモードでプログラムを実行すると自動的に micro:bit の USB
ポートから CSV 形式のセンサデータが出力され，同時にセンサデータが経過時刻付きで micro:bit のフラッシュメモリに記録される．このログデータは，プログラム実行の度に上書きされ，また，micro:bit の電源を切っても消えない．記録されたログデータをオフライン出力したい場合は，ログモード ON の状態で，[#]+[0]+[2]と押すだけでよい．

FOR everIF Sensor ONENDIF
NEXT

1 07 ID 2
93[#]+[0]+[5][RUN][STOP][#]+[0]+[2](a) Programming(b) RUN with logging
Fig. 3 Data logger with micro:bit
4.micro:bit センサデータの無線通信
4.1 無線通信の方策
micro:bit (v1.5) 搭載のプロセッサ nRF51822 は，2.4 GHz の無線通信機能を備えており，ブロックプログラミングでも利用することができる．しかし，データロガーと同様，通信プログラムを作成するには，無線のグループ ID の設定や通信手順を新たにプログラムしなければならない．この無線通信を簡単に行う方法として，データロガーと同じく，学習者が作成したプログラム中の IF 文に現れるセンサデータを複数の micro:bit 間で送受信することとした．必要なモードは，無線通信機能の起動，および送信側設定のみである．
4.2 無線通信の実行手順
無線機能の ON/OFF は，[#]+[0]+[3]のトグル動作であり，デフォルトでは，すべて受信側となる．
送信側の micro:bit では，さらに，[#]+[0]+[2]を押下 す る ． こ れ に よ り ， 送 信 側 の セ ン サ ID と
ON/OFF 値およびセンサデータがブロードキャストされる．受信側は，受信したセンサデータに基づ
い て ， プ ロ グ ラ ム が 実 行 さ れ る ． Fig. 4 は ，micro:bit の A ボタンを押すとラジコン移動ロボッ
トが前進するというものである．なお，受信側でさらにログモードにしていた場合は，無線受信されたセンサデータは，シリアル出力されると共にロギングされる．Fig. 5 は，無線受信された 3 軸の加速度のグラフである(Fig. 3 相当)．micro:bit の各軸の回転や投げ上げ時の無重量状態が確認できる．

【Sender】[#]+[0]+[3][#]+[0]+[2][*] (RUN)

FOR ever
IF SW_A ON
FW 1 (ignored)
ENDIF
NEXT

FOR ever
IF SW_A ON
FW 1
ENDIF
NEXT

【Receiver】[#]+[0]+[3][*] (RUN)

Fig. 4 Simple wireless comm. with sensors
2Accel X

1.5

Acceleration [G]ロボット言語のインタプリタは，micro:bit のフラッシュメモリ上にファームウェアとして実装されている．micro:bit の電源オンと同時にインタプリタが起動し，キーパッドからのコードの入力とプログラムの実行/停止，リセットができる．このインタフェースを変更することなく，センサデータのロギングと無線通信を可能にする．開発には，
Arduino IDE と Nordic Semi-conductor nRF5
based boards ライブラリを用いた．

Accel Y

Accel Z

10.5
0-0.5

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

11000

12000

[m sec]

-1
-1.5
-2

Fig. 5 Obtained sensor data via radio
5.結言
micro:bit 単体でプログラミングと実行が可能なセンサデータのログ機能および無線による送受信機能を設計，実装した．これにより，安価なマイコンボードを用い，複雑なプログラミングを行わずにデータの記録や無線操作が可能となった．ファームウ
ェアは，https://www.fit.ac.jp/~kimuro/Maker/ に公開している．
今後は，データロガーや無線通信を用いた教材の効果の検証，micro:bit 単体での IoT 教材化，上位学年向けの授業シラバスの試作などを小中高の教員と協力しながら進める予定である．なお，本研究は，文科省科研費（20K03240）によるものである．
参考文献[1] 安浦, "情報技術を社会常識にするためには",情報処理,Vol.40, No.1, pp. 47-49, 1999..
[2] 木室, 古里, 家永, "晴眼盲弱を区別しない，PC を使わない micro:bit プログラミング環境の提案", 情報教育シンポジウム(SSS2021), 2021.

4-384

Copyright 2023 Information Processing Society of Japan.
All Rights Reserved.