1.はじめに
製造現場では、温湿度、設備の温度、振動、ワークの有無など、さまざまなデータを取得したい場面があります。
専用の計測機器やIoTシステムを導入する方法もありますが、「まずは小さく試してみたい」「どのようなデータが取れるのか確認したい」という場合には、マイコンとセンサーを組み合わせた簡易的な測定装置も選択肢になります。
本連載では、画面やmicroSDカードスロットなどを備えた M5Stack Core2 と各種センサーを使用して、製造現場のさまざまなデータを手軽に取得してみます。
予定している内容は次のとおりです。
- M5Stackで工場の温湿度を記録してみる
― センサー値の取得、画面表示、CSV保存 - M5Stackでワークの有無を検出してみる
― 距離測定、しきい値判定 - M5Stackで設備の温度を非接触で記録してみる
― 温度値の取得、画面表示、CSV記録 - M5Stackでモータの振動を測ってみる
― 加速度、RMS、波形 - M5Stackで振動をFFT解析してみる
― 周波数スペクトル、回転周波数との比較
今回はその準備として、Arduino IDEの開発環境を構築し、M5Stack
Core2で簡単なプログラムが動作するところまで確認します。
2.使用する機器
本連載では、マイコンとして M5Stack Core2(ハードウェア v1.3) を使用します。
Core2にはカラーLCD、タッチパネル、microSDカードスロット、Wi-Fi、Bluetoothなどが搭載されています。また、Grove端子を利用して各種センサーユニットを比較的簡単に接続できます。
今後の記事では、次のセンサーを使用する予定です。
| 測定対象 | 使用するセンサー | 主な用途 |
|---|---|---|
| 温湿度・気圧 | ENV-III | 作業環境、保管環境などの記録 |
| 距離 | Unit ToF | ワークの有無、位置などの検出 |
| 表面温度 | NCIR2 Unit | モータ、軸受、装置などの非接触温度測定 |
| 加速度 | ADXL345 | 設備の振動測定 |
これらのセンサーは、M5Stack Core2のPORT.Aに接続して使用します。
3.今回使用する開発環境
本連載では、実際に動作確認を行った以下の環境を使用します。
| 項目 | 使用環境・バージョン |
|---|---|
| OS | Windows 11 |
| Arduino IDE | 2.3.10 |
| M5Stack Core2(ハードウェア) | v1.3 |
| M5Stackボードパッケージ | 3.3.9 |
| M5Unified | 0.2.20 |
今後の記事では、各センサーについて次のライブラリも使用します。
| 用途 | センサー | ライブラリ | バージョン |
|---|---|---|---|
| 温湿度・気圧 | ENV-III | M5Unit-ENV | 1.7.1 |
| 距離 | Unit ToF | M5UnitUnifiedTOF | 0.2.1 |
| 非接触温度 | NCIR2 Unit | M5Unit-THERMO | 0.3.1 |
| 加速度・振動 | ADXL345 | ADXL345_WE | 3.1.0 |
| 共通Unit制御 | ― | M5UnitUnified | 0.5.5 |
| FFT解析 | ― | arduinoFFT | 2.0.4 |
ライブラリやボードパッケージは、更新によって仕様や使用方法が変更される場合があります。本連載では再現性を確保するため、上記の環境で動作確認を行います。
なお、本記事(第0回)でインストールするライブラリは M5Unified 0.2.20 のみです。まずはArduino IDE、M5Stackボードパッケージ、M5Unifiedを準備し、Core2本体の動作を確認します。M5UnitUnifiedを含む各センサー用ライブラリは、実際に使用する回でインストールします。
各センサー用ライブラリは、それぞれを使用する記事で導入します。
4.Arduino IDEのインストール
MM5Stack Core2のプログラム作成にはArduino IDEを使用します。
Arduino公式サイトから、最新版のArduino IDE 2をダウンロードしてPCにインストールします。
なお、本記事の作成時に使用したArduino IDEのバージョンは 2.3.10 です。Arduino IDEのバージョンアップにより、画面表示や操作方法が本記事と異なる場合があります。
Arduino IDEをインストールしたら起動します。初回起動時には、ドライバーなどのインストールについて確認画面が表示される場合があります。必要に応じてインストールを行います。
Arduino IDEが正常に起動することを確認します。
5.M5Stackのボードパッケージのインストール
Arduino IDEでM5Stack Core2を使用するため、M5Stack用のボードパッケージをインストールします。
Arduino IDEの画面左側にある「ボードマネージャ」のアイコンをクリックし、検索欄に
M5Stack
と入力します。
検索結果に表示されたM5Stackのボードパッケージを選択します。本連載では、実際に動作確認を行った バージョン3.3.9 を使用します。
バージョンを選択して「インストール」をクリックします。インストールにはしばらく時間がかかる場合があります。
インストールが完了したら、M5Stack Core2をUSBケーブルでPCに接続し、Arduino IDEで使用するボードとして
M5Core2
を選択します。
以降のプログラムでは、このM5Core2を選択した状態でコンパイルと書き込みを行います。
注意
ネットワーク環境によっては、Arduino IDEからM5Stackのボードパッケージを正常にダウンロードできない場合があります。
特に企業や組織内のPCでは、プロキシ、ファイアウォール、DNSなどのネットワーク環境の影響を受ける可能性があります。
講習会などで複数台のPCを使用する場合は、当日に環境構築を行うのではなく、事前にボードパッケージのインストールと動作確認を済ませておくことをおすすめします。
6.M5Unifiedのインストール
Arduino IDEのライブラリマネージャを開き、M5Unified を検索してインストールします。
本連載で使用するバージョンは 0.2.20 です。
M5Unifiedは、M5Stackシリーズの各種機能を共通的に扱うためのライブラリです。本連載ではCore2の画面表示などに使用します。
7.M5Stack Core2をPCに接続
USBケーブルでM5Stack Core2とPCを接続します。
Arduino IDEでCore2に対応するCOMポートが認識されていることを確認します。
例えば
COM5
などと表示されます。COM番号は使用するPCによって異なります。
ポートが表示されない場合は、USBケーブル、USBポート、ドライバーなどを確認してください。
また、USBケーブルには充電専用でデータ通信に対応していないものがあります。書き込みができない場合は、データ通信に対応したUSBケーブルであることも確認します。
8.M5Stackの動作確認
環境構築ができたら、Core2の画面に文字を表示してみます。
Arduino IDEに次のプログラムを入力します。
#include <M5Unified.h>
void setup() {
auto cfg = M5.config();
M5.begin(cfg);
M5.Display.setTextSize(2);
M5.Display.setCursor(0, 100);
M5.Display.println("M5Stack Seminar");
M5.Display.println("Setup OK!");
}
void loop() {
M5.update();
}
Core2をUSB接続した状態で、Arduino IDEからプログラムを書き込みます。
コンパイルと書き込みが正常に終了すると、Core2の画面に次のように表示されます。
M5Stack Seminar
Setup OK!
これで、 PC → Arduino IDE → M5Stack Core2 という基本的な開発環境が動作することを確認できました。
9.初回のコンパイルには時間がかかる
M5Stack Core2のプログラムは、初回のコンパイルに比較的時間がかかる場合があります。
特にM5Unifiedなどのライブラリを初めて使用する場合には、多数のファイルがコンパイルされるため、PCによってはしばらく時間がかかります。
一方、一度コンパイルした後は、変更されていないファイルのコンパイル結果が再利用されるため、2回目以降のコンパイル時間が大幅に短くなる場合があります。
そのため、初回のコンパイルに時間がかかっても、毎回同じ時間が必要になるとは限りません。
講習会で使用するPCについては、事前に一度サンプルプログラムをコンパイルしておくと、当日の待ち時間を減らすことができます。
10.本連載でのプログラム作成方針
本連載では、電子回路やマイコンの仕組みそのものを詳しく学ぶことよりも、製造現場でどのようなデータを取得でき、そのデータをどのように活用できるかを重視します。
そのため、各センサーの制御には既存のライブラリを活用し、センサーIC内部のレジスタを直接操作するようなプログラムはできるだけ避けます。
本連載では、センサーIC内部のレジスタを直接操作することより
- 何を測定するのか
- 取得した値をどのように表示・記録するのか
- どのような現場課題への活用が考えられるのか
という点に重点を置いて進めます。
11.おわりに
今回は、M5Stack Core2を使用するためのArduino IDEの環境を準備し、Core2の画面に文字を表示するところまで確認しました。
マイコンというと、電子回路やプログラミングの専門知識が必要という印象を持つかもしれません。しかし、M5Stackと市販のセンサーユニット、既存のライブラリを組み合わせることで、比較的少ないプログラムでさまざまなデータを取得できます。
本連載では、M5Stackと身近なセンサーを組み合わせて、「現場のデータを取ってみる」ことを目的とします。 精度が保証された計測機器の代替を目的とするものではなく、温湿度、距離、温度、振動などのデータを手軽に取得し、製造現場でどのように活用できるかを試していきます。
次回はENV-IIIをM5Stack Core2に接続して、温度・湿度を測定します。さらに、測定値を画面に表示し、microSDカードへCSV形式で記録する簡易データロガーを作成します。