ハードウェア
IchigoJamで加速度センサーを読み取る
shimizu
今回は、IchigoJamにセンサーを繋げて、情報を読み取る方法をご紹介します。センサーを用いると、外界の状況を記録・分析したり、環境の状態に応じた処理を行うことができるので、さらに制作の幅が広がりますね。ここでは、一例として、加速度センサーのデータを取得してみましょう。
IchigoJamで使えるセンサー
IchigoJamは、外部のセンサー回路とデータをやり取りする際にアナログとI2Cの2つの方式が使えます。アナログ方式では、IN2またはBTN端子のアナログ入力値(電圧を元にした数値)を読み取れます。I2C方式では、複数のデバイスとデータを送受できます。
今回は、手軽に使えるアナログ入力対応の加速度センサーを使用します。
必要なもの
- IchigoJam
- 3軸加速度センサー [ATD335](ブレッドボードに差すためにピンヘッダを取り付けました)
- ブレッドボード
- ジャンパー線(20センチ程度の長さのもの)
実際に使ってみた
加速度センサーをIchigoJamに接続します。ジャンパー線で、それぞれ以下のように結線します。この加速度センサーは3軸に対応していますが、Z軸のみ使用します。
ATD335 IchigoJam +-----+ +-----+ |Z_OUT|====| IN2 | | VCC |====| VCC | | GND |====| GND | +-----+ +-----+
それでは早速加速度を取得してみましょう。IchigoJamの電源を入れ、「?ANA(2)」と実行します。
?ANA(2) 551 OK
表示される値はセンサー基板の向きに応じた結果となります(静止した状態では重力のみが作用します)が、ここでは「551」と出ました。「ANA(2)」は、IN2端子の外部入力の電圧(0V〜3.3V)を、0〜1023の数値で返してくれる命令です。
デバイスの状態による値の変化を分かりやすくするために、加速度の値を連続で表示させてみましょう。以下のプログラムを入力して、RUNで実行します。
10 ?ANA(2):WAIT 2:GOTO 10
するとセンサーの値が流れて表示され、センサー基板を色々な角度で振ってみると、それに伴って値が変わるのが分かります。(Z軸は基板を水平に置いた状態の高低方向です)
せっかくなので、もう少しグラフィカルに出してみましょう。振れ幅に応じて画面にグラフを表示します。以下のプログラムを入力して、RUNで実行します。
動作している様子を動画で見るにはこちら。
10 LC(ANA(2)-512)/10+15,23:?"@" 20 WAIT 1:GOTO 10
おわりに
IchigoJamにセンサーを繋げて、値を取得する例をご紹介しました。今回は加速度センサーを用いましたが、他にも温度や湿度、照度など様々な環境を検出するデバイスが利用できますので、アイディア次第で面白いものが作れるはずです。前回記事のMixJuiceと組み合わせて、データをネット経由でやり取りすればIoTへ応用できますね。ぜひチャレンジしてみてください。