二足歩行ロボットコミュニティサイト

【サイトの使い方】  【サイトマップ】  【お問い合わせ】 
ロボット動画  |   ロボット写真  |   BBS  |   ダウンロード  |   イベント予定  |   スタッフ日記  |   リンク  |  
ログイン パスワード    新規登録   パスワード紛失  

 

第19回 アナログ入力拡張ボードを使用する

今回も拡張ボード関連の内容が続きます

I2Cバスアドレスとディップスイッチについて

これまで二種類の拡張ボードの設定について説明してきましたが、「I2Cバスアドレス」と「ステータス取得変数」というどちらにも共通す る二つの設定があります。
これらの設定は他の拡張ボードにも共通で備わっています。これまで説明した拡張ボードではどちらも設定ダイアログの上部にありました ね。
これらの設定について詳しく説明すると、「I2Cバスアドレス」はCPUボードが拡張ボードを個別に認識するためのID番号、「ステータス取 得変数」は現在の拡張ボードとの通信状態を個別に見るためのものです(ステータスウィンドウの「err code」や「addr」の情報が拡張ボ ードで個別に見られるようなものです)。
現在ステータス取得変数は拡張ボード設定ダイアログ上で見ることができませんが、将来的には対応するでしょう。

ステータス取得変数とI2Cバ

スアドレス
I2Cバスアドレスは個々の拡張ボードの識別IDのようなもの、ステータス取得変数は各拡張ボードの接続状態を記録する変数

さて、これまで拡張ボードを接続する前に、拡張ボードの基板上に備わっているディップスイッチを設定するように説明があったと思いま す。
実はこのディップスイッチの設定は「I2Cバスアドレス」の設定と関係があるのです。
その関係を詳しく説明する前に、ディップスイッチ自体の説明を少し行いたいと思います。これまで掲載した写真では、どっちがONでどっ ちがOFFかもわかりづらかったですね。
下のディップスイッチの図を参照してください。

ディップスイッチの図説
「ON」と記述のある側にレバーを傾けるとON、逆側にレバーを傾けるとOFFの設定になる

ディップスイッチには、それぞれ1〜4の番号が割り振られており、マニュアルなどではSW1-1,SW1-2,SW1-3,SW1-4とも表記されます。
さて、どっちがスイッチのONでどっちがOFFであるかですが、「ON」と書いている方にスイッチのレバーを傾ければそのスイッチはONになり ます。
逆に、「1234」と書かれている方、つまり「ON」と書いていない方にスイッチのレバーを傾けるとそのスイッチはOFFになります。
拡張ボード出荷時には黄色いフィルムが貼られていますが、拡張ボードを使用する前にこれは必ずはがしてください。

ディップスイッチの何たるかがわかったところで、実際に設定を行います。
拡張ボードのI2Cバスアドレスは、ディップスイッチのON、OFFの設定で変更することができます。
たとえRobovieMaker側でI2Cバスアドレスの設定を変えても、その設定がディップスイッチの設定と食い違えば拡張ボードを正しく使用する ことができません。
拡張ボードのディップスイッチに対するI2Cバスアドレスの値は、拡張ボードの機種ごとに異なります。各拡張ボードのI2Cバスアドレスの 設定は、拡張ボードのマニュアルをご参照ください。
また、複数拡張ボードを使用する場合は、必ずI2Cバスアドレスが各拡張ボードごとに重ならない値に設定してください。同じI2Cバスアド レスの拡張ボードが複数あると、それらの拡張ボードを正しく使用できません。

アナログ入力デバイスの作成

さて、今回説明するアナログ入力ボード「VS-IX008」は、赤外線距離センサなど、アナログのセンサデバイスを接続してその情報を取得す ることができます。
VS-IX008には最大8つまで同時にセンサデバイスを接続できます。
センサデバイスの配線は、やはり自作の電子工作が必要となってきます。
センサデバイスの配線については、電源線2本とセンサの信号線1本の合計3本を接続する必要があります。
VS-IX008の10ピンコネクタの各出力は以下の通りです。
ちなみに、ピンに10芯コネクタとフラットケーブルを接続した場合の、ピンとケーブルの相対関係については、連載第16回にて解説しています。

各ピンの概要
POWに電源の+極、GNDに電源の-極を接続する。
CH0〜7のピンは、写真左上から番号順になっている(写真中CH2〜CH5は省略)

まずはセンサデバイスに電源線を接続しましょう。このとき絶対に極性を逆にしないでください。逆にするとセンサデバイスやVS-IX008自 体が壊れてしまいます。
次に、信号の入力線を配線してください。CH0〜7より任意のピンを一つ選んで配線を接続してください。
互いの配線は収縮チューブなどを使用して必ず絶縁処理を行ってください。
半田付け部分が接触してショートすると、VS-IX008やセンサデバイスが故障したり、データにノイズが入ります。
ここでは、実験用に赤外線距離センサとボリュームをつけたものを準備しました。
このデバイスでは、偶数CHにPSD距離センサ、奇数CHにボリュームの情報がそれぞれ返ってきます。

PSDセンサとボリューム
PSD距離センサとボリュームを接続したアナログ入力デバイス

最後に、センサデバイスに供給される電源電圧の設定を、製品に付属のジャンパピンを用いて行います。
VS-IX008では、基板上の以下のピンにジャンパピンを差し込む位置に応じて、センサデバイスに供給する電源電圧を「3.3V」と「5V」の二 つから選択できます。
接続したセンサデバイスの電源の特性を調べ、正しい電圧設定を行ってください。

アナログセンサデバイスへ

の出力電圧の設定
接続したセンサデバイスを、3.3Vで使用する場合は左写真の位置に、5Vで使用する場合は右写真の位置に、それぞれジャンパピンを差し 込む

最後に、I2Cバスアドレスの設定をディップスイッチより行います。VS-IX008のディップスイッチはデフォルトで0x92なので、SW1-3をOFF、 SW1-4をONに設定してください。

ディップスイッチの設定
SW1-3をOFF、SW1-4をONに設定する

RobovieMakerからの接続設定

RobovieMakerからの接続設定は、これまでとおなじみで、RobovieMakerから通信を開始してメニューの「プロジェクトの設定」→「CPUの設 定」を選択して下さい。
続いて「拡張機器」のタブから「追加」をクリックし、開いたダイアログの「デバイスの種類」で「VS-IX008(アナログ入力)」を選択して ください。
すると以下のダイアログを開くので、まずはデフォルトの設定で「適用」をクリックしてください。
設定を適用すると、センサデバイスの値が返ってきます。ここで、接続したセンサデバイスの反応を見てゲインやオフセットを調整してく ださい。
このときセンサデバイスの情報が正しく返ってこず、またステータスウィンドウの「err code」や「addr」に0以外の値が表示されている場 合は、CPUボードとVS-IX008の接続や、VS-IX008の基板上のディップスイッチの設定を見直してください。
また、これらの設定に問題がなく、また特定のセンサデバイスだけ情報がおかしい場合は、センサデバイスとVS-IX008の配線などを見直し てください。

ディップスイッチの図説
ジャイロ・加速度センサのように、正しく通信できている場合はセンサ情報が「現在のセンサ値」に表示される
ここで各入力のゲイン、オフセットの調整を行う。また、使用しないCHは変数を0にしておく

センサデバイスの反応状況を確認し、数値の変化量が大きすぎる場合は「ゲイン」の値を小さく、逆に数値の変化が小さすぎる場合は「ゲ イン」の値を大きく設定し、設定を「適用」してください。
ちなみに、特に実害があるわけではありませんが、センサデバイスを接続していない未使用のポートについては、データ格納変数を0(=使 用しない)に設定してください。

設定が完了したら、CPUボードのROMにも忘れずに設定を書き込んでください。

PSD距離センサに反応してモーションを自動再生

さて、接続したセンサデバイスは、前回のジャイロ・加速度センサと同じように使用できます。
例えば、ジャイロセンサ情報のサーボモータへのフィードバックのように、アナログ入力デバイスの情報をサーボモータにフィードバック させたり、加速度センサによる転倒検出/起き上がりモーション自動再生のように、距離センサの入力に応じてロボットに任意のモーション を自動再生させるようなことができます。

それでは、赤外線距離センサから取得した距離情報に応じてロボットに自動的に挨拶をさせて見ましょう。
ただ遮蔽物の有無で挨拶モーションを一種類だけ呼び出すのは簡単なので、ここでは距離に応じて二種類のモーションを呼び出すことにし ます。

まず操作マップの作成を開始します。
前回の加速度センサによる起き上がりで説明したように、操作マップの「アナログ1〜4」の入力は、変数の値に応じてモーションの発動条 件を設定して、任意のモーションを自動再生することが可能です。
アナログ1〜4には優先度が決まっており、アナログ4>アナログ3>アナログ2>アナログ1の順番で優先度が設定されています。アナログ1〜 4の条件が同時に複数成立している場合は、優先度の高いモーションを再生するようになっています。
では、アナログ1に距離が遠い場合のモーション、アナログ2に距離が近い場合のモーションを設定してください。
こうすることで、最初に距離センサに反応が現れてアナログ1の条件が成立した場合にはアナログ1のモーションを再生し、センサの反応距 離を縮めていきアナログ1とアナログ2の条件が同時に成立するようになったらアナログ2のモーションが再生されるようになります。

操作マップのアナログ入力

設定
アナログ1に遠い間合いの発動モーション、アナログ2に近い間合いの発動モーションをそれぞれ設定する

続いて、前回と同じように、参照変数 とモーション発動条件の設定を行います。アナログ入力の情報が格納される変数は139〜146なので、アナログ1,2共に「参照変数」にPSD距 離センサを接続した変数を設定します。
「条件選択」はアナログ1,2共に「閾値以上」を選択します。「条件詳細」は、アナログ1には遠い場合の反応値、アナログ2には近い場合の 反応値をそれぞれ設定してください。

これで作成した操作マップをCPUボードに書き込み、モード切替スイッチを書き込んだ操作マップにしてロボットを再起動します。
ロボットをコントローラでの操縦モードで立ち上げたら、コントローラのボタンなどを押さずにアイドリング状態のままPSD距離センサに手 を近づけて見ます。すると、センサの情報に反応してロボットが自動的に設定したモーションを再生します。
手とセンサの間合いが遠い場合はアナログ1の、間合いが近い場合はアナログ2のモーションを再生します。

距離センサの距離に応じてモーション切り替え
※画像をクリックすると動画を再生(wmv形式)
RB2000の目の部分にPSD距離センサが仕込まれている。遮蔽物との距離に応じて二つのモーションを切り替えている

今回は一つの距離センサを使い、その距離に応じてモーションを切り替えるデモでしたが、他にも4つのセンサをロボットの前後左右に搭載 して、ロボットに遮蔽物を近づけたらその反対方向へ歩いて逃げる、というようなデモなんかもできます。
同様に、もしアナログ入力基板に対応した「明るさセンサ」や「音センサ」のようなものがあれば、明るい方向や音のなる方向へロボット を自動的に誘導したりするデモもできますね。

ボリュームの状態に反応してサーボモータを動かす

さて、前回の内容ではジャイロセンサ 情報をサーボモータにフィードバックさせる設定を説明しました。
これは、サーボモータへの出力角度値の設定について、参照している変数にジャイロセンサの変数を設定することで実現しました。
これと同じように、参照変数にアナログ入力デバイスの変数を設定することで、アナログ入力デバイスの情報をサーボモータにフィードバ ックさせることができます。
それでは、今回はジャイロセンサの変わりにボリュームの入力情報をサーボモータにフィードバックさせて見ましょう。

大半の設定は、前回のジャイロセンサの設 定と同じです。
まずはCPUボードと通信を開始し、メニューの「プロジェクトの設定」→「CPUの設定」をクリックします。
クリックして開いたダイアログより「サーボモータ出力」のタブをクリックし、「サーボモータ選択」より任意のサーボモータを選択しま す(前回の通り、モータロックの起こりにくいヨー軸などが適切です)。
サーボモータを選択したら、「出力値設定」のkを1024、v1を31、v2を139〜146の任意の変数に設定して「適用」をクリックします。

サーボモータ出力の設定

続いてメニューの「ポーズ」→「ポーズスライダのプロパティ」をクリックして、「31:Gyro X Gain」を「スライダ有効」にします。
それで表示されたゲインのポーズスライダの値を256に設定します。
この状態でボリュームをまわすと、その情報に応じてサーボモータが動きます。

今回の例は余り良くなかったかもしれませんが、このような感じでアナログセンサデバイスの値をロボットにフィードバックできます。
これを応用すれば、各サーボモータ出力ごとに係数kやゲインの値を微妙に調整して、マスタースレーブっぽい使い方も可能です。
もしくは、ジャイロ・加速度センサ拡張ボードを二つ接続してジャイロセンサや加速度センサの情報に応じてロボットの腕が動くように設 定し、それを両手に持って振り回し、某N社の次世代機のごとくマスタースレーブっぽい動きをして遊ぶ、なんてこともできるかもしれませ んね。

最後に

残りの拡張ボード「デジタル入出力拡張ボード」は、次回にまわします。
上級編もだいたい前半が終了した感じでしょうか。
あとは、CPUボード内部の設定(基本制御周期など専門的な設定)、関節の追加方法、ゲームパッドのアナログスティックを利用したスラロ ーム歩行などの説明を行いたいと思います。


前のページ
第18回 ジャイロ加速度センサ基板「VS-IX001」を使う
コンテンツのトップ 次のページ
第20回 デジタル入出力拡張基板を使う


検索
Loading
メインメニュー