ブツを入手する
banggood から買ってみた。doit社製。ちょっと不安だったけど、安さにつられて(700円くらい)買ってみた。
配送方法に送料無料のを選んだら、受け取るまで2週間くらいかかった。けど、ちゃんと届いた。
USB シリアルドライバをインストールする
手元のボードのチップは SILABS CP2010Z と書かれていたので、https://jp.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers#mac をインストールした。
再起動は不要だった。
Arduino IDE をインストールする
https://www.arduino.cc/en/main/software から Mac OS X 用をダウンロードしてインストールする。
Arduino IDE に ESP32 用の設定をする
https://github.com/espressif/arduino-esp32 を使う。
https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/mac.md の手順でインストールする。
クローン先のパスは正確に合わせないと動かないので注意。 (~/Documents/Arduino/hardware/espressif)
Arduino IDE 再起動後、ツール > ボード に ESP32 があれば OK。
Arduino IDE のメニューで、ツール > ボード を ESP32 Dev Module、ツール > シリアル を /dev/cu.SLAB_USBtoUART に変更する。
シリアル出力
void setup() {
Serial.begin(115200);
while (!Serial);
Serial.printf("Revision: %d\r\n" , ESP.getChipRevision());
}
void loop() {
Serial.write("loop\n");
delay(1000);
}
ツール > シリアルモニタを起動して、ボーレートを 115200 に設定。
USB でつないで実行すると "loop" が流れる。
Lチカ
写真だと分かりにくいけど、GND に抵抗、D2にLEDを接続している。
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(250);
digitalWrite(2, LOW);
delay(250);
}
やってみて気付いたけど、ボードにLEDがのってて、GPIO2につながっているのね。
https://github.com/SmartArduino/ESP/blob/master/SchematicsforESP32.pdf
あと、ボードの幅が広くてブレッドボードの穴が足らず、片側のピンしか使えない。ぐぐって見ていると皆さんサンハヤトのを使っているぽいので、今度買ってこよう 買ってきた。
タクトスイッチ
LED はオンボードの (GPIO2) で代用。
const int ledOnBoard = 2;
const int buttonPin = 4;
void setup() {
pinMode(ledOnBoard, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
int flag = digitalRead(buttonPin);
if (flag == LOW) {
digitalWrite(ledOnBoard, LOW);
} else {
digitalWrite(ledOnBoard, HIGH);
}
delay(10);
}
INPUT_PULLUP
プルダウン抵抗を入れていたけど、pinMode() に INPUT_PULLUP
を指定すると内部の抵抗を使うようになって、部品が減らせる。
const int ledOnBoard = 2;
const int buttonPin = 4;
void setup() {
pinMode(ledOnBoard, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
int flag = digitalRead(buttonPin);
if (flag == HIGH) { // ボタンを離した状態がプルアップになる
Serial.printf("low\r\n");
} else {
digitalWrite(ledOnBoard, HIGH);
}
delay(10);
}