ESP32-PICO-V3-ZERO(2)

ESP32-PICO-V3-ZEROをSeeeduino Xiaoにつなぐことを考えてみます。

ソースコードの確認

SDKのソースを見て見るため、TutorialのSet Up an ACK Development KitのStep3: Set up your Environment に沿って環境構築します。

amazon developer accountの作成や、Python3のインストール、Arduino IDEのインストールは同じですが、Arduino IDEのボードマネージャの設定は異なります。ボードマネージャの設定はSeeeduino Xiaoのページを参考にして、追加のボードマネージャのURLとして

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

を設定して、ボードの設定やプログラミングポートの設定もSeeeduino Xiaoに合わせて設定します。
(Alexa Appのインストールは後でやります)

引き続きStep3.5に従ってACK Device SDKをインストールします。ACK Device SDKのページにアクセスして、ACK Device SDK 4.1をダウンロードします。今の所、SDK 4.1はEspressifのACKのみサポートのようで、SDKでサポートされるインタフェースはこちらのページに表がありました。また、SDK4の完全なドキュメントはダウンロードしたSDKにPDFで添付されているようです。

で、SDK 4.1を実際にダウンロードします。ACKのResourcesページにアクセスして、「Development Kit」「ACK Module with Espressif chipset」を選択すると、ACK Device SDK 4.1が表示されるので、ダウンロードします。ダウンロードサイズは2.3MBくらいでした。ダウンロードしたら、ファイルを展開して、指示通りに setup.py を実行します。

$ cd ~/ダウンロード/ACK_Device_SDK_4.1.202104181201/user/platform/arduino/
$ $ python3 ./setup.py
Installing to directory '/home/ユーザ名/Arduino/libraries'...
Microwave
DashReplenishment
HelloWorld
SmartLight
Success. Restart your Arduino IDE and look in the File->Examples menu for examples starting with "AlexaConnectKit_".
Press [ENTER] to exit...

実行すると、~/Arduino/Librariesの下に『AlexaConnectKit_』で始まるディレクトリが作成されました。なお、ドキュメントは展開されたディレクトリにしかないようなので、必要に応じてどこかにコピーするなどしておいたほうがよいかもしれません。
インストールされた ~/Arduino/libraries/AlexaConnectKit_SmartLight/examples/SmartLight/src の下にある ack_arduino_platform.cpp に初期化コードがあるので、これを見てみると、

// Arduino pins when the Alexa Connect Kit shield is attached to an Arduino Zero.
// Pins 0/1 are used implicitly by Arduino Serial1.
// We use pins 2 and 3 for host interrupt and reset, respectively.
#define ARDUINO_PIN_HOST_INTERRUPT 2
#define ARDUINO_PIN_RESET 3

// Pins for sample applications.
#ifdef ACK_SAMPLE_APPLICATIONS_LED_PIN
#define ARDUINO_PIN_SAMPLE_APPLICATIONS_LED 8
#endif
#ifdef ACK_SAMPLE_APPLICATIONS_GPIO_PIN_1
#define ARDUINO_PIN_SAMPLE_APPLICATIONS_GPIO_1 9
#endif
#ifdef ACK_SAMPLE_APPLICATIONS_GPIO_PIN_2
#define ARDUINO_PIN_SAMPLE_APPLICATIONS_GPIO_2 10
#endif    
#ifdef ACK_SAMPLE_APPLICATIONS_GPIO_PIN_3
#define ARDUINO_PIN_SAMPLE_APPLICATIONS_GPIO_3 11
#endif    

という記述があり、UARTはSerial1(Arduinoでは0、1ピン)を、割込みはArduinoの2ピンを、RESETはArduinoの3ピンを使うことがわかります。また、SmartLightのサンプルではLEDの点灯は8ピンを使うこともわかります。一方で、Seeeduino Xiaoの端子割付けを見ると、

となっていますので、Serial1はD6(TX)、D7(RX)を、割込みはD2を、RESETはD3を使えば、ソースの変更は無しで行けそうですので、そのままビルドしてみます。

特に問題なくビルドは通りました。

ハードウェアの検討

信号の接続は、ESP32-PICO-V3-ZEROの端子を

  • DBG_TXDは別途用意するUSB-UARTのRXへ
  • DBG_RXDも別途用意するUSB-UARTのTXへ
  • U1TXDはSeeeduino XIOのD7へ
  • U1RXDはSeeeduino XIOのD6へ
  • ENはSeeeduino XIOのD3へ。ただし、適当なプルアップが必要。
  • INT_BはSeeeduino XIOのD2へ

ということで行けそうです。電源は、Seeeduino Xiaoの電源回路に

ということで、3.3Vのレギュレータが入っているのですが、XC6206P332は200mAしか出力が取れないことと、おそらく一番小さいパッケージで許容損失が120mWしかないのでESP32を駆動するのは難しく、別途3.3Vを生成してやる必要がありそうです。

実装

0.8mmピッチで底面にパッドがあるモジュールなので、どのように配線するか悩みましたが、今回は実験なのでブレッドボードに実装できるように端子を変換しました。EN以外の端子には1kΩを入れて、端子を(気休めで)保護しておきます。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)