最初にWindows パソコン上にプログラム開発環境を構築します.この開発環境はロボットが完成した後のプログラム開発にも使用します.
以下の説明では秋月電子通商で販売しているAKI-H8/3664F Tiny マイコン専用 Cコンパイラを利用することを前提にしています. ルネサステクノロジ製の無償コンパイラHEW2 を使用する場合は, こちらのページ を参考にして下さい(事前にStep 4でファイル取得しておき,プログラムをロボットのマイコンに書き込むところまで終えたところで Step 7, 8 を実行して下さい).
まず,以下のものを用意します.
最初に,プログラムをコンパイルしたり,ライブラリやオブジェクト同士をリンクしたりする作業用のフォルダを用意しましょう.(すでに自分専用のプログラム開発環境を構築して使いこなしている方は,そのままお使い頂いて結構です.Step 4 のプログラムだけをダウンロードして適切に配置して下さい.)
Cドライブに"H8"という名のフォルダを作り,その中に"3664"という名前のフォルダを作って下さい.そして,"3664"フォルダの中にアセンブラ・デバッガ・モニタCDの中のASM フォルダの中からASM38.EXE とLNK.EXE をコピーします.
つぎに,AKI-H8/3664F Tiny マイコン専用 CコンパイラのCDの中から H の拡張子のついているファイルすべてと,LIB 拡張子のついているファイル,および EXE の拡張子の付いているファイルすべてをこのフォルダにコピーします.
H の拡張子のついているファイル(ヘッダーファイル)が16個,LIB という拡張子のついているファイル(ライブラリーファイル)が2個,そしてEXE の拡張子の付いているファイルが8個あればOKです.
ファイルの個数の確認が済んだなら,H8 という親フォルダに戻り,こちらの中には,アセンブラ・デバッガ・モニタCDの中のWRITER フォルダの中から3664.MOT とHTERM.EXE をコピーします.そしてつぎに,作成したソースプログラムをしまっておくフォルダ,"src"フォルダとコンパイルされたオブジェクトファイルをまとめておくフォルダ,"obj"フォルダを作成します.
以上で,プログラムの書き込みに必要な最小限度の準備が整いましたが,各種のドキュメントファイルが手元にあった方が良いと思われるなら,"docs" フォルダも用意してそこに必要なドキュメントをコピーしておくと良いでしょう.
秋月電子のプログラム開発ツールは価格が安くて有難いのですが,DOS窓ベースで使わなければいけません.そこで,できるだけキーを打たなくて済むように,そしてなおかつ効率良くプログラム開発ができるように,バッチファイルを活用することにします.
プログラム開発に必要と思われるバッチファイルを作成しておきましたので,以下のURLからダウンロードして解凍して下さい.最新のバッチはVersion 0.3.0 です.(2003年のバッチも2004年度キットで使えます)
batchフォルダの中には以下の3つのバッチファイルが入っています.それら総てを C:\H8 フォルダに置いて下さい.
標準ロボットを動かすのに必要なプログラムを以下のURLからダウンロードします.現在のプログラムバージョンはVersion 0.3です.(バッチファイルとプログラムのバージョンが上2桁まで同じであることを確認して下さい.バージョンが異なると正常に動かないことがあります.)
ダウンロード:program_0.3.6.lzh (2005/4/22現在の最新バージョン)
もし他にプログラムの最新版があれば,次のURLからダウンロードします.上のプログラムの中身と差し替えて使って下さい.
http://kamuy.elec.muroran-it.ac.jp/robocon2/making/2004/techknow/program.html
解凍後は以下のファイルが現れますので,これらを下の指示通りフォルダに移して下さい.
マイコンボードに書き込むためのファイルを作るには以下のような手順が必要になります.
では,試してみましょう.まず,Windows の「スタート」→「プログラム」→「MS-DOS プロンプト」(Windows Me では MS-DOS プロンプトは「アクセサリ」の中の「MS-DOS プロンプト」.Windows XPなら「スタート」→「すべてのプログラム」→「アクセサリ」の中の「コマンドプロンプト」)を選択して,いわゆる「DOS 窓」を開きます.そして,下の赤文字のように入力していきます.
すると,DOS 窓に色々な表示が現れた後,以下のような表示をしてコマンド待ちの状態になるはずです.
C:\H8フォルダ内にできたcore.ERR ファイルにも同じ内容が出力されているはずです.エラーがなければもう参照することはありませんからcore.ERR は削除して下さい.(もし,上記以外の表示が出たとしたら,core.mar がC:\H8\srcに置かれていないか,アセンブラASM38.EXE がC:\H8\3664フォルダにない可能性があります.)
以上で,Cプログラムの開発環境は整いました.標準ロボットの動きをチェックするプログラム check.c を使って,マイコンに書き込む形式のプログラムファイルcheck.ABS を作成してみましょう.と言ってもいたって簡単で,DOS 窓上で以下のように打ち込むだけです.
すると,色々表示されたあと,以下のような表示をしてコマンド待ちになります.
C:\H8フォルダの中には,check.ABS の他にcheck.lst, check.ERR, check.MAP という3つのファイルが新しくできているはずです.今の場合はエラーも出ずに無事終了したと思いますが,プログラムにバグがある場合には,ERR ファイルに問題のある行番号とエラーメッセージが出力されます.
最初にパソコンのシリアルポートをチェックしておきましょう.Windows の「スタート」→「設定」で「コントロールパネル」を選択し,開かれたウインドウの中からシステムアイコンをダブルクリックします.すると,システムプロパティのウインドウが開かれますので,そこで「デバイスマネージャ」のパネルを選んで下さい.表示された項目一覧の中に「ポート(COMとLTP)」があるはずですから,「+」のところをクリックして使用できるCOMポートが何番に割り当てられているか調べます.下の例ではCOM1とCOM2が使用可能であることがわかります.
Windows XPを使っている方は,「コントロールパネル」→「システム」とアイコンを選び,システムのプロパティのウインドウが開かれてら,「ハードウェア」のタグを選択します.すると真ん中の段にデバイスマネージャのプロパティが現れますからそこでデバイスマネージャのボタンを選択します.あとは,Windows 98などと同じです.
COM1ポートが使えるものとしましょう.RS232C延長ケーブルをマイコンのシリアルポート(COM1ポート)に接続し,一方をH8/3664F Tiny のコネクタに接続します.パソコンのハードウェアの都合でCOM1 以外のポートしか使えない場合には,そのポートの番号を覚えておいて下さい.標準ロボットの方は,電源スイッチがOFF,ブートスイッチがブートモードになっていることを確認して下さい.
つぎに,MS-DOS プロンプトを開いて C:\H8 フォルダに移り,書き込みプログラム HTERM.EXE を立ち上げます.
COM1以外のポートを使わざるを得なかった方は,hterm の後ろに ポートを明記して下さい.例えばCOM2 を使うのであれば,hterm com2 というように入力します.さて,HTERM が立ち上がると,上のように表示してコマンド待ちの状態になりますので,ここで
Ctrl キーを押しながら F キーを押して,フラッシュメモリに書き込む操作であることを知らせてあげます.
すると,上のようなメッセージを出してきますので,ここで,ロボットキットのブートスイッチがブートモードにセットされていることを確認した上で,ロボット本体の電源スイッチをON にし,Enter キーを押して下さい.
Input Control Program Name : という表示が出て,コマンド待ちになったなら
と入力して,フラッシュメモリを初期化するコントロールプログラムを指定します.少し時間がかかるかも知れませんが,最終的に以下のような表示が出て,書き込むべきABS プログラムが要求されます.(もし,Timeout Error ! という表示が出てしまった場合は,ケーブルがしっかりとコネクタにささっていないか,ブートスイッチがブートモードになっていないか,H8/3664F Tiny の電源が入っていないか,あるいは電池が消耗しているかです.確認して下さい.それでも同じエラーが出るようでしたら,外部に取り付けたトグルスイッチからプリント基板のコネクタまでの配線に問題があります.)
今の場合は check.ABS を書き込みたいので
と入力します.拡張子は付けても付けなくても構いません.プログラムが長いので結構時間がかかりますが,最後にProgram Completed. と表示が出ると書き込みは完了です.Escキーを押してHTERM から抜け出て下さい.なお,HTERM を途中で抜けるときにもEscキーは有効ですが,プログラム名が要求されているときに強制終了するには「Ctrl+C」を押す必要があります.
書き込みが済んだなら,ロボット本体の電源を切り,コネクタからRS232C ケーブルを外します.
ここで紹介した一連の手続きは,プログラムを作ってロボットに書き込むときにいつも必要となる作業です.必要に応じて読み直して下さい.
ベースボードについているディップスイッチのレバーを2個ともONと書かれている側(基板の外側)にセットして下さい.つぎに,ブートスイッチをノーマルモード(RUNの状態)にし,電源スイッチをON にします.するとベース基板上の2個のLEDが交互に点滅し,両方の車輪が回転を始めるはずです.この回転は電源スイッチをOFFにするまで止まりません.もし,車輪がこの標準ロボットを地面に置いたときにキャスタの方向に進む向きに回転しているのなら,あなたは運が強い人です(笑).反対方向に回転している場合は,一度電源スイッチを切り,モータ端子に繋がっているコードの半田を溶かし,キャスタのある方へ進むように付け替えて下さい.ここで,もしコードが長いようでしたら,余分なたるみが出ないように長さの調節もして下さい.
電源スイッチをOFFにした状態で,1と書かれている方のディップスイッチを1の側にセットし電源スイッチをONにします.両方の車輪ともゆっくりと安定した前進回転をするようなら,あなたはさらに運の強い人です.全速力で勢い良く回ってしまうようなら電源スイッチをOFFにし,ロボットを裏返してエンコーダ基板が見えるようにして下さい.両方の基板ともブロックに直角に取り付けられているでしょうか.まず,側面の基板を直角にしっかりと固定して下さい.つぎに上面の長い切り込みのある基板も直角に固定して再度スイッチを入れてみて下さい.前と同じようなら,またスイッチを切り,今度は上面の基板を穴の向きに少しだけ並行にずらして取り付けます.そして回転の様子を観察します.これを繰り返すと,どこかで必ずゆっくりと前進回転するような取り付け位置を発見できますから,その位置でしっかりと直角に固定して下さい.これで,走行系の調整は終わりです.
以上で,走行系の調整は完了です.