勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

M5Stampをバスおもちゃに仕込む - 3. 開発環境用意

↓ 前回記事

nokixa.hatenablog.com

前回ハードはできたので、プログラミングを進めていく。

やること

前まで、VSCode拡張機能のEspressif IDFで開発していたが、生成AIに今回こんなことをやりたいと聞いた(課金している知り合いに聞いてもらった)ところ、PlatformIOというツールでの開発例を教えてもらったので、PlatformIOをやってみる。

PlatformIOインストール

VSCode拡張機能をインストール。

対応しているプラットフォーム、フレームワークの記載もある。
今回のESP32も対応しているよう。

Platforms: Atmel AVR, Atmel SAM, Espressif 32, Espressif 8266, Freescale Kinetis, Infineon XMC, Intel ARC32, Intel MCS-51 (8051), Kendryte K210, Lattice iCE40, Maxim 32, Microchip PIC32, Nordic nRF51, Nordic nRF52, NXP LPC, RISC-V, Silicon Labs EFM32, ST STM32, ST STM8, Teensy, TI MSP430, TI Tiva, WIZNet W7500

Frameworks: Arduino, CMSIS, ESP-IDF, ESP8266 RTOS SDK, Freedom E SDK, Kendryte Standalone SDK, Kendryte FreeRTOS SDK, libOpenCM3, mbed, PULP OS, SPL, STM32Cube, WiringPi, Zephyr RTOS

Espressif 32という表記だが、ESP32と同義と思っていいか?

一応Espressifを調べておく。

Espressif Systemsは中国に拠点を持ち、SoC(システム・オン・チップ)製品、BluetoothおよびWi-Fi通信用モジュールを製造するファブレスメーカーです。
Espressifは2008年に設立され、上海に本社を置いています。Espressifでは、ESP8266やESP32ファミリーに代表される、1つのチップに様々な機能(32ビットマイクロコントローラ、メモリ、無線通信)を搭載するSoC製品を製造しています。同社の製品は、多機能、価格、製品および開発用キットの幅広いラインナップで、愛好家のみならず電子機器開発プロジェクトに携わるプロからも高い評価を得ています。
SoC集積回路およびEspressifのモジュールは、モノのインターネット(IoT)分野で最も多く用いられています。

https://www.tme.com/jp/ja/linecard/p,espressif_1109/

インストールはちょっと時間かかった。

VSCodeの再起動を求められた。

プロジェクト作成

VSCodeの左のバーを見ると、PlatformIOのハチのアイコンができている。
クリックすると、手順がガイドされているよう。

"Create New Project"をクリックすると、こんな画面が出てきた。

"New Project"をクリックすると、"Project Wizard"が出てきた。
ボードを選択できる。

ただ、今回のM5Stamp C3そのものはなく、"M5Stamp-Pico"ならあった。

このサイトによると、"Espressif ESP32-C3-DevKitM-1"を選択すればいいよう。

Arduino勉強会/41-M5Stamp-C3Uをデバッグする(暫定方法) - PukiWiki

ということで、こんな感じで設定。
今回はArduinoフレームワークにする。生成AIの回答の通りで。
プロジェクトのLocationは、"Use default location"のチェックを外して、今のワークスペースの下にした。
デフォルトのままだと、Windowsのユーザーフォルダの下にできてしまったので。

最後に"finish"をクリック。

ちょっと時間がかかる。

こんな感じでプロジェクトフォルダと、中身ができた。
元のフォルダの下に作ったが、新しく作られたフォルダがVSCodeワークスペースに追加された形になって、ダブってしまっている。

VSCodeを開き直して、ダブりはなくなった。

サンプルプログラム作成

生成AIに聞きながら、Hello Worldをまずやってみた。

ソースコード編集

srcフォルダにmain.cppがすでにあるが、中身を下記のように書き換え。

#include <Arduino.h>

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Hello, world!");
  delay(1000);
}

platform.ini編集

上記のmain.cppでは、シリアルポートを115200のボーレートに設定しているので、下記の設定の追加がおそらく必要。

monitor_speed = 115200

platform.iniの全体は下記のようになっている。

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp32-c3-devkitm-1]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
monitor_speed = 115200

バイス接続

M5StampをPCに接続して、PIO Homeで"Devices"タブを開いてみると、きちんと認識されているよう。

コンパイル、実行

どこのボタンを押せばいいのか?と思ったが、VSCodeの左のバー(アクティビティバー)のハチのアイコン(PlatformIOのアイコン)をクリックすると、"PROJECT TASKS"というのが出ている。まずはPlatformIOのプロジェクトを指定する必要があるよう。

"Pick a folder"をクリックして、さっき作ったプロジェクトを選ぶと、しばらくして表示が変わった。
"Build"とか"Upload"とか、それっぽいボタンが出てきている。

"Build"をクリックすると、ターミナルが起動して、ビルドが成功した表示が出た。

ターミナルの表示全部見る

Executing task: C:\Users\a\.platformio\penv\Scripts\platformio.exe run --environment esp32-c3-devkitm-1 

Processing esp32-c3-devkitm-1 (platform: espressif32; board: esp32-c3-devkitm-1; framework: arduino)
--------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (6.9.0) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20017.0 (2.0.17)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 33 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio\build\esp32-c3-devkitm-1\src\main.cpp.o
Building .pio\build\esp32-c3-devkitm-1\bootloader.bin
Generating partitions .pio\build\esp32-c3-devkitm-1\partitions.bin
esptool.py v4.5.1
Creating esp32c3 image...
Merged 1 ELF section
Successfully created esp32c3 image.
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Esp.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\FirmwareMSC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\HWCDC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\IPv6Address.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Print.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\USB.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\USBCDC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\USBMSC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\WString.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\base64.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\cbuf.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-dac.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-i2c-slave.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-i2c.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-rgb-led.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-rmt.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-spi.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-tinyusb.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\firmware_msc_fat.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\main.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\esp32-c3-devkitm-1\libFrameworkArduino.a
Linking .pio\build\esp32-c3-devkitm-1\firmware.elf
Retrieving maximum program size .pio\build\esp32-c3-devkitm-1\firmware.elf
Checking size .pio\build\esp32-c3-devkitm-1\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   4.2% (used 13748 bytes from 327680 bytes)
Flash: [==        ]  18.9% (used 247460 bytes from 1310720 bytes)
Building .pio\build\esp32-c3-devkitm-1\firmware.bin
esptool.py v4.5.1
Creating esp32c3 image...
Merged 2 ELF sections
Successfully created esp32c3 image.
================================== [SUCCESS] Took 9.23 seconds ==================================
 *  Terminal will be reused by tasks, press any key to close it. 

次に、"Upload"ボタンを押したら、新しいターミナルが表示されて、マイコンにプログラムを書き込んだ表示になった。

ターミナルの表示全部見る

 *  Executing task: C:\Users\a\.platformio\penv\Scripts\platformio.exe run --target upload --environment esp32-c3-devkitm-1 

Processing esp32-c3-devkitm-1 (platform: espressif32; board: esp32-c3-devkitm-1; framework: arduino)
---------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (6.9.0) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20017.0 (2.0.17)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - tool-mkfatfs @ 2.0.1
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 33 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Retrieving maximum program size .pio\build\esp32-c3-devkitm-1\firmware.elf
Checking size .pio\build\esp32-c3-devkitm-1\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"       
RAM:   [          ]   4.2% (used 13748 bytes from 327680 bytes)
Flash: [==        ]  18.9% (used 247460 bytes from 1310720 bytes)
Configuring upload protocol...
AVAILABLE: cmsis-dap, esp-bridge, esp-builtin, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
Looking for upload port...
Auto-detected: COM3
Uploading .pio\build\esp32-c3-devkitm-1\firmware.bin
esptool.py v4.5.1
Serial port COM3
Connecting....
Chip is ESP32-C3 (revision v0.3)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:67:25:b2:d0:54
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00003fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0004ffff...
Compressed 13248 bytes to 9562...
Writing at 0x00000000... (100 %)
Wrote 13248 bytes (9562 compressed) at 0x00000000 in 0.5 seconds (effective 228.9 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.1 seconds (effective 414.7 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 567.7 kbit/s)...
Hash of data verified.
Compressed 258896 bytes to 143444...
Writing at 0x00010000... (11 %)
Writing at 0x0001b29d... (22 %)
Writing at 0x00022d30... (33 %)
Writing at 0x0002993b... (44 %)
Writing at 0x0002f9c9... (55 %)
Writing at 0x00035b90... (66 %)
Writing at 0x0003be8e... (77 %)
Writing at 0x000445bb... (88 %)
Writing at 0x0004a53e... (100 %)
Wrote 258896 bytes (143444 compressed) at 0x00010000 in 4.4 seconds (effective 467.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
========================== [SUCCESS] Took 8.99 seconds ==========================
 *  Terminal will be reused by tasks, press any key to close it. 

最後に、"Monitor"をクリックすると、また新しいターミナルが開き、"Hello, world!"が表示された。
作ったプログラムはきちんと動いていそう。

ターミナルの表示全部見る

 *  Executing task: C:\Users\a\.platformio\penv\Scripts\platformio.exe device monitor --environment esp32-c3-devkitm-1 

--- Terminal on COM3 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
Hello, world!
Hello, world!
Hello, world!
Hello, world!
Hello, world!
Hello, world!

サンプルプログラム2つ目

このサイト見ると、M5Stampに搭載されているNeoPixelのLEDの点灯方法が書かれている。
ライブラリは必要なよう。

Arduino勉強会/41-M5Stamp-C3Uをデバッグする(暫定方法) - PukiWiki

PIO HOMEを見てみると、左のタブに"Libraries"とあり、見てみると、検索ができるよう。
"neo pixel"で検索すると、Adafruit社のライブラリが出てきた。

このライブラリをクリックしてみると、説明と、"Add to Project"ボタンがある。

"Add to Project"ボタンを押すと、どのプロジェクトに追加するかのダイアログが出るので、今回のプロジェクトを選択して、"Add"をクリックする。

上記の参考サイトのLチカのサンプルコードを使わせていただいて、main.cppに貼り付ける。

Arduino勉強会/41-M5Stamp-C3Uをデバッグする(暫定方法) - PukiWiki

これで、先ほどと同様にビルド、アップロードすると、LEDが赤くチカチカするのが確認できた。

一応、ビルドのときのログも。この中に、NeoPixel用のライブラリをビルドしてる部分もある。

ログを全部見る

Executing task: C:\Users\a\.platformio\penv\Scripts\platformio.exe run --environment esp32-c3-devkitm-1 

Processing esp32-c3-devkitm-1 (platform: espressif32; board: esp32-c3-devkitm-1; framework: arduino)
---------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (6.9.0) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20017.0 (2.0.17)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 34 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit NeoPixel @ 1.12.3
Building in release mode
Compiling .pio\build\esp32-c3-devkitm-1\src\main.cpp.o
Building .pio\build\esp32-c3-devkitm-1\bootloader.bin
Generating partitions .pio\build\esp32-c3-devkitm-1\partitions.bin
esptool.py v4.5.1
Creating esp32c3 image...
Merged 1 ELF section
Successfully created esp32c3 image.
Compiling .pio\build\esp32-c3-devkitm-1\libc0e\Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\libc0e\Adafruit NeoPixel\esp.c.o
Compiling .pio\build\esp32-c3-devkitm-1\libc0e\Adafruit NeoPixel\esp8266.c.o
Compiling .pio\build\esp32-c3-devkitm-1\libc0e\Adafruit NeoPixel\kendyte_k210.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Esp.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\FirmwareMSC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\HWCDC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\IPv6Address.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Print.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\USB.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\USBCDC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\USBMSC.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\WString.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\base64.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\cbuf.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-dac.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-i2c-slave.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-i2c.c.o
Archiving .pio\build\esp32-c3-devkitm-1\libc0e\libAdafruit NeoPixel.a
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-rgb-led.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-rmt.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-spi.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-tinyusb.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\firmware_msc_fat.c.o    
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\main.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\esp32-c3-devkitm-1\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\esp32-c3-devkitm-1\libFrameworkArduino.a
Linking .pio\build\esp32-c3-devkitm-1\firmware.elf
Retrieving maximum program size .pio\build\esp32-c3-devkitm-1\firmware.elf
Checking size .pio\build\esp32-c3-devkitm-1\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"       
RAM:   [          ]   4.2% (used 13804 bytes from 327680 bytes)
Flash: [==        ]  18.4% (used 241046 bytes from 1310720 bytes)
Building .pio\build\esp32-c3-devkitm-1\firmware.bin
esptool.py v4.5.1
Creating esp32c3 image...
Merged 2 ELF sections
Successfully created esp32c3 image.
========================== [SUCCESS] Took 7.97 seconds ==========================
 *  Terminal will be reused by tasks, press any key to close it. 

以上

開発環境の用意、プロジェクトのビルド、あとはライブラリの追加のしかたも確認できた。

次回は、Wi-Fi接続のプログラムを作ってみる。