概要
arudinoIDEを使ってESP32のプログラミングをするときには、arudinoIDEが自動でESP32への書き込みを行います。
複数のESP32への書き込みでは、arudinoIDEを使わず、実行ファイル(binファイル)だけで書き込みをしたいです。
このための方法が
こちらのwebで紹介されています。
http://k-hiura.cocolog-nifty.com/blog/2019/06/post-17ebf9.html
ここで紹介されているbatファイルから、batファイルへのCOMNoの設定、binファイル名の設定をしなくて済むように書き換えました。
書き換え内容は
- COMNoはbatファイル実行中に直接入力する方式にする
- binファイル名はbatファイルが置かれているフォルダにコピーしたbinファイルを自動で取得する方式にする。
です。
書き換えしたbatファイルの内容
set /P COMNo="COM No Input = "
Echo.
for %%A in (*.bin) do (
Echo wirte file = %%A
Echo.
.\esptool.exe --port COM%COMNo% --baud 921600 ^
--chip esp32 --before default_reset --after hard_reset ^
write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect ^
0x10000 ./%%A)
pause
書き込み環境の準備
こちらにあるサンプルフォルダをダウンロードしてください。
https://drive.google.com/drive/folders/1EzbIrtbbzSeT9MBrrouXGA4fGCKtVhR2?usp=sharing
このサンプルフォルダには、ESP32の23Pinに対してHi/Lo出力するプログラム(blinkTest.ino.esp32_500ms.bin)が入っています。ESP32の23PinにLEDを接続しておくとLEDが点滅します。
書き込むbinファイルはESP32Write.bat が置いてあるフォルダにコピーしてください。
(binファイルは必ず1つだけにしてください。複数あるとどれを書き込めばよいかわかりません)
フォルダにあるファイル一覧
- ESP32Write.bat (このファイル) : このバッチファイルを実行するとESP32にプログラムを書き込む
- esptool.exe : 書き込みプログラム本体 arduino IDEからコピーしてきたもの (C:\Users\USERNAME\Documents\ArduinoData\packages\esp32\tools\esptool_py\2.6.1 にあった)
- *.bin : EPS32に書き込むプログラムファイル arudiono IDEで作成したものをコピーしておく (arduino IDEで "スケッチ - コンパイルしたバイナリを出力" でファイル出力できる)
書き込み手順
- ESP32をUSBでパソコンに接続する
- USB Serialとして認識されるのでそのCOMNoを調べる
- コントロールパネル - デバイスマネージャー - ポート(COMとLPT) にCOMNoが出てくる
- ESP32Write.batをダブルクリックして起動する
- "COM No Input=" と表示が出るので、COMNoの数字部分を入力してenterを押す( "COM12"なら"12"を入力)
- 書き込み処理が開始され、終わると
- "続行するには何かキーを押してください・・・”と表示されるので何か入力すると窓が閉じる
- 書き込みが完了するとESP32に書き込んだプログラムが自動で実行される
"sample_bin"フォルダには1s周期で点滅する"blinkTest.ino.esp32_1s.bin"があります。binファイルを差し替えれば、点滅周期が変わり、binファイルの書き換えができることが確認できます。
補足
arduinoIDEが作成するbinファイルの取得方法
コンパイルするときに, ”スケッチ - コンパイルしたバイナリを出力” を選択する。
生成されるbinファイルは、”・・・ドキュメント\Arduino・・・”以下のフォルダにある。
参考資料
esp32 arduino バイナリ配布
このWEBのBATファイルを元にCOMポートの入力と、binファイルの自動取り込みを追加した
http://k-hiura.cocolog-nifty.com/blog/2019/06/post-17ebf9.html
以下はコマンドプロンプトの使い方の参考web
batfileの起動方法
exploerの窓のアドレスが表示されている横長の窓で、アドレスを消して"cmd"と打つとコマンドプロンプトが起動する
https://www.adminweb.jp/command/ini/index1.html#section5
batファイル実行中にdataを入力する
http://park1.wakwak.com/~ima/windows_tips0004.html
set /P INPUTDATA="data input="
とすると%INPUTDATA%に入力した文字列が入る
batファイルに引数を持たせる
https://www.adminweb.jp/command/bat/index6.html
batファイルの中でファイル名を取得する (検索文字列: "環境変数 ファイル名取得")
for %%変数名 in (検索対象ファイル名) do echo %%変数名
http://www.yamatyuu.net/computer/program/bat/for_files.html
dosコマンド一覧
https://www.pg-fl.jp/program/dos/doscmd/