携帯ゲーム機を利用したロボットプログラミングシステムの開発

携帯ゲーム機を利用したロボットプログラミングシステムの開発
熊谷 和志*1
今 孝公*2
佐藤 崇*3
Kumagai Kazushi Kon Takayuki Sato Takashi
1.はじめに
最近のエレクトロニクスの発展により,ロボット教材
「梵天丸」[1]のようなマイコン教材が販売されるように
なった.このようなロボット教材は,深刻な問題である
小中学生の理科離れを防止する有効な手段であると考え
られている.ロボット教材は全国の小中学生をはじめと
する入門者を対象にしているにも関わらず,パソコン利
用を前提としている.
パソコンによるプログラム開発や,
相応レベルまでのパソコンの習熟は,小中学生にとって
かなり高度であり,ロボットへの興味が冷めてしまうと
いう問題がある.また,せっかくの手軽なロボットが教
材の域を出ない要因の一つともなっている.
そこで,パソコンに代わるプログラム環境を提供し,
ロボットを教材から身近な玩具へと意識変化させること
を狙い,多くの小中学生が所有していると思われる携帯
ゲーム機を利用した,ロボットプログラミングシステム
の構築を行った.
2.システム概略
携帯ゲーム機として,これまでの普及台数が最も多い
と思われる任天堂のゲームボーイを選定し,ゲームボー
イ上で動作するマイコンプログラムシステムを開発した.
対象となるマイコンは,ロボットキットの梵天丸に使用
されている PIC16F84 としている.
ゲームボーイにはゲームの対戦などに使用される通
信ポートがある.
ゲームボーイ上でプログラムを記述し,
コンパイルし,通信ポートを介してマイコンへの書き込
みが可能な環境を構築した.また,パソコン上でソース
コードの管理を行うために,
USB インタフェースを利用
して,ゲームボーイとパソコン間の通信システムを構築
した.システム概略を図 1 に示す.
3.開発環境の構築
開発したプログラムをゲームボーイ上で動作させる
には開発用カートリッジが必要である.ゲームボーイ用
*1 仙台電波工業高等専門学校 電子制御工学科
〒989-3128 宮城県仙台市青葉区愛子中央 4-16-1
*2 弘前大学理工学研究科 知能機械システム工学専攻2 年
〒036-8560 青森県弘前市文京町 1
*3 長岡技術科学大学
機械創造工学課程 3 年
〒940-2188 新潟県長岡市上富岡町 1603-1
書き込み
ケーブル
梵天丸に
書き込み
大泉 哲哉*1
Oizumi Tetsuya
ゲームボーイ上で
プログラミング
USB
ファイル管理
USBアダプタ
エディタ,コンパイラ
ユーザインタフェース
図 1 システム概略図
開発カートリッジはすでに市販されていないので,ゲー
ムカートリッジを改造することにした.ゲームカートリ
ッジに実装されている ROM を FlashROM に換装する
ことで対応している.また,プログラムをカートリッジ
に書き込むための FlashROM リーダ・ライタと,ゲー
ムボーイの通信ポートから PIC に書き込むための書き
込みケーブルを製作した.
4.チップ方式エディタの開発
PIC用のプログラムをゲームボーイ上で開発するため
のチップ方式エディタを開発した[2].
チップ方式によるプログラムの作成は,プログラム自
体の省スペース化やプログラムを視覚的に分かりやすく
することが可能であるが,その反面チップの詳しい情報
を表示することが困難である.この問題の対策として,
作成しているプログラム画面の右側に補足を加えるため
の説明表示部とチップ選択部を表示させるようにした.
チップ選択部には作成するチップの一覧を表示するだけ
ではなく,コンパイラ,プログラムの書き込み,プログ
ラムの保存と読み出しなどのエディタ以外の操作へと移
行できるようにしている.エディタのプログラム作成画
面を図 2 に示す.
エディタがチップを管理する方式としてリレーショナ
ルデータベース(RDB)を採用した.エディタで作成さ
れたチップはゲームボーイ内の RAM に 1 チップ当たり
8WORD のデータ構造で書き込まれる.このデータ構造
にはチップの表示位置やチップの種類の他に,チップを
識別する番号や前後のチップなどのデータが格納され,
エディタはそのデータ構造を解析し,そのチップに該当
する位置にチップの絵柄を表示するようにしている.前
図 2 エディタ画面
図 3 エラー出力
後のチップをデータ構造に入れることで,画面上ではな
く RAM 上でチップの前後関係を把握することが可能で
あるため,チップを編集することや,コンパイラなどの
処理が容易になる.
込まれていることが確認できた.図 4 に書き込み実行し
ている様子を示す.
5.コンパイラの開発
エディタで作成されたチップ方式のプログラムをPIC
の実行形式である機械語へとコンパイルする,コンパイ
ラの開発を行った[3].
チップ方式はチップ 1 枚に対して複数の機械語が対応
している.そのためコンパイラは,プログラムの先頭か
らチップを解析して RAM のデータからチップの種類を
読み取り,それに対応する機械語を出力することでコン
パイル処理を行っている.プログラムをたどっていく際
には,
チップデータ内の次チップ番号データを読み取り,
そのチップを検索することでプログラムをたどるように
している.
図 2 のプログラムのように分岐しているプログラムを
コンパイルする際は,まず分岐先のチップを全てキュー
に格納して分岐先を把握する.そして,その内の一つを
取り出して分岐先を解析していき,その分岐先を解析し
終えたらまたキューから分岐先のチップを取り出しコン
パイルしていく.プログラムの終点で,かつ未解析の分
岐先が存在しなければコンパイルを終了し,エラー出力
を行う.
エラーの表示はゲームボーイ画面に新たなウィンドウ
を表示して出力するようにしている.エラーの出力例を
図 3 に示す.
6.PIC への書き込み
コンパイルされたプログラムをPICへ書き込むための
書き込みプログラムを開発した[3].
書き込みケーブルにより,ゲームボーイと PIC 間のハ
ードウェア上の問題は解消できている.書き込みプログ
ラムは,コンパイルされた機械語を書き込みケーブルが
認識できるように変換し,さらに PIC を最低限動作させ
るのに必要なヘッダプログラムを追加して書き込みケー
ブルへと送っている.サンプルプログラムをゲームボー
イ上で作成し,PIC へと書き込み,梵天丸にて動作確認
をしたところ,正しく動作し,PIC にプログラムが書き
図 4 プログラムの書き込み
以上より,ゲームボーイを用いたロボットプログラミ
ングシステムに必要な機能のすべてを実現することがで
きた.
7.おわりに
教育用ロボットの梵天丸を対象に,搭載マイコンのプ
ログラミングをゲームボーイ上で行うシステムを開発す
るにあたり,システム設計,開発環境の構築と,エディ
タ,コンパイラの開発を行った.さらに PIC への書き込
みプログラムも開発し,プログラミングシステムとして
必要な機能のすべてが実現できた.今後は小中学生がこ
のシステムの検証を行える程度に使いやすくし,小中学
生を対象にこのシステムの検証を行う予定である.
最後に,本研究は文部科学省科学研究費萌芽研究
17650248 の補助を受けて行われていることを付記し,
ここに謝意を表する.
参考文献
[1]メカトロで遊ぶ会:梵天丸とは,
http:/www.inrof.org/TORO/bonten/index.html
[2] 今,熊谷:携帯ゲーム機を利用したロボットプログ
ラミングシステムの開発(第 1 報)
,機学東北支部秋
季講演会講論,041-2,2004.09,pp.231-232
[3] 佐藤,今,熊谷,大泉:携帯ゲーム機を利用したロ
ボットプログラミングシステムの開発(第 2 報)
,機
学東北支部総会講論,2006-1,2006.03,pp.149-150