今回は、ネット通販でも簡単に購入可能な
お安いESP32搭載のマイコンボード
LolinD32についての記事です。
今まで、本ブログでも時々出てきていたESP32は
基本このLolinD32です。
ESP32搭載だと、
基本的にArduinoと同じように、
ArduinoIDEの開発環境でコードの書き込みが可能です。
ただ、ESP32って、
別にArduino言語でしか動かせないわけではないんです。
イメージとしては、RaspberryPi Picoみたいなイメージです。
RaspberryPiPicoは公式の推奨がMicroPythonですが、
ArduinoIDEで、Arduino言語でコードを書くことができます。
それと逆?というイメージですね。
※誰もESP32の公式推奨言語がArduino言語とは言っていない笑
使えるようにするにはちょっと手順があるので
詳しく解説していきましょう。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
【おさらい】ESP32とはどんなマイコンなのか
ESP32というのは、BluetoothとWi-fiの機能
つまり無線通信が可能なマイコンで、
特徴としては、低コストで低消費電力なので、
IoTエンジニアには絶大な人気を誇る。らしい。
ちょっと周りにIoT関係のエンジニアがいないので噂レベルです。
ちなみに、Arduinoでおなじみ、Atmel社が設計しているAVRとかは、
もうすでにいろんなシリーズが出ています。
1996年から順次リリースされているものなので、かれこれ30年近く使われています。
一方、こちらのESP32については、
歴史は浅く、まだまだ実績が足りていない感があります。
2016年に発売されたものなので、10年も経っていません。
作っているメーカーは、中国のEspressif Systemというところです。
この分野は欧米と日本がこれまで強かったですが、
ついに中国企業で出てきた。といった具合。
いままでESP32を使ってどんなことをしてきたか?
さて、本ブログ、ホビーハッピーブログでESP32を取り扱ったことが、
何度かありました。
無線通信できるメリットを生かして、
防湿庫の中にモバイルバッテリーと一緒に入れて、
外部に湿度の測定データを送っていました。
その時の記事↓↓↓↓↓↓↓↓↓↓
無線であることが最大のメリットという認識です。
実はESP32というだけあって、コアサイズは32bitのマイコンということで、
単純比較してしまうとArduinoに載っているマイコンチップよりも高性能なんて話も…
※Arduinoに載っているのはたいていコアサイズ8bitのマイコンチップ。
コアサイズの他にも、Arduino Nano Everyに搭載されている、
ATmega4809というマイコンは、最大動作周波数が20MHzですが、
ESP32に関しては、160または240MHzで動作します。
性能だけ見てしまうと、ARMのCortexなんかと比較するのがいいんでしょうね。
Arduinoが低スペックとかって話はいったん置いておきましょう。
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をダウンロードしておく。
esptoolというものが突然出てきましたが、
こちらは、ESP32用のツールと思ってもらえればOKです。
このツールを使って、ROMの消去や、書き込みを行います。
具体的なダウンロード方法については、pipを使用します。
pythonが使える状況で、
pip install esptool
これだけです。正しくダウンロードできたらこの作業は終了です。
LolinD32に合ったMicroPythonのインストーラをダウンロードする。
続いて、MicroPythonはそれぞれボードの機種によって
インストールするファイルが異なります。
ここでダウンロードできます。
実はLolinD32がラインナップに含まれればよかったのですが、
無いので、ESP32のファイルで代用します。
具体的にダウンロードしておくファイルは、
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を使って
書き込みすればいいだけなんですよね。
コメント