27
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

ESP-WROOM-02でMicroPython (mac)

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) 電源電圧の取得

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
27
Help us understand the problem. What are the problem?