プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

Hello XIAO ESP-S3

Hello world

ESP32系のマイコンであるXIAO ESP-S3を触ってみました。
ネット上で見ていた印象よりかなり小さいです。
自作互換Arduinoより一回り大きいぐらいです。
これでWi-FiBluetoothが使えるなんてやばいですね。

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の使い方


wiki.seeedstudio.com

まず、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となります。


これで、Andoroidとの通信ができました。
今後WindowsからC#Bluetoothが使えるか、などやっていきたいと思います。

パニックで書き込めない時がある

まれによく書き込みが失敗することがあります。
下図のようになってアップロードでエラーになるのですが、シリアル自体はつながっているような状態です。

このようなときは、以下のようにすると書き込みができ復帰します。
①BOOTボタンを押しながら、USBを接続。
②そのままBOOTボタンを押したまま書き込みボタンを押下。
 Writeing...みたいな感じで書き込みが始まったらボタンを離してOK。
qiita.com

まとめ

ESP XIAOを使ってみました。
思っていたより小さいので、省スペースで組み込みたいときにも活躍しそうです。
また、Wi-FiBluetoothを使うことで便利に使うことができそうです。

ちなみに、↓のようなアルカリ電池を5Vに昇圧して起動できるか?というのも試してみたのですが、ぎり起動するけどBluetoothなどは消費電力が多いため厳しそうでした。