ヴイストン「Beauto Chaser」で学ぶプログラミング入門講座
【第7回】Beauto ChaserをC言語でプログラミング!-開発環境セットアップ編
皆様こんにちは。大阪工業大学電子工学研究部の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
さて、ダウンロードは終わりましたか? お疲れさまでした。それでは続けてソフトウェアのインストールもしていきましょう。
●ソフトウェアのインストール
同様にFDTのインストールもしていきましょう。
●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」となります |
●LEDサンプルプログラムのビルド
ここまでうまくいきましたか? これからLEDプログラムをBeauto Chaserでビルド(Beauto Chaserで実行可能な形式にすること)していきます。
これでビルドに必要なファイルがすべて集まりましたので一度ビルドしてみましょう。
これで「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