|
「Beauto Builder NEO」でのプログラミング
|
前回私がプラスドライバーのサイズの存在を大学3回生まで知らなかったことを記事に書いたことで、「信じられへん!」と上司から呆れられました。しかし、O先生、考えてみてください。私が学生時代ご指導いただいた恩師はO先生でした。
皆さんこんにちは。大阪工業大学ものづくりセンター近藤です。Beauto Chaser学習レポート第3回目となる今回は、プログラミングを簡単に行なえる「Beauto Builder NEO」を使って、前回紹介したサンプルプログラム(光を追いかけるプログラム)を実際に作ってみたいと思います。
Beauto Builder NEOとは、Beauto Chaserに付属するソフトウェアで、右図のようなプログラムエリアにフローチャートを直接描いていくような形でプログラミングを行なうことができます。C言語にチャレンジする前にこのソフトでプログラミングの感覚を磨くことができる便利なソフトウェアです。図では、1.5秒前進→1秒ラ#を鳴らす→1.5秒後退の動作を行なってプログラムを終了しています。
● 「PCとロボットの認識」の操作を忘れずに!!
まずは説明書にそって、付属のCD-ROMからBeauto Builder NEOとUSBドライバをインストールしましょう。インストールを終えたらまずはPCとロボットが通信できるようにお互いを認識させる作業が必要になります。ここは間違いが起きやすい点ですので、詳しく説明していきましょう。
なお、付属のCD-ROMではなく、最新版のBeauto Builder NEO(Release2)をWebサイトからダウンロードして利用する方法もあります。こちらについては下記の「Beauto Builder NEO(Release2)について」を参照して設定を行なってください。
|
|
Beauto Builder NEOとUSBドライバのインストールが終了したら、Beauto Chaserに付属の通信ケーブルを準備し、ケーブルの大きいコネクタ側をPCのUSBポートに、小さいコネクタ側をロボットの通信コネクタに、それぞれ接続します
|
接続したらロボットの電源スイッチをONにします。これでPCにロボットを認識させる準備が整いました
|
● WindowsXPのPCとロボットの認識
それでは、PCにロボットを認識させます。ここではまずWindows XPを使って手順を紹介していきます。この操作の前に必ず上記までの手順でBeauto Chaserのソフトウェア「Beauto Builder NEO」と「USBドライバ(CP210x_VCP_Win2K_XP_S2K3.exe)」のインストールを行なってください。なお、Windows Vistaをご使用の方は次の「Windows VisutaのPCとロボットの認識」の手順で設定してください。
|
|
|
接続したらこのようなウィンドウが表示されます。「いいえ、今回は接続しません」を選択し「次へ」をクリックします
|
「一覧または特定の場所からインストールする」を選択し、次へをクリックします
|
「次の場所を含める」を選択しファイルの参照をクリックします
|
|
|
|
「C:\SiLabs\MCU\CP210x
\Windows_2k_XP_S2K3」を開き、OKをクリックします
|
1つ前の画面に戻ってくるので「次へ」をクリックします
|
完了するまで待ちます
|
|
|
完了するまで待ちます
|
完了をクリックしてロボットの認識は完了しました
|
● WindowsVistaのPCとロボットの認識
付属のCD-ROMに入っている「Beauto Builder NEO取扱説明書ver1.1」にはWindows XPの場合の操作のみ表記されていましたので、この機会にWindows Vistaの「PCとロボットの認識」方法を紹介したいと思います。この操作の前に必ず上記までの手順でBeauto Chaserのソフトウェア「Beauto Builder NEO」と「USBドライバ(CP210x_VCP_Win2K_XP_S2K3.exe)」のインストールを行なってください。
|
|
|
上記画面で「ディスクはありません。他の方法を試します(I)」を選びます
|
上記画面で「コンピュータを参照してドライバソフトウェアを検索します(上級)(B)」を選択します
|
上記画面の参照をクリック後、USBドライバをインストールしたフォルダ「C:\SiLabs\MCU\CP210x
\Windows_2k_XP_S2K3」を開き、OKをクリックします
|
|
|
ドライバソフトウェアをインストールしています
|
上記画面が出ればインストールは成功です。画面の右上に接続に使われているシリアルポート番号が表示されますので、シリアルポート番号の設定の時のためにメモしておくとよいでしょう。ここでは(COM3)と表示されています
|
● シリアルポート番号の調査
PCがロボットを認識したら、次に「シリアルポート番号」を確認します。Windows Vistaをお使いの方は先ほどメモしたシリアルポート番号を使います。Windows XPではシリアルポート番号の調べ方について「Beauto Builder NEO取扱説明書ver.1.1」に掲載されていますので参照してください。シリアルポート番号の設定を行なった後、通信が正常に行なわれるかどうか確認してみましょう。lineボタンを押し、センサ・ボタンの値が表示されれば成功です。
|
|
赤い矢印で示したのが「line」ボタン
|
lineボタンを押したあと、画面左下にある「センサ・ボタンの値」に数値が表示されれば大丈夫です
|
● Beauto Builder NEO(Release2)について
製品付属のCD-ROMにはBeauto Builder NEO (Release1)が入っていますが、現在、2009年2月19日付けでアップデートされたタイプのBeauto Builder NEO(Release2)が下記のサイトからダウンロードできるようになっています。こちらの方はシリアル番号の設定をしなくてもよいように改良されています。
□Beauto Chaserのソフトウェアダウンロードページ
http://www.vstone.co.jp/top/products/robot/beauto/cdownload.html#builder
こちらのバージョンを使う場合は、Beauto Chaser公式Webページよりダウンロードできる「Beauto Builder NEO取扱説明書(ファイル名:BeautoBuilderNEO_docs.zip)」をダウンロードし、その指示に従って設定を進めてください。Release2ではシリアル番号の設定が自動化されているため、若干手順が異なります。
● Beauto Builder NEOの使い方
ではいよいよBeauto Builder NEOを使っていきましょう。プログラムエリアにフローチャートをどうやって組み立てていくかを簡単にまとめてみました。
|
|
まずはプログラムエリアにブロックを置いてみます。ブロックセンサエリアの「止まる」ブロックを左クリックで選び、プログラムエリアで左クリックを押すと、ブロックが配置されました。ブロックはプログラムエリアの網目に沿って配置されます
|
同様に前進ブロックも配置します
|
|
|
次に各ブロックを矢印でつなげてみましょう。ブロックの下についている青い小さな四角をドラックすると矢印を引っ張り出すことができます。そのまま別のブロックに重ねると2つのブロックが矢印でつながります
|
ブロックで行動を配置し、それを矢印でつなげていくことによって、プログラムエリアにフローチャートのようなものを作成していくわけですね
|
|
|
矢印をはずしたい場合は、もう一度ブロックの下についている青い小さな四角をドラックすると矢印が紫色になって外れ、他のブロックと重なっていない状態でドラックをやめると矢印を消すことができます
|
ブロックを消したいときは、消したいブロックを選んでDeleteキーを押すことで、間違えて作成してしまったブロックや、不要になったブロックを消すことができます
|
● ブロックの種類
ブロックの種類は、前進・停止などのBeauto Chaserの動きを制御するもののほかに6種類のブロックがあります。
ウェイトのアクションブロック
「現在のロボットの状態を維持したまま、指定した時間だけ次のアクションに進まずに待つ」という機能です。
ブザーのアクションブロック
ロボットのCPUボードに備わったスピーカーより「鳴らす音の高さ」と「鳴らす時間」を指定してブザー音を鳴らす機能です。「ド」から「シ」までの合計12音を鳴らすことができます。
LEDのアクションブロック
ロボットのCPUボードに搭載されたLED1を指定の時間で点灯・点滅させる機能です。
分岐のアクションブロック
センサやボタンの値が指定した数値と比較して「大きいか」「小さいか」「同じ数値か」などの条件を判断し、プログラムを進める経路を選択する機能です。
ランダムのアクションブロック
ロボットがどちらに進むかを勝手に選択します。どちらに進むかはプログラムを実行するたびに変わるので、さいころなどプログラムの中に偶然を組み込む場合に使用します。
繰り返しのアクションブロック
プログラムの一部を、指定した回数だけ繰り返し実行させる機能です。同じアクションを何度か繰り返すプログラムの場合は、いくつもアクションブロックを並べずに繰り返しのアクションブロックを使うことで、プログラムを簡単にすることができます。
スタートブロック
プログラムの始まりを表します。
ENDブロック
プログラムの終わりを表します。
また、一部のブロックには行動する時間を決める機能があり、0.1秒単位で細かく設定できます。実際に簡単なプログラムを作成してみました。まずは2秒前進するだけのプログラムをつくってみました。
|
|
|
ブロックセンサエリアの前進ブロックを選択しプログラムエリアに配置します
|
プログラムエリアの前進ブロックを選択した状態でブロックセンサエリアを見ると行動時間が1.5秒に設定されています。この部分を2.0秒に変更しました
|
次にSTARTブロック→前進ブロック、前進ブロック→ENDブロックの順番につなげます。これでプログラムは完成です。内容は、プログラムがスタートした後、前進を2秒実行しプログラムを終了するというものです
|
プログラムを実行するためには、作成したプログラムをロボットへ転送する必要があります。それでは実際にプログラムをロボットへ書き込み、実行してみましょう。
|
|
lineボタンを押し、ロボットの通信を開始し、書き込みボタンを押してプログラムをCPUボードに記録します
|
USBケーブルをCPUボードからはずし、一度電源を切ることによりCPUボードの再起動を行ないます。USBが刺さっていない状態で起動するとプログラム実行モードになります。この状態でスタートボタンを押すとプログラムが起動します
|
|
ケーブルをつないだままプログラムを実行する方法。lineボタンを押し、ロボットの通信を開始し、再生ボタンを押してプログラムを実行します
|
この操作でBeauto Chaserが無事2秒前進できるようになりました。まずは最初の第一歩が成功です。
また、プログラムの再生はBeauto ChaserとパソコンをUSBケーブルでつないだままでも実行することができます。今度はこちらも試してみましょう。
ただし、Beauto ChaserとパソコンをUSBケーブルでつないだままプログラムを実行すると、プログラムをCPUボードに記録してから実行した場合と比べ、実行速度が遅くなるため注意が必要です。
● サンプルプログラム
|
サンプルプログラムのフローチャート
|
Beauto Builder NEOの使い方にもそろそろ慣れてきましたか? いよいよサンプルプログラムに入っていた光を追いかけるプログラムを再現してみたいと思います。
サンプルプログラムをよく観察してみると、センサが光を発見していないときは右旋回、左旋回をランダムで繰り返しているように見えます。おそらく生物っぽい動きを再現するためにこのような動作になっているのでしょう。光を発見したときは前進を行なっているようです。また、CPUボードのボタンを押すと動作を停止・再開を切り替えることができることから、プログラムの中にボタンが押されているかどうかを判断し、プログラムの停止、再開を制御する部分も組み込まれているようです。結構複雑なので、まずは単純なプログラムを作成し、後から機能を追加していきたいと思います。
第一段階として、センサ1が光を発見したときは前進、センサ1が光を発見していないときは左旋回のみ行なうプログラムを作成しました、フローチャートは下図となります。条件分岐を1つ使った、2種類の行動を選ぶだけの単純なプログラムですね。ループとは、条件が真の場合そのブロックで囲まれた部分を繰り返すという処理を表しています。条件は常に真なので、光を追いかける処理をずっと続けるという意味になります。
|
|
|
実際にBeauto Builder NEOで書くとこのようになりました。センサ1の値が2,000以下のとき前進、値が2,000以上のときに左旋回を行ないます。動作を継続して続けるために前進や旋回を行なった後、ENDにつなげず繰り返し条件分岐ブロックに行くようにしています
|
条件分岐のセンサ1の閾値(しきいち)は、実際に光を当てたとき、当てていないときの値を確認して割り出しました。センサ・ボタンの値はセンサブロックエリアで確認することができます。光を当てたときの値は80~200、当ててていないときの値は4,000~4,100でした。閾値は単純に2つの条件時の値の真ん中あたりの数字、2000としました
|
センサに光を当てて値を計測してみます
|
前進と旋回の時間を0.1秒としている理由は、センサ情報を読み取る処理をできるだけ多く行なうためです。例えば旋回の部分を1.0秒としていた場合、1秒間に1回しかセンサ情報を読み取る処理ができません。0.1秒とすることで1秒間に10回、光の有無を確認することができ、発見確率を上げることができます。
ちなみに時間を「ずっと」に処理するとこの秒数が0.1秒より短くなり、より多くのセンサ情報を読み取る処理が可能になります。
プログラムを書き込んで実行してみました。
|
【動画】プログラムを実行したところ。懐中電灯の光を見つけると近づいていく
|
ぎこちないですが光に近づいているのでOKでしょう。次回はBeauto Builder NEOを使い光を追いかけるプログラムの応用や、ライントレース、自動落下回避のプログラムを作成していきます。
■ 関連記事
・ ヴイストン「Beauto Chaser」で学ぶプログラミング入門講座 【第2回】Beauto Chaserの組み立て(2009/03/19)
2009/03/27 19:26
- ページの先頭へ-
|