傾斜センサシステム
金野
２００１年３月１９日

目次
１．はじめに
２．設計及び製作
３．性能試験
４．使用方法５．終わりに添付資料（１）ＰＩＣ１６Ｆ８７３に書き込んだ
アセンブラプログラムリスト（２）Ｖｉｓｕａｌ

Ｂａｓｉｃで書いた処理プログラム（３）その他の資料
ＡＤＸＬ２０２のテクニカルノート-1-茂男

１．はじめに
前回、角速度センサ（村田製作所製、ＥＮＣ−０３Ｊ）を応用した回転角度センサシステムを構築した。このシステムは、ＥＮＣ−０３Ｊを搭載したハード回路部を回転させると、その角速度値がハード部からＲＳ−２３２Ｃ通信でパソコンに送られる。パソコン側では Visual Basic ( professional 版）で作成されたソフトを実行することでこのデータを受信し、リアルタイムでＣＲＴ画面上にセンサ部の回転角度をモニタできるものであった。
今回、このシステムを２軸加速度センサ（ANALOG DEVICES 社製

ＡＤＸＬ−２０２）に応用することで、センサの傾斜角度をリアルタイムでモニタできる２軸の傾斜センサシステムを構築した。
このシステムの概要は簡単に述べると以下の通りである。システムは２軸加速度センサＡＤＸＬ−２０２と制御用のワンチップマイコンＰＩＣ１６Ｆ８７３を搭載したハード部、本システム用にVisual Basic (profestional 版）で開発したハード部での計測開始、中断、終了の制御をし、及びハード部の傾斜角度をリアルタイムで描写し続けるソフト、このソフトを実行するパソコン、ハード部とパソコンを接続する専用ＲＳ−２３２Ｃケーブルからできている。
写真１ ，２にハード部の外観を示している。大きさは縦６ｃｍ×横６ｃｍ×高さ３ｃｍ程度である 。
使用したＡＤＸＬ２０２の端子はハーフピッチでプリント基板への表面実装型である。従って、上面外観を示している写真１ではＡＤＸＬ２０２は見えない。基盤にＡＤＸＬ２０２と文字が書き込んである下部に鎮座している。見えているＩＣはＰＩＣ１６Ｆ８７３とＡＤＭ２３２である。ＡＤＭ２３２はＴＴＬ・ＣＭＯＳ電圧レベルとＲＳ−２３２Ｃ電圧レベルを変換するレシーバ・トランシーバ・ドライバＩＣである。左側にＲＳ−２３２Ｃ通信用９ピンＤｓｕｂ端子がある。この端子とパソコンの９ピンＤｓｕｂシリアルポートをこのシステム専用のケーブルで接続する。後々の話の都合があるので、ハード部の左右と上下を写真１での姿勢で定義しておく。写真２にハード部の側面外観を示している。抵抗と可変抵抗が重なっているところの下当たりにＡＤＸＬ２０２のムカデ足がかいま見えよう。ハード部用電源としては前回の回転角度センサと同じく００６ｐの乾電池を使用している。側
面写真の下部の黒いケースがその乾電池のケースである。
ハード部は電池を持った一体型となっており、手で滑らかに任意の方向に傾斜させることができるようになっている。

写真１

ハード部の外観（上面）

写真２-2-

ハード部の外観（側面）２．設計及び製作
加速度センサＡＤＸＬ２０２のテクニカルノートは資料として後半に添付しておいた。詳細についてはそれを参照すること。
ＡＤＸＬ２０２は完全２軸の加速度センサである。動作の原理として、このＩＣチップ上に形成された固定の電極とスプリングで吊された可動部電極からできている差動キャパシタにおいて、可動部分が加速度で振れる。その時、この可動キャパシタの容量が加速度に比例して変化することを利用している。
この素子からの出力信号としてはＰＷＭによる加速度量に比例したデューティ比信号を出力（出力端子は資料の中の図の１０番と９番）する。即ち、加速度がゼロの時、デューティ比５０％を出力する。加速度の±及び大きさに比例してこのデューティ比が変化する。この出力パルスを目的に応じて処理することにより、２次元面でのｘ、ｙ方向の加速度値を取得することができる。
このセンサにはＰＷＭによる出力以外に、加速度量に比例した直流出力端子（出力端子は資料中の図の中の１２番と１１番）も備わっている。加速度がゼロの時には、一定の直流バイアス電圧を出力しているが、加速度が加わると、その±、及び大きさに比例して直流バイアス電圧が変化する。
今回の応用に当たっては、使用するワンチップマイコンには１０ビットのＡＤ変換器が内蔵されていること。パルス出力より、直流出力の方が扱いやすいことから、直流出力を使用することにした。
図１にハード部の回路図を示しておく。
直流バイアスを処理するので、電源電圧の安定性が強く要求される。３端子電圧レギュレータＩＣ７８０５を用いて安定化を図っている。ＲＳ−２３２Ｃ端子の７番ピンの出力電流が大きいパソコンが使用できる場合には回路図の右端に示されているダイオードを基盤に挿入することにより、パソコン側から電源を供給することができるので、乾電池は一応不要になる。電源のノイズやリップルが気になる場合には乾電池を使用すればよい。ＡＤＸＬ２０２の必要な外付け素子及びその値はテクニカルノートに従っている。ＰＩＣ１６Ｆ８７３には、１０ビットＡＤ変換器と共に、参照電圧としてのＡＤ変換基準電圧値も設定できる機能が備わっている。４番ピンの Vref-と５番ピンの Vref+がそのための端子である。電源電圧が＋５Ｖの時通常のＡＤ変換器ではアース電圧０Ｖと電源電圧＋５Ｖの電圧の範囲でＡＤ変換をする。ＡＤ変換をする必要のある電圧範囲が特定の電圧範囲内にある場合、例
えば＋２．０Ｖと＋３．０Ｖの範囲、にはこれらの電圧範囲内の値を＋０Ｖと＋５Ｖの範囲内としてＡＤ変換するのでは分解能がもったいない。参照電圧を＋２．０Ｖと＋３．０Ｖとしてこの参照電圧範囲内でＡＤ変換できれば、必要な電圧範囲内で全ビット変換を行うことになるので、理想である。
このように参照電圧が設定できるＡＤ変換器はこの点で優れている。
電源電圧が＋５Ｖで、加速度がゼロの時、ＡＤＸＬ２０２の出力電圧は約＋２．５Ｖであった。傾斜角度を±９０°とすると、出力電圧はおおよそ±０．３Ｖ前後変化した。つまり−９０°から＋９０°の傾斜角変化で出力電圧は＋２．２Ｖ〜＋２．８Ｖの範囲で変化することになる。傾斜角が大きさで９０°ということは加速度と見なすとｇ（重力加速度）に相当する。このセンサは加速度にも感度があるので余裕を持って、参照電圧の下限と上限を、Vref-＝＋１．５Ｖ、Vref+＝＋３．５Ｖとなるように５ｋＶＲ可変抵抗で設定した。この際に、Vref- 、Vref+の端子の入力インピーダンスは結構小さいので、あまり大きな抵抗値の可変抵抗を付けることはできないことに注意する必要がある。
ＰＩＣ１６Ｆ８７３には内部ハード回路としてＲＳ−２３２Ｃ規格に準拠した専用入出力端子が備わっている。送信したい１バイトのデータを送信用の特定ポートに送る命令を実行すると、ＲＳ２３２Ｃコードに準拠したシリアルのデータパルス列が出力される。一方、受信用の特定ポートに到達し-3-たシリアルデータパルス列は１バイトのデータに簡単に変換される。１７番ピンのＴＸが送信用ポート、１８番ピンのＲＸが受信用の特定ポートである。このように、ＰＩＣ１６Ｆ８７３を使用すると非常に簡単にＲＳ２３２Ｃ通信を行うことができる。ただ、ＡＤＭ２３２のような電圧変換用ドライバが必要であるが。
ＰＩＣ１６Ｆ８７３に書き込んだアセンブラプログラムは後半に添付している。使用したアセンブ
ラはマイクロチップ社の純正アセンブラＭＡＳＭである。前回の回転角度モニターシステムで書き上げたアセンブラプログラムを母体にして、改変して仕上げている。プログラム中に注釈を多用しているので理解し易いと思う。
パソコン側で実行するソフトのリストは同じく後半に資料として添付している。このプログラムでも注釈を多用しているので理解が行くと思う。
システム実行用ソフトをパソコン側で実行し、処理画面中の開始コマンドボタンをマウスでクリックすることにより、ハード部は動作を開始する。ＡＤＸＬ２０２からの２出力はサンプリング時間１０ｍ秒（もちろん変更可）毎に交互にＡＤ変換され 、ＲＳ２３２Ｃ送信される。パソコン側で受信し、データは復元され、ＰＩＣＴＵＲＥ画面内に用意されたｘｙ領域内に計測したｘｙ−２次元の傾斜角度に依存した形で、領域内にスポットを描写し続ける。中止コマンドボタンをクリックすると、一時中止し、終了コマンドボタンを押せば終了する。
画面上を動くスポットの様子は、ＣＲＴ画面上で動くマウスのポインターのごとくである。

100μ006p + 9v

+5v
10.1μ131410
Vdd Vdd Xout
Xfil 12

2Yfil

316VccAN1TX

0.01
P IC16F 873

5kVR

270k
100μ表面実装
5kVR
Xfil,Yfilの出力
水平時、電源電圧のほぼ半分

RX
4

Vref-/RA2

2V+

1C1+0.13C1-1018

9 R2out

5R2inT2out

ADM232
Gnd15V6C2+ C2457

現 在 未装 着87321
RS -232C
9pin DSUB+3.5Vに設定
5 Vref+/RA30.1
RC213Vss Vss Osc2 Osc1
10919 8モニタ
30010M（±300mV/g）

図１9T2in

17+1.5Vに設定±90°傾斜で±300mVの変化

100μ0.1

100μ11COM COM T2 Yout
4579

ADXL202は

AN03

2100μ20
1Vdd Mclr

0.01

ADXL202

注意78L05

傾斜センサハード部の回路図-4-0.1

３．性能試験
性能として特に述べることはない。ＡＤＸＬ２０２の傾斜角度に対応してＣＲＴ画面上でスポットがマウスのカーソルと同じように動くだけである。直交した２次元の傾斜角度は各々−９０°〜＋９０°の範囲で計測できる。余談ではあるかも知れないが、傾斜角度を大きくして、例えば−１１０°としてもこれは−７０°のことである。＋１２０°は＋６０°である。
ハード部を水平に保持して、計測を開始すると画面の中央部にスポットが現れる。左右に傾ければ 、スポットはＣＲＴ画面（通常通り、画面はほぼ垂直に配位しているとする）上で左右に移動する。ハード部を上下に傾けると、スポットは上下に移動する。ハード部を右上方に傾ければ、スポットは画面上の右上部に、左下方に傾けると画面上の左下部に移動する。ただそれだけである。
このＡＤＸＬ２０２は「加速度センサ」という呼称が付いている。その名の通り加速度も計測できる。ハード部を傾けていなくても、ハード部に加速度を与えた瞬間、例えば急に動かす等、それに対応してスポットも動く。ハード部を水平にし、かつこの水平面内からはみ出ないようにしてハード部を動かせば、水平面内で計測した２次元の加速度量をモニターすることができる。が、少しでも水平面から外れたり、ハード部に少しの傾斜がある状態で動かしたときには、正確な加速度量はモニタすることは困難である。ハード部に加えられた傾斜量と、加速度量をこのＡＤＸＬ２０２は原理的に識別できないからである。
傾斜センサとして設計した本システムにおいて、サンプリング毎にスポットを描写させるとスポットの揺らぎが大きく、目障りであった。これは直流バイアス電圧のふらつき、ＩＣ内部の可動コンデンサの容量の時間変動、及びＡＤ変換値のばらつきによるものと判断した。スポットが目障り無くスムーズに動くようにするため、サンプリングして得られた傾斜値の連続値（５つ）の平均値を常に算出し、この平均値でスポット描写位置を決めることにした。その結果、結構スムーズに移動するように改善された。

４．使用方法いたって簡単である。が要注意事項がある

要注意

ハード部の電源を入れない状態で 、「開始」ボタンをクリックすると、プログラムが固まってしまう。くれぐ
れも、ハード部の電源を入れた後 、「開始」クリックすること。

使用方法（１）ハード部とパソコンの９ピンＤｓｕｂシリアルポートの間を本システム専用ＲＳ−２３２Ｃケーブルで接続する。
（２）００６ｐ乾電池に電極キャップをかぶせ、ハード部の電源をオンとする。ついでながら電源スイッチは付いていない。
（３）パソコン側でこのシステムのために開発した専用ソフトを実行する。
（４）画面で使用できるボタンは「開始 」、「停止」、「終了」の３つだけである。
-5-

（５）「開始」ボタンをクリックして、計測を開始する。ハード部の傾斜量の大きさに対応して画面上でスポットが移動する。適当にハード部を動かす。
（６）計測を中止したければ 、「中止」ボタンをクリックする。その後、再開したければ 、「開始」ボタンをクリックする。
（７）終了したければ「終了」ボタンをクリックする。

５．終わりにＡＤＸＬ２０２は「２軸加速度センサ」と名称が付いている。この「加速度」という言葉に魅力を感じた。この素子を用いれば 、リアルタイムで加速度量が計測できるので 、初等力学の基礎知識から 、加速度を時間積算すれば速度、更に時間積算をすれば変位量を得ることができるので、物体の移動距離を２次元水平面内で、リアルタイムでモニターできるのではないかと考えたのである。当初この考えで「変位位置検出モニタ」の開発を試みた。水平面上でこのセンサを任意に動かして、加速度量を計測させ続け、得られたデータをプログラム上で処理すれば、ＣＲＴ画面上にこのセンサの位置を描写させることができるはずである。
結果は全くいけなかった。このセンサは自身の傾斜量と自身に加えられた加速度量を本質的に区別ができないのである。従って、センサを水平面内で動かし、加速度を与えたとしても、センサがわずかでも傾斜していれば、その傾斜量がそのまま実際の加速度量に加算されてしまうのである。わずかな傾斜でもそれがその状態で維持されていると、センサは「等加速度運動」を継続しているものと見なされ、途方もない速さ及び、途方もない変位量を算出してしまう。
その他の要因としては、直流ドリフトも上げられる。その瞬間での加速度の絶対値だけを問題にするならば、それほど大きな誤差にはならないであろうが、加速度の積分での速度の算出、更なる積分での位置の変位量の算出にはこのドリフトが無視できない影響を与える。
得られた結論として、このセンサは傾斜センサとしては良好な特性を示してくれるが、加速度センサとして使用する場合には、瞬間的な加速度値の計測には向いているが、長時間にわたって加速度値を積算して何らかの処理をさせようとするには不向きのように思われる。とはいっても何らかの解決策があるのかも知れない。
２００１年３月２９日-6-