電子工作103 – 圧電振動ジャイロモジュール(ENC-03R)をカウンタに接続してみる
Electronics Project 103 – Connecting A
Counter to Piezoelectric Vibration Gyro Module
概要 Introduction
ジャイロセンサーとはなんぞや、とゆう疑問を解くには、とにかくいじくってみるしかないと思い、ネットによく出てくる圧電振動ジャイロモジュール(ENC-03R)なるものを購入して自分なりに実験してみることにした。後で何かの役にたつのではと思いながら実験結果を以下に記述してみた。
In this project, I tested a piezoelectric vibration gyro module to know what it is and how it functions. Now I know that the output voltage from this gyro sensor ENC-03R changes from its stationary-state voltage 1.45V (or 1.35V in Manual) when the right- or left-hand edge of the sensor body’s lengthwise direction is quickly tilted by adding force to each edge. The magnitude of this output voltage change from its stationary-state voltage depends on the tilting speed (angular velocity) of the gyro sensor. Knowing this feature, I tried to use the voltage change from the gyro sensor when tilted for counting a counter with help of 12F629 microcontroller.
下の写真が圧電振動ジャイロモジュール(角速度センサー)である。この基板上には2個の圧電振動ジャイロ(ENC-03R)が搭載されている。上の横向きのものはX軸方向の動きに反応し、下の縦向きのものはY軸方向の動きに反応する。下の2枚の説明書に従って配線してある。電源DC5V(赤線)とGND(灰色線)をそれぞれ指示されたピンにつなぎ、出力は2本の青色線で、ピン1(8ピン基板の左側最上部の1番目)がXジャイロからの出力で、その下のピン2がYジャイロからの出力である。
ジャイロの動きと出力の関係(観察結果):
1) Xジャイロ (横向きに搭載)は電源電圧5.0Vで、静止状態で約1.45Vの出力がある。ジャイロの搭載されているブレッドボードの左端、あるいは右端をゆっくり上げて傾けた場合、出力の変化はほとんどないか小さい。しかし、急激に傾けた場合、出力は大きく変化する。ボードの左端を急激に上げてた場合(右端は軸になっている状態)、出力は一瞬2.2V位まで上昇して、そのあと1.45V以下に下がって、また戻って1.45V付近に落ち着く。一方、右端を上げて急激にボードを傾けた場合、出力は一旦1.45V以下に下がって(ただし0V以下には下がらない)、また上昇し、2Vまたはそれ以上に達し、最後に1.45Vに落ち着く。つまり、ジャイロの出力変化の方向が、左端を傾ける場合と右端を傾ける場合で正反対になるということである。
2) Yジャイロ (縦向きに搭載)の場合は、ブレッドボードの下端を急激に上げて傾けると(上端は軸になる)、1.45Vの出力が一瞬2.2V位まで上昇して、そのあと1.45V以下に下がり、また戻って1.45V付近に落ち着く。一方、上端を上げて急激にボードを傾けた場合、出力は一旦1.45V以下に下がって、また上昇し、2Vまたはそれ以上に達する。最終的には1.45V位に落ち着く。
Piezoelectric vibration gyro module on which two same gyro sensors (ENC-03R) are mounted. The upper sensor responds to the tilting movement of X-axis direction while the lower one responds to that of Y-axis direction.
圧電振動ジャイロモジュールENC-03Rの説明書(1) 秋月電子
Japanese manual for Piezoelectric Vibration Gyro Module (1)
圧電振動ジャイロモジュールENC-03Rの説明書(2) 秋月電子
Japanese manual for Piezoelectric Vibration Gyro Module (2)
このプロジェクトの目的:
ジャイロ(ENC−03R)を一定の速度以上で傾けた時に、その動作をカウンタがカウントしてくれるような回路を作成すること。
Purpose
of this project:
Preparation of a system (circuit) in which a counter can count when this gyro (ENC-03R) is tilted toward X- or Y-direction at more than a certain speed
回路図 Circuit Diagram
ジャイロを急激に傾け時にジャイロからの出力電圧が上下するが分かった。この変化する出力電圧をPIC12F629に内蔵されているコンパレータに導入し、任意に設定した基準電圧(今回はVref=1.46V)と比較させ、出力電圧が基準電圧より高い時に出るデジタルパルスをプログラムで処理して、結果をカウンタで数えようとするものである。下に実験に使った回路図を示す。電源電圧は5.0Vに固定。ジャイロからの出力は分圧回路を経てPICのGP1から読み込まれて内臓のコンパレータの端子に入り、もう一方の端子に加わっている基準電圧と比較される。結果はデジタルパルスとしてGP2から出力される。プログラムの中ではGP2のデジタル出力(いろんな幅の方形波が出てくる)の中から一定の幅を持ったもの(>105ms)を目標パルスとして選び。このパルスが確認されて場合、PICのGP5からカウンタを1つ進めるために必要なリレー駆動用の30msのパルスを出すようにしてある。その際LED(R)も点灯する。ここで使用したカウンタは歩数計(ダイソーD011)を一部改造して作成したもので、電子工作90に改造法を紹介してある。改造したカウンタから取り出した2本の線を短絡させると1つ数えるので、この短絡させる目的にDC5Vリレーを使った。ポットVR10Kの設定はデリケートで、時計周りに回すとジャイロからGP1に入る電圧は上がり、ゆっくりした速度で傾けても数えるようになり、ついにはボード端を上げた時と下げた時に2回数える問題が出てくる。逆に、反時計周りに回すとジャイロからGP1に入る電圧は下がり、比較的強い速度での傾きで数えるようになる。従って、比較的安定して数えるGP1へのジャイロからの入力電圧範囲は0.80−1.25V位であった。待機時のこのシステム(ジャイロと12F629)の電流消費の実測値は8.4mAで、動作時は最大13mAに上昇した。
In the circuit shown below, the output from X-Gyro or Y-Gyro
(switchable) first enters the voltage divider and then a lowered voltage enters
into GP1 of 12F629. The voltage at GP1 is compared with the internal reference
voltage Vref, and the digital result (pulse) appears at GP2 that is
programmatically examined if it is wider than a certain width (here 105ms). If
so, a pulse with 30ms is sent to 5V Relay through GP5. The Relay short circuits
two wires from Counter for counting.
すべての部品を搭載して実験中のブレッドボード。最上部に電源、それからの5.0Vがジャイロモジュール、12F629、リレーに供給されている。ボード上で上部の左が歩数計を改造したカウンタ、中心部にジャイロモジュールが見える。その右のスイッチはXジャイロとYジャイロからの出力切替え用である。ボードの中心部には12F629、その右にジャイロからの出力を分圧する為の10KのVRである。ボードの最下部にはカウンタを駆動する5Vリレーが見える。
The entire experiment was conducted using this bread board and
components mounted on it. The black item seen at the bottom of the bread board
is DC
5V relay. Counter showing 01297 was prepared by modifying a 100-Yen shop Daiso’s Pedometer (D011) (See Electronics Project 90 in Japanese).
写真のようにブレッドボードの右端や左端を一定速度で持ち上げるとカウンタが進む。同様に切替えスイッチをXからYに切り替えて、ボードの上端や下端を一定速度で持ち上げるとカウンタが進む
The bread board is tilted to advance the counter.
材料
Components and cost
1) 圧電振動ジャイロモジュール(ENC-03R) 秋月電子 400円
Piezoelectric Vibration Gyro Module (ENC-03R) 400 Yen Akizukidenshi
2) 歩数計、5Vリレーなど計300円 Total
cost of all other parts 300 Yen
結果&コメント Comment
1) 今回の回路で、ブレッドボード上に搭載したジャイロ(横向きのものXジャイロ)を左右に急に傾けるてカウンタにカウントさせることが出来た。縦向きのYジャイロでも同様に動作した。
2)
この圧電振動ジャイロENC-03Rは電源電圧5V(他の電圧では試さなかった)のもとで、静止時常に1.45V位の出力がある。本体の長さ方向の両端を急激に傾けると出力が0−2V以上迄上下する。どちらの端を傾けるかによって出力パターンが逆に変わる(出力が一度上がって下がる、またはその逆)。本体をゆっくり傾けた場合、出力の変動は起こらないか、小さい。本体の長さ方向の左または右真横から急激な力をかけても出力の変化は起こらない
(Xジャイロの場合、Yジャイロでも同様)。
3)
ジャイロの長さ方向の左端または右端を傾けると、傾ける速度に応じて出力が静止時出力1.45V位から上下に変化する。この変化する電圧を12F629の内臓コンパレータの基準電圧と比較させ、出てくるデジタルパルスを利用してカウンタを進めようとするのが今回のプロジェクトの目的である。
4)
ジャイロを傾けた時、傾ける方向や速度によってカウンタが同時に2回、またはそれ以上カウントすることがある。ポットVR10Kを回して調整する。結構デリケートである。
5) 以上のようにジャイロの性質が少し分かって来たが、センサーとしてカウンタを動かす以外の応用は今のところ浮かばない。説明書にもあるように、カメラの手振れ検出やロボットの姿勢制御などにも使われているようだが、利用法のロジックが難しそう。今回得た知見が後で何かの役に立てばと思っている。
6) プログラムの中で、「For n=1 to 7、If CompOUT=1 Then、Pause 15」部分の繰返し数‘7’の設定、「Pause 30 '30 ms、Low LedON、Pause 300」部分の出力パルス幅‘30’と間隔‘300’の設定が安定したカウンテングのために重要、トライアル&エラーで決めた。これらの数値を変えるとカウンテングの様子が微妙に変わってくる。
a)
As a result of quickly tilting the
bread board mounting Piezoelectric Vibration Gyro Module while lifting one of
four sides of the bread board, it was proven that the counter advanced, though
the manner of counter’s counting depends on the selection of X- or Y-gyro
sensor and the setting of 10K VR (pot).
b) I am expecting the possible applications of this tilt-counting relationship in the future.
プログラム Program
プログラムの概要: 先ず、12F629内臓のコンパレータの設定をする。具体的にはCMCONとVRCONの設定だが、手ごわい。やっと基準電圧Vref=1.46Vが設定出来た。勿論いろいろな値に変えられる。プログラムの流れ - GPIO.2 (GP2)からのコンパレータの出力が‘H’か‘L’を待ち続け、もし、‘H’なら15ms間隔を置いて、同じチェックを7回繰り返し(計15x7=105ms)、OKだったら、パルス幅は105ms以上の目標パルスと解釈し、カウンタを1つ進めるパルスを出すルーチンに進み、ついでプログラムの初めに戻って同じことを繰返す。勿論、パルス幅105ms以下のものは原則はじかれる。
In this program, it is
required to set CMCON and VRCON by reading a complicated manual of 12F629. As
the internal reference voltage, Vref=1.46V was set. First, into GP1 of 12F629
the program routine reads the input voltage from the voltage divider that is
connected to the output of X- or Y-Gyro sensor, then the voltage from GP1 is internally
compared with Vref-1.46V. The comparison digital result (square wave) appears
at GP2. Reading this pulse, its width is programmatically examined whether it
is wider than 105ms. If it is so, 12F629 sends a pulse with 30ms to the 5V
relay which short circuits two wires from the counter for counting.
'********************************************
'CMPF629N18327B.bas 2018.4.9 works OK!
'Using 12F629 and PicBasic Pro V2.50A
'Exp. for comparator use. When AccelIN voltage exceeds a set value (Internal Reference value), LED lights up.
'************* Program ***********************
TRISIO=%000010 'GP1=Gyro INPUT; GP2=Comparator OUTPUT; GP5=LedON OUTPUT
CMCON=%00010011 'GP1/CN-pin=Gyro input; GP2/COUT=Comp.output
'bit4=1 is Comp.output reversed.
VRCON=%10100111 'Low voltage; VR3:VR0=0111 (=7 in 15 steps)
'Comparator's reference voltage=1.46V at 5V of Vdd (supply voltage).
'Vref=(7/24)x 5=35/24 =1.458V
AccelIN var GPIO.1 'Accelerometer INPUT
CompOUT var GPIO.2 'Comparator OUTPUT
LedON var GPIO.5 'Led ON Output
n var Byte
CompOUT=0
LedON=0
LoopA: 'Checking a pulse width 7 times (if 7 'H's) at interval of 15 ms (105 ms in total)
For n=1 to 7
If CompOUT=1 Then
Pause 15
ELSE
Goto LoopA
Endif
Next
'Only when the width of a pulse
with 'H' is more than 105 ms (15 ms x 7),
'Led lights up for 30 ms and
drives 5V Relay that short circuits two wires from Counter for counting.
.
High LedON
Pause 30 '30 ms
Low LedON
Pause 300 '300 ms (50 - 500 ms, worked!). This prevents 'double counting of pulses' which come almost at the same time.
Goto LoopA
'************** End of Program **********
'Note:
'Programmer's configuration must be set as follows:
'FOSC - INTOSC; WDTE - Enable; PWRTE - Disable
'MCLR - Reset; BODEN - Enable; CD - Disable; CDP - Disable.
(追加情報): DC5Vメカニカルをホトモスリレーに換える(2018.4.21) Newly added information:
Replacing DC5V Relay with Photomos Relay
換えたことによって、所謂チャッタリングがほぼ無くなったようだ。 下の図はホトモスリレーを使った場合の配線図を示し、他は変えていない。
Chattering problem that occurs to mechanical relays seems no longer a problem for this photomos relay.
ボードの下方の8ピンのソケットに、4ピンのホトモスリレーTLP241Aを差し込んである。内部LEDには約3mA流れるように1.5Kの抵抗を入れてある。
下の2枚の写真はXジャイロを選択した場合で、(A)はブレッドボードをある一定以上の速度で左右に揺すった時に現れる典型的な波形である。上述の全体回路図の(A)点で測定した。このアナログ電圧が12F629のGP1から読み込まれる。その読み込まれるボード静止時の電圧は1.1V位で、山の頂点の電圧は揺り動かす速度にもよるが1.9〜2.0V位、また、山の底の部分の電圧は1.0〜1.2V位になる。一方、(B)は全体回路図の(B)点で測定したもので、コンパレータで内部基準電圧(Vref=1.46Vに設定)とGP1より読み込まれたアナログ電圧と比較され、基準電圧より大きなアナログ電圧の部分が(B)のデジタルパルス幅として表示されている。それらの位置は上の山の部分と対応し、山が高ければ(B)のパルス幅が大きいなるのが分かる。
ここでは、別の状況下での(B)の波形と、(C)の波形(全体回路図の(C)点で測定)を比較したもの。(B)の各パルス幅が105ms以上だと、(C)のパルス(30msのはずだが、実測値は27ms位だった)が出るようにプログラムしてある。この各パルスがカウンタを1つづ進める。従って、(B)のパルス幅が105ms以下だと、原則、(C)のパルスは出ない。しかし、実際には(B)のパルス幅が105ms以上でも、以下でも(C)にパルスが出なかったり、出たりすることもあるようだ。ブレッドボードの左右への揺すり方や、入力分圧回路のVR10Kの調整が微妙に影響してくる。規則的な揺れ動かしと、VR10Kの調整をうまくやることが大切。
(追加情報):より小さいカウンタ候補見つけた(2018.4.11) Newly added
information: How to Modify a Pedometer to Counter.
ダイソーの「デジタルminiカウンタ」というもので、指に巻きつけて、カウント作業、ゴルフ、エクササイズなどに使うものらしい。上述のダイソーの歩数計(D011)とカウンテングの原理は同じと考え、内部を開いてスイッチ部分から2本の線を取り出して外部スイッチでもカウンテングが出来るように改造した。つまり、取り出したこの2本の線を短絡(ショート)させると、カウンタが進む。
The other
day, I found a smaller pedometer at Daiso, which can be modified to a counter.
The following shows how to do.
「デジタルminiカウンタ」のパッケージの表裏
Pedometer package
左が電池交換のため2本のネジ緩めて開けたところ(2本線が出ているが、後付のもの)。電池を外して、更に基板の2本のネジを外し基板の裏側と、それを包んでいたケースが右に見える。上の白いものが液晶の裏側、下の丸いのがカウンタの押しボタンの裏側。
For replacing the coin battery with a new one, it is required to
open Pedometer body by removing two screws. The left picture shows the inside
of Pedometer, which appears after removing the back cover (here, note that two
red wires were later added). The right picture shows the backside of small
circuit board and the plastic case with LED display, which are separated by
removing two smaller screws.
左の写真は基板の裏側で、2ヶ所で反対側から細い単線を差し込んでハンダ付けしてある(赤い線と小さい白囲みで表示)。右の写真は基板の表側で、裏側でハンダ付けされた2本の線が出ている。この2本の線の両端をショートさせるとカウンタが数える。
The pictures show the front and back sides of the circuit board. Two
wires need to be soldered to the points shown below. The left picture shows
those two soldered points marked with the small white vertically-long
enclosures and red lines. The picture on the right shows the front side and two
wires to be drawn to the outside.
2本線を取り出した改造カウンタ。スイッチなどで2本線の両端をショートさせて使う。真ん中の大きい丸いスイッチと同じ働きをする。右手の小さいものはリセット用スイッチ。
Front view of the modified counter. If the ends of two wires are
touched each other, the counter advances.
Menu Pageへ戻る (Return to Menu Page)
Topへ戻る
(Return to Top of Page)