ESP-WROOM-02をArduinoで使う情報はたくさんありますが、MicroPythonを動かす情報は少なかったので、Lチカまでの手順をまとめました。
MicroPython
MicroPythonはマイコンボードで動かすPython3の実行環境です。
元々は、pyboardというマイコンボードの上で動いてましたが、esp8266にも移植されました。
準備
Mac上で環境構築
ESP-WROOM-02ボード上にmicropythonのファームを書き込む環境を構築します。
pipのインストール
pipがすでにインストールされていたらスキップ
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python ./get-pip.py
これでpipがインストールされます。
esptoolのインストール
esptoolはESP-WROOM-02にコマンドラインからアクセスするツールです。
上でインストールしたpipを使い、インストールします。
$ sudo pip install esptool
環境構築はこれだけです。
esptoolを使い、ボードにアクセス
ESP-WROOM-02のIO0をLOWにしてファームウェア書き込みモードにします。
USBシリアルを使い、Macに接続します。
USBシリアルのデバイスは、/dev/tty.usbserial-xxxxになります。(xxxxはUSBシリアルのデバイスによって変わります)
esptoolのテスト
esptoolを使って、ボードにアクセスできるかテストします。
$ esptool.py --port=/dev/tty.usbserial-xxxx --baud 115200 chip_id
esptool.py v1.1
Connecting...
Chip ID: 0x000????
esptoolを起動して、上記のメッセージが出れば、esptoolで正常にボードにアクセスできています。
(????はチップIDで変わります)
フラッシュメモリのサイズ確認
esptoolを使いフラッシュメモリのサイズを確認します。
$ esptool.py --port=/dev/tty.usbserial-DJ00L51M --baud 115200 flash_id
esptool.py v1.1
Connecting...
Manufacturer: a1
Device: 4016
4016の下2桁がサイズを表すようです。16の場合はフラッシュサイズは32Mbitです。こちらのサイトを参考にしました。
MicroPythonの書き込み
ファームウェアは、MicroPython Downloadsの下の方にあります。
私がダウンロードした時は、esp8266-20160909-v1.8.4.binが最新でした。
$ esptool.py --port=/dev/tty.usbserial-xxxx --baud 115200 write_flash --flash_size=32m 0 ./esp8266-20160909-v1.8.4.bin
esptool.py v1.1
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0040
Writing 565248 @ 0x0... 565248 (100 %)
Wrote 565248 bytes at 0x0 in 49.0 seconds (92.2 kbit/s)...
Leaving...
こんな風に書き込めれば、成功です。
起動とLチカ
ESP-WROOM-02のIO0をHIGHにして、実行モードにし、cuコマンドでターミナル接続します。
$ sudo cu -s 115200 -l /dev/tty.usbserial-xxxx
return打って、>>>
のプロンプトが出ればpythonのコマンドラインが受け付ける状態になっています。
hello world
とりあえず、 hello world
>>> print ('hello world')
hello world
Lチカ
IO4につないだLEDを点灯させます。
>>> import machine
>>> pin = machine.Pin(4, machine.Pin.OUT)
>>> pin.high()
>>> pin.low()
以上です。
参考URLは、MicroPython tutorial for ESP8266でした。
続編として、シェルの導入をまとめました。
ESP-WROOM-02でMicroPython (Mac) shellの導入
MicroPythonでDeepSleeepの使い方と、電源電圧の取得方法も追加しました。
MicroPython on the ESP8266 (ESP-WROOM-02) deep sleep
MicroPython on the ESP8266 (ESP-WROOM-02) 電源電圧の取得