#author("2018-05-22T12:07:36+09:00","default:qua","qua") * 音声合成LSI ATP2011 [#vfe6349b] #ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/ATP2011Fx_img.png,262x208) ** ピン配置 [#fe3250c2] #ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/ATP2011.png,around,171x176) 方向に注意すること。切り欠きまたは●が1番ピンの目印。~ 最も簡単なシリアル通信で使うのは次のピン~ |ピン番号|名称|説明| |2|RXD|シリアルデータ受信| |3|TXD|シリアルデータ送信| |7,20|VCC|+5V| |8,22|GND|Ground(0V)| |12|AOUT|音声出力| I2CとSPIも可能 #clear ** 接続 [#a433a510] スピーカーには、AOUTとGNDを接続する。 *** シリアル通信の場合 [#a0e16baf] |ピン番号|名称|接続| |2|RXD|ArduinoのTxに接続。下記の例を使うのであれば、11番ピンへ。| |3|TXD|ArduinoのRxに接続。下記の例を使うのであれば、10番ピンへ。| |7,20|VCC|Arduinoの5Vに接続| |8,22|GND|ArduinoとスピーカーのGNDに接続| |12|AOUT|スピーカーに接続| #author("2019-04-21T23:44:42+09:00","default:qua","qua") ** プログラミング [#f9a7cc14] シリアル通信を用いて、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()); } } 音声データについては基本は小文字のローマ字入力だが、(日本語の高低)アクセントやポーズを入れることができる。詳しくは、 [[ATP3011:http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/pdf/atp3011_datasheet.pdf]] [[ATP3012:http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/pdf/atp3012_datasheet.pdf]] を見ること。