4-Sensorsリーフに搭載された加速度センサの値を読み取って、シリアルモニタに表示するサンプルです。
AP03用のArduino IDE設定を済ませ、ボードにLeafony STM32 MCUを選択します。センサは AI01 4-Sensors上のLIS3DH です。ライブラリマネージャからAdafruit LIS3DHと、導入時に案内される依存ライブラリをインストールしてください。
スケッチはI2Cアドレス0x19を使用します。アドレスの設定を変更したリーフを使う場合は、I2Cアドレスマップと照合し、LIS3DH_ADDRESSを合わせます。ソースの取得・書き込み・成功確認の進め方はサンプルの動かし方を参照してください。
使用するリーフ
Section titled “使用するリーフ”以下のリーフを使用します
| Type | Name | Q’ty |
|---|---|---|
| AZ62 | Connector Cover | 1 |
| AI01 | 4-Sensors | 1 |
| AZ01 | USB | 1 |
| AP03 | STM32 MCU | 1 |
| AV01 | CR2032 | 1 |
| CR2032 coin cell battery | 1 | |
| M2*15mm screw | 2 |
リーフの組み立て
Section titled “リーフの組み立て”下図を参考にリーフを組み立ててみましょう。

ソースコード
Section titled “ソースコード”Arduino IDEで下記のプログラム1を書きましょう。
このスケッチを動かすためには、ライブラリのインストールが必要です。 まだインストールしていない場合は開発環境設定ページを参考にライブラリをインストールしてください。
//=====================================================================// Accelerometer//// (c) 2021 LEAFONY SYSTEMS Co., Ltd// Released under the MIT license// https://opensource.org/licenses/MIT//// Rev.00 2021/04/01 First release//=====================================================================#include <Adafruit_LIS3DH.h>
#define LIS3DH_ADDRESS 0x19
Adafruit_LIS3DH accel = Adafruit_LIS3DH();
void setup() { // initialize serial communication at 115200 second per second: Serial.begin(115200); // initialize i2c communication with LIS3DH: accel.begin(LIS3DH_ADDRESS);
accel.setClick(0, 0); // Disable Interrupt accel.setRange(LIS3DH_RANGE_2_G); // Full scale +/- 2G accel.setDataRate(LIS3DH_DATARATE_10_HZ); // Data rate = 10Hz
delay(100);}
void loop() { accel.read();
Serial.print("X [g] = " + String(accel.x_g)); Serial.print(", "); Serial.print("Y [g] = " + String(accel.y_g)); Serial.print(", "); Serial.print("Z [g] = " + String(accel.z_g)); Serial.println("");
delay(100);}書き込み後にAP03のプログラムスイッチをRun側に戻し、リセットスイッチを押します。Arduino IDEのシリアルモニタを115200bpsで開くと、X [g]、Y [g]、Z [g]の値が繰り返し表示されます。角度そのものを計算するスケッチではありません。
リーフをゆっくり傾け、各軸の値が変わることを確認します。静止時にも重力の成分が含まれるため、3軸すべてが0になる必要はありません。

うまく動かないとき
Section titled “うまく動かないとき”| 症状 | 確認すること |
|---|---|
Adafruit_LIS3DH.hが見つからない | Adafruit LIS3DHと依存ライブラリの導入を確認する |
| 文字化け・何も表示されない | シリアルポートと115200bpsの設定、Run側への切り替え、リセットを確認する |
| 傾けても値が変わらない | 電源を切ってからAI01の接続を確認し、I2CアドレスとLIS3DH_ADDRESSを照合する |
リーフの着脱は電源を切ってから行います。接続・書き込み自体で止まる場合はよくある質問を参照してください。
Footnotes
Section titled “Footnotes”-
プログラムは、AVR MCUリーフと同じです。 ↩