LoginSignup
16
21

More than 5 years have passed since last update.

ESP-WROOM-32 を Mac で遊ぶための準備

Last updated at Posted at 2017-09-19

ブツを入手する

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チカ

DSC_0045.JPG

写真だと分かりにくいけど、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-switch.png

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 を指定すると内部の抵抗を使うようになって、部品が減らせる。

input_pullup.png

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);
}

16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21