昨日、以下について書いたばかりですが、さてお次はソフトウェアだな。。。というところでまたつまずきがあったので記録しておきたいと思います。
マイコンはESPr® Developer 32っていうやつを使います。
本を参考にしながらやればハマることは少ないだろうと思っていたのですが。。。出だしからつまずきました。よくあるようです。
とりあえずうまくいった手順を書いておきます。
開発環境(前提).開発パソコンはMac(11.6)です。Macbook Pro 2020です。
ステップ1.Arduino IDEのインストール(←もとから入っていたので実際にはやっていません)
ステップ2.Arduino IDEを起動して[Arduino]-[Preferences]を選択し、追加のボードマネージャのURLの欄に「https://dl.espressif.com/dl/package_esp32_index.json」を記入してOKボタンを押します。
ステップ3.ドライバを入れる必要があるようです。1.4.7のリンクをクリックするとFTDIUSBSerialDextInstaller_1_4_7.zipがダウンロードできるので展開して、FTDIUSBSerialDextInstaller_1_4_7を/Applicationsに移動し、そこで実行します(アイコンをダブクリしても反応しなかったのでターミナルで実行しました)。
ステップ4.USBマイクロのケーブルでMacとESP32を繋げます。ケーブルは充電用ではなく通信用ケーブルです。色々と相性があるようです。うまく認識しなければいくつか試してみる感じですね。あるあるです。うまく接続できると、ターミナルで「ls /dev/cu*」とか実行すると「/dev/cu.Bluetooth-Incoming-Port」の他に「/dev/cu.usbserial-D306E25F」のような感じが表示されるとOKですが、「/dev/cu.Bluetooth-Incoming-Port」だけだと認識されていない状況ってことです。
ステップ5.Arduino IDEで[ツール]-[ボード]-[ESP32 Arduino]-[ESP32 Dev Module]を選択します。
ステップ6.テキトウなコードを入力します。何でもいいです。シリアルモニターにtestという文字列を1秒間隔で出力されるはずです。
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("test");
delay(1000);
}
ステップ7.ここからがよくわからなかったところですが。Arduinoであれば、あとは「マイコンボードに書き込む」ボタンを押せばコンパイルされたコードが転送されるはずですが。。。以下のようなエラーメッセージが表示されるだけで、どうやっても転送が完了しません。
esptool.py v3.0-dev
Serial port /dev/cu.usbserial-D306E25F
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x68)
ESP32の基板の上に2つのボタンがついていると思います。この2つのボタンを使うようです。まずシリアルモニターを開きます。そして、通信速度を115200bpsに、CRおよびLFを選択します。
そして、FLASHボタンを押しながら、BOOTボタンを押します。すると以下のメッセージが表示されます。この状態で「マイコンボードに書き込む」ボタンを押せば転送されるかと思うのですが、されません。。。
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
そこで、2つともボタンから手を離した状態で、再度、FLASHボタンを押し続けまして、この状態で「マイコンボードに書き込む」ボタンを押すとコードの転送が成功するはずです。
成功したかどうかも微妙なんですね。。。どういうことかというと、書き込みが完了するとArduino IDEのコンソールには以下のように何となくうまくいった風のメッセージが表示されるのですが、シリアルモニターには「⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮」と表示されるだけ。
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1796.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
ここで、ESP32のRESTボタンを押せば、やっとマイコン上のコードが動き出すようです。
わかってしまえばどうってことはない話なのですが、以下の本にはそんなこと書いてなかったですしね。。。もし全くの初心者だったら情報を探し回るのは難しいでしょうし。。。うーんっていう感じですね。
とりあえず、開発環境が整いましたとさ。
でわ!