SSブログ

ATP3011を使ってArduinoを喋らせよう [Arduino入門編]

おはようございます。雪、降ってますね[雪]
さて今日はArudinoを喋らせてみようと思います[るんるん]

使うのはこちら、ATP3011という音声合成LSIです。
P1060169.jpg

このLSIは、Arduinoからメッセージをおくるだけで、
LSIに接続したスピーカーから、そのメッセージが音声として出力されます。
出力はUART,I2C,SPIの3種類をサポートしています。

要はArduinoで「Serial.println("aiueo");」と書くと、
「あいうえお」と喋るのです[手(チョキ)]
しかも1個850円。これでロボットが喋ると考えると凄いです[exclamation×2]

さて、配線です。見ての通りピンがメチャクチャ多いです。
ただし使うのは以下のみで番号は左からです。

[下段]
2番目 RX
 音声の受信ピンです。ArduinoのTX(送信)と接続すると送受信が成立して、
 Arduinoが送ったメッセージが受信できます

4番目 SMOD#0 / 5番目SMOD#1
 通信モードでArduinoから、どの形式でメッセージを送るかを制御します。
 モードは以下で1だと5V、0だとGNDに接続します。
  「S#0=1 / S#1=1でUART」「S#0=0 / S#1=1でI2C」
  「S#0=1 / S#1=0 か S#0=0 / S#1=0でSPI」となります。
 Serial.println("");を喋らすときはUARTモードになるので両方5Vに接続します

7,8番目 VCC/GND
 7がVCCで8がGNDです。今回、VCCには普段の5Vではなく3.3Vを接続します。
 理由ですが5vは他のサーボやセンサーなどで使用しているので、
 同じにすると何かノイズ?が入って動作が不安定になりました。
 抵抗・コンデンサを使って制御すれば大丈夫なんだろうけど
 詳しくないので、他とは別の専用電源として3.3Vを使うことにしました

12番目 AOUT
 音声出力端子でスピーカーに接続します。
 データシートを読むと4KHzのローパスフィルタが追加が必要らしいです。
 この辺りは詳しくないので、とりあえずスキップ。

14番目 PMOD#0、上段14番目 PMOD#1
 動作モードでArduinoからのメッセージを喋らせるか、
 LSI内部の固定メッセージを喋らせるかで以下のモードがあります。
  「P#0=1 / P#1=1で基本:Arduinoからのメッセージで喋る」
  「P#0=0 / P#1=1でセーフ:Arduinoからのメッセージで喋る」
  「P#0=1/ P#1=0でスタンドアロン:LSI内部の固定メッセージを喋る」
  「P#0=0 / P#1=0でデモ:LSI内部のメッセージを確認で喋る」
 となります。
 基本とセーフの違いはセーフの場合、送信ボーレートが9600固定となり、
 Arduinoはデフォルトがボーレート9600固定なのでセーフモードにします。
 こちらも1は5V,0はGNDへの接続になります

配線後の写真がこちら。
P1060172.jpg

これで、「Serial.println("aiueo");」と書くと、
「あいうえお」と喋ってくれます[exclamation×2]
でも、ちょっと音量が小さいですよね?!この辺は次回で~[手(パー)]
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。