ESP8266でMicroPython実行する
概要
ESP8266にMicroPythonをインストールしてLEDを光らせる.
ESP8266,いわゆるArduino系マイコンのLチカは山のようにやってきたが,Pythonで制御する方法であるMicroPythonを使ってやってみた.
通信工学をLED点滅に応用することを考えたとき,MATLABベースでシミュレーションすることが多いが,これをPythonでできるかどうかを検討しているためである.
要は,BPSK変調をマイコンで実現したいときに,MATLABだとマイコンで制御できないし,C言語では情報が少なすぎるので,MATLABに近いPythonでできないかということである.
実行したこと
実行環境
【ホストPC】
- windows10 64bit Home
- uPyCraft V1.1
【ターゲットボード】
- ESP8266 12-E NodeMCU Kit
【センサ類】
- LED
手順
ハードウェア準備
ハードウェアはいつものブレッドボードにESP8266とLEDを接続するだけ.
ソフトウェア準備
【ファームウェア書き込み】
まずは,ESP8266にMicroPython用のファームウェアを書き込む必要がある.
手順は基本的にこちらのサイトを参考にさせていただいた.
https://wak-tech.com/archives/1008
CUIでやろうと頑張ったが,上手く行かないのでGUIで解決した.
まずは,ファームウェアのダウンロードである.
下記サイトから案内されることが多いが,ファームウェアは下図のhereのところであるので注意.
https://micropython.org/download/#esp32
クリックするとたくさんのファームウェアが並ぶページになる.
ESP8266だけでもありすぎてよくわからない.
とりあえず,シンプルな名称で新しいやつにした.
binファイルをダウンロードしたら,ファームウェア書き込み用のGUIを入手する.
https://www.espressif.com/en/support/download/other-tools
Flash Download Toolsをダウンロードして,対象のマイコンを起動する.
今回書き込んだ設定は下記の通り.
STARTを押してからERASEを押すと,下のインジケーターが進む.
【接続確認】
これでMicroPythonが書き込める環境になったようだが,確認するにはシリアル通信をするソフトが必要.
Windowsでは専用のソフトuPyCraftを使うようである.
きちんと設定ができていれば,シリアル通信でマイコンと通信ができる.
【動作確認】
はたしてPythonで制御できるかどうかは下記が詳しい.
https://wak-tech.com/archives/1013
https://maker.pro/esp8266/tutorial/using-micropython-on-an-esp8266-with-upycraft
新規作成したpyhtonプログラムをDownloadAndRunボタンを押せば,実行できる.
プログラム
作成したプログラムはこちら.
Pythonでも確かにLチカできた.
あとがき
ファームウェアの設定にかなり苦心した.最初からGUIで実施すればよかった.
uPyCraftというなぞのソフトしか使えないのか,PlatformIOでいじれないのかを調べてみたが,PlatformIOではMicroPythonにまだ対応していないようだ.
We currently don’t support MicroPython. See feature request
Pythonの勉強がてらとも思ったが,C言語で実装するが早いか,Pythonでするが早いかは正直微妙である.しかし,手を付けられそうなBPSK変調などのノウハウが下記のように公開いただいているので,まずは試してからである.
https://qiita.com/Seiji_Tanaka/items/13703f3c7f8158300df1
C言語での実装はこちらの本が詳しいので,躓いたら購入するしかない.(奇しくもMATLAB版は持っている)