おはようございます!!
先日、こちら↓の記事を書かせていただきました。
スマートリモコンの学習キットの「sLab-Remo2」ですね!!
【事前準備②編】ということでESP32-DevKitCの概要を学習しました。
事前準備ばかり続きますが、しっかり基礎を固めたいと思います。
コンクリートの香り!!
今回は【事前準備③編】ということで、続きの内容を書かせていただきます!!
目次
スマートリモコン「sLab-Remo2」(エスラボリモ2)【Scratch・Arduino対応】環境センサ・カメラ付《IoT電子工作・AI学習・プログラミング》
こちらです!
今は普通に在庫ありですね~
ちなみに、本キットの心臓部ESP32-DevKitCですが、Amazonさんで1,500円ぐらいで普通に買えますね。
Espressif社純正 ESP-WROOM-32D開発ボード ESP32-DevKitC-32D
壊してしまったら一大事!と思ってましたが・・・昼ごはん1回我慢すれば買えます(泣)
では、スタートします。
sLab-Remo2【事前準備③編】
事前準備が続きますが、今回はスケッチの検証と書込ですね。
内容的には、ツールの説明的な感じとりあえずやってみたいと思います。
スケッチの検証と書込
こちらですね。
スケッチというのは、プログラムの入ったフォルダみたいなイメージですかね?
フォルダの中にいろいろなプログラムが入っていて、それら全体をスケッチと言うみたいです。
その検証と書き込みまでですね。
キットなので、実際のCPUでやってみたいと思います。
スケッチの正常性検証方法
正常性検証って、専門用語的で嫌な感じですね。
どうも、プログラムが正しいかどうかを調べてCPUに書き込める状態にすることのようです。
いきなり
ArduinoIDEにてスケッチの作成が完了したら検証を行います。
こんな感じで説明が始まってますが、まだ「スケッチって何よ?」と言ってる段階なので・・・あっ!Arduino IDEを立ち上げたら何か表示されました。
え~・・・これ何の言語ですかね??(←こんなレベルです(泣))
(たまたまかもしれませんが)sketch_jul02aというスケッチが読み込まれています。
中身はどうみてもコメントだけなので、これなら差し支えなさそうですね。
このスケッチを左上のボタンから検証してみます。
1分以上かかりました。結構かかるものですね。
おそらく、見えている部分以外のプログラムもやっているのかと・・・
あと、コンパイルって表示されてますね。
これは各種プログラミング言語をCPUの理解できる形式のプログラムに変換することなので、「検証=コンパイル」と思っていいと思います。
あと、下に2行ぐらいゴチャゴチャ出てますね。
できあがったプログラムの容量の話みたいなので、また必要な時がくるでしょう・・・
本体への書き込み
次は出来上がったプログラムを書き込む作業ですね。
まずはボードのセッティングですが、前回のように裸で作業していると危なっかしいので、付属のブレッドボード(実験的に配線する為の白い板)を2つ使いました。(4つ付属)
ブレッドボードは穴の下で配線が通っている「向き」がありますので、間違えるとショートしてしまいます。こちらのページが詳しいので心配な方は先に見てくださいね。
(※ ググれば動画もあります)
・・・で、Arduino IDEを再立ち上げてから、Windows PCのデバイスマネージャーも確認しました。
次はリセットですね!!
BOOT(右)を押しながらEN(左)を押して・・・離しました。(ドキドキ)
それから、念のため上に書いたIDEでの検証(コンパイル)もやり直しました。
(※ 実は書き込み時にも最初にコンパイルされるので必要ありませんでした。)
では、書き込みます!!今度は2番目のボタンをポチ!!!
以下、右上の「エラーメッセージをコピーする」でコピーしたものです。
Arduino:1.8.13 (Windows 7), ボード:”ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None”
最大1310720バイトのフラッシュメモリのうち、スケッチが206423バイト(15%)を使っています。
最大327680バイトのRAMのうち、グローバル変数が14556バイト(4%)を使っていて、ローカル変数で313124バイト使うことができます。
esptool.py v2.6
Serial port COM5
Connecting…….._____….._____….._____….._____….._____….._____….._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。
どうも接続できず、書き込めないようです。
書き込めない問題の原因究明
「もしかして繋がっているのは設定上だけで、実際には繋がってないのかも?」
と思って、こちらのページの最後のところに書かれているシリアルモニターで確認してみることにしました。
通常のウィンドウとは別に、シリアルモニターのウインドウが出てきました。
この状態で、再度BOOT(右)を押しながらEN(左)を押し、BOOTを離してからENを離しました。
え?・・・変な文字が出てきました。何度やっても同じです。
どうもボーレート(通信速度の設定)が合ってないように見えます。
ウィンドウの右下を見ると・・・
Upload Speedのところが921600と全く違いますね。
そう思って、シリアルモニターのボーレートを変更しようと思ったのですが、一致するものがありませんでした。
なんとか解決すべくググってみたのですが、残念ながらそれらしきものが見つかりませんでした。
「ESP32 Dev Module」というキーワードが良くないのでしょうか?
出てくるページも微妙に型番が違っていたり、環境が違っていたりで、何を信じていいのかすらわからなくなります。(「初心者あるある」ですね(泣))
これは・・・サポートさんに泣きつくしか(泣)
書き込めない問題が解決!!
丁寧なメールでいろいろ教えていただけました。
まず1つ目はシリアルモニターのボーレートの件。
右下にある設定を115200bpsにすれば良いとのことで、やってみました!!
はい、Bootモードでリセットする度に、このメッセージが出てきます。
ちゃんと文字が出てくるだけでこんなに嬉しいなんて!!(泣)
ちなみに、こちらのページにもその事が書いてありました。
原因がわかってから対策が書かれているのが見つかるって、あるあるですね!!
2つ目は書込がエラーで止まる件ですね。
結局シリアルモニターの文字化けの件とは別だったようです。
こちらは公式のよくある質問に書かれているとのことでした。(こちら)
一部のWindows端末でESP32開発ボードとの書き込みに失敗する事象が発生しております。書き込みに失敗する場合は以下の対応をお願いします。
私のパソコンは該当していたようです。
これもあるあるですね。(泣)
対策としては、ボタンを操作するタイミングを変えるようです。
「BOOT(右)を押しながらEN(左)を押し、すぐに離す。(まだBOOTは押したまま)
ArduinoIDEの書込ボタンを押して、コンパイルがスタート・・・終了して、
『Connecting … 』が表示されたら、その時点でBOOTを離す。
あとは書込終了のメッセージを待つ。 」
(※ 自分がやりうまくいった方法で細かいところを補完しました)
何度かやりましたが、この方法でバッチリでした!!
まとめ
あっさり終わるハズが・・・難しいものですね。
まとめます!!
- スケッチの検証はコンパイルのこと!
厳密には違うかもしれませんが、概ねそれで良いかと・・・
. - 本体の書込のチェックは念入りに!
ハード、ソフト、いろいろチェックしておかないと、1つでもダメだと転けます。
・・・というかコケました(泣)
. - 2つのボタン(BOOT,EN)は間違えずに!
だって小さくて読めませんものね~!体で覚えないと仕方ありません。
. - シリアルモニターは初期設定からボーレートを115,200bpsに変更すること!
これはArduino IDEの環境設定のところに書き加えてほしいです!!
. - どうしても書込エラーになるときは、BOOTボタン押しっぱなしの技を!!
「一部のWindows端末」だけですけどね(泣)
接続できるかどうか?で全てが決まりそうですね。
チェックポイントを書いてみると・・・(ごめんなさいWindowsの場合です)
- Arduino IDEの設定表示で、シリアルポートの番号(COM x)が表示されること!
- Windowsのデバイスドライバで「ポート」のところに「Silicon Labs・・・」とデバイスの情報が表示されること!
- シリアルモニターで「BOOT押し → EN押し → EN離し」した時点で、メッセージが表示されること!
・・・あれ?3つで終わっちゃいました。これぐらいですかね。
次回は・・・ライブラリ?
いろいろ落としてまた設定ですね(泣)
続きの記事はこちら↓です!
以上です!!
何かあったとき「ググると答えが出てくる」・・・なんて昔は言ってましたが、最近はそうでもありません。
何もかも複雑になりすぎて、条件が異なると全く意味が無いページが大量にヒットするからです。
その世界に不慣れな人間が検索するとなおさらですし、その分野に慣れるまでは、検索ワードも決めきれません。
・・・ということで、今回はサポートさんにお世話になりました。(ペコリ)
でも、よくよく見ると公式サイトに書いてあることばかりなんですよね。
一応、目は通しているけど、理解してないし、覚えてもいない・・・いや、重要なことだと認識できてないことが一番の問題なんですね(泣)
(おわり)