04-07-2020 04:44 AM
ESP32はArduino IDEでもプログラムが書き込めるWiFiとBluetoothを内蔵したマイクロコントローラです。
ESP32と小さなカラーLCDにリアルタイムクロック、加速度ジャイロセンサやマイクロフォン、LEDなどがコンパクトに収められていて、しかもバッテリーまで入って2000円程度で購入できるM5StickCを使ってみました。
3軸加速度データを、ブルートゥースを使った仮想シリアルポートでWindows PCに送り、LabVIEWで受け取って表示します。
Arduinoプログラム
-------------------------------------------------------------
#include <M5StickC.h>
#include "BluetoothSerial.h"
float accX = 0.0F;
float accY = 0.0F;
float accZ = 0.0F;
BluetoothSerial SerialBT;
void setup() {
Serial.begin(115200);
Serial.println("M5_Acc.ino");
SerialBT.begin("ESP32");
M5.begin();
M5.IMU.Init();
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setTextSize(2);
}
void loop() {
M5.IMU.getAccelData(&accX,&accY,&accZ);
//Serial.printf("%7.4f, %7.4f, %7.4f\n", accX, accY, accZ);
SerialBT.printf("%7.4f, %7.4f, %7.4f\n", accX, accY, accZ);
M5.Lcd.setCursor(20, 5);
M5.Lcd.printf("X: %7.4f", accX);
M5.Lcd.setCursor(20, 30);
M5.Lcd.printf("Y: %7.4f", accY);
M5.Lcd.setCursor(20, 55);
M5.Lcd.printf("Z: %7.4f", accZ);
delay(10);
}
-----------------------------------------------------------------------
(編集中)
04-07-2020 06:05 AM - 編集済み 04-07-2020 06:14 AM
編集ができなくなったので継続します。
Bluetoothでデータを受け取っているPCの前でM5StickCを振りながら撮影しました。デーブルがあるとデータが取りにくい状況では役に立つのではないでしょうか。
VI「BT_M5-Acc.vi」はLabVIEW2014ですので、機会があれば活用ください。
Windows側では「Windowsの設定 > Bluetoothとその他のデバイス」でM5StickCとペアリングする必要があります。Arduinoプログラムの中で"ESP32"という名前で通信していますので、ESP32とペアリングすることになります。
ペアリングに成功するとBluetoothリンク経由のCOMポートがあらわれます。
通信設定はプロパティでできるようです。VIでボーレートが合っていなくとも
通信できていたので不思議ですが、このあと少し調べないといけません。
M5StickCが面白そうだと
興味を持っていただければありがたいです。
(終了)
05-09-2020 07:45 AM
かさいです。
運動不足対策用に購入した室内バイクにM5StickCを取り付けて
ケイデンスモニタ(クランクの回転数計)を作るプロジェクトを始めました。
おおはしさんのVIを基にしてデータ保存機能を追加て実測データを取り、
測定データを見ながらケイデンス算出アルゴリズムを設計します。
収録用VI(BT_M5_Acc&Log.vi) 収録データファイル表示用VI(AccLogReader.vi)
実際に測定を行ってデータを見ると、最初に考えていた単純な処理ではうまくいかないことが分かってきました。
現在アルゴリズム再検討中です。
実測データの収集や可視化が簡単にできるのがLabVIEWのいいところですね。
そして工作無しでこんなデータが取り出せるM5StickCはすごいです。これが2000円程度で買えるとは!
M5StickC紹介してくださって感謝です😉
05-09-2020 08:23 AM
かさいさん こんにちは、
室内で使う無線ならではの良いアプリケーションだと思いました。
何にM5StickCを取り付けるにせよ、BT_M5-Acc&Log.viは便利にログが取れそうですね。紹介ありがとうございました。
LabVIEW Community EditionとM5StickCはすごく面白いと思いますね。
日本語版もあるNXGでももちろん使えますから、中高生向きに良いんじゃないかな。
08-28-2020 07:06 AM
倒立振子は制御のチャレンジとして人気があります。ただし、ハードとソフトが適度に融合しないと見た目以上に難しいような気がします。
最近、Micro:bitに興味が出て触っているのですが、ついでにM5StickCを使った倒立振子のキットを購入しました。
重心が低くて、センサーが高い位置にあって、大きなタイヤなので、見た目は好感が持てました。
Arduinoのサンプルプログラムをダウンロードすると安定して直立を維持しています。
https://github.com/m5stack/M5-ProductExampleCodes/tree/master/App/BalaC/Arduino
動作を勉強するのにちょうど良いので、センサーとモーターへの信号をBluetoothSerialでLabVIEWに取り込んでみました。
手軽に無線でデータ通信できるのがBluetoothSerialの便利なところです。