RubicでGR-CITRUSのmrubyプログラミング事始め2[MP3編]


前回、開発環境を整えたのでこれから簡単な実際にモノづくりをしてみます。
お題はインターネット鳩時計みたいなものを作ることを目指します。
今後の流れは以下のように進んでいこうかなと。

1. WA-MIKANを使ってSDカードにあるMP3データを鳴らしてみます。
2. WA-MIKANを使ってUDP通信を行い、NTPから時刻(Unix-Time)をとる処理を行います。
3. mrbgemsの入れて(めんどい)、mruby-timeを入れて、NTPから取ったUnix-Timeを時刻に変換する処理をします。
4. 今までのことを組み合わせて、1時間ごとにしゃべる時計を作ります。

ということで、今回は1を行います。

今回つかうもの

  • GR-CITRUS
  • WA-MIKAN
  • MicroSDカード
  • 圧電素子
  • ブレッドボード
  • ブレッドボード・ジャンパーコード(オス-ワニグチ)×適当

GR-CITRUSのファームウェアを更新する。

MP3の再生をしたいので最新のファームウェアに更新します。
以下から、binファイルをダウンロードして下さい。
https://github.com/wakayamarb/wrbb-v2lib-firm/blob/master/firmware_develop/citrus_sketch.bin

そののち、CITRUSをPCにつけて、CITRUSのリセットボタンを押してください

USBファイルとして認識されるので、その中にダウンロードしたcitrus_sketch.binをコピーするだけでOKです。コピー後、CITRUSのLEDが点滅します。点滅が終わり点灯に変わったら書き換え終了です。

MicroSDにMP3データを入れる

まず、MicroSDカードの中に適当にMP3ファイルを入れておきます。
ここでは魔王魂さんのサイトから適当に拝借したデータを3つ 

  • 「1.mp3」「2.mp3」「3.mp3」

という名前で、保存しておきました。

WA-MIKANとGR-CITRUSをくっつける。

MicroSDカードをWA-MIKANに指してから、GR-CITRUSをWA-MIKANにくっつけます。
指す向きは写真のようにしてください。その後、ブレッドボード指して固定します。真ん中に渡るようにして指してください。

圧電素子をつなげる

圧電素子とは圧力を加えると電圧が発生する素材です。安価で音を出すのに都合がよく、手軽に手に入ります。多分、いらなくなったオモチャとか分解すると出てくると思います。うちも漁ったら以下のようなものが出てきました。

真ん中がプラスで、外側がマイナスです。ブレッドボード・ジャンパーコード(オス-ワニグチ)を使ってプラスをCITRUSの0番ピン、マイナスをGNDにつなげます。

Rubicに書き込み

非常に簡単です。

main.mrb
#!mruby
Usb = Serial.new(0)

if( System.useMP3(3,4) == 0)then
   Usb.println "MP3 can't use."
   System.exit() 
end

l = ["1.mp3","2.mp3","3.mp3"]

l.each do |f|
    Usb.println f
    Usb.print MP3.play f
end

実行すると音が再生されます。これは便利!

次回、UDP接続編へ