
Bf-035
botanicfields/PCB-Grove-AquesTalk-pico-LSI
AquesTalk pico LSI into the Grove of M5

AquesTalk pico LSI into the Grove of M5
Bf-036 is an open-source printed circuit board by botanicfields, from the botanicfields/PCB-Grove-AquesTalk-pico-LSI repository on GitHub, published under the CC0-1.0 licence. It is a 2-layer board of 97.8 × 45.7 mm with 90 parts on 21 nets, routed with 260 tracks and 0 vias.
Its parts include 64 diodes, 16 switches, 4 capacitors and 1 connector. It belongs with the interfaces and adapters boards of this library.
AquesTalk pico LSI into the Grove of M5
「AquesTalk pico LSI用Grove(M5)接続基板」は、市販の音声合成専用LSI「AquesTalk pico LSI」(別売)をGroveコネクタでM5シリーズに接続するための基板です。
AquesTalk pico LSIの詳細は、データシートを参照ください。
2022年10月から基板V03を提供しています。ピンソケットJ7を追加しました。
(スイッチサイエンス扱い)AquesTalk pico LSI用Grove(M5)接続基板
AquesTalk piso LSI(28ピンDIPタイプ)1個をICソケットに装着します。ATP3011用とATP3012用のソケットがあります。どちらか一方のみを装着してください。
AquestTalk pico LSIの取り付け: 左 ATP3011, 右 ATP3012
DIP: Dual In-line Package
I2C: Inte-Integrated Circuit
UART: Universal Asynchronous Receiver Transmitter
SPI: Serial Peripheral Interface
※ AquesTalk pico LSIは付属しません。
※ スピーカー、スピーカーケーブルは付属しません。
※ ケースや足などは付属しません。
写真: 内容物、基板裏面
SCL, SDAの表記のあるGroveコネクタJ5に接続します。基板上にプルアップ抵抗はありません。M5シリーズ側でのプルアップを使用します。
I2Cとして、SCL=GPIO32, SDA=GPIO26を指定します。サンプルプログラムではWire1を選択します。
I2Cとして、デフォルトのWire(SCL=GPIO21, SDA=GPIO25)を使用できます。
※(スイッチサイエンス扱い)M5Atom用GROVEコネクタ基板
I2Cとして、デフォルトのWire(SCL=GPIO22, SDA=GPIO21)を使用できます。
TX, RXの表記のあるGroveコネクタJ4に接続します。基板上のTXがM5シリーズのRXに、基板上のRXがM5シリーズのTXに接続されます。
M5Atom側は、RX=GPIO32, TX=GPIO26を指定します。
接続には、「GROVE - 4ピン - ジャンパオスケーブル※(別売)」相当のケーブルが必要です。M5Stack側は、RX=GPIO16, TX=GPIO17, +5V, GND を接続します。
※(スイッチサイエンス扱い)GROVE - 4ピン - ジャンパオスケーブル
SS, +5V, GNDは、ピンソケットJ3に接続します。SCK, MOSI, MISOは、J1(ICSP)に接続します。ICSPのピンヘッダは実装していません。ピンヘッダを別途手配いただき、基板へハンダ付けしてください。接続にはジャンパワイヤー等が必要です。
接続にはジャンパワイヤー等が必要です。SCK=GPIO18, MISO=GPIO19, MOSI=GPIO23, SS=GPIO5, +5V, GND を接続します。
J2に「ダイオードマトリクススイッチ16基板※」を接続し、ボタン操作で15種類の音声を再生できます。以下の写真でM5Stackは、電源として使用しています。
※(スイッチサイエンス扱い)ダイオードマトリクススイッチ16基板
AquesTalk pico LSIのSLEEPピンをGPIOに接続できます。SLEEP=LowでAquesTalk pico LSIがスリープ状態になります。ATP3011のUART接続において9600bpsより速い速度が必要な場合、「セーフモード」ではなく「コマンド入力モード」が必要であり、速度設定のためにSLEEPの接続が必要です。
AquesTalk pico LSIのPLAYピンをGPIOに接続できます。AquesTalk pico LSIが音声再生中の間、PLAY=Lowとなります。
スピーカーを接続します。2本のいずれもGNDではありません。
音量調節ボリュームに入る時点のアナログ音声をジャンパワイヤー等に取り出すことができます。ATP3011、ATP3012でピンが異なります。
ATP3011の例
ATP3012の例
動作モードおよび使用するインタフェース(通信モード)に合わせて、基板上のDIPスイッチを設定します。おすすめはI2C接続です。DIPスイッチの設定はリセット時に反映されます。DIPスイッチの設定を変更後、基板上のリセットボタンを押す必要があります。出荷時の設定は、セーフモード・I2C接続・パワーアンプが常に動作状態(OFF,ON,OFF,ON,ON)です。
| 1 | 2 | 3 | 4 | 5 | 動作モード | 通信モード | 備考 |
|---|---|---|---|---|---|---|---|
| OFF | OFF | OFF | ON | - | コマンド入力モード | I2C | I2CアドレスはEEPROMに設定した値(初期値0x2E) |
| OFF | ON | OFF | ON | - | セーフモード | I2C | I2Cアドレスは強制的に0x2E |
| OFF | OFF | OFF | OFF | - | コマンド入力モード | UART | 設定されたスピードで動作 (*1) |
| OFF | ON | OFF | OFF | - | セーフモード | UART | 強制的に9600bpsで動作 |
| OFF | - | ON | OFF | - | - | SPI mode 3 | - |
| OFF | - | ON | ON | - | - | SPI mode 0 | サンプルプログラムはSPI mode 0で動作 |
| ON | OFF | - | - | - | スタンドアロンモード | - | PC0-3の信号入力によりプリセットメッセージを選択して再生 |
| ON | ON | - | - | - | デモモード | - | プリセットメッセージを順番に自動再生 |
| - | - | - | - | ON | - | - | パワーアンプが常に動作状態 |
| - | - | - | - | OFF | - | - | 音声再生中以外は、パワーアンプをシャットダウンする(*2) |
※ 1, 2, 3, 4, 5は、DIPスイッチの番号です。DIPスイッチはONでGND接続のため、ON=0, OFF=1です。
(*1) ATP3011の場合、SLEEP解除後の'?'送信で自動設定します。ATP3012の場合EEPROMに設定します。
(*2) 音声再生の前後にノイズが発生します。
AquesTalk pico LSIをM5StackまたはM5Atomに接続し、I2C(Wire), UART(Serial), SPIで動作させるプログラムです。デモの内容は同じです。Arduino-IDE環境で使用します。基板の接続や設定を予め使用するインタフェースに合わせておく必要があります。
AqeusTalk pico LSIをI2Cで動作させるサンプルプログラムです。#defineでM5Stack, M5Atomのいずれかを選択します。
AqeusTalk pico LSIをUARTで動作させるサンプルプログラムです。#defineでM5Stack, M5Atomのいずれかを選択します。
AqeusTalk pico LSIを SPIで動作させるサンプルプログラムです。M5Stack専用です。
ボタンを押すと、ソースコードのpreset_msgを発声します。初期値はpreset_msg[0]です。
| M5 | ボタン | 停止中 | 発声中 |
|---|---|---|---|
| M5Stack | A | 1つ前のpreset_msgを発声 | 発声を中断して1つ前のpreset_msgを発声 |
| M5Stack | B | 現在のpreset_msgを発声 | 発声を中断して停止 |
| M5Stack | C | 1つ後のpreset_msgから連続して発声 | 発声を中断して1つ後のpreset_msgから連続して発生 |
| M5Atom | Btn | 現在のpreset_msgから連続して発声 | 発声を中断して停止 |
SLEEPピンをHighにする(デフォルト: 実行しない)
AquesTalk pico LSIのSLEEPピンとが接続したGPIO5をHIGHにしてSLEEPでない状態にします。
UARTスピードを設定(ATP3011が対象。UARTのみ。デフォルト: 実行しない)
AquesTalk pico LSI (ATP3011) のUARTスピードを設定します。GPIO5がAquesTalk pico LSIのSLEEPピンと接続している必要があります。
UARTスピードを書き換え(ATP3012が対象。UARTのみ。デフォルト: 実行しない)
AquesTalk pico LSI (ATP3012) のUARTスピードを書き換えます。
I2Cアドレスを書き換え(I2Cのみ。デフォルト: 実行しない)
AquesTalk pico LSIのI2Cアドレスを書き換えます。
プリセットメッセージを書き込む(デフォルト: 実行しない)
AquesTalk pico LSIにプリセットメッセージとして、ソースコード内のpreset_msgデータを書き込みます。時間がかかります。
EEPROMデータをダンプ(デフォルト: 実行しない)
AquesTalk pico LSIのEEPROMデータをシリアルモニタに表示します。時間がかかります。
AquesTalk pico LSIのバージョンをシリアルモニタに表示
チャイムJを発声
チャイムKを発声
AquesTalk pico LSIを使用するためのライブラリです。
I2C, UART, SPI共通の基本クラスです。接続するインタフェースに依ってI2C(Wire), UART(Serial), SPIのいずれかの派生クラスを使用する必要があります。
AquesTalk pico LSIに文字列msgを送信します。送信の様子をシリアルモニタに出力します。純粋仮想関数として定義し、使用するインタフェースに合わせて派生クラスで実装します。
AquesTalk pico LSIから文字列を受信します。受信完了は、'>'または'*'で判断します。純粋仮想関数として定義し、使用するインタフェースに合わせて派生クラスで実装します。
発声中などAquesTalk pico LSIが処理中の場合trueを応答します。falseの場合発声が終了したと判断できます。純粋仮想関数として定義し、使用するインタフェースに合わせて派生クラスで実装します。I2C, SPIではおのずとポーリングができますが、UARTではSend()による明示的なポーリングが必要です。
AquesTalk pico LSIからの応答をシリアルモニタに出力します。res_length_to_showに2を渡すと、応答が1文字以下の場合にシリアルモニタへの出力を抑止できます。I2C、SPIのポーリングによる応答が正常('>', 1文字)の場合のシリアルモニタへの出力を省略できます。
AquesTalk pico LSIのEEPROM (アドレス0x000-0x3FF) の値をシリアルモニタに出力します。
AquesTalk pico LSIのEEPROMにデータを書き込みます。
AquesTalk pico LSIのEEPROMにプリセットメッセージを書き込みます。書き込みの様子をシリアルモニタに出力します。
発話速度をEEPROMに設定します。50~300を設定できます。デフォルトは100です。
文末ポーズの長さをEEPROMに設定します。256~65535を設定できます。65535を設定すると自動になります。デフォルトは65535です。
AquesTalk pico LSI (ATP3012) のシリアル通信速度を書き換えます。デフォルトは9600です。
AquesTalk pico LSIのI2Cアドレスを書き換えます。デフォルトは0x2Eです。
AquesTalk pico LSIとI2Cでインタフェースする派生クラスです。
AquesTalk pico LSIを接続するI2CとI2Cアドレスを指定します。
AquesTalk pico LSIとUARTでインタフェースする派生クラスです。
AquesTalk pico LSIを接続するUARTを指定します。
AquesTalk pico LSIとSPIでインタフェースする派生クラスです。
AquesTalk pico LSIを接続するSPIとSSとして使用するGPIOを指定します。
| Qty | Value | Footprint | References |
|---|---|---|---|
| 64 | D | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +48 |
| 4 | 10n | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C1, C2, C3, C4 |
| 1 | 0 | Button_Switch_THT:SW_PUSH_6mm | SW1 |
| 1 | 1 | Button_Switch_THT:SW_PUSH_6mm | SW2 |
| 1 | 10 | Button_Switch_THT:SW_PUSH_6mm | SW11 |
| 1 | 11 | Button_Switch_THT:SW_PUSH_6mm | SW12 |
| 1 | 12 | Button_Switch_THT:SW_PUSH_6mm | SW13 |
| 1 | 13 | Button_Switch_THT:SW_PUSH_6mm | SW14 |
| 1 | 14 | Button_Switch_THT:SW_PUSH_6mm | SW15 |
| 1 | 15 | Button_Switch_THT:SW_PUSH_6mm | SW16 |
| 1 | 2 | Button_Switch_THT:SW_PUSH_6mm | SW3 |
| 1 | 3 | Button_Switch_THT:SW_PUSH_6mm | SW4 |
| 1 | 4 | Button_Switch_THT:SW_PUSH_6mm | SW5 |
| 1 | 5 | Button_Switch_THT:SW_PUSH_6mm | SW6 |
| 1 | 6 | Button_Switch_THT:SW_PUSH_6mm | SW7 |
| 1 | 7 | Button_Switch_THT:SW_PUSH_6mm | SW8 |
| 1 | 8 | Button_Switch_THT:SW_PUSH_6mm | SW9 |
| 1 | 9 | Button_Switch_THT:SW_PUSH_6mm | SW10 |
| 1 | CODE | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Horizontal | J1 |
| 1 | LOGO | bf:BF@logo4 | G*** |
The 86 most common of 90 parts.

botanicfields/PCB-Grove-AquesTalk-pico-LSI
AquesTalk pico LSI into the Grove of M5


carrefinho/forager
34-key wireless split keyboard inspired by ZSA Voyager

PantsForBirds/adsbee
Open Source Embedded ADS-B Receiver



siderakb/ergo-snm-keyboard
ErgoSNM is a split ergonomic keyboard integrated with trackball, wireless is in beta

zynthian/zynthian-hw
Zynthian hardware stuff: PCBs, schemes, parts specifications, pin assignment, ...

It measures 97.8 × 45.7 mm and has 2 copper layers, 1.6 mm thick.
90 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the botanicfields/PCB-Grove-AquesTalk-pico-LSI repository on GitHub, at the commit this page was made from: the board is KiCad/V02L01/bf-036.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CC0-1.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).