[Wio LTE]Groveセンサー動かしてみましたシリーズ、buzzer・Button・3-Axis Digital Accelerometer(±16g) #WioLTE

WioLTE

あけましておめでとうございます。

去年の末に買った、「Grove IoT スターターキット for SORACOM」開封していますか?使ってますか?

とりあえず、使ってみよう!を最優先に、

ちょっとお仕事プログラミングに疲れたら、電子工作に走るフクシャチョーです。

 

さて、今回はお題の3つをとりあえず動かしてみた!記錄です。

Grove – Buzzer

これは、あっさりできます。デジタルに繋いで、スケッチ例(grove-buzzer)を実行するだけで、ブザーがなります。

ワナが何もなくてよかった。

 

Grove – Button

ボタンもデジタルアウトプットにつなぐのですが、WioLTE、デジタルアウトプットが2箇所しかありません。

ちょっと他の実験のために、buzzerをD38に、4digits DisplayをD20につなぎたい、その上で、Buttonも使いたい!というのがあり、ButtonはA6につなぎました。

そのため、スケッチ例(grove-button)をちょっと変更して使います。

 

pinModeの設定の部分を、

pinMode(BUTTON_PIN, INPUT_ANALOG);

としています。

 

#include <WioLTEforArduino.h>

#define BUTTON_PIN  (WIOLTE_A6)
#define INTERVAL    (100)

WioLTE Wio;

void setup() {
  delay(200);

  SerialUSB.println("");
  SerialUSB.println("--- START ---------------------------------------------------");

  SerialUSB.println("### I/O Initialize.");
  Wio.Init();

  SerialUSB.println("### Power supply ON.");
  Wio.PowerSupplyGrove(true);
  delay(5000);

  SerialUSB.println("### Setup pin mode.");
  pinMode(BUTTON_PIN, INPUT_ANALOG);
}


void loop()
{
  int buttonState = analogRead(BUTTON_PIN);
  SerialUSB.println(buttonState);
  delay(INTERVAL);
}

これでButtonを押すと、シリアルモニタで、表示が大きく変わります。

 

このアナログポートは、デジタルポートとしても読めます。

pinMode(BUTTON_PIN, INPUT)、とすると、デジタル入力になってdigitalRead(BUTTON_PIN)で、HIGH/LOWとして読むことができます。

Grove – 3-Axis Digital Accelerometer(±16g)

三軸加速度センサー!

 

いつものようにSeedのWikiをみたのですが、サンプルコードがpythonしかない・・・・

というところで、色々と探し回って、以下のライブラリをWioLTE用にちょっと変えて実行してみました。

 

mcauser/Grove\-3Axis\-Digital\-Accelerometer\-16g\-ADXL345: Arduino library for the Grove 3\-Axis Digital Accelerometer \(±16g\)

ライブラリをzipダウンロードしてincludeします。

 

そうすると、スケッチ例に「ADXL345_demo_code」が出てきますので、これをちょっと変更します。

#include <WioLTEforArduino.h>

WioLTE Wio;

ADXL345 adxl; //variable adxl is an instance of the ADXL345 library

void setup(){
  Serial.begin(9600);

  
  SerialUSB.println("");
  SerialUSB.println("--- START ---------------------------------------------------");
  
  SerialUSB.println("### I/O Initialize.");
  Wio.Init();
  
  SerialUSB.println("### Power supply ON.");
  Wio.PowerSupplyGrove(true);
  delay(5000);
  
  adxl.powerOn();

追加したのは、WioLTEのライブラリの読み込みと初期化の部分です。

あと、loopで、Serial.printlnをSrialUSB.printlnに変更したぐらいでしょうか。

 

 

zのところの最後のgは、変なところで改行になっているので、そこも修正すれば、綺麗に表示するかとw

 

おまけに物理の勉強

 

ちょうどシャチョーが、BowingVisionで開発している加速度センサーを使って、3Dモデリングを動かす!というプロトタイプを開発していたので、

加速度がわかると、傾きがわかるのはなぜか、という物理のおさらいを教えてもらいました。

 

 

できた!動く!動くのをみていると、こんなことがもしかしたらできるかも?というアイデアにつながることもあります。

あと、物理とか数学がわかっていると、それにアイデアのアクセルがかかる感じでしょうか。

勉強することが満載。

今年もぼちぼちやっていきましょう!!