マイコン工作実験日記

Microcontroller を用いての工作、実験記録

WCA-009を使って作る簡単Bluetoothスピーカ

2011-08-01 23:18:21 | WT32/BM20
これまでWT32をLPC2387/88, SAM7S, SAM3Sなんかにつないできていますが、いずれもマイコンやCODECとPCMやI2Sでつなぐ使い方ばかりを記事にしています。しかし、単純にWCA-009を使ってWT32の動作確認をするのが目的であれば、わざわざマイコンをプログラムしたりしなくても、もっと簡単に実験することができます。そこで今回は、半日もあれば製作できるBluetoothスピーカを紹介することにします。



写真に見えるとおり、主要部品はWT32と秋月のUSBシリアル変換モジュール(AE-UM232R)の2つだけという構成です。それ以外の重要部品としては、基板の裏側に3.3Vのレギュレータが載っており、これでUSBの5VからWT32用の3.3Vを生成しています。このボードをPCとUSBでつないでやれば、PCからWT32のコマンドを直接たたくことができます。スピーカはオーディオ信号の差動出力端子に直接つなげばいいだけです。あとは、WT32を設定してA2DP sink側に設定してやれば、Bluetooth対応スピーカのできあがりです。

重要な注意点は、
  • WT32は3.3Vで動かします。5V加えると壊れます。
  • WT32とAE-UM232Rのシリアル信号をつなげます。同じ名前の信号をつないではいけません。TXDとRXD, CTSとRTSを交互に接続します。
の2点。RTS, CTSはつながなくても動作すると思いますが、フロー制御のためにつないでおくと、後々PSTOLLやFDUなどのツールを使う時に困らずにすみます。

スピーカつないだだけではあまりにもそっけないので、WT32のPIOを使ってのオマケ機能も用意してあります。
  • まず、LEDをひとつ。このLEDはBluetoothでの無線リンクが確立すると点灯するように設定することができます。簡単な動作状況表示というわけです。
  • そしてタクトスイッチを3つ。これらのスイッチのつながるポートでは、状態変化があると対応付けたWT32コマンドを実行するように設定します。
ここでは3つのボタンを、AVRCPコマンドを使っての再生(Play), 停止(Pause)、次の曲へのスキップの3つの操作に対応付けています。

回路図です↓ WCA-009以外の必要パーツはすべて秋月でそろいます。3.3Vレギュレータは手持ちのもので適当に。AE-UM232Rは、いったんWT32の設定をおこなってしまえば、後は電源を供給する役割で使うだけです。定常的にスピーカとして使うのであれば、電池やただのUSBコネクタに置き換えてしまってもいいでしょう。



PCをつなげて端末ソフトで開く際には、115200ボー, 8ビット、パリティ無しで開きます。そして、次のコマンドを入力します。
set reset
set bt class 240428
set bt auth * 0000
set bt pagemode 4 2000 1
set control cd 80 0
set control bind 0 80 rise call e8:06:88:92:1d:1e 17 avrcp
set control bind 1 40 rise @1 avrcp forward
set control bind 2 20 rise @1 avrcp play
set control bind 3 10 rise @1 avrcp pause
set profile spp
set profile a2dp sink
set profile avrcp controller

setコマンドでWT32の設定を確認すると次のようになるでしょう↓。


  • SET CONTROL CD 80 0で無線リンクが確立されるとPIO7をHにすることを指示しています。
  • SET CONTROL BIND 0の行でPIO7がHになった時に、callコマンドを実行してAVRCP接続することを指示。
  • SET CONTROL BIND [123]の各行でPIO4~PIO6につながった各タクトスイッチの役割を定義。
callコマンドで指定するデバイスアドレスは適宜、接続相手のデバイスのアドレスに合わせてください。設定したら、いったんresetしておきます。

iPadやPCのようなプレーヤ側からA2DPの接続があると、自動的にA2DP接続します。タクトスイッチを押してやることで、対応する操作が可能です。



音量の変更もWT32のコマンドでできますので、さらに2つタクトスイッチを追加して、音量の増減操作に割り当ててもいいでしょう。