プログラムを書き込むには、CPUに合ったボード定義と、使うリーフ・サンプルに必要なライブラリを選びます。まず開発環境設定で最初のプログラムを動かし、その後に必要なライブラリを追加してください。
ボード定義を選ぶ
Section titled “ボード定義を選ぶ”| リーフ | Arduino IDE | PlatformIO |
|---|---|---|
| AP01 AVR MCU | Arduino AVR Boards → Arduino Pro or Pro Mini → ATmega328P (3.3V,8MHz)。設定手順 | platform = atmelavr、board = pro8MHzatmega328。設定手順 |
| AP02 ESP32 MCU | esp32 by Espressif Systems → ESP32 Dev Module。設定手順 | platform = espressif32、board = esp32dev。設定手順 |
| AP03 STM32 MCU | Leafony配布のボードパッケージを使用。URLと設定手順 | Leafony配布のLEAFONY_AP03定義とvariantファイルを使用。配置・書き込み設定 |
AP03のPlatformIO手順は、ボード一覧から名前を選ぶだけでは完了しません。参照先に沿ってファイルを配置し、書き込みツールとポートも指定してください。AP01ではUSBリーフの型番によりリセット操作が変わるため、AZ01Cを使う場合の手順も確認します。
AP03BとAP05は別の型番です。上の設定をそのまま流用せず、それぞれの技術資料で公開されているソフトウェアと接続条件を確認してください。
必要なライブラリを選ぶ
Section titled “必要なライブラリを選ぶ”以下は掲載サンプルで参照する主な配布元です。全部をインストールする必要はありません。 サンプルの「使用するリーフ」「ライブラリ」と、配布プロジェクトのplatformio.iniを優先してください。表の同じ行にあるライブラリを、すべてのCPU・すべてのリーフで使えるという意味ではありません。
| リーフ・機能 | 配布元 / ヘッダ | 選ぶときの確認事項 |
|---|---|---|
| 4-Sensorsの共通処理 | Adafruit Unified Sensor / Adafruit_Sensor.h、Adafruit BusIO / Adafruit_BusIO_Register.h | センサ用ライブラリが要求する依存関係も確認 |
| 温湿度 HTS221 | SmartEverything HTS221 / HTS221.h | サンプルで指定された実装を使用 |
| 照度 OPT3001 | ClosedCube OPT3001 / ClosedCube_OPT3001.h | ArduinoのライブラリマネージャでClosedCube OPT3001を検索 |
| AI01の加速度(LIS2DHTR) | Adafruit LIS3DH / Adafruit_LIS3DH.h | 掲載サンプルはAdafruit LIS3DHを使用。AI05のLIS2DW12向けではない |
| BLEリーフ | TBGLib / TBGLib.h | ESP32内蔵BLEのライブラリとは別 |
| AI04 LCD | tomozh/arduino_ST7032 / ST7032.h | 下のAI04の注意点を確認 |
| RTC & microSDのRTC | RTClib / RTClib.h | STM32内蔵RTC用ライブラリとは別 |
| AVRタイマ割り込み | MsTimer2 / MsTimer2.h | STM32ではHardwareTimerを参照 |
| STM32内蔵RTC・低消費電力 | STM32RTC / STM32RTC.h、STM32LowPower / STM32LowPower.h | Arduino Coreとの対応条件を確認 |
| LTE-Mの既存サンプル | LteLeafV4 / LteLeafV4.h | 通信リーフの型番とサンプルの対応を確認 |
| Wi-Fi Mary | WiFi101Leafony / WiFi101Leafony.h | AP02内蔵Wi-Fi向けの設定とは別 |
| LoRa・署名通信 | arduino-LoRa / LoRa.h、arduino-tca9536 / TCA9536.h、SparkFun ATECCX08a / SparkFun_ATECCX08a_Arduino_Library.h | 使用する通信リーフ・機能のサンプルに従う |
AI04 LCDのST7032ライブラリ
Section titled “AI04 LCDのST7032ライブラリ”AI04の掲載サンプルは**tomozh氏のarduino_ST7032**を使います。LCD_ST7032やST7032_asukiaaaは別の実装です。Arduino IDEでは配布元からZIPを取得し、下の手順で導入してください。
ST7032.h: No such file or directoryが出る場合はインストールを確認します。ライブラリを入れるだけではLCDに給電されません。AI04の給電・初期化と、使用CPUに合うLCDサンプルを確認してください。
Arduino IDEで導入する
Section titled “Arduino IDEで導入する”- サンプルでライブラリ名・作者・バージョンの指定を確認します。
- ライブラリマネージャにある場合は、ツール → ライブラリを管理から名前を検索し、作者と版を確認してインストールします。
- ZIPで配布されている場合は、配布元のCode → Download ZIPなどから取得し、スケッチ → ライブラリをインクルード → ZIP形式のライブラリをインストールで読み込みます。
- サンプルをコンパイルします。ヘッダが見つからない場合は、エラーにあるファイル名と導入したライブラリを照合します。
操作の詳細はArduino公式のライブラリ導入手順を参照してください。
PlatformIOで導入する
Section titled “PlatformIOで導入する”platformio.iniの使用する[env:...]セクション内にlib_depsを記述します。すでにある場合は同じ一覧へ追記します。依存ライブラリはビルド時に取得されます。サンプルに完成した設定ファイルがあれば、その指定を使ってください。
; 指定方法の例。Hello Worldには追加ライブラリは不要です。lib_deps = adafruit/Adafruit Unified Sensor adafruit/Adafruit BusIOGitHubのURLで取得する場合はGitも必要です。インストール後にVS Codeを再起動し、ターミナルでgit --versionが実行できることを確認してください。指定方法はPlatformIO公式のlib_deps説明を参照できます。
既存サンプルのバージョン指定
Section titled “既存サンプルのバージョン指定”過去の一覧には、次の指定が掲載されています。これは既存プロジェクトを読むための情報です。新しいプロジェクトへ一括でコピーせず、サンプルとArduino Coreの対応を確認してください。
| ライブラリ | 既存のPlatformIO指定例 |
|---|---|
| Adafruit Unified Sensor | adafruit/Adafruit Unified Sensor@^1.1.6 |
| Adafruit BusIO | adafruit/Adafruit BusIO@^1.14.1 |
| ClosedCube OPT3001 | closedcube/ClosedCube OPT3001@^1.1.2 |
| Adafruit LIS3DH | adafruit/Adafruit LIS3DH@1.1.2 |
| AI04 LCD | tomozh/ST7032@0.0.0-alpha+sha.501bf64fe6 |
| MsTimer2 | paulstoffregen/MsTimer2@^1.1 |
| RTClib | adafruit/RTClib@^2.1.1 |
| STM32RTC | stm32duino/STM32duino RTC@1.2.0 |
| STM32LowPower | stm32duino/STM32duino Low Power@^1.2.2 |
特にSTM32RTC・STM32LowPowerは、STM32 Arduino Coreの版に合わせた選択が必要です。ライブラリだけを更新してビルドが変わった場合は、エラー全文、ボードパッケージ、ライブラリの版を確認し、質問テンプレートにまとめてください。