ESP32(ESP-WROOM32)のTips

開発環境は2通りある

Arduino IDE

Arduinoの開発環境にボードデータを追加することで、ATMEL AVRと同じ感覚で開発が可能。
現在主流と思われる開発環境で、Arduino Uno等の経験がある人はこれで良いでしょう。

EPS-IDF

こちらが公式な開発環境。
昔ながらのLinuxを知っている人なら入りやすい。
>make config, make all と、コマンドライン操作でビルドする。

使うと填まるIOポート(実質的に使用禁止)

外部割り込み

ESP32はIO-0からIO-15が外部割り込みのピンに使用できるという情報があるが、実際に実験してみるとこの制限によらないみたいだ。
ほぼすべてのデジタルピンが割り込みに使えるように見える。
公式に使用できるIOピンは不明。

割り込みピンの初期化

attachInterrupt(割り込み番号, 呼び出す関数, ピン状態)

ピン状態は次の種類がある~

割り込み番号はチップ依存があるので、関数を使って置き換えると良い

attachInterrupt(digitalPinToInterrupt(ENC_A), ENC_READ, CHANGE);
attachInterrupt(digitalPinToInterrupt(ENC_B), ENC_READ, CHANGE);

ENC_AはデジタルピンのIO番号。ここに繋いだスイッチの変化で割り込みを発生させる。
ENC_READは割り込みが入ったときに実行したい関数名。
CHANGEはピンに変化したときに割り込みを発生させる指定。
これはロータリーエンコーダーを読み込むときの例で、ENC_A(A相)またはENC_B(B相)が変化したときに割り込みが発生し、ENC_READ関数を呼ぶ動作を設定している。

プラットホームの種類と特徴

ESP32-DevKitC

スイッチサイエンスや秋月で買えるリファレンスモジュール。
このモジュールは多くのIOピンが使える。

WeMos D1 R32

Arduino Uno互換形状のモジュール。
使用できるIOピンはDevKitから大幅に減っている。
メスのピンヘッダが付いているので開発は楽。

WeMos LOLIN

形状はDevKitに似ていて、Li-ion電池を接続できるコネクタが付いている。
LiPo電池を繋ぐと充電してワイヤレスポータブル機器を簡単に作れそう。
ただし、このモジュールはDevKitと似ているが、充電コネクタを置いた分、使えるIOピンが削除されている。
具体的にはSDカードインタフェースのピンが無い。

買ってはならないモジュール

Amazon等で買える「HiLetgoのESP-32S NodeMCU開発ボード」

https://www.amazon.co.jp/gp/product/B0718T232Z/
現在注文できない状態になっている。(レポートしたからか?)
このモジュールは回路が間違っていて、修正しないとArduino IDEから通常操作では書き込みが出来ない。
書き込みのタイミングでプッシュスイッチを操作してやれば可能。
修正方法は、抵抗1個削除、コンデンサ3個追加(空中配線)が必要。ハードウエアの非常に細かい作業。

開発の作例ページ


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS