ESP-WROOM-32(DevKitC)で0からLチカまで
先日タイトルのESP-WROOM-32を購入した。
私は今までずっとPICかRaspberryPiを使っていた。これまではその2つのどちらかで十分だった。 ただ、今回「PICよりも高速」かつ「RaspberryPiより低消費電力」なマイコンが欲しくなりESP-WROOM-32を使うことにした。
ESP-WROOM-32の主なスペックを抜粋すると、
- WiFi:802.11 b/g/n
- Bluetooth v4.2
- デュアルコア Tensilica LX6
- クロック:240MHz
- SRAM:520KB
- 電源電圧:2.2V~3.6V
- 消費電流:平均80mA
- 使用温度範囲:-40~85度
他にも色々あるが、とにかくWifiもBTも載っててクロックが240MHzも出せるすごいマイコン、という感じ。 さらに、こいつはArduinoの開発環境が使える。
今回初めてArduinoの開発環境に触ったのだが、あまりにあっという間に何でもできてしまうので拍子抜けしてしまった。
ESP32でLチカなんてこれまで数多の人間がネットに方法を載せているが、ボードのリビジョンや開発環境は日々更新されており、それによって手順も多少異なる(実際に微妙に人によって書いてある手順が異なる)ので、今日段階での手順を載せておく。
というわけで今回、今まで一度もArduinoを触ったことがなかった私がほんの数瞬でLチカできるようになるまでの備忘録。
環境は以下の通り。
ボード:ESP-WROOM-32(DevKitC)
PC:Windows10 64bit
ESP-WROOM-32で0からLチカ
まずは、Arduinoの開発環境(Arduino IDE)をインストールする。 以下の公式サイトから「Windows Installer, for Windows XP and up」をダウンロードしてインストールする。
次にESP32のサポートパッケージをダウンロードする。ESP-WROOM-32はArduinoの公式ボードではないため、追加でボードの情報をIDEに入れる必要があるためだ。
espressifのGithubのStable release linkのURLをコピーする。
Arduino IDEを立ち上げ、ファイル→環境設定→追加のボードマネージャ のURLに貼り付け、OK
次にIDEのツール→ボード:hogehoge→ボードマネージャ を開いて、esp32
で検索する。すると、esp32のパッケージが出てくるので最新バージョンを選んでインストールする。(2020年1月19日時点で最新バージョンは1.0.4)
次に、ツール→ボードからESP32 dev moduleを選択。
ここまで来たらブレッドボードでLチカ用回路を用意する。実はこのESP-WROOM-32のDev-kitC、ブレッドボードに絶妙にうまくはまらない。普通に挿すと片側しかピンが取り出せないし、電源ラインをまたごうとすると0.5ピン分間隔がずれ、これも上手く挿せない。
そこで、ブレッドボードの一部を引っ剥がし、0.5ピン分ずらしてもう一度はっつけた。(以下の画像の赤矢印部分、少し隙間があるのがわかるだろうか) こうすることで両側のピンを使うことができる。
(なお、このE-CALLのブレッドボードはユニットごとにテープではっつけてあるだけなので力をかけて剥がせば外れる。ただし導通用金属片が抜ける場合があるので、慎重に)
あとはソースコードを書いてコンパイル、書き込みをする。 LチカをするならIDEのファイル→スケッチ例→01.Basics→Blink のコードを少し改造して、
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(4, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(4, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for a second digitalWrite(4, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for a second }
で良い。なお、PIN4とはDev-kitCに「4」と書いてあるピンのことだ。あとはマイコンボードに書き込めばOK。ボード上のスイッチ操作は不要である。
はじめてArduino使ってみたけど一瞬でLチカできてワロタ
— 水田かなめ (@kmizta) January 16, 2020
レジスタ設定とかオシレータ設定とかどうなってんの pic.twitter.com/tpFUmGj01N
環境構築からLチカまで、本当に数瞬でできてしまう。PICでレジスタいじいじしていた身からすると、信じられない・・・。
本当に、やりたいことを1行書けばできてしまう世界が目の前にあるようだ。