Arduinoの開発環境にボードデータを追加することで、ATMEL AVRと同じ感覚で開発が可能。
現在主流と思われる開発環境で、Arduino Uno等の経験がある人はこれで良いでしょう。
こちらが公式な開発環境。
昔ながらのLinuxを知っている人なら入りやすい。
>make config, make all と、コマンドライン操作でビルドする。
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関数を呼ぶ動作を設定している。
スイッチサイエンスや秋月で買えるリファレンスモジュール。
このモジュールは多くのIOピンが使える。
Arduino Uno互換形状のモジュール。
使用できるIOピンはDevKitから大幅に減っている。
メスのピンヘッダが付いているので開発は楽。
形状はDevKitに似ていて、Li-ion電池を接続できるコネクタが付いている。
LiPo電池を繋ぐと充電してワイヤレスポータブル機器を簡単に作れそう。
ただし、このモジュールはDevKitと似ているが、充電コネクタを置いた分、使えるIOピンが削除されている。
具体的にはSDカードインタフェースのピンが無い。
https://www.amazon.co.jp/gp/product/B0718T232Z/
現在注文できない状態になっている。(レポートしたからか?)
このモジュールは回路が間違っていて、修正しないとArduino IDEから通常操作では書き込みが出来ない。
書き込みのタイミングでプッシュスイッチを操作してやれば可能。
修正方法は、抵抗1個削除、コンデンサ3個追加(空中配線)が必要。ハードウエアの非常に細かい作業。