profile-photo

電子水準器

電子水準器。レーザーで離れた所とのレベルも決められる。


3Dジャイロセンサを使って、水平を検出。8X8マトリスクにレベルを表示する。
0度を外れる時にと、0度に入る時にビープ音で知らせる。
またオンボード上にレーザーポインターを搭載、離れたところとの水平をチェックすることもできる。
実はこれは家庭菜園で表面を耕す時のレベル合わせように作った。なので、微妙な水平位置はあまり気にしていない。
従来は水の入ったホースで水平を確認し、糸を張って水平面を決めて耕していた。
本機を使うと、四隅にポールを立て、一カ所から水平になった所でレーザーを照射して残りの3カ所のポールに同じ高さの印を付けることができる。
ただし、レーザーは数メートルしか届かないので、あくまで家庭菜園どまりではある。

 

001

完成した本機。
8X8マトリクスの電子水準器(表示器)、スピーカー、レーザーポインタを搭載している。
CPUはArduino Pro/Mini(3.3V/8MHz)を使用。サイズは小さいが基本的にはUNOと同等なので、開発時はUNOを使用した。
I2C接続のSCLとSDAはA4とA5に割り付けられている。UNOの場合は問題ないが、Pro Miniはピンヘッダーとは離れたところにあるので、接続にはちょっと工夫が要る。

002

配線が少ないので、今回はユニバーサル基板に全て搭載した。
電池は自転車用のサイコンから外した(容量が減少-劣化した)Li-Poバッテリーを流用。この程度なら、未だ未だ元気で使える。
写真ではレーザーポインターがまだ付いていない。
入手に時間が掛かったためだ。

003

上の写真と同じ。反対側から見たところ。

004

基板の裏側。ハンダ面。
コンデンサーやICはこちらに付いている。
ICは「NJM2845」シリーズの3端子レギュレータ。損失が少ない優秀なものだ。
3.7Vのバッテリーから3.3Vを作っている。

005

動作中の様子。
マトリクスの表示が向こうに寄っているので、こちら向きに少し傾いている。
表示は、水準器(水やオイルの中に気泡が1つ入っている物)の動きをなぞっているので、感覚的に分かる(が、実際の角度などは分からない)。
一応現在のプログラムでは、1ドットを2°で表示している。従って、センターに入った時の範囲は±4°と言うことになる。

006

水平になったところ。
真ん中の4ドットが同時に点灯している時が水平状態。

007

レーザーポインターを取り付け、ケースに入れた状態。
市販のケースを使ったので、ちょっと大きめだ。
ポインターは概ね単4電池と同じ太さだったので、単4の電池ホルダーを改造して取り付けてある。

008

実際に測定しているところ。
レーザーの出力は、ポインターのレンズを通しており、焦点を合わせることができるようになっている。

周辺はI2Cで楽々接続

加速度センサと表示器はI2C接続のものを使用した。
3Dジャイロの加速度センサはMPU-6050を搭載したモジュールでaitendoで¥475と、安価であった。表示器はAdafruitの8x8マトリクスLED表示器。これが一番高かった。
MPU-6050の読み取りは、「Wire.h」でそのまま読める。
8x8マトリクスの表示は、「Adafruit_LEDBackpack.h」を使うとXY座標を与えるだけでドットを表示させたり、四角や丸を表示できるので便利だった。
ポイントマーカー用のレーザーポインターは、発光しっぱなしでは危険なので、タクトスイッチを付け、押している時だけ照射するようになっている。これはプログラムの動作とは無関係に、「押せば光る」だけだ。
その他、室内ではスピーカーの音が結構耳障りだったので、ON/OFF用のタクトスイッチが付いている。


参考までにハードウェア・ソフトウェアの情報を。ただしこれらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。