ESP32 Audinoで使ってみる

これは楽だわ。便利を使わない手はないな。小生組み込み屋だったから意地を見せてIDEネーティブ環境でと思ったけど最初はこれでいい。
マイコンが電子屋以外で活用できると電子系の輩でない人達の感性が反映されていいものできるチャンスは沢山ありかなと期待。久々にmac mini の出番があっていい。だいぶご無沙汰なのでいい機会だ。

int led = 14;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(led, OUTPUT);
  Serial.println("LED Test Start");
}
 
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);
}

ピン配置


●考察
これをやるともうPCのWIFIにESP32というWIFI名がが出てこなくなる。初期のファームでコマンドラインのときには出ていた。そういうことだね。プログラムで指定しない限りはということだ。ライブラリのインクルードが必要だ。

ESP32 ESP-IDFでプログラム作成

環境構築でだいぶ手間取った。まだ不足はあると思うけど。まずはESP-IDFで開発することにしよう。一通り動作させたら micro Pythonもやってみる。気になっていたキットに入っていたファームのバイナリも吸い上げた。まだ再書き込みやってないけど。大丈夫ということで。GitHubにもおいてあるだろし。

ここが参考になった(多謝)

まず、
$>cd hello_world
$>make menuconfig でシリアルポートを設定(tty.SLAB_USBtoUART)しておくとのこと。save しないで抜けるとエラーでる。再度やって確認して save で抜けるとOKだった。

$>make
エラーがでた。pythonの版が云々だ。

Mac-mini:hello_world m_kurosaki$ make
Toolchain path: /Users/m_kurosaki/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gccToolchain version: crosstool-ng-1.22.0-80-g6c4433a
Compiler version: 5.2.0
The following Python requirements are not satisfied:
future>=0.15.2
Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages. Alternatively, you can run “/Users/m_kurosaki/anaconda/bin/python -m pip install –user -r /Users/m_kurosaki/esp/esp-idf/requirements.txt” for resolving the issue.
make: *** [check_python_dependencies] Error 1

ということで素直にanaconda/bin/で以下実行
$>python -m pip install –user -r /Users/m_kurosaki/esp/esp-idf/requirements.txt
successとでたので再度
$>make
buildできたということなので書き込み。
※ここまで長いことかかった(youtubeのフラメンコギターがいい旋律だな)。
BGMないと眠くなってしまうのでアグレシブな曲で!

$>make flash
書き込まれた。make flash でmake と flash 書き込みまでやってくれる。
$>make flash monitor
これだと一気に確認表示まで行ける。CTRL+] 停止できる。

$>screen /dev/tty.SLAB_USBtoUART 115200
で表示させる。これはCTRL+] では止められない。

本日はここまでとしよう。いい終わり方というのも大事だからね。
参考にしたサイトの解説にあったけどプロトタイプはAuduinoで楽しろとある。なるほどな話だな。pythonもやってみる。対話型ってのが安心できいていい。

最初のプログラム

●スケッチ
さて、いよいよスケッチでプログラムを実行させることに。あちこち読んでいくとそれなりの簡易ツールなようだ。例題が使えるなど複雑なことをやらせなければ便利に使えるようだ。
本格的にならメーカー専用の開発ツールを使用とある。さっと見ただけだが、おいらの昔のツール使いという感じだな。まあAuduino自体が専門家でなくてもマイコンが扱えるということに特化してるようでc++のクラスとしての実装だろうか、うまくまとまったライブラリを持っている。スケッチはcだろと思ってたが、c++のご利益かと関心!
以下はスケッチのESP32のサンプルコード。

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Hello World.");
  delay(10000); 
}

※ESP32のファームウェアは、ArduinoIDEで開発をすると上書きされてしまうので、ArduinoIDEで開発を行ったあとにATコマンドモードに戻したくなった場合、別の手順を踏む必要があります。

●MicroPython
このところ会社でちょっとしたプロトタイプをPythonで頑張っている。仕事がらGPIBとかSerial(RS232C)。
ESP32とは違うけどIoTはラズパイも当然視野に入っていて、こちらでもI2Cで冶具をc#でプログラムする前ににプロトタイプ用で使用している。ということでESP32もPython環境にしたい。
スケッチでプログラムはこのままでいいらしいが、Pythonでとなるとファームを書き換える必要があるらしい。スケッチ用というか最初のファームを吸い出して後で戻せるようにするとかあるな・・・。