LolinD32(ESP32)でMicroPythonを使えるようにしてみた話 | 技プログ
Youtubeでも活動中

チャンネル登録してくれたら喜びます。

このボタンで簡単にチャンネル登録!
PR
ご注意

本ブログには、アフィリエイトを用いた広告が掲載された記事が含まれる場合があります。

ご注意

本ブログには、アフィリエイトを用いた広告が掲載された記事が含まれる場合があります。

LolinD32(ESP32)でMicroPythonを使えるようにしてみた話

esp32-micropython-lolind32-eyecatch

今回は、ネット通販でも簡単に購入可能な
お安いESP32搭載のマイコンボード
LolinD32についての記事です。

今まで、本ブログでも時々出てきていたESP32は
基本このLolinD32です。

ESP32搭載だと、
基本的にArduinoと同じように、
ArduinoIDEの開発環境でコードの書き込みが可能です。

ただ、ESP32って、
別にArduino言語でしか動かせないわけではないんです。

イメージとしては、RaspberryPi Picoみたいなイメージです。

RaspberryPiPicoは公式の推奨がMicroPythonですが、
ArduinoIDEで、Arduino言語でコードを書くことができます。

それと逆?というイメージですね。
※誰もESP32の公式推奨言語がArduino言語とは言っていない笑

使えるようにするにはちょっと手順があるので
詳しく解説していきましょう。

この記事を読むことでわかること

自己紹介

サラリーマンしてます。

主に工場(生産現場)で使用する検査装置のアプリケーション開発してます。

ヒトの作業を自動化して簡略化するアプリケーションを日々開発中。

2022年5月に転職。現在は超大手企業の新規事業分野で装置の研究・開発をしています。

Youtubeチャンネルにさまざまな動画を上げています

↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓

注意

本ブログはアフィリエイトを用いた広告を掲載しています。

PR

【おさらい】ESP32とはどんなマイコンなのか

ESP32-lolinD32-connected-battery
LolinD32 ESP32を搭載した安価なマイコンボード。

ESP32というのは、BluetoothとWi-fiの機能
つまり無線通信が可能なマイコンで、
特徴としては、低コストで低消費電力なので、
IoTエンジニアには絶大な人気を誇る。らしい。
ちょっと周りにIoT関係のエンジニアがいないので噂レベルです。

ちなみに、Arduinoでおなじみ、Atmel社が設計しているAVRとかは、
もうすでにいろんなシリーズが出ています。
1996年から順次リリースされているものなので、かれこれ30年近く使われています。

一方、こちらのESP32については、
歴史は浅く、まだまだ実績が足りていない感があります。
2016年に発売されたものなので、10年も経っていません。

作っているメーカーは、中国のEspressif Systemというところです。
この分野は欧米と日本がこれまで強かったですが、
ついに中国企業で出てきた。といった具合。

いままでESP32を使ってどんなことをしてきたか?

さて、本ブログ、ホビーハッピーブログでESP32を取り扱ったことが、
何度かありました。

無線通信できるメリットを生かして、
防湿庫の中にモバイルバッテリーと一緒に入れて、
外部に湿度の測定データを送っていました。
その時の記事↓↓↓↓↓↓↓↓↓↓

ESP32の無線機能が活躍。防湿庫の中から外に配線が出せない状況でも使えた。

無線であることが最大のメリットという認識です。
実はESP32というだけあって、コアサイズは32bitのマイコンということで、
単純比較してしまうとArduinoに載っているマイコンチップよりも高性能なんて話も…
※Arduinoに載っているのはたいていコアサイズ8bitのマイコンチップ。

コアサイズの他にも、Arduino Nano Everyに搭載されている、
ATmega4809というマイコンは、最大動作周波数が20MHzですが、
ESP32に関しては、160または240MHzで動作します。

性能だけ見てしまうと、ARMのCortexなんかと比較するのがいいんでしょうね。
Arduinoが低スペックとかって話はいったん置いておきましょう。

MicroPythonを使うメリットについて。

micropython-logo
MicroPythonはこんなロゴ。

ESP32の強みや特徴について何となくわかってもらえたと思いますが、
ここからはMicroPython。つまり今までのハード側のお話から、ソフト側の話に変わります。

まず、MicroPythonがなんなのかわからない状態だと、
メリットもデメリットもよくわからないので、特徴をご説明しておきます。

MicroPythonの特徴と使う場面

このMicroPython、
名前にPythonと入っていますが、じつはPythonの親戚なんです。

厳密にはPythonと異なるところはあるのですが、
文法などはPythonそっくりで、Python3と高い互換性がウリです。

MicroPythonが登場するタイミングとしては、
ARM系のマイコンを制御するときと、ESP32を制御するときですね。
※MicroPythonが使えるマイコンチップはあらかじめ公開されており、
マイコンチップなら何でも使えるわけではありません。

ARM系と言えば、RaspberryPi Picoも実はよく見ると、
ARM-cortex0シリーズがメインCPUとなっているため、
標準でMicroPythonを使うことをオススメされるというわけです。

MicroPythonは、残念ながらArduinoシリーズはサポート外ですので、
ArduinoばっかりやってきたんだけどそろそろPythonもいじろうかな…

どうせやるならマイコンでGPIOをON/OFFとかしてみたいな…
なんていう場合にはMicroPythonは結構いいかもしれないです。

Arduinoの独自言語はわかりやすいのですが、Pythonに比較的慣れているならば、
Pythonの文法でできたほうが統一感があっていいですよね。

MicroPythonをLolinD32で使えるようにする手順について。

ESP32でMicroPythonが使えるとわかっていただいたところで、
実際に手元にあるESP32搭載のLolinD32にMicroPythonを導入してみましょう。
手順は以下の通りです。

ここで注意点ですが、Pythonがすでに使える環境であることを前提とします。
もしPythonが使えない状況だと、ESPtoolが使えません。
pipができることが条件となります。

  • あらかじめesptoolをダウンロードしておく。
  • LolinD32に合ったMicroPythonの
    インストールファイルをダウンロードしておく。
  • LolinD32をPCとつなげてesptoolを使って中身を消す。
  • MicroPythonをLolinD32に書き込む。

esptoolをダウンロードしておく。

esptoolというものが突然出てきましたが、
こちらは、ESP32用のツールと思ってもらえればOKです。
このツールを使って、ROMの消去や、書き込みを行います。

具体的なダウンロード方法については、pipを使用します。

pythonが使える状況で、

pip install esptool

これだけです。正しくダウンロードできたらこの作業は終了です。

LolinD32に合ったMicroPythonのインストーラをダウンロードする。

続いて、MicroPythonはそれぞれボードの機種によって
インストールするファイルが異なります。

ここでダウンロードできます。

実はLolinD32がラインナップに含まれればよかったのですが、
無いので、ESP32のファイルで代用します。

micropython-esp32
ESP32のページから.binファイルをダウンロードする。

具体的にダウンロードしておくファイルは、
Releasesの中の一番上の.binファイルです。
このファイルを使ってLolinD32にMicroPythonを入れます。

LolinD32に入っている中身をesptoolで消去する。

MicroPythonをインストールするファイルはダウンロード完了しているので、
いまLolinD32に書き込まれているROMデータを消去していきましょう。

この行程では、冒頭で紹介したesptoolを使用します。

pipを利用してesptoolをダウンロードしていると思いますが、
esptoolが使えることを確認したうえでこのようなコマンドを打ちます。

esptool.py --port COM4 erase_flash

COM4となっているのは、わたしのLolinD32がCOM4で認識していたためです。
ご自分のLolinD32がCOM何につながっているかの確認は、
デバイスマネージャーからできます。

間違ったCOM番号でerase_flash(フラッシュ削除)してしまうと大変なので、
面倒でもLolinD32がつながっているCOM番号は必ず確認しましょう。

MicroPythonをLolinD32に書き込む。

最後に、erase_flashしてまっさらな状態になったLolinD32に、
新しくMicroPythonを使えるように.binファイルを入れます。

具体的にはこんな感じ。

esptool.py --port COM4 write_flash -z 0x1000 C:\Users\○○\Downloads\esp32-20220618-v1.19.1.bin     

消去で使用したesptoolは、書き込むときにも使用します。
.binファイルはフルパスを記入しておくのがよさそうです。

今回のまとめ

今回はESP32マイコンを搭載したLolinD32で、
MicroPythonを使えるようにしたお話でした。

解説見ても、「ああ、こんなもんでできるのか。」
と思ってもらえましたよね。

ちなみに、MicroPythonをLolinD32に書き込んだあと、
ArduinoIDEでArduino言語でプログラムを書き込みたいときは、
通常通り、書き込んで大丈夫です。

MicroPythonが入っていようが、
ArduinoIDE側でもう一度Arduino言語で駆動できるように、
自動的に内部の情報を書き換えてくれているようです。

ですから、MicroPythonを入れたあと、
今まで通りArduinoIDEの開発環境で遊びたくなっても、
特段することはなく、いつも通りArduinoIDEを使って
書き込みすればいいだけなんですよね。


 最後まで記事をご覧いただきありがとうございます。
この記事を読んで

  • 『ためになった。』
  • どこよりも解説がわかりやすかった。』
  • 『続きが気になる。』

 と少しでも思っていただけたら幸いです。
最後になりますが、お願いです。

 著者のモチベーションアップに、お布施の協力をお願いします。
いただいたお布施は有効活用し、将来の記事作成に役立たせることをお約束します。

著者にお小遣いを渡す。

コメント

タイトルとURLをコピーしました