でばいすの山小屋

デバイスとかクラウドを実験中。IoTのふもとあたりをうろうろ。

Raspberry Pi 2で、UARTサウンドモジュールを使ってみる

Raspberry Pi 2でUART通信してみました。

手元にあったサウンドモジュールを使いました。Raspberry Pi 2 単体で音が鳴らせるでしょ?って突っ込みはなしで。

使ったもの

  • Raspberry Pi 2 (Raspbian/NOOBS 1.4.1)
  • Sound Module SOMO-II
  • キーボード、マウス、MicroSDカード、ブレッドボードなど

1. Sound Module SOMO-II

小型のサウンドモジュール。mp3などに対応。スピーカをドライブ可能です。
国内で見つけたらなかったので、Mouserから買いました。
4D Systems:SOMO-II
Mouser 商品ページ

2. Raspberry Pi 2の設定変更

まず、Raspberry Pi 2 をデバイスとUART通信できるようにします。
※編集するファイルは、必要に応じてバックアップします。

2-1. /boot/cmdline.txt の編集

[編集前]
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

[編集後]
dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

2-2. 再起動

$ sudo shutdown -r now

2-3. /etc/inittabを編集

[編集前]
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

[編集後]
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

2-4. python-serial のインストール

$ sudo apt-get install python-serial

2-5. シャットダウン

配線するため、シャットダウン
$ sudo shutdown -h now

3. 配線

以下のように配線します。

Raspberry Pi 2 SOMO-II
3.3V - VCC
GND - GND
UART_TXD - RX
UART_RXD - TX

f:id:blgkns:20150724025753p:plain:w320

4. 音楽データを準備

MicroSDカードに、音楽データを作成します。 フォルダ構成はこんな感じ。

01 / 01music.mp3
     02music.mp3


5. UART通信

python を使って、サウンドモジュールに信号を送ります。 コマンド一覧はデータシート参照。

pi@raspberrypi ~ $ python
Python 2.7.3 (default, Mar 18 2014, 05:13:23) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser=serial.Serial("/dev/ttyAMA0")
>>> ser.baudrate=9600
>>> ser.write("\x7e\x01\x00\x00\x00\xff\xff\xef") # Play Next
8
>>> ser.write("\x7e\x05\x00\x00\x00\xff\xfb\xef") # Volume Down
8
>>> ser.write("\x7e\x04\x00\x00\x00\xff\xfc\xef") # Volume Up
8
>>> ser.write("\x7e\x16\x00\x00\x00\xff\xea\xef") # STOP
8
>>> ser.close()
>>> exit()
pi@raspberrypi ~ $