■ホビーロボット部品の製造・販売 
  モータコントローラ、センサ、音声、画像、無線モジュールなど、
■ホビーロボット制作記事のページ (各種マイコン、PCとの接続事例)
■特殊メイク、特殊材料の販売 ※特殊メイクのコーナーはこちらに移りました。
Top(お知らせ) 製品紹介 使い方とサンプルプログラム通信販売 リンク ロボット掲示板 会社案内
 Easy Robotics for all enthusiastic people!!!  ---HOBBY ROBOT PARTS SHOP ASAKUSAGIKEN---   Since 2003...

4点感圧センサー AGB65−4FS紹介
<概要>

■4つの感圧センサー搭載!!
AGB65−4FS (4−point Force Sensor) は1つのモジュール部(以下「モジュール」と言う)と4つの感圧センサ部(以下「センサ」と言う)からなるセンサーボードです。センサー部にも基板と取り付け穴があるので、センサ位置は自由に配置できます。
<−センサー部 付属のケーブルでモジュール部と接続します。

■歩行ロボット足裏重心計算、ロボット外装の接触位置判定に最適!!
4つのセンサーそれぞれの感圧情報以外に、4つの情報を自動計算して、重心をXY座標で数値出力も可能です。これにより、重心位置判定や、接触位置判定も簡単に行えます。重心位置は4箇所以外に重心があるか、又はその方向を検知することも可能です(下記通信フォーマットの説明を参照)。
また、現在の荷重を記憶し、その荷重からどのぐらい増えたのか又は減ったのかを数値で出力することも可能です。
これらの機能により、マスタ側(AGB65−4FSに接続して命令を送るマイコンやPC、以下「マスタ」と言う。)での計算負荷を低減することができ、アプリケーション開発に注力できます。

■ホビーロボットに最適な荷重!!
このセンサーは測定10N(約1kgf)、破壊荷重45N(約4.6kgf)と、小型のホビーロボットに最適な荷重性能となっています。(それ以上の荷重でも、ロボットの構造を工夫することにより破壊されることなく測定できます。)

■高感度、高精度、高速の検出!!

センサーは半導体型を採用し、高精度、高感度で値を読み取ることができます。また、センサーからモジュールへは高速に値を読み取ることができる為、値取得に要する時間はほとんど通信時間だけとなります。モジュール部ではセンサーからの微小な変化を増幅するアンプが搭載されています。

■12bitの高解像度!!

センサーからの信号は12bitで処理されるので高解像度の値取得が可能です。最低検知重量は約200gですが、200g以上の荷重でしたら軽く触れただけでも値が変わります。尚、短い通信時間でデータ取得ができるように8bitでのデータ出力も可能です。
12bitの場合の出力値:0〜4095 (2バイトで表現されます。)
8bitの場合の出力値: 0〜254
※最大値付近は破壊荷重になるので実際には値が出ない場合があります。

■他のAGR65シリーズに接続可能!!
他のAGB65シリーズのセンサやコントローラと同じシリアルラインを共有できます。AGB65シリーズについては「ロボット神経システムAGB65シリーズの説明」のページを参照願います。

■115Kbpsの高速通信が可能!
通信速度は115Kbpsにも対応し、PCなどから高速にデータを送信することが出来ます。(通常は9600bps)
注)マイコンの場合はクロックによっては正確な115Kが出ないものがありますので注意してください。クロックの選択は各マイコンのデータシートを参照願います(大抵は115200の倍数のクロックを使う必要があります。)

■電源搭載で外部に電源回路不要!バッテリ駆動が可能!

ボード上に電源回路を内蔵し、外部に電源回路が不要で、バッテリなどで駆動することができます。 通常は基板用電源7.5〜25Vと、サーボ用電源4.8、6、HV(近藤科学ハイボルテージ仕様)の2種類が必用ですが、HVサーボ使用時は7.5V以上なので基板用電源とサーボ用電源を共有できます。このとき、基板上のジャンパをさすことによりサーボ電源を基板電源入力にバイパスすることができます。


■29x29mmの超小型設計!
ロボットに基板を搭載する場合はその大きさがネックになりますが、4FSは極力小さい部品で構成されており、実装面積が小さくて済みます。また、基板の4角には取り付け穴があり、正方形に配置されていますので、取り付け後に向きを変えてもネジ穴をあけ直す必用がありません。(M2ネジ、25x25mmピッチ四方)


<モジュール部仕様>
基板用電源
 +7.5〜+25V (*1)  コネクタ:日圧B2B-EH
消費電流
 30mA
センサ数
 4個/モジュール  (1シリアルラインで最大4x16ID=64ポイントの測定が可能)
通信速度
 9600bps/115.2kbps  (ジャンパピンで設定)
通信設定
 8ビット、ノンパリ、ストップ1ビット フロー制御なし 非同期通信
通信規格
 TTLレベルEIA232C準拠 (*2)
固有ID
 100〜115 スイッチにより16種類に設定可能 (IDについては下記参照)
機能
 ●各センサの荷重測定
 ●各センサの現在荷重記憶
 ●各センサの記憶値からの差分測定(プラス/マイナスで出力)
 ●全センサの荷重測定
 ●全センサの現在荷重記憶
 ●全センサの記憶値からの差分測定(プラス/マイナスで出力)
 ●重心測定
 ●重心の記憶
 ●記憶した重心を中心として、現在の相対重心の出力
寸法/重量
 寸法29x29mm 穴ピッチ25x25mmφ2.2 重量:5g
付属品
 ■AGB65電源ケーブルx1 (基板と9V乾電池をつなぐケーブル)
 ■AGB65通信ケーブルx1
 ■ジャンパピンx1
(*1)高い電圧になるほど効率が落ち、発熱量が増えます。瞬間耐圧35V。
   HVサーボ使用時はジャンパ設定によりサーボ用電源だけでコントローラ本体の方も駆動できます。
(*2)5V系のマイコンと直結できます。PCと接続する場合は別売のAGB65-232Cが必用になります。


<センサ部仕様>
印加荷重
 10N (約1kgf)
破壊荷重
 45N (約4.6kgf)
使用温度
 -20〜+60℃
直線性
 -3〜+3%FS
寸法/重量
 寸法19x10mm 穴ピッチ15mmφ2.2(二箇所止め) 重量:1g


<ピン配列>

 
 センサ部取り付け穴位置

<AGB65−4FS価格>
 税込み 14,910円 (本体価格14,200円)

<センサー部のみの価格(1個)>
 税込み 2,520円 (本体価格2,400円)

<オプション>
 AGB65−232C 4,725円 (本体価格4,500円)
 (PCと接続する場合に必用です。下記接続例を参照。)


<接続例>


※複数接続する場合は、消費電流合計以上の出力が出せるバッテリを使用してください。基板用の電源にアルカリ9V乾電池を使用する場合は最高で800mA前後です。ニッカドやニッケル水素はアルカリの5〜10倍ぐらい出力できます。(商品にもよります)

<マイコンとの接続詳細>




<PCとの接続>
 PCと接続する場合は、AGB65-232Cに表示されている通りにケーブルを接続します。AGB65-232CにはPCのCOMポートへ接続するためのD-sub9ピンコネクタケーブルが付属していますので、これをPCへ接続します。この結果、上記マイコンとの接続の場合と同様に、PC(マスタ)のTXがコントローラのRXへ、PCのRXがコントローラのTXへ接続されます。




<電源ケーブルの接続>

 AGB65電源ケーブルは、なれないと差し込みづらいので、下の図を参照に、慎重に差し込んでください。まっすぐに挿入すると簡単に入ります。簡単に入らない場合は無理をして端子を曲げないように注意して下さい。尚、逆に挿そうとすると入りません。
 電源ケーブルの逆側には、9V乾電池用のスナップが付いております。これは簡易的なものなので、何回も乾電池を抜き差しするとスナップ部がゆるみますのでご注意下さい。9V乾電池以外の電源を使用する方は、ケーブルを切断してそれぞれの電源に合ったコネクタを取り付けて下さい。電源ケーブルを切断する際は、電源がつながっていないことを十分注意した上で行ってください。乾電池などが破裂する可能性があります。

  


<データ形式>

 マスタから4FSへの指示は、4〜16バイトの数値データで送られます。バイトサイズ(8ビット)なので、表される数値は0〜255の256種類になります。

 尚、以下特に記述がない場合は、数値は10進数で表しています。

 −基本形−

 データの基本形は次の通りになります。[ ]内は1バイトを表します。()内は送りえる数値の範囲を表します。

 [シンクロバイト(255)] [ID(100-115)] [送信バイト数(1-13)] [命令1] [命令2] [命令3] ...
シンクロバイト 4FSにデータの通信開始を知らせるデータで、常に「255」で始まります。
ID 4FSに設定された固有のID。
送信バイト数 送信される命令の(バイト)数。シンクロバイト、ID、送信バイト数は数えません。
命令 4FSに動作させたい命令。以下で詳しく説明します。
注)データはキャラクタデータではなく、数値(バイナリ)データで送ります。
例えばマイコンをマスタとし、C言語でプログラムを作る場合に255を送信しようとして(PCや他の言語も考え方は同じ)、

printf("255");

とするのは間違いです。これですとキャラクタデータですので実際には2と5と5を表す3バイトのキャラクタデータが送られてしまいます。数値データに直すと[32][35][35]が送信され(ASCIIコード参照)、[255]ではないことになります。

unsigned char SINC = 255;
printf("%d",SINC);

で、[255]が2バイトだけ送られます。
※お使いのCコンパイラによっては構文がことなるかもしれません(printf関数がないとか、バイトサイズ変数の宣言はcharではなくintやbyteだとか)のでご注意下さい。

−命令の説明−

<動作の説明>
■8bitモード:計算結果を8ビットの数値で返信します。

■12bitモード:計算結果を12ビットの数値で返信します。実際の通信は1バイト:8ビット単位で行われるので1データを送るのに2バイト使用します。

■セルフチェック:コントローラが動いているか、又は接続されているかを確認します。

<全命令説明>

※方向はマスタ側から見たデータの通信方向を表します。「送信」はマスタ−>コントローラへ送る命令、「受信」はコントローラ−>マスタへ返される結果を表します。
命令値 動作 方向 フォーマット
  (モード設定、他)    
8bitモードに設定 送信 [255][ID][長(1)][命令(100)] ※電源入り後は8bitモードに設定されてます
100 12bitモードに設定 送信 [255][ID][長(1)][命令(100)]
254 セルフチェック 送信 [255][ID][長(1)][254]
    受信 [255][ID][長(1)][254]
  (8bitモード)   ※電源入り後は8bitモードに設定されてます
P1の値を返す 送信 [255][ID][長(1)][命令(1)]
    受信 [255][ID][長(2)][命令(1)][結果(0-255)]
結果0は無荷重、大きくなるほど荷重が増える (以下同様)
P2の値を返す 送信 [255][ID][長(1)][命令(2)]
    受信 [255][ID][長(2)][命令(2)][結果(0-255)]
P3の値を返す 送信 [255][ID][長(1)][命令(3)]
    受信 [255][ID][長(2)][命令(3)][結果(0-255)]
P4の値を返す 送信 [255][ID][長(1)][命令(4)]
    受信 [255][ID][長(2)][命令(4)][結果(0-255)]
11 P1の値を記憶 送信 [255][ID][長(1)][命令(11)]
12 P2の値を記憶 送信 [255][ID][長(1)][命令(12)]
13 P3の値を記憶 送信 [255][ID][長(1)][命令(13)]
14 P4の値を記憶 送信 [255][ID][長(1)][命令(14)]
21 P1の差分を返す 送信 [255][ID][長(1)][命令(21)]
    受信 [255][ID][長(3)][命令(21)][符号][結果(0-128)]
符号は 0:プラス, 1:マイナス を表す (以下同様)
22 P2の差分を返す 送信 [255][ID][長(1)][命令(22)]
    受信 [255][ID][長(3)][命令(22)][符号][結果(0-128)]
23 P3の差分を返す 送信 [255][ID][長(1)][命令(23)]
    受信 [255][ID][長(3)][命令(23)][符号][結果(0-128)]
24 P4の差分を返す 送信 [255][ID][長(1)][命令(24)]
    受信 [255][ID][長(3)][命令(24)][符号][結果(0-128)]
30 P1-P4の値を返す 送信 [255][ID][長(1)][命令(30)]
    受信 [255][ID][長(5)][命令(30)][P1][P2][P3][P4]
P1,P2,P3,P4はそれぞれのポイントの結果 (以下同様)
40 P1-P4の値を記憶 送信 [255][ID][長(1)][命令(40)]
50 P1-P4の差分を返す 送信 [255][ID][長(1)][命令(50)]
    受信 [255][ID][長(9)][命令(50)][符号][P1][符号][P2][符号][P3][符号][P4]
60 現在の重心位置を返す 送信 [255][ID][長(1)][命令(60)]
    受信 [255][ID][長(3)][命令(60)][X][Y] 無負荷:X=Y=0 重心が外(上):Y=255 重心が外(下):Y=0 重心が外(右):X=255 重心が外(左):Y=0
70 現在の重心を記憶 送信 [255][ID][長(1)][命令(70)]
80 相対重心を返す 送信 [255][ID][長(1)][命令(80)]
    受信 [255][ID][長(3)][命令(60)][X][Y] 記憶時と同じ重心位置の場合:X=Y=127
  (12bitモード)   ※電源入り後は8bitモードに設定されてます
P1の値を返す 送信 [255][ID][長(1)][命令(1)]
    受信 [255][ID][長(3)][命令(1)][結果上位][結果下位]
結果は2バイトで返信される。12bitなので、結果上位のbit4,5,6,7には0が入る  0000RRRR RRRRRRRR (Rは結果ビット、以下同様)
P2の値を返す 送信 [255][ID][長(1)][命令(2)]
    受信 [255][ID][長(3)][命令(2)][結果上位][結果下位]
P3の値を返す 送信 [255][ID][長(1)][命令(3)]
    受信 [255][ID][長(3)][命令(3)][結果上位][結果下位]
P4の値を返す 送信 [255][ID][長(1)][命令(4)]
    受信 [255][ID][長(3)][命令(4)][結果上位][結果下位]
11 P1の値を記憶 送信 [255][ID][長(1)][命令(11)]
12 P2の値を記憶 送信 [255][ID][長(1)][命令(12)]
13 P3の値を記憶 送信 [255][ID][長(1)][命令(13)]
14 P4の値を記憶 送信 [255][ID][長(1)][命令(14)]
21 P1の差分を返す 送信 [255][ID][長(1)][命令(21)]
    受信 [255][ID][長(4)][命令(21)][符号][結果上位][結果下位]
符号は 0:プラス, 1:マイナス を表す (以下同様)
22 P2の差分を返す 送信 [255][ID][長(1)][命令(22)]
    受信 [255][ID][長(4)][命令(22)][符号][結果上位][結果下位]
23 P3の差分を返す 送信 [255][ID][長(1)][命令(23)]
    受信 [255][ID][長(4)][命令(23)][符号][結果上位][結果下位]
24 P4の差分を返す 送信 [255][ID][長(1)][命令(24)]
    受信 [255][ID][長(4)][命令(24)][符号][結果上位][結果下位]
30 P1-P4の値を返す 送信 [255][ID][長(1)][命令(30)]
    受信 [255][ID][長(9)][命令(30)][P1上位][P1下位][P2上位][P2下位][P3上位][P3下位][P4上位][P4下位]
P1,P2,P3,P4はそれぞれのポイントの結果 (以下同様)
40 P1-P4の値を記憶 送信 [255][ID][長(1)][命令(40)]
50 P1-P4の差分を返す 送信 [255][ID][長(1)][命令(50)]
    受信 [255][ID][長(13)][命令(30)][符号][P1上位][P1下位][符号][P2上位][P2下位][符号][P3上位][P3下位][符号][P4上位][P4下位]
60 現在の重心位置を返す 送信 [255][ID][長(1)][命令(60)]
    受信 [255][ID][長(5)][命令(60)][X上位][X下位][Y上位][Y下位]
X,Yはそれぞれ2バイトで表されます(12bitモードの命令1参照)
無負荷:X=Y=0 重心が外(上):Y=4095 重心が外(下):Y=0 重心が外(右):X=4095 重心が外(左):Y=0
70 現在の重心を記憶 送信 [255][ID][長(1)][命令(70)]
80 相対重心を返す 送信 [255][ID][長(1)][命令(80)]
    受信 [255][ID][長(5)][命令(60)][X上位][X下位][Y上位][Y下位]
記憶時と同じ重心位置の場合:X=Y=2047
上以外 無視されます    

<フォーマットの説明>
P0,P1,P2,P3 全センサ測定時の、各センサで測定した荷重値を表します。
結果 各センサ個別読み取り時の荷重値を表します。
8bitモード時は、1バイトで荷重値を表しますので0〜255の値が出力されます。
12bitモード時は2バイトで荷重値を表しますので、返信された結果をマスタ側で合成する必要があります。上位バイトのさらに上位4ビットには必ず0が入ります。

例)C言語でのコーディング例
/*12bitモードで命令1を送信した後に[結果上位]を変数Jyoui,[結果下位]を変数Kai,へ格納したとします。jyouiとkaiは符号無し8ビット変数とします(大抵はunsigned char型)*/

unsigned int Kekka=0x0000; /*16bit長の変数を宣言*/
Kekka = (int)Jyoui;  /*結果の上位バイトを格納 00000000 0000RRRR */
Kekka = Kekka << 8; /*8ビット分左シフトする   0000RRRR 00000000*/
Kekka = Kekka | Kai; /*下位バイトを合体     0000RRRR RRRRRRRR*/
XY 重心をXYの二次元座標で表します。センサは次のように四角形に配置します。

 

※上の図は上から見た配置です。センサー外側の四角線を板とすると、センサーは板の向こう側に取り付けられ、こちら側から向こう側へ荷重されているとしています。配置を間違えると結果値もおかしくなるのでご注意下さい。尚、四角形以外の配置(2点づつ2箇所測定や三角配置など)の場合はそれぞれの値をもとにマスタ側で重心計算してください。

<応答時間>
※4FS1台で動かした場合の、マスタからの命令を受け取ってから結果を返信し終えるまでの時間。(通信速度に大きく依存します。)

命令 9600/8bit 9600/12bit 115k/8bit 115k/12bit
1−4 5.1mS 6.1mS 420uS 520uS
21−24 6.1mS 7.2mS 520uS 600uS
30 8.2mS 12.4mS 680uS 1050uS
50 12.4mS 16.5mS 1029uS 1360uS
60 6.1mS 4.2mS 520uS 680uS



<使い方事例、サンプルプログラム>

 ■PCから感圧センサーAGB65-4FSを駆動する

 ■無線でPCと接続する

 ■BASICスタンプから感圧センサーAGB65-4FSを駆動する

 ■H8マイコンから感圧センサーAGB65-4FSを駆動する

 ■PICマイコンから感圧センサーAGB65-4FSを駆動する

 ■AVRマイコンから感圧センサーAGB65-4FSを駆動する



<Q&A>

Q:破壊荷重が45Nとありますが、4.6kgの荷重を超えると壊れるということか?
A:その通りです。但し、1つで4.6Kg(f)なので、上の重心測定のように4点で支持している場合は荷重が1/4になります。実際にはそれぞれのアプリケーション、動作状態で耐久性は変わってきますので、大きな荷重が加わる可能性のある場合は、センサーは消耗品とお考え下さい。

Q:電子部品店などでよく売られている「圧力センサー」と、この「感圧センサー」はどう違うのか?
A:圧力センサー、感圧センサーなどの名称は、素子のメーカーによって違いますが、
圧力センサー:大気や流体の圧力を測定するもの
感圧センサー:荷重や重さを測定するもの
というのが一般的です。



<トラブルシューティング>
Q:自作回路につないでいるがまったく動かない。RSCが正常に動作しているか確認したい。
A:RSCは電源入り時にLEDが3回点滅します。これが確認できればRSCは正常に動いていますので自作回路の方を重点的に確認してください。この確認の時は電源以外のケーブルはつながないで下さい。

Q:マイコンと接続し、命令を送ったが返答が無い。
A:下記が考えられます。
・マイコンと4FS間でGNDを接続していない。
・電源電圧が不足
・マスタ側の通信速度と4FS側の通信速度が合っていない(マイコンで115kbps通信の場合は特に注意)
・データを数値データ(バイナリデータ)ではなく、キャラクタデータで送っている。
・マスタ側から送信する際のIDが間違っている。
・4FSが起動し終わる前にデータを送ると、マスタ間の通信ができなくなる場合があります。電源起動後はしばらく(1秒程度)経過してからデータを送り始めるようにしてください。
・通信中に、4FS側の電源を切ると、その後に4FSの電源を入れても4FSとマスタ間の通信が出来ない場合があります。この場合は一度マスタと4FS両方の電源を切り、4FS側を先に立ち上げてからマスタ側を立ち上げてください(マイコンがマスタの場合は電源を共通で使用していると思いますので、ソフト的に電源投入後しばらくしてからデータを送るようにプログラムしておけば、単純に電源を切り入りするだけで済みます)。

Q:高感度という話だが、軽く触っても反応しない。
A:最低反応荷重は200g以上です。単に板などにセンサーを取り付けた状態では200g以下の荷重では結果が0以外出ません。軽く触った程度でも反応させたい場合は、構造上、常にセンサへ200g以上の荷重をかけて変化の相対値を読み取るようにしてください。二重底にしてバネでテンションをかける、などが考えられます。

Q:そんなに衝撃を加えていないのにセンサーがよく壊れる。
A:4点配置でも、接触時に1つのセンサだけに荷重が加わる状態であれば荷重は4倍になります。あまり壊れるようであれば、水平に取り付けた板にゴムを敷くなど、構造上で荷重を緩和しつつ反応は出るように工夫してください。

Q:荷重を加えても、たまにしか反応しない。出力される値がたまに低くなる。
A:センサーは中心の一点だけが少し飛び出していてここで荷重を検知します。取り付けが斜めになっていたり、荷重対象物(足裏センサー時の床など)が平らでない場合は、センサー外周(黒い部分)に力が加わり反応しない場合があります。荷重対象物が平らでない場合は構造上でセンサの中心位置に必ず荷重されるように工夫してください。

Q:<出力される値が予想と違う。
A:モードが合っているか確認して下さい。値が予想と違う場合は、全てのデータを受け取って、フォーマットを確認してください。
また、可能性は低いですが、通信ケーブルにノイズがのるとデータがおかしくなる場合があります。ケーブル延長をする場合は5m程度までにしてください。


<使用上の注意>

・このセンサーボードは電子機器です。取扱い、輸送時には静電気対策を行ってください。ICの足や、各ピンを直接手で触ったりすると静電破壊される場合があります。

・バッテリ使用時には電源ラインをショートさせると、バッテリが破裂・発火する可能性があります。作業中にはショートさせないよう十分注意して下さい。また、取り付け後も、あいている電源ラインに導電物質が触らないように注意して下さい。

 



(C)Copylight 2003. 有限会社浅草ギ研 | 通信販売の法規(訪問販売法第8条)に基づく通信販売業者の表示