Hello world
ESP32系のマイコンであるXIAO ESP-S3を触ってみました。
ネット上で見ていた印象よりかなり小さいです。
自作互換Arduinoより一回り大きいぐらいです。
これでWi-FiやBluetoothが使えるなんてやばいですね。
VS Codeの設定
ESP32系はArduino IDEですとコンパイルに時間がかかるので、VS CodeのPlatform IOを使います。
今回購入したのはXIAO-ESP32-S3
なので、以下のような設定になります。
また、platformio.ini
は以下のようになります。
# platformio.ini [env:seeed_xiao_esp32s3] platform = espressif32 board = seeed_xiao_esp32s3 framework = arduino monitor_speed= 9600
GPIOの使い方
まず、GPIOはA0やD0ではなくGPIO番号を使うようです。
たとえば、以下のようにするとGPIO7でADCを使えます。
ADCは3.3Vの12bit(0~4095)のようです。
Serial.println(analogRead(7));
同様にGPIO1~GPIO9まで、普通にArduino言語が使えます。
analogWrite(1,128); digitalWrite(1,HIGH);
ざっと見た感じGPIO1~GPIO9でanalogRead()
analogWrite()
digitalWrite()
が使えそうです。
GPIO43やGPIO44も使えそうな気がしますが、上記のような書き方では使えませんでした。
Arduino言語では使えないのかもしれません。(直接ESP32のピンを操作するとかが必要なのかも…)
Bluetoothを使ってみる
ESP32でのサンプルコードがあったので、これを使ってみます。
zenn.dev
クライアント側は参考記事にあるAndroidアプリを使います。
アプリのメニューからアップロードを示す「上向き↑」を探します。
このメニューを開いて、Valueをセットします。
ここでは0x01でLEDがON、0x00でLEDがOFFとなります。
ESP32搭載のマイコンXIAO ESP-SでBluetooth通信できた! pic.twitter.com/f7OmvKW3Hj
— とりてん (@s51517765) 2025年2月16日
これで、Andoroidとの通信ができました。
今後WindowsからC#でBluetoothが使えるか、などやっていきたいと思います。
パニックで書き込めない時がある
まれによく書き込みが失敗することがあります。
下図のようになってアップロードでエラーになるのですが、シリアル自体はつながっているような状態です。
このようなときは、以下のようにすると書き込みができ復帰します。
①BOOTボタンを押しながら、USBを接続。
②そのままBOOTボタンを押したまま書き込みボタンを押下。
Writeing...みたいな感じで書き込みが始まったらボタンを離してOK。
qiita.com
まとめ
ESP XIAOを使ってみました。
思っていたより小さいので、省スペースで組み込みたいときにも活躍しそうです。
また、Wi-FiやBluetoothを使うことで便利に使うことができそうです。
ちなみに、↓のようなアルカリ電池を5Vに昇圧して起動できるか?というのも試してみたのですが、ぎり起動するけどBluetoothなどは消費電力が多いため厳しそうでした。
これはESPやラズピコにはできない芸当… pic.twitter.com/ipIWSPuCbU
— いわんご (@iwango_system) 2025年2月1日