ESP32搭載のArduino型基板、Wemos D1R32をいじって
みることに。
まず、Arduino-IDEに環境を導入。今のバージョンは、
ちょびっとだけ古い1.8.4を使用中。(最新は1.8.5
だけど、まぁ、あまり気にせず進める)
https://www.mgo-tec.com/arduino-core-esp32-install
ここを参考にして、githubからzipファイルをダウン
ロード・解凍して、書いてあるとおりに、ディレクトリ
作って格納。get.exeを実行。
さいしょ、なんかPCの調子というか、Firefoxの調子が
わるかったらしく、get.exeがちゃんと処理を完了できて
なかったみたいで、コンパイルすると変なエラーが
でちゃう。
なので、一旦ディレクトリごと削除してから、もう一度
最初からやり直し。こんどはちゃんと設定できたみたい。
やっぱり最初はLチカからやってみる。なんといっても、
このボード、どこに何が繋がっているのかがよく判ら
ないので、Lチカすら、何番目を指定すればいいのかが
判ってない状態。
PCにUSBケーブルで繋ぐと、電源の赤LEDが点灯して、
青色LEDが1秒ごとに点滅。ちなみに、USBシリアル
変換チップはCH340。このチップは以前使っている
ので、ドライバが勝手に認識されているけど、もしか
したら、環境によってはドライバのインストールが
必要かも。
で、サンプルスケッチのblink(Lチカ)を開いて、
コンパイル。
…エラーになる。どうやら、「LED_BUILTIN」っていう
タグが内部で定義されていないからみたい。普通は
組み込みLEDといえばD13なんだけど、さっきのget.exe
で組み込まれるゴニョゴニョには定義が含まれていない
みたいだな。
#define LED_BUILTIN 13
として、13番に定義してやると、コンパイルは通って、
Wemos D1R32に書き込みが行われた。とりあえず、
自動リセット機能は旨く働いているみたいだな。
よしよし。
で、LEDはというと…光らない。どうやら、13番には
繋がって無いみたい。
どこかにLEDが配線されていることは間違いないので、
あてずっぽうで色々試してみる作戦。0番と1番は
シリアル端子だろうから、2番から指定していって、
コンパイル~書き込みをして、オシロで当たって
確認してみようかと。
で、2番。いきなりビンゴだった。LEDが点滅してる。
オシロで当たってみると、どうやらArduino Unoだと
アナログ0番にあたる端子。
えーーーーーーー???なんでこんなところにLEDを
繋いじゃうの????出力インピーダンスが大きい
センサーとか繋いじゃうと、入力値狂いまくるじゃん
よう。
でもまぁ、シルクと見合わせてみて、なんとなく
推論はできた。シルクに書かれている「IO2」とか
「IO14」って番号を指定すれば、出力できるみたい。
これが、「2番」を指定してLチカしているときの様子。
シルクのIO2番(アナログ0番の位置)にオシロの
プローブを繋ぐと、
波形が出てくる。こんな具合。
それにしても、シルクが少しつぶれていて、読みにくい
んだよな。5だか8だか判らないところとかいっぱい。
あと、I2CとかSPIとかPWMとか、どうやったら判るの?
なんてあたりもいまいち。
それにしても、Lチカが出来ちゃうと、あとは色々と
弄り回すことができる。やっぱ、Lチカ大事。
タイマ割り込みが気になっていたので、サンプルスケッチ
としてEPS32用にインストールされている、
スケッチ例→ESP32→Timer→RepeatTimer
を開いて、そのままコンパイル・書き込み。
動いた。タイマー割り込みがこんなにサクッと動くと、
なかなか気持ちが良い。
コンパイル時に、BLE関係のファイルが見つからないとか
いってなにかメッセージが出るんだけど、とりあえず
BLE使って無いので、構わずにおいた。あとでまた
BLE使うときにあらためてなんとかしよう。
そのまえに、Wi-Fi接続でゴニョゴニョしてみよう。
|