ヴイストン「Beauto Chaser」で学ぶプログラミング入門講座

【第7回】Beauto ChaserをC言語でプログラミング!-開発環境セットアップ編

Reported by imokenpi

 皆様こんにちは。大阪工業大学電子工学研究部のimokenpiです。ヴイストン株式会社のBeauto Chaserを使った連載も、今回で第7回を迎えました。今回から3回にわたり、C言語を用いたプログラミングに挑戦していきましょう。思い返せば高校生の頃、プログラミングにあこがれてC言語の本を買っても途中で放り投げ、気がつけばそれほどプログラミングをすることもなく大学生になっていました。そんなとき、大阪工業大学ものづくりセンター職員の近藤に「これあげるからやってみたら?」と見せられたのがBeauto Chaserでした。

 まだまだプログラミングは不慣れなのですが、自分のプログラムでBeauto Chaserが動くというのは大変愉快です。実はC言語の初心者向けの本を必死になって読みながらの筆者なのですが、どうぞよろしくお願いします。

 さて前置きはこのくらいで早速プログラミングと行きたいところですが、C言語でのプログラミングには追加の準備が必要なのです。それでは準備から始めていきましょう。

何はともあれまず準備

 始めにBeauto ChaserがPCで認識されているか確認しましょう。認識がまだの場合は連載第3回のとロボットの認識の章を参考に認識させておいてください。

・ヴイストン「Beauto Chaser」で学ぶプログラミング入門講座
【第3回】Beauto Builder NEOの使い方
http://robot.watch.impress.co.jp/cda/vstone/2009/03/27/1684.html

 ではBeauto Chaserの開発環境をそろえていきます。

 Beauto ChaserはCPUにルネサス テクノロジ(以下ルネサス)の提供するH8/36064を搭載しているため、プログラミングにはこれに対応した開発環境が必要になります。この連載では、開発環境としてH8プロセッサの本家、ルネサスが提供する「HEW」を使っていきます。

統合開発環境HEWダウンロード方法

 さて開発環境の入手方法やセットアップ方法ですが、ヴイストン社のWebページにマニュアルがあります。以下のサイトからダウンロードできますので下図を参考に手に入れておきましょう。

・Beauto Chaserのソフトウェアダウンロードページ
http://www.vstone.co.jp/top/products/robot/beauto/cdownload.html#clang

 ダウンロードは終わりましたか? それではマニュアルも参考にしながら進めていきましょう!

ルネサスのユーザー登録

 マニュアルではさらっと書かれていますが、ソフトウェアのダウンロードはルネサスへのユーザー登録が必要です。意外と大変なので(笑)、心してかかりましょう。

ルネサスWebページ内のマイルネサスページで新規登録をクリックすると、個人情報の入力画面になります必要事項を入力後、ルネサスのプライバシーポリシーを読んだのち送信ボタンを押しますニュースレターの登録画面になりますが、特に興味が無い場合はそのまま送信ボタンを押して次へ行きましょう
すると「Eメールを送付しましたのでご確認下さい」という表示が出るので、個人情報の入力画面で登録したメールアドレスにルネサスからのメールが来ていることを確認してください届いたメールアドレスに書かれたURLをクリックし、表示されたWebページにログインIDとパスワードを入力したら送信ボタンを押してください。これで登録完了です

 お疲れ様でした。一仕事やり遂げた感がありますね(筆者だけ?)。それでは続けてソフトウェアのインストールを行なっていきましょう。

ソフトウェアのダウンロード

 ルネサスのWebページでは「HEW」などプログラミングに必要なソフトウェアが無償評価版としてダウンロードできますので、今回はこれを利用します。無償評価版といってもBeauto Chaserのプログラミングには必要十分です。また使用期限もありません。ゆっくり学習できますね。ではダウンロードを始めていきましょう。今回使用するソフトウェアは以下のサイトから手に入れることができます。

・評価版ソフトウェアダウンロードページ
http://japan.renesas.com/fmwk.jsp?cnt=/download_search_results.jsp&fp=/support/downloads/download_results&layerId=2296

まずHEWをダウンロードしましょう。「【無償評価版】H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ」と書かれたリンクをクリックします。ここで注意しなければならないのは“H8SX,H8S,H8ファミリ用”を選ぶ必要があることです。同じような名前がたくさんありますので注意して選んでくださいログインIDとパスワードを求められますので、先ほど登録したものを入力後、送信ボタンを押しましょう注意書きが出てくるのでこれを読んだ後、同意しますを選択しSubmitボタンを押します
すると画面が切り替わり、Downloadボタンをクリックするとダウンロードが始まります。ダウンロードが終わるまでしばらく待ちましょう同様に【無償評価版】フラッシュ開発ツールキット(実行ファイルをマイコンに送るソフトウェア、以下FDT)も【無償評価版】フラッシュ開発ツールキットと書かれたリンクからダウンロードしてください。

 さて、ダウンロードは終わりましたか? お疲れさまでした。それでは続けてソフトウェアのインストールもしていきましょう。

ソフトウェアのインストール

HEWから順番にインストールしていきましょう。ダウンロードしたインストーラファイルを実行すれば後は基本的に次へ(Next)を押していくだけですそのままNextを押してくださいこれらのウインドウが出てきたらインストールマネージャーの標準インストール(推奨)をクリックしましょう。ヘルプは閉じてしまってかまいません
次へをクリックしてくださいマニュアルではオートアップデートユーティリティをインストールしない設定になっていますのであわせておきましょう。チェックが外れでいることを確認してインストールボタンをクリックしてくださいしばらく待つとこのウインドウが出るので次へを押しましょう
資料許諾契約を読み「はい」をクリックすると次のウインドウに行きます地域の選択ではその他の地域(日本、アジア他)を選択し、次へをクリックしますインストールをクリックするとインストールが始まります。終わるまでしばらく待ちましょう
ここで完了を押しましょう終了ボタンを押せばHEWのインストールは終わりです。お疲れ様でした

 同様にFDTのインストールもしていきましょう。

FDTのインストーラを実行するとこのパッケージはサポートされていないという趣旨が書かれたウィンドウが出てきます。そのままOKを押してくださいNextを押してくださいこの画面ではAsia(Japanese)を選択し、Nextを押してください
ソフトウェア使用許諾契約書を読み、「I accept the term of the license agreement」を選択し、Nextを押してくださいそのままNextを押しましょう拡張子の関連付けについての選択画面が出ます。マニュアルでは.motを追加でチェックしていますのでこれを確認してNextボタンを押しましょう
そのままNextを押しましょうInstallをクリックするとインストールが始まります。終わるまでしばらく待ちましょうFinishをクリックするとFDTのインストールは終了です。2つともインストールは終わりましたか?お疲れ様でした

LEDサンプルプログラムの実行準備

 さて、ここからですがまずはヴイストン社が配布しているLEDを光らせるプログラムを動かして、実際にプログラムが実行できるか確かめていきましょう。

先ず先ほどのヴイストン社のWebページ内のVS-WRC003用のC言語サンプルソース配布ページから「LEDの点滅」ソース一式と「LEDの点滅」ビルド方法解説という2つのファイルをダウンロードしておきます。ここからは「LEDの点滅」ビルド方法解説のマニュアルを見ながら進めていきましょう「LEDの点滅」ソース一式を適当な解凍ソフトで解凍し、ファイルの入ったフォルダ名を「WRC003_SampleProject_LED」にしておきます。HEWではプログラムをワークスペースという単位で管理しており、今回のWRC003_SampleProject_LEDフォルダの中にはサンプルプログラムのワークスペースが入っています。このフォルダをCドライブ下にあるWorkSpaceフォルダに入れてください。つまりフォルダの構成は「C:\WorkSpace\WRC003_SampleProject_LED」となります
次にお待ちかねのC言語の開発環境、HEWを起動しましょう。左がWindows XPでの画面、右がWindows Vistaでの画面になります。スタートボタン内にあるショートカットをクリックするとHEWが起動します。OSがWindows Vistaでユーザーアカウント制御が有効な場合は、ショートカットを右クリックして管理者として実行を押して起動してくださいようこそ! というタイトルのダイアログが出てきますが、マニュアルに沿って一度キャンセルボタンを押しましょう
するとHEWの初期画面が出てきますメニューバーから「ファイル」→「ワークスペースを開く」を選ぶと選択画面になりますのでC:\WorkSpace\WRC003_SampleProject_LED内のWRC003_SampleProject.hwsを選択してください。するとサンプルプログラムのワークスペースが読み込まれます
ちなみにC:\WorkSpace\WRC003_SampleProject_LED以外からサンプルプログラムを読み込んだ場合、ウォーニングダイアログが出ますがはいを選べば問題なく読み込めます

LEDサンプルプログラムのビルド

 ここまでうまくいきましたか? これからLEDプログラムをBeauto Chaserでビルド(Beauto Chaserで実行可能な形式にすること)していきます。

サンプルプロジェクトのビルドに追加で必要になるファイルがあるので追加しましょう。メニューバー内の「ビルド」から「H8S,H8/300 Standard Toolchain...」を選択します「H8S,H8/300 Standard Toolchain」という名前のウインドウが出てきますので、ソースオプション項目が「インクルードファイルディレクトリ」になっていることを確認して追加ボタンを押しましょうするとAdd include file directoryという名前のウインドウが出てきます。ここで相対パスの項目で「Custom directory」を選択するとブラウズボタンが出現しますのでこれをクリックし、「C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_6_2\Generate\iodefine(H8_6_2の部分はソフトウェアのバージョンによって異なることがあります)」を選択し、ダイアログを終了します

 これでビルドに必要なファイルがすべて集まりましたので一度ビルドしてみましょう。

メニューバーから「ビルド」→「すべてをビルド」を選んでください。しばらく待つと画面下にずらずらとエラーが出ています。赤いエラーアイコンが出ている行がそれです最初にエラーが出ている行を見てください。ここから今回36064s.hというファイル(これは先ほどメニューバーの「ビルド」→「H8S,H8/300 Standard Toolchain...」から追加したファイルになります)にエラーがあることがわかります。この行をダブルクリックすると、HEW画面上のエディタ部分に36064s.hが開かれますマニュアルを読みますと、このエラーの原因は36064s.h冒頭に不必要な文があることであると書いています。36064s.h冒頭の文の頭に//を入力してコメントアウトするか、この文を削除してみましょう
それではもう一度ビルドしてみます。今度はエラーが出なかったはずです。右下にBuild Finished 0 Errors, 0 Warningsと表示されているのを確認してください。

 これで「C:\WorkSpace\WRC003_SampleProject_LED\LED_A\Debug」にVS-WRC003で実行できるファイル(拡張子は.mot)ができました。次はFDTを使ってこのファイルをBeauto Chaserに書き込み、実行してみましょう。

LEDサンプルプログラムの実行

スタートメニューから「Renesas」→「Flash Development Toolkit (バージョン名)」とたどって「Flash Development Toolkit (バージョン名) Basic」を起動してください。左がWindows XPの画面、右がWindows Vistaでの画面です。“Basic”の方を起動してくださいね。初めて起動するときに、設定をする必要があるので行ないましょう。フィルタに36064と入力するとH8/36064Fが出てきますのでこれを選択し次へを押しましょう
通信ポートにBeauto ChaserがつながっているCOMポート(連載第3回「シリアルポート番号の調査」の章を参照)を選び、次へを押しましょうここでは入力クロックを変更する必要があります。14.7456に変更し、次へを押しましょうここでは何も変更せず次へを押しましょう
ここでも何も変更せずに完了を押しましょう。ここまでの設定は次回以降必要になりませんそれでは実際にプログラムをH8マイコンに書き込んでみましょう。User/DataAreaを選択し、右向き三角のボタンをクリックするとダイアログが出るので「C:\WorkSpace\\WRC003_SampleProject\LED\Debug」にあるLED.motを選択しますBeauto Chaserのスイッチを押したまま電源スイッチを入れます
そのまま、FDTのスタートボタンをクリックすると書き込みが始まります。書き込みが完了しましたと表示されれば書き込み完了になります。Beauto Chaserの電源を入れ直すと緑とオレンジのLEDが交互に点滅します。うまく光らない場合もう一度書き込みを始めから行なってください【動画】書き込みの様子

サンプルプログラムの中身を見てみよう

枠で示した所がワークスペースです

 LEDは光りましたか? お疲れ様でした。これでいつでもC言語の開発を行なう準備ができました。最後にLEDプログラムの中身を見ていきたいと思います。HEW右側のワークスペースと呼ばれる場所に、ずらずらとファイルが表示されています。

 これが今回のサンプルプログラムを構成するファイルになります。こんなにファイルがいっぱい……いえいえ大丈夫です。この連載ではled.c(LEDを光らせるプログラム)、vs-wrc003.h(Beauto Chaserでできる基本動作についての関数を定義しているプログラム)の2つのファイルを見るだけで事足ります。

 これらを参照しながらBeauto Chaserのプログラミングを行なっていきましょう。(H8マイコンのプログラミングに親しんでおられる方は、vs-wrc003.cや、ヴイストン社のWebページからダウンロードできる回路図等を参照しつつプログラミングをするのもいいかもしれません。筆者にはまだまだちんぷんかんぷんですが……)

 それではled.cを見ていきます。ワークスペース内のLED_A内のled.cをダブルクリックして開いてください。いろいろと書かれていますが重要な部分は以下の通りです。

led.c抜粋
(省略)

/*メイン関数***********************************************************/    void main(void)    {    	//制御周期の設定[単位:Hz 範囲:30.0~]    	const BYTE MainCycle = 60;

 

Init((BYTE)MainCycle); //CPUの初期設定

//ループ while(1){ LED(1); //緑のLED点灯 Wait(1000); //1000msec待つ LED(2); //オレンジのLED点灯 Wait(1000); //1000msec待つ } } (省略)

 

 main関数内にLEDやWaitと言う関数が見えますね。これらはvs-wrc003.hで定義されています。vs-wrc003.hを見てみましょう。先ほどと同様にvs-wrc003.hをダブルクリックして開いてください。

vs-wrc003.h抜粋
(省略)

/*LED制御    CPUボード上の2つのLEDを制御する関数    引数: 0:消灯 1:緑 2:オレンジ 3:両方    戻り値: 無し    */    void LED(BYTE LedOn);

 

/*時間待ち 引数: 待ち時間(単位:msec) 戻り値: 無し */ void Wait(int msec);

(省略)

 

 と関数の説明とともににLED、Wait関数が定義されています。led.c内でのようにLED(1);と引数1でLED関数を呼ぶと緑色のLEDが光ることが分かります。led.c内ではその次にWait(1000);とあるので1000msec(=1秒)間そのまま、つまり緑が1秒間点灯し続けます。その後同様にLED(2);Wait(1000);とオレンジ色のを1秒間LED点灯させています。
この処理を、

while(1){
(処理の内容)
}

 と言う無限ループを使って実行させ続けています。C言語の本やWebサイトを読んでいただきたいのですが、while文とは条件式が真の間処理を繰り返すものでしたね。この場合条件式が1(=真)なのでいつまでもLEDが交互に点灯を繰り返すという結果になります。

 プログラムのその他の細かい部分は今はお約束ということで、はじめのうちは無視して、サンプルプログラムを書き換えながら徐々に学んでいけばいいと思います。

 さて、今回はLEDを光らせるサンプルプログラムを実行しただけでしたが、Beauto ChaserにはLEDのほかに、モーターやセンサーがついています。

 次回ではこのサンプルプログラムを雛形にしてプログラミングを行ない、ライントレーサのプログラミングをしていきましょう。



2009/5/29 00:00