Windows + MicroPythonによるM5Stamp C3U開発環境の構築
M5Stamp C3Uとは?
M5Stamp C3UはESP32-C3 RISC-V MCUを搭載した切手サイズのマイコンボードであり、ESP32-C3のUSBシリアル変換機能を利用しているため、直接USB接続するだけでプログラムの書き込みが可能なデバイスだ。
www.switch-science.comしかし、2022年8月現在、M5シリーズの開発環境であるUIFlowに対応していないことから、何かと不便なことが多い。Pythonで開発したいユーザはM5 Atom Liteを購入してUIFlowのPythonエディタを利用するのも一つの選択肢なのだが、残念ながらUI FlowのPythonエディタはPythonのコードを保存することができない。
そこで、UIFlowに頼らずにPythonでの開発環境を整えることとしたのだが、Windows環境では何かと面倒なことが多かった。個人的な備忘も兼ねて、要点をまとめておくことにする。
Pythonのインストール
もし、WindowsにPythonがインストールされていない場合、Pythonをインストールする。Python本体のあるフォルダにPathを通しておくとともに、必要に応じて適切な環境を構築する。
もし、わかりにくければPython.jpの情報を参考にしてもよい。
実は、Unix系OSであればさほど大変ではないのだが、WindowsにPython環境を構築するのは結構面倒な作業だったりする。うまくいかなければ、Windowsなんて諦めてUnix系OSを導入してしまうのも一つの作戦なのだが、そうするとこの記事の価値がなくなるので、Windows環境上でゴリ押ししてもらいたい。
CP201x ドライバのインストール
Pythonの環境が整ったら、USB経由でファームウェアやプログラムを書き込むためのチップ(CP210xシリーズ)のドライバをインストールする。
www.silabs.comSILICON LABSのCP210xドライバのページから"DOWNLOADS"タブへ入り、"Software Downloads"の項目から"CP210x Windows Drivers"を選択し、ダウンロードする。環境によっては、単にリンクをクリックするだけではダウンロードできないこともあるようだ。その場合は、リンクを右クリックしてリンク先を保存するようにすればよい。
ZIPファイルを解凍したら、64bit版のWindowsであれば"CP210x VCPInstaller_x64.exe"を、32bit版であれば"CP210x VCPInstaller_x86.exe"をダブルクリックしてドライバをインストールする。
ESPTOOLのダウンロード
次はESP32C3のファームウェアの書き込みに必要なツール(ESPTOOL)のダウンロードだ。ESPTOOLはGitHubからダウンロードできる。
github.com上記リンクにアクセスしたら、"Code"メニューをクリックし、"Download ZIP"を選択する。
ダウンロードしたZIPファイルを解凍し、その中にある"esptool.py"をPathの通ったフォルダに格納(コピーまたは移動)する。
ESP32C3ファームウェアのダウンロード
MycroPython公式サイトより、ESP32C3用のファームウェアをダウンロードする。
micropython.orgいくつかのバージョンが選択できるようになっているが、特段の事情がなければ、Releasesの中から、最新のもの(latest)を選んでおけばよい。
ダウンロードしたら、わかりやすいフォルダにでも移動しておこう。これで必要なファイルの準備は完了だ。
ESP32C3ファームウェアの書き込み
必要なファイルが揃ったら、いよいよM5Stamp C3Uにファームウェアを書き込むことになる。M5Stamp C3Uの中央部のボタンを押しながら、USBケーブルでPCに接続する。これでM5Stamp C3Uはファームウェアを書き込むモードに入る。
(Raspberry Pi PicoをMicroPython環境で開発した経験のある方ならピンと来たかもしれないが、Raspberry Pi Picoの初回設定時にUF2ファイルを書き込むのと似たような作業だ。)
WindowsキーとRキーを同時に押し、"ファイル名を指定して実行"ウィンドウを出し、"cmd"と入力して"OK"をクリックして、コマンドプロンプトを起動する。(コマンドプロンプトのかわりにWindows PowerShellを利用してもよい)
コマンドプロンプトに下記のコマンドを打ち込み、フラッシュの内容を削除する。("COM5"部分はそれぞれの環境に応じて変更)
esptool.py.exe --chip esp32c3 --port COM5 erase_flash
続いて下記のコマンドを打ち込み、ファームウェアを書き込む。("COM5"部分は先のポート名に、"UserName\FilePath"部分はダウンロードしたファームウェアの格納されているフォルダのパス、"esp32c3-20220117-v1.18.bin
"部分はダウンロードしたファームウェアのファイル名に変更)
esptool.py.exe --chip esp32c3 --port COM5 --baud 460800 write_flash -z 0x0 "C:\Users\UserName\FilePath\esp32c3-usb-20220618-v1.19.1.bin
書き込みには少し時間がかかるが、成功すれば、"Leaving..."というメッセージに続き、"Hard resetting via RTS pin..."というメッセージが表示される。
これでM5Stamp C3U側の準備は完了だ。一度M5Stamp C3UをUSBポートから抜いておこう。
Thonny Python IDEの設定
続いて、開発するWindows PC側の設定に入る。マイコンボードを用いた開発は、IDE(統合開発環境)を用いるのが一般的だが、今回はRaspberry Piにプレインストールされていることでもお馴染みのThonnyを使うことにしよう。
thonny.orgThonnyの公式サイトからWindows版をダウンロードして、インストールする。
インストールが完了したら、Thonny Python IDEを起動する。
Thonnyを起動したら、"Tools"→"Options"と進み、デバイスを"MirroPython (ESP32)"に、ポートを"USB Serial Device (COM5)"に設定し、"OK"をクリックする。("COM5"部分はそれぞれの環境に応じて変更)
これでWindows + MycroPythonによるM5Stamp C3Uの開発環境の構築は完了だ。
Lチカで動作確認
配線
さて、M5Stamp C3Uの準備が整ったところで、動作確認をしてみよう。マイコンボードの動作確認の定番といえば、LEDの自動点滅、いわゆるLチカだ。
とりあえずM5Stamp C3Uの3番ピンに330Ω程度の抵抗器とLEDのアノードを直列に接続する。続いて、LEDのカソードをM5Stamp C3UのGND端子に接続する。
コーディング・書き込み
配線が完了したら、M5Stamp C3UをUSBケーブルでWindows PCに接続し、下記のコードを入力(もしくはCopy & Paste)する。
import machine
import time
led = machine.Pin(3, machine.Pin.OUT)
while True:
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
"while True:"以降は最後まで行頭に同じレベルのインデントを入れるのを忘れないように。
入力し終えたら、ファイルをM5Stamp C3Uに書き込もう。
"File"→"Save as"とクリックし、"MicroPython device"を選択する。
"main.py"というファイル名を指定して保存する。
保存した後、F5キーを押すか、"Run current script"をクリックすれば書き込んだプログラムが動き出し、1秒間隔でLEDが点灯と消灯を繰り返すはずだ。
これでひとまず、M5Stamp C3UをWindows + MycroPython環境で開発する環境が整った。あとは楽しく遊ぶこととしよう。