初めに
みんなさん初めまして。
夏休みに入り暇なので、先日思っていたよりも手こずってしまったMicropyhonの導入をここに記そうと思います。こういうものを書くのは初めてなので温かい目で見ていただければ幸いです💦
動機
最近のマイブームはesp32なのですが、センサなどで取得した値をesp32からパソコンのpythonの方に渡せないかと模索していたところ、参考にさせてもらった記事の大方がmicropythonを使っていたのでその導入に至りました。もともとmicropythonの存在は知らなかったのですが、調べてみるとなかなかに便利そうでどうやらwebサーバの構築も簡単になるらしいのでわくわくしております。
必要なもの
- ターミナル
- マイコン
私はwindowsのターミナル,esp32-wroom-32を使いました。途中までubuntuでやっていたのですが、導入途中のポート設定の部分で躓いてしまったため、途中でwindowsの方のターミナルに切り替えました。このことも後述しております。
Step0
Googleなどの検索エンジンで "Micropython導入方法" と調べるとこちらに導入手順が書いてありますので、私はそちらを参考にさせて頂きました。
Step1
Micropythonの公式サイトから、使用するボードに適したファームウェアをパソコンにダウンロードしましょう。リンクはこちらです。リンクにアクセスすると、ボードの種類を選ぶ画面が出てくるので頑張って自分の使うボードを探しましょう。私の場合はESP32/WROOM (Espressif)を選びました。このアイコンをクリックし、ページをスクロールしていくと Firmwareと書かれた見出しの下にダウンロードリンク(画像の黄色マーカ)があるのでそれをクリックしファームウェアをダウンロードしましょう。Step1はこれで完了です。
Step2
ファームウェアをパソコンにダウンロードした後はターミナル上でコマンドを使って使用するマイコンにそのファームウェアを導入するだけなのですが、ここから先の手順で手こずってしまいました。次はこちらにある通り、マイコンにファームウェアを導入するためのツールであるesptool.pyをインストールするために下のようなコマンドを打ちます。
pip install esptool
このコマンドを実行する前にpythonがインストールされている必要があります
pythonがインストールされていれば、ubuntu/windowsどちらのターミナルでも実行できます
esptool.pyをインストールした後、そのインストールを確認するためには次のようなコマンドを打ちます。
esptool --version
こちらも同様、ubuntu/windowsどちらのターミナルでも実行できます
その後次のようなメッセージが出ていなければ、esptoolのダウンロードに成功しています。
"esptool.pyは、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはパッチファイルとして認識されていません"
参考にしていたこちらやChat GPTでは、esptoolを使うときは
esptool.py --version
のように書きましょうと書いているのですが、何度そのコマンドを打っても自分のターミナル上では "esptool.pyは、操作可能なプログラムとして....." と出てきてしまい、ダウンロードはできているのにツールは使えない状態でした。esptoolやpythonのアップデートが関係しているのでしょうか?原因はともかくお使いのターミナルに合わせて esptool と esptool.py を使い分ければ良いと思います。
このesptool.pyが使えない問題を解決するのに結構な時間がかかりましたがここからはトントン拍子でことが進んでいったので、気分爽快というやつです😊
step3
esptoolのダウンロードが終わたら、お使いのパソコンとマイコンを接続しましょう。接続後、お使いのパソコンでデバイスマネジャーを起動させて接続したマイコンのポートがCOM何か調べましょう。私の場合はCOM9でした。そして、esp32にファームウェアを導入する前準備として次のコマンドでフラッシュ全体を消去します。 COM9 の部分は自分で調べたCOMに合わせましょう。
esptool --chip esp32 --port COM9 erase_flash
Linux系のパソコンや仮想環境でUbuntuを使っている場合、ポートはCOMでなく/dev/ttyUSBと書かなければエラーが出てしまいます。自分は何とかCOM9に対応する/dev/ttyUSBを探そうとしましたが無理だったのであきらめてwindowsターミナルでCOMと書きました。
--chipの後に続く "esp32" という部分はお使いのボードに合わせ、変更してください。例えば、esp32s3など。ボードの種類が違った場合は、あなたのボード多分これじゃない?みたいなメッセージが出てくると思います。
フラッシュを消去した後、最後の手順として次のコマンドの青色の部分を書き換えて実行すればesp32にファームウェアを導入することが出来ます。
esptool --chip esp32 --port COM`ポート` write_flash -z 0 `ファイル名`
注意点
- ダウンロードしたファームウェアのファイルをターミナルのカーレントディレクトリと同じ場所に移動させましょう
- 引数-zの後の数字は、こちらにある通りの0x1000ですると、後にthonnyなどでReplを使う場合に、エラーが発生してしまうので0にしましょう
コマンドを実行した後、
`esptool write_flash:error:argument......`
ではなく
`Leaving...
Hard resetting via RTS pin...`
というようなメッセージが表示されれば導入は成功です。これで晴れてMicropythonを使うことが出来きます。
終わりに
ここまで読んでいただきありがとうございました。自分はこの導入に丸半日近く費やしてしまいました😇
皆さんはどうだったでしょうか??もしわからないことがあればぜひ質問してくださいね。
さて無事Micropythonの導入が終わったということで、次はマイコンにpythonのファイルを書き込むために必要なThonnyの導入を解説しようと思います。