ラズパイのコマンドラインで PlatformIO を使って M5StickC を Lチカしてみました。
環境
- Raspberry Pi 4 model B
- Raspbian GNU/Linux 10 (buster)
- M5StickC
pipenv プロジェクト作成
pipenv プロジェクトのディレクトリを作成して移動
$ mkdir /some/where/m5stickc-lflash
$ cd /some/where/m5stickc-lflash/
pipenv プロジェクト作成
$ pipenv --python $(which python3)
pipenv shell 起動
$ pipenv shell
以下、全て pipenv シェルで実行
Platformio インストール
インストール
$ pipenv install platformio
バージョン確認
$ platformio --version
PlatformIO, version 4.3.4
M5StickC のボード ID を確認
PlatformIO での M5StickC のボード ID を確認しました。
$ platformio boards
--- 省略 ---
Platform: espressif32
================================================================================
ID MCU Frequency Flash RAM Name
------------------------------- ----- ----------- ------- ------ --------------------------------
--- 省略 ---
m5stack-core-esp32 ESP32 240MHz 4MB 320KB M5Stack Core ESP32
m5stack-fire ESP32 240MHz 16MB 6.25MB M5Stack FIRE
m5stack-grey ESP32 240MHz 16MB 520KB M5Stack GREY ESP32
m5stick-c ESP32 240MHz 4MB 320KB M5Stick-C
--- 省略 ---
ボード ID は m5stick-c でよさそうです。
PlatformIO プロジェクト作成
プロジェクトのディレクトリを作成して移動
$ mkdir pio_project
$ cd pio_project/
プロジェクト初期化
$ platformio init --board=m5stick-c
- 上で調べてた M5StickC のボード ID を指定しました。
シリアルポートデバイスを確認
M5StickC を USB 接続したラズパイのシリアルポートデバイスを確認しました。
M5StickC をラズパイの USB に接続する時の /var/log/messages で確認することもできますが、PlatformIO をインストールしたのでこれで確認してみました。
M5StickC をラズパイの USB に接続している状態で以下のコマンドを打ちました。
$ platformio device list
/dev/ttyUSB0
------------
Hardware ID: USB VID:PID=0403:6001 SER=7552CE3E93 LOCATION=1-1.3
Description: M5 Serial Converter
/dev/ttyAMA0
------------
Hardware ID: fe201000.serial
Description: ttyAMA0
/dev/ttyUSB0
で良いようです。
Lチカプログラムを用意
led-flash.ino ファイルを src/ に置きました。
$ cat src/led-flash.ino
#define LED_PIN 10
#define LED_ON LOW
#define LED_OFF HIGH
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, LED_ON);
delay(100);
digitalWrite(LED_PIN, LED_OFF);
delay(900);
}
- M5StickC の LED は LOW が ON、HIGH が OFF とのことです。
プログラムをビルド
以下のコマンドでビルド
$ platformio run
エラー無くビルドできました。ターゲットに upload を指定していないのでビルドされただけで M5SticC には書き込まれていません。
.pio/ 配下にビルドされたファイルが出来ていました。
$ ls -la .pio/build/m5stick-c/
合計 28712
drwxr-xr-x 4 pi pi 4096 6月 19 21:38 .
drwxr-xr-x 3 pi pi 4096 6月 19 21:32 ..
-rw-r--r-- 1 pi pi 149000 6月 19 21:38 .sconsign37.db.dblite
drwxr-xr-x 3 pi pi 4096 6月 19 21:32 FrameworkArduino
-rw-r--r-- 1 pi pi 211040 6月 19 21:32 firmware.bin
-rwxr-xr-x 1 pi pi 4265992 6月 19 21:32 firmware.elf
-rw-r--r-- 1 pi pi 24743628 6月 19 21:32 libFrameworkArduino.a
-rw-r--r-- 1 pi pi 8 6月 19 21:32 libFrameworkArduinoVariant.a
-rw-r--r-- 1 pi pi 3072 6月 19 21:32 partitions.bin
drwxr-xr-x 2 pi pi 4096 6月 19 21:38 src
再度ビルドして M5StickC に書き込み
$ platformio run --upload-port /dev/ttyUSB0 --target upload
- 上で確認したシリアルポートデバイスを指定しました。
--target upload
によりビルド後 M5StickC に書き込まれました。
M5StickC で Lチカできました。