Arduino+Music Shieldで作る貯金箱

こんなんです

IKa先生のツイートに影響されまして。

用意するもの

  • Arduino UNO
  • Music Shield V2.0
  • MicroSDカード
  • ボタンとかマイクロスイッチとか
  • 鳴らしたい音データ(mp3かaac)

Music Shield V2.0はこちらのお店で売ってます。
ロボットショップ
スイッチサイエンス
Amazonのマーケットプレイスでも売ってますが、ちょっと高いです。
私はロボットショップで購入(ちょっと安い)。
足は自分でハンダづけする必要があります。
左右に1列ずつある足だけではなく、ICSP(ISP)のところの6ピンも取り付けないと動作しません。SDカードの認識すらしません。
私はこの工程をはしょって、一ヶ月くらいムダにしました(バカ
もちろん、mp3やaacが再生できるシールドなら他のでもいいんですが、専有されるピンとか色々違うと思うので、それに合わせてスケッチの方も適宜変えてください。
Music Shield V2.0の場合、D3~D8とD10~D13、A0~A3を使用されるので、スイッチとして使うのはD2にしてます。

音データはそんなにデカいものではないので、今から買うなら一番安いMicroSDでいいです。
14個のクレジット音データ入れても1MBにもなりませんでした。300KBくらい。
sounddata

クレジット音データは、ゲームのサントラの効果音のトラックとか実際のゲームから録音したりとかして、Audacityで編集。
audacity
前後のいらん部分を削除して、エフェクト→増幅とか使って音量をそろえておくと良いです。
鳴らしたいデータを好きなだけSDカードに放り込んで、Music Shieldのスロットに入れます。

ArduinoにMusic Shieldを搭載して、ヘッドホン用の端子からスピーカーなりイヤホンなりにつなぎます。
ライブラリとサンプルスケッチはGitHubのDownload ZIPからダウンロード。
とりあえずサンプルスケッチcreateListをArduinoに書き込んで、音が鳴るのを確認しましょう。

確認出来たらサンプルスケッチをちょっと改造

#include <SD.h>
#include <SPI.h>
#include <arduino.h>
#include <MusicPlayer.h>

const int CoinPin = 2;

void setup()
{
  Serial.begin(9600);
  player.begin(); //will initialize the hardware and set default mode to be normal.
  player.setPlayMode(PM_SHUFFLE_PLAY); //set mode to play shuffle
  player.scanAndPlayAll(); //If the current playlist is empty,it will add all the songs in the root directory to the playlist.
  
  pinMode(CoinPin, INPUT_PULLUP);
}
void loop()
{
  if (digitalRead(CoinPin) == HIGH)
    player.play();
}


いじるのは3行。CoinPinを2番にして、pinModeでINPUT_PULLUPを指定。
loop()の中で、ボタンが押された時だけ音を再生するようにif文を追加。それだけです。
ニコ動YouTubeにアップした動画では、3,000円分くらい100円玉を放り込んでも斑鳩のクレジット音が全然引けなかったので、「PM_SHUFFLE_PLAY」を「PM_REPEAT_LIST」にして、順番に全部鳴るようにして撮影しました。なんか負けた気分。多分ガチャとか向いてない。

回路も2番ピンとGNDの間にタクトスイッチでも入れればそれでいいんですが、それだけじゃつまんないので、コインセレクターを購入しました。
ヤフオクで1,200円くらいでした。送料入れても2,000円いかないくらい。中古なので「1プレー100円」の色あせたシールが貼ってあって、これがまた良い。

中身はシンプルなもので、コインが入るとマイクロスイッチのON/OFFが一瞬切り替わる、というものです。

あと、コインセレクター自体に電源が入っていないとコインが入らないようにフタがされます。これは9V電池を繋げたら開きました。たぶんアーケード筐体で使われている場合は12Vだと思うんですが、まあ開いたのでよし。

とりあえずこれで「コインいっこいれるとクレジット音が鳴る」ところまでは出来たわけですが、問題点がありまして。
箱になってないという、貯金箱として致命的な……
コインセレクターの奥行きが結構ある(12cmくらい)し重さもあるので、貯金箱もそれなりにデカくて重いものにしないといけないんですが、そんなガワ作るのめんどくせえなあと。どうしたもんですかね。
いや、どうもこうも。


コメントを残す