音声合成LSI ATP3012

atp3012f6.jpg

ピン配置

左側(写真黒矢印上から)右側(写真青矢印上から)
名称説明名称説明
GND1Ground(0V)AOUT音声出力
GND2Ground(0V)MOSISPI通信マスタ→スレーブ
VCC+5VMISOSPI通信スレーブ→マスタ
/RESETリセットSCKSPI通信クロック
RXDシリアルデータ受信SDAI2C通信データ
TXDシリアルデータ送信SCLI2C通信クロック

ジャンパs0, s1, p0, p1は通信方式や動作モードを指定。表の0/1は、3つのピンのうち、中央と右をジャンパでつなぐときに0、それ以外は1とする。写真ではp0, p1にジャンパが付いていて、ともに、状態は1である。

s0s1動作
11シリアル通信
01I2C通信
10SPI通信MODE3
00SPI通信MODE1
 
p0p1動作
11通常モード
01セーフモード
00デモモード

接続

スピーカーには、AOUTとGNDを接続する。アンプつきスピーカーでない場合は、アンプ(下の写真)を通す。

ae7368.jpg

シリアル通信の場合

ピン名称接続
RXDArduinoのTxに接続。下記の例を使うのであれば、11番ピンへ。
TXDArduinoのRxに接続。下記の例を使うのであれば、10番ピンへ。
VCCArduinoの5Vに接続
GND1スピーカーのGND(アンプのGピン)に接続
GND2ArduinoのGNDに接続
AOUTスピーカー(アンプのINピン)に接続

プログラミング

シリアル通信を用いて、PCから入力した文字を音声出力する。 PCとの間の通信もシリアル通信なので、Arduinoと音声合成LSIの間はSoftwareSerialを用いる。 シリアルモニタを起動し、通信速度9600Bps(デフォルト)、行末はCRのみと設定する。ローマ字で入力して「送信」ボタンをクリックすれば、音声が出力される。

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  Serial.begin( 9600 );
  pinMode( 10, INPUT );
  pinMode( 11, OUTPUT );
  mySerial.begin( 9600 );
  mySerial.println( "?" );
}

void loop() {
   if (mySerial.available()) {
     Serial.write(mySerial.read());
   }
   if (Serial.available()) {
     mySerial.write(Serial.read());
   }
}

音声データについては基本は小文字のローマ字入力だが、(日本語の高低)アクセントやポーズを入れることができる。詳しくは、 ATP3012 を見ること。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS