A1-1

プログラミング学習のための仮想コンピュータ制御ロボット
A Robot Controlled by the Virtual Computer for Programming Education
野口 孝文*1，梶原 秀一*2，千田 和範*1，稲守 栄*1
Takafumi NOGUCHI *1, Hidekazu KJIWARA*2, Kazunori CHIDA *1, Sakae INAMORI *1
*1
釧路高専
*1
National Institute of Technology, Kushiro College
*2
室蘭工大
*2
Muroran Institute of Technology
Email: noguchi@kushiro-ct.ac.jp
あらまし：我々は，不要 CD と組み込み用の小型コンピュータを組み合わせたロボットを開発し，小中学生を対象に工作教室を行ってきた．ロボットは，CD を再利用しているため，中央の穴を利用してペンをたてることができ，プログラムによっていろいろな図形を描くことができる．本論では，ロボットを制御する命令を直感的に分かりやすいビット対応させた機械語セットを持つ仮想コンピュータで実現したことについて述べる．
キーワード：教育システム情報学会，全国大会，Microsoft Word，テンプレート

1.

はじめに

我々は，移動制御に組み込み用小型コンピュータを用い，またこれを組み込んだ基板やモータを取り付けるためのベースに使われなくなった不要 CD を用いた教材ロボットを開発してきた．そして我々は，このロボットを使用して小中学生対象に工作教室を10 年以上開催してきた(1)(2)．その間に，ロボットも改良され工作キットであるばかりでなく多様な教材として利用できるようになった．本ロボットは，使われなくなった CD を再利用しているため，中央の穴を利用してペンを立てることができ，学習者がプログラムすることによっていろいろな図形を描くことができる．ロボットの動作軌跡を，プログラムの工夫した点を結果として残すことができる．
本論文では，ロボットを制御する命令を直感的に分かりやすいビット対応させた機械語セットを持つ仮想コンピュータで実現したことについて述べる．
これによって，センサやアクチュエータを組み合わせた計測制御の学習ばかりでなくプログラミングの初心者教育にも利用可能になった．

2.

教材ロボット

2.1 ロボットの構造
図 1 にロボットの外観を示す，小中学生を対象とした工作教室では，電子部品は予めこの基板に半田付けされており，自作の指導書に従って組み立てて行くことで，図 1 に示したロボットが完成する．これまでの工作教室では小学校の 5 年生以上を対象にしてきたが，ドライバーやニッパーなど工具の使い方から順に説明して 1 時間半程度で完成させている．
ロボットはギアが予め組み込まれた 2 つのステッピングモータで駆動している．タイヤを直結することができるためロボットの構造を簡単にすることができるとともに安定した動作を得ている．

LED
ボタンスイッチ 3,4,5

ピエゾスピーカ
コンピュータボード
実行／プログラム
ボタンスイッチ 1,2電源スイッチ

図 1 ロボット外観
2.2 直感的に作成できるプログラム
図 1 に示すコンピュータ基板の左上には 8 つの赤色 LED が取り付けられている．その下には 3 つの黄色 LED とボタンスイッチ 3，4，5 が取り付けられている．これらは，図 2 のように配置されている．
モータの動作と LED の点灯の関係を図 2 の上に示す．8 つの LED の内，左から２つは左のモータに対応し，次の 2 つは右のモータに対応している．それぞれの２つの LED の左が点灯しているときは後ろ方向へ，右が点灯しているときには前方向へ進む．
また残りの４つの LED は，直進しているときには進む距離，方向転回しているときには回転角度，停止しているときには停止時間に対応している．
右モータ正回転右モータ逆回転左モータ正回転左モータ逆回転8cm / 60 度 / 2 秒
4cm / 30 度 / 1 秒
2cm / 15 度 / 0.5 秒
1cm /7.5 度 /0.25 秒

ボタンスイッチ― 47 ―

赤色 LED
黄色 LED
3モータの動作45
移動距離または角度または時間

図 2 ロボットを 10cm 前に進める命令

教育システム情報学会 JSiSE2015
第 40 回全国大会 2015/9/1～9/3

図 2 のような点灯は，ロボットが 10cm 前方に進むことを表している．この 8 つの LED の点灯状態がロボットの 1 つの動作を表す命令に対応している．
この命令は，3 章で説明する仮想コンピュータによって実行される．
2.3 プログラムの入力と実行操作
本ロボットへのプログラム入力やその実行は，コンピュータ基板上のスライドスイッチおよび 5 つのボタンスイッチで行う．図 1 のコンピュータ基板の右下（ロボットの後方）に 2 つのスライドスイッチとそれらの後方に 2 つのボタンスイッチ 1，2 がある．スライドスイッチの 1 つは，電源スイッチである．もう 1 つが，プログラムの実行とプログラムの入力の切り替えを行うスイッチである．ロボットには 256 ステップのプログラムを入力することができる．命令は 0 から 255 番地までのメモリに記録される．電源スイッチをオンにすると，0 番地のプログラムが表示され，実行できるようにしてある．
プログラムの実行は，スライドスイッチを「実行」側に設定し，ボタンスイッチ 1，2 を押し同時に離すことで開始する．ボタンスイッチ 2 のみを押し，離すことで赤色 LED に表示した命令のみを実行することもできる．
プログラムの入力もこれらのスライドスイッチとボタンスイッチを組み合わせて行う．命令の変更や設定は，図 2 に示した黄色 LED のそれぞれ下にある
3 つのボタンスイッチ 3，4，5 を使う．

3.

仮想コンピュータ

3.1 仮想コンピュータのシステムアーキテクチャ
本ロボットのプログラムに利用できる命令は，図3 のようなコンピュータを想定して作成している．
この仮想コンピュータには，メモリは 256 バイトしかなく，汎用のレジスタも 1 つしかない．そのため，命令も簡単である．表 1 に命令セットの一部を示す．
汎用レジスタを含めた演算やレジスタの値を用いたロボットの動作命令がある．
ロボットの動作は，モータの回転スピードや回転数といったアクチュエータに与える値のセットを設定するのではなく，命令を組み合わせて行う．例えば，正方形を描く動作プログラムでは，直進と回転のデータを 4 組送るのではなく，直進と回転の命令を 4 回繰り返すことで実現する．そのため，各命令の働きをロボットの動作で確認する事ができる

T
レジスタ

ALU

命令
レジスタ

フラグ
アキュム
レジスタ
レータ
スタック
ポインタ
プログラム
カウンタ

RepeatJump
withoutcondition
Jump
with
condition sw
Jump
with
condition flag
End

ENDFOR

5n:
An:
6n:
9n:
30:
0n:
3n:
7n:
B0:
B1:
B2:
B3:

nn

F0:
D0:

JMP sws nn

Ds:

JMP f

Df:

JMP

END

nn

FF:

Hex data
0101 n8n4n2n11010 n8n4n2n1
0110 n60n30n15n7.51001 n60n30n15n7.50011 0000
0000 n2n1n0.5n0.25
0011 n50n25n12.5n6.25
0111 nnnn
1011 0000
1011 0001
1011 0010
1011 0011
1111 0000
1101 0000
n128n64n32n16 n8n4n2n1
1101 0s4s2s1
n128n64n32n16 n8n4n2n1
1101 1f<0f=0f>0n128n64n32n16 n8n4n2n1
1111 1111

3.2 入出力ポート
ロボットは，組み込み用小型コンピュータ
PIC16F886（EEPROM 領域 256 バイト）を用いている．PIC の形状は 28 ピンの DIP 型である．クロックを内部発信モードにすることで，電源とグランド以外の 25 ピンのすべてを入出力ポートとして使用し，LED やスイッチが接続されている．
いっぽう，実行時には使用しない出力 3 ビットと入力 5 ビットは，既存の LED やスイッチと並列に接続することで，スピーカ出力やセンサ入力に利用することができる．また，仮想コンピュータの内部の様子をイメージしやすくするために，汎用レジスタの値を 8 個の LED に表示する命令も用意した．

4.

おわりに

我々は，仮想コンピュータを内部に持つロボットを開発し，小中学生を対象に工作教室を行ってきた．
本ロボットには，①中央の穴にペンを挿すと，ロボットが動いた軌跡を残すことができるという構造や，②数個のボタンでプログラムの直接入力ができる入力インタフェース，③直感的に分かりやすい制御命
令，④コンピュータの仕組みをロボットの動作で確認できるなど，他のシステムにない特徴がある．
本ロボットは，初心者のプログラミングの学習にも利用できるため，本年度からは，コンピュータの導入教育として大学の授業でも利用している．
本研究の一部は，科学研究費基盤研究費(2)C(24501168)を受け推進している．
参考文献

メモリ
0～255 番地

制御回路
⼊出⼒

アドレスバ
スバッファ
データの流れ制御の流れ

Mnemonic
FWD n
REV n
RGT n
LFT n
IRG
STP n
SPD n
SND
RND
DSP ON
INC
DEC

データバス
バッファ

8T
レジスタ

表 1 仮想コンピュータの命令セット
Instruction
ForwardBackward
Turn Right
Turn Left
Random Motion
Stop
Speed
Sound
Random Number
Display On/OffIncrement
Decrement

8

センサ
アクチュエータスピーカ
LED

図 3 仮想コンピュータのアーキテクチャ(1) 野口孝文，梶原秀一，千田和範，稲守栄，"計測制御教育のための教材ロボットの開発"，教育システム情報学会研究報告，Vol.27，No.6，pp.217-220，2013.
(2) 野口孝文，梶原秀一，千田和範，稲守栄，"ロボットを用いた初心者のためのプログラミング教材の開発"，
FIT2014 第 13 回情報科学技術フォーラム，筑波，pp.269-270（第 4 分冊)，2014.

― 48 ―