Top/Devel/電子工作/Arduino/楽器(Mozzi利用)

楽器(Mozzi利用)はてなブックマーク

今回はArduino用サウンドライブラリMozziとWiiのヌンチャクコントローラArduinoに接続して楽器を作ってみます。


ヌンチャクを使ったテルミンのような楽器なので、とりあえずChuckmin2と名づけました。

ようするに../楽器のMozzi版です。

必要なもの

  • Arduino(下記はArduino Unoに場合の接続例です。Arduino Leonardoの場合の接続方法は備考をご覧ください。)
  • ヌンチャクコントローラ
  • WiiChuck
  • ピンヘッダ(4P)(何でも良いです。今回は 秋月電子通商で購入しました。)
  • アクティブスピーカー
  • アクティブスピーカーとArduinoを接続するもの。下記など。
    なくてもArduinoに接続したワイヤを直接ミニジャックに接続できれば良いです。
  • chuck_funcs.h(こちらからダウンロードしてください。
    「Raw」を右クリックして名前をつけて保存。
  • Mozzi

手順

  1. WiiChuckにピンヘッダを半田付けする。(labs.thingm.comと書いてある側からピンヘッダの短い方を差込み、逆側から半田付けする。)
  2. ArduinoのA2ピンに-、A3ピンに+、A4ピンにd、A5ピンにcが挿さるように挿す。
  3. 圧電ブザーをGNDと10番ピンに挿さるように挿す。
  4. WiiChuckにヌンチャクコントローラを挿す。(ヌンチャクの金属端子の凹みがある方が上になるように挿す。)
  5. デジタル9番ピンにミニジャックのLとR(ステレオなら先端から1個目と2個目)を接続する。
  6. GNDピンにミニジャックのGNDを接続する。(ステレオなら先端から3個目)
  7. Mozzi.zipを解凍し、Mozziフォルダを%USERPROFILE%\Documents\Arduino\librariesにコピーする。
  8. USBケーブルを挿す。
  9. スケッチを書き込む。

スケッチ

準備中。

トラブルシューティング

「コンパイル時にエラーが発生しました。」というエラーメッセージが表示される場合

「コンパイル時にエラーが発生しました。」というエラーメッセージとともに下記が表示される。

Mozzi\twi_nonblock.cpp.o: In function `__vector_24':
C:\Users\foobar\Documents\Arduino\libraries\Mozzi/twi_nonblock.cpp:461: multiple definition of `__vector_24'
Wire\utility\twi.c.o:C:\Program Files (x86)\Arduino\libraries\Wire\utility/twi.c:364: first defined here

原因はArduinoデフォルトのI2CプログラムとMozziのI2Cプログラムが競合しているため。

Mozzi側のI2Cプログラムは使用しないので、削除すると解決します。

  • Mozzi/twi_nonblock.cpp
  • Mozzi/twi_nonblock.h

備考

Arduino Leonardoの場合は、I2Cの接続ピンが異なります。

役割Wiichuckでの表示Unoでの接続先Leonardoでの接続先
GND-A2GND
V+A33.3V
SDA(シリアルデータ)dA4D2 または SDA
SCL(シリアルクロック)cA5D3 または SCL

Leonardoを使う場合は、トランスモグリシールドでピンをUno互換にするか、ジャンプワイヤなどで上記の通りに接続先を変えてください。


また、nunchuck_funcs.hの25行目〜34行目は次のように修正してください。

// Uses port C (analog in) pins as power & ground for Nunchuck
static void nunchuck_setpowerpins()
{
/*
#define pwrpin PORTC3
#define gndpin PORTC2
    DDRC |= _BV(pwrpin) | _BV(gndpin);
    PORTC &=~ _BV(gndpin);
    PORTC |=  _BV(pwrpin);
    delay(100);  // wait for things to stabilize        
*/
}

参考

Amazon

差分 一覧