キイロイトリらぼ

ぬいぐるみと一緒に生きていきます

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

f:id:gijin94yobu:20200525183944p:plain

クリックするとたくさんのファームウェアが並ぶページになる.

ESP8266だけでもありすぎてよくわからない.

とりあえず,シンプルな名称で新しいやつにした.

f:id:gijin94yobu:20200525184148p:plain

binファイルをダウンロードしたら,ファームウェア書き込み用のGUIを入手する.

https://www.espressif.com/en/support/download/other-tools

Flash Download Toolsをダウンロードして,対象のマイコンを起動する.

今回書き込んだ設定は下記の通り.

STARTを押してからERASEを押すと,下のインジケーターが進む.

f:id:gijin94yobu:20200525184326p:plain

【接続確認】

これでMicroPythonが書き込める環境になったようだが,確認するにはシリアル通信をするソフトが必要.

Windowsでは専用のソフトuPyCraftを使うようである.

きちんと設定ができていれば,シリアル通信でマイコンと通信ができる.

f:id:gijin94yobu:20200525184820p:plain

【動作確認】

はたしてPythonで制御できるかどうかは下記が詳しい.

https://wak-tech.com/archives/1013

https://maker.pro/esp8266/tutorial/using-micropython-on-an-esp8266-with-upycraft

新規作成したpyhtonプログラムをDownloadAndRunボタンを押せば,実行できる.

プログラム

作成したプログラムはこちら.

Pythonでも確かにLチカできた.

f:id:gijin94yobu:20200525184935p:plain

 あとがき

ファームウェアの設定にかなり苦心した.最初からGUIで実施すればよかった.

uPyCraftというなぞのソフトしか使えないのか,PlatformIOでいじれないのかを調べてみたが,PlatformIOではMicroPythonにまだ対応していないようだ.

We currently don’t support MicroPython. See feature request

https://community.platformio.org/t/can-i-use-platformio-to-upload-micropython-code-to-esp32-boards/6648

Pythonの勉強がてらとも思ったが,C言語で実装するが早いか,Pythonでするが早いかは正直微妙である.しかし,手を付けられそうなBPSK変調などのノウハウが下記のように公開いただいているので,まずは試してからである.

https://qiita.com/Seiji_Tanaka/items/13703f3c7f8158300df1

C言語での実装はこちらの本が詳しいので,躓いたら購入するしかない.(奇しくもMATLAB版は持っている)

C言語によるディジタル無線通信技術

C言語によるディジタル無線通信技術

 

参考

   https://qiita.com/Seiji_Tanaka/items/13703f3c7f8158300df1