MicroPythonとは
マイコンに最適化されたPython3実装です。
元々はpyboardというマイコンボード用でしたが、KickstarterでESP8266への移植が始まりプロジェクトは無事に成功しソースはgithubで公開されています。
環境及び準備するもの
- Ubuntu 16.04
- Python 2.7.12
- ESPr Developer
- LED
- 抵抗
#試す
公式ドキュメントを見ながらやるといいです。
ESP8266用のmicropythonはgithubで公開されているのでコンパイル環境を整えてビルドしたいところですが、公式サイトコンパイル済みの物があるのでそれをダウンロードしてきます。
ESP8266にダウンロードしてきたファームウェアを書き込むために esptool をインストールします。
Python3環境では動かないので注意
$ pip install esptool
次にesptoolを使用してマイコンのフラッシュを消します。
$ sudo esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py v1.2.1
Connecting...
Running Cesanta flasher stub...
Erasing flash (this may take a while)...
Erase took 21.7 seconds
ダウンロードしてきたファームウェアを書き込みます。
$ sudo esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=32m 0 esp8266-20161110-v1.8.6.bin
esptool.py v1.2.1
Connecting...
Running Cesanta flasher stub...
Flash params set to 0x0040
Writing 569344 @ 0x0... 569344 (100 %)
Wrote 569344 bytes at 0x0 in 14.2 seconds (321.7 kbit/s)...
Leaving...
シリアルモニタを開いて確認する。
$ sudo screen /dev/ttyUSB0 115200
ESP8266を再起動し次のようなメッセージが表示されたら成功です。
could not open file 'main.py' for reading
MicroPython v1.8.6-7-gefd0927 on 2016-11-10; ESP module with ESP8266
Type "help()" for more information.
>>>
Lチカしてみる
ESP8266の14番ピンにLEDをつなげる
Ctrl-E でペーストモードに入れる。Ctrl-Dで終了。
Ctrl-Cでキャンセル。
import machine
import time
pin=machine.Pin(14, machine.Pin.OUT)
while True:
pin.high()
time.sleep(1)
pin.low()
time.sleep(1)
Lチカしたら成功です!。
公式ドキュメントには、socket、GPIO、PWM、ADC等のチュートリアルが乗っているのでとても参考になリます。
またMicroPython用のライブラリは専用のライブラリがあります。