63
coma study room mobileBB shield for Mozzi 2013.11.16 at Bullet’s The Breadboard Band

mobileBB shield for Mozzi

Embed Size (px)

DESCRIPTION

presentation for our activities and new work "mobileBB shield for Mozzi"

Citation preview

Page 1: mobileBB shield for Mozzi

!

!

!

coma study room

mobileBB shield for Mozzi !!2013.11.16 at Bullet’s The Breadboard Band

Page 2: mobileBB shield for Mozzi

‣The Breadboard Band

Page 3: mobileBB shield for Mozzi

mobileBB

The Breadboard BandICタクトスイッチボリューム電池電池ケーススピーカー 3.5ジャック

PSoC CY8C29466

50k A 単 3乾電池

1314111

3つのボタン (緑 :10Hz,

青 :1kHz,黄 :

15.625kHz)を押すと音

がでます。

ボリュームでそれぞれの

ボタンの周波数を変えら

れます。

こちらの商品は完成品となっています

The Breadboard BandURL : www.breadboardband.orgMAIL : in [email protected]

03 2000円

mobileBB 03 ver.1.0.0

PS

oC

CY

8C

29

46

6-2

4P

XI

SP

1

28

2

24

14

S2

+5

S3

S4

OFF ON

使用後は必ず電源をOFFにして保管してください

押すと音がでます1kHzを中心に変化

押すと音がでます15.625kHzを中心に変化

押すと音がでます 10Hzを中心に変化

スイッチS4 黄

スイッチS3 青

スイッチS2 緑

回すと音の高さが変わりますボリューム

電源 ON/OFFスイッチS1Version 1.0.0

mobileBB

The Breadboard BandIC

タクトスイッチDIPスイッチ 4P

3端子レギュレータセラミックコンデンサ電解コンデンサ電池電池ケーススピーカー 3.5ジャック

PSoC CY8C29466

TA4805S

0.1μF

47μF

単 3乾電池

1

3

2

1

2

1

4

1

1

1

8ステップのリズムシー

ケンサーです

2種類のリズム波形・テ

ンポ・ステップ数を変更

できます

こちらの商品は完成品となっています

The Breadboard BandURL : www.breadboardband.orgMAIL : in [email protected]

02 2000円

mobileBB 02 ver.1.0.1

PS

oC

CY

8C

29

46

6-2

4P

XI

SP

1

28Vdd

2

27 S2

C2

0.1µF

25 S4

26 S3

24 DIP1

23 DIP2

22 DIP3

21 DIP4

18 DIP5

17 DIP6

16 DIP7

15 DIP814

S1

C1

0.1µF

TA4805S

47µF

C3

1 2 3 4 5 6 7 8

OFF ON

ここから音が鳴ります

ミキサーやヘッドフォンに接続することができます

左から右に 8 ステップ分の音を切り替えられます

使用後は必ず電源をOFFにして保管してください

スイッチを押す毎に8、7...1...8 ステップとステップ数が変化します

テンポがDOWNします

テンポがUPします

スピーカー

スイッチS2

スイッチS3

スイッチS4

スイッチDIP

電源 ON/OFFスイッチS1

ジャック

Version 1.0.1

mobileBB

The Breadboard BandIC

タクトスイッチDIPスイッチ 4P

3端子レギュレータセラミックコンデンサ電解コンデンサ電池電池ケーススピーカー 3.5ジャック

PSoC CY8C29466

TA4805S

0.1μF

47μF

単 3乾電池

1

3

2

1

2

1

4

1

1

1

8ステップのリズムシー

ケンサーです

2種類のリズム波形・テ

ンポ・ステップ数を変更

できます

こちらの商品は完成品となっています

The Breadboard BandURL : www.breadboardband.orgMAIL : in [email protected]

02 2000円

mobileBB 02 ver.1.0.1

PS

oC

CY

8C

29

46

6-2

4P

XI

SP

1

28Vdd

2

27 S2

C2

0.1µF

25 S4

26 S3

24 DIP1

23 DIP2

22 DIP3

21 DIP4

18 DIP5

17 DIP6

16 DIP7

15 DIP814

S1

C1

0.1µF

TA4805S

47µF

C3

1 2 3 4 5 6 7 8

OFF ON

ここから音が鳴ります

ミキサーやヘッドフォンに接続することができます

左から右に 8 ステップ分の音を切り替えられます

使用後は必ず電源をOFFにして保管してください

スイッチを押す毎に8、7...1...8 ステップとステップ数が変化します

テンポがDOWNします

テンポがUPします

スピーカー

スイッチS2

スイッチS3

スイッチS4

スイッチDIP

電源 ON/OFFスイッチS1

ジャック

Version 1.0.1

mobileBB

The Breadboard BandIC

タクトスイッチDIPスイッチ 4P

3端子レギュレータセラミックコンデンサ電解コンデンサ電池電池ケーススピーカー 3.5ジャック

PSoC CY8C29466

TA4805S

0.1μF

47μF

単 3乾電池

1

3

2

1

2

1

4

1

1

1

8ステップのリズムシー

ケンサーです

2種類のリズム波形・テ

ンポ・ステップ数を変更

できます

こちらの商品は完成品となっています

The Breadboard BandURL : www.breadboardband.orgMAIL : in [email protected]

02 2000円

mobileBB 02 ver.1.0.1

PS

oC

CY

8C29

466-

24P

XI

SP

1

28Vdd

2

27 S2C2

0.1µF

25 S4

26 S3

24 DIP1

23 DIP2

22 DIP3

21 DIP4

18 DIP5

17 DIP6

16 DIP7

15 DIP814

S1

C1

0.1µF

TA4805S

47µF

C3

1 2 3 4 5 6 7 8

OFF ON

ここから音が鳴ります

ミキサーやヘッドフォンに接続することができます

左から右に 8 ステップ分の音を切り替えられます

使用後は必ず電源をOFFにして保管してください

スイッチを押す毎に8、7...1...8 ステップとステップ数が変化します

テンポがDOWNします

テンポがUPします

スピーカー

スイッチS2

スイッチS3

スイッチS4

スイッチDIP

電源 ON/OFFスイッチS1

ジャック

Version 1.0.1

mobileBB mobileBB mobileBB mobileBB

mobileBB

The Breadboard Band抵抗器抵抗器セラミックコンデンサ電解コンデンサIC

半固定抵抗ボリュームタクトスイッチ電池電池ケーススピーカー  3.5ジャック

10k

1k

0.22μF

1μF

LM358

10k B

10k A

CR3032

8

2

1

1

1

1

1

1

1

1

1

1

波形を変調して、倍音で

音階を演奏する楽器です

こちらの商品は完成品となっています

The Breadboard BandURL : www.breadboardband.orgMAIL : in [email protected]

5

67

2

31

C2

0.22

µF

R5

10k

VR1

10kA

R4

T1

2sc1

815Y

SP

1

1k

R1

10k

VR2

IC1B

LM358N

LM358N

IC1A

10kB

10k

R7

10k

R6

R8

10k

R2

10k

R10

10k

R3

10k

1µ C1

G1

S1

21

CR

2032

H

R9

1kLE

D1

01 2000円 Version 1.0.1

mobileBB 01 ver.1.0.1

回すと音の高さが変わります

押すと音がします

スイッチを押すと光ります

音階の出方が多少変わるかもしれません

ここから音が鳴ります

つまみ

スイッチ

LED

調整用つまみ

スピーカー

ミキサーやヘッドフォンに接続することができます

ジャック

Page 4: mobileBB shield for Mozzi

mobileBBWorkshop

2012年7月28日 (土)13:30 - 20 :30

f .Labo岐阜県大垣市今宿6-52-16ソフトピアジャパン ドリーム•コア1F

3,500円ワークショップで作成した作品は、お持ち帰りいただけます。参加費は、当日受付にてお支払いください。

The Breadboard Band (原田克彦、大石彰誠、斉田一樹 )

2012年7月20日 (金)

日時

場所

参加費

講師

申込締切

音がなるブレッドボード ワークショップ

DIYMUSIC!

2012年7月28日13:30-18:30 /IAMAS RCIC BRANCH @ f.Labo The Breadboard Band(原田克彦、大石彰誠、斉田一樹)

Page 5: mobileBB shield for Mozzi
Page 6: mobileBB shield for Mozzi
Page 7: mobileBB shield for Mozzi
Page 8: mobileBB shield for Mozzi
Page 9: mobileBB shield for Mozzi
Page 10: mobileBB shield for Mozzi
Page 11: mobileBB shield for Mozzi
Page 12: mobileBB shield for Mozzi
Page 13: mobileBB shield for Mozzi

Mozzi sound synthesis library for Arduino

‣Inventor: Tim Barrass http://sensorium.github.com/Mozzi/ !‣Arduinoから直接音をつくるライブラリ !‣オープンソースプロジェクト !‣一般的な音響合成で使われるオシレータ、ディレイ、フィルタ、エンベロップを扱うことがでる !‣追加のシールド、外部回路をなしで音をつくれる* !‣パフォーマンスやインスタレーションのためのアルゴリズミック音楽を生成 !‣センサをつないでインタラクティブに音を出力

Page 14: mobileBB shield for Mozzi

Mozzi sound synthesis library for Arduino

‣^[xor]sysnth ‣true digital polyphonic synthesizer ‣http://www.standuino.eu/devices/instruments/xor-synth/

Page 15: mobileBB shield for Mozzi

Mozzi sound synthesis library for Arduino

‣Greenwash ‣by Tim Barrass ‣ A sun-powered sound sculpture which sonifies fluctuations in solar energy ‣https://docs.google.com/file/d/0B_eOzePFYDZaeU1GS1BQOVZhVDQ/edit

Page 16: mobileBB shield for Mozzi

Mozzi sound synthesis library for Arduino

‣Yoshihito Nakanishi !‣”B.O.M.B.-Beat Of Magic Box-”, an interactive musical device for cooperative music performance !‣Mozzi.ws ‣http://yoshihito-nakanishi.com/mozzi/

Page 17: mobileBB shield for Mozzi

Mozzi sound synthesis library for Arduino

‣Inventor: Tim Barrass http://sensorium.github.com/Mozzi/ !!!‣特長 ‣便利なオーディオツールキット:オシレータ、 ディレイ、フィルタ、エンベロープ ‣8-14ビットでサンプリングレート16384Hzのオーディオ出力モード ‣64Hz以上からのコントロール速度を変えられる ‣高速なADCとCPUに効率的なコードによって、スムーズなオーディオ処理を実現 ‣すぐに書き換えられるサンプルスケッチ ‣あらかじめ用意されているウェーブテーブルとMozzi用にサウンドファイルを変換してくれるスプリクト

Page 18: mobileBB shield for Mozzi

Mozziを使用する準備

‣Mozzi(Version 0.01.2c)をダウンロード1.sensorium-Mozzi-76c6513.zipを解凍する 2.ダウンロードしたフォルダの名前をMozziに変更3.Mac:書類(Documents)/Arduino/librariesにコピー Win:Arduino.exeがあるフォルダ/librariesにコピー *librariesフォルダがない場合はlibrariesフォルダを作成 *Arduino IDEが起動している場合は再起動

Page 19: mobileBB shield for Mozzi

Mozziライブラリのファイル構造

Page 20: mobileBB shield for Mozzi

Mozzi sound synthesis library for Arduino

‣注意点下記のボードはテスト済み/それ以外は確認が必要 Arduino Duemilanove ATmega328 Arduino Nano ATmega328 Arduino Pro Mini Arduino Uno Arduino Leonardo Arduino Mega EtherMega Boarduino Ardweeny Teensy2/Teensy2++

!‣高周波

!‣Arduinoの時間関数は使えません  ‣millis(), micros(), delay(), and delayMicroseconds() !‣その代わりにMozziのEventDelay() が使える

Page 21: mobileBB shield for Mozzi

高周波をカットするには

Page 22: mobileBB shield for Mozzi

高周波をカットするには

Page 23: mobileBB shield for Mozzi

Mozziの構造 ex01_Skeleton.ino!#include <MozziGuts.h> // Mozzi用ライブラリ#define CONTROL_RATE 64 //コントロールレートの定義(64がデフォルト)!void setup() { startMozzi(CONTROL_RATE); //Mozziの初期設化、処理開始}!void updateControl() { // 制御処理コードをここに書く}!int updateAudio() { // オーディオ処理コードをここに書く return 0;}!void loop() { audioHook(); //音を出力するためのバッファ処理}

Page 24: mobileBB shield for Mozzi

Mozziでサイン波を出力 ex02_Sinewave.ino#include <MozziGuts.h>#include <Oscil.h> // オシレータのテンプレート#include <tables/sin2048_int8.h> // オシレータ用のサイン波テーブル//#include <tables/triangle2048_int8.h> //オシレータ用の三角波テーブル!// use: Oscil <table_size, update_rate> oscilName (wavetable)Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> aSin(SIN2048_DATA); //Oscil <TRIANGLE2048_NUM_CELLS, AUDIO_RATE> aTri(TRIANGLE2048_DATA);!// use #define for CONTROL_RATE, not a constant#define CONTROL_RATE 64 // コントロールレートを64に設定!void setup(){ startMozzi(CONTROL_RATE); //Mozziの初期設化、処理開始 aSin.setFreq(440) ; //周波数440Hzの設定// aTri.setFreq(600) ; //周波数440Hzの設定}!void updateControl(){ // 制御処理コードをここに書く}!int updateAudio(){ return aSin.next(); //aSinのwavetableが繰り返し読み込まれる// return aTri.next(); //aTriのwavetableが繰り返し読み込まれる}!void loop(){ audioHook(); //音を出力するためのバッファ処理}

Page 25: mobileBB shield for Mozzi

センサ入力で音をコントロールするex04_Trianglewave_sensor.ino

#include <MozziGuts.h>#include <Oscil.h> // オシレータのテンプレート//#include <tables/sin2048_int8.h> // オシレータ用のサイン波テーブル#include <tables/triangle2048_int8.h> //オシレータ用の三角波テーブル#include <mozzi_analog.h> //アナログ入力!//Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> aSin(SIN2048_DATA); //sin2028_int8.hから配列変数SIN2048_DATAの8bitデータをaSinに格納Oscil <TRIANGLE2048_NUM_CELLS, AUDIO_RATE> aTri(TRIANGLE2048_DATA); //triangle2048_int8.hから配列変数TRIANGLE2048_DATAの8bitデータをaTriに格納!//#define CONTROL_RATE 64 // コントロールレートを64に設定!float val = 0.f; //周波数の値を入れる変数int sensor_Val; //センサからの値を入れる変数const char input_Pin = 0; //センサにつなぐピン(アナログ入力A0)!void setup(){// startMozzi(CONTROL_RATE); //Mozziの初期設化、処理開始// aSin.setFreq(440) ; //周波数440Hz(ラ音(A4))の設定! setupFastAnalogRead(); // アナログ入力の読み込み速度を上げる aTri.setFreq(440) ; //周波数440Hzの設定 startMozzi(); //Mozziの処理開始}!

Page 26: mobileBB shield for Mozzi

センサ入力で音をコントロールするex04_Trianglewave_sensor.ino

void updateControl(){ int sensor_Val = analogRead(input_Pin);//アナログA0の値を代入する val = map(sensor_Val, 0, 1023, 10, 2000);// センサからの値0-1023を20-2000に変換 aTri.setFreq(val); //周波数を代入する }!!int updateAudio(){// return aSin.next(); //aSinのwavetableが繰り返し読み込まれる return aTri.next(); //aTriのwavetableが繰り返し読み込まれる!}!!void loop(){ audioHook(); //音を出力するためのバッファ処理}

Page 27: mobileBB shield for Mozzi

センサ入力で音をコントロールする‣ボリューム(可変抵抗器)のつなげ方

‣横が削れている方が右

Page 28: mobileBB shield for Mozzi

mobileBB shield for Mozzi

mobileBBの最新作は mobileBB for Mozzi !2013/11/3 - 11/4 Maker Faire Tokyo 2013で発表 !!http://breadboardband.github.io/mobileBBshield_for_Mozzi/ !

Page 29: mobileBB shield for Mozzi

Arduinoで音を出すそもそも音って何よ?(Arduino・電子回路的な意味で) !電圧をいろいろと変えながら出す、それが音。 !↓波形。電圧がこんな風になれば音が出ます。 !!!

Page 30: mobileBB shield for Mozzi

Arduinoで音を出すとは?一番簡単な方法 !tone使う !

tone(pin, frequency); !!!「スケッチブックの例」02.Digital - toneKeyboard - toneMelody - toneMultiple - tonePitchFollower

Page 31: mobileBB shield for Mozzi

Arduinoで音を出すとは?toneで出る音 矩形波(0V と 5Vが交互に出る)

Page 32: mobileBB shield for Mozzi

ただ、これだとこういう波形は出せない

Arduinoで音を出すとは?

Page 33: mobileBB shield for Mozzi

じゃあどうすれば? ! Arduinoの中にデータとして波形を持つことはできてる。 !uint8_t randomwave = { 0, 100, 22, 33, 58 }; !このデータを電圧の信号に置き換えるのが

D/A変換

Arduinoで音を出すとは?

Page 34: mobileBB shield for Mozzi

D/A変換 どうやって? !1. 専用のICを使う 2. ラダー抵抗 3. PWM

Arduinoで音を出すとは?

Page 35: mobileBB shield for Mozzi

専用のICを使う !一般的なオーディオ機器ではこの方法 !!Good - 音質がよい - サンプリング周波数やビットレートが柔軟に設定できる !Bad - それなりに部品代が増える - 当然面積も増える

Arduinoで音を出すとは?

Page 36: mobileBB shield for Mozzi

ラダー抵抗 !例 http://www.instructables.com/id/Arduino-Audio-Output/?lang=ja !Good - 簡単 - 好きなビットレートにできる !Bad - マイコンのポートをたくさん使う

Arduinoで音を出すとは?

Page 37: mobileBB shield for Mozzi

PWM !!Good - ポート1本 - 外付けの回路が少ない !Bad - マイコンのパワーを食う

Arduinoで音を出すとは?

Page 38: mobileBB shield for Mozzi

PWMとは? !Arduinoのポートはすべてデジタルで、0Vと5Vしか出せない。 0Vと5Vの「比率」は変えることができる。 !0Vを表したい→ ずっと0V 5Vを表したい→ ずっと5V !2.5Vを表したい   0V 5V 3Vを表したい    0V 0V 5V 5V 5V !

Arduinoで音を出すとは?

Page 39: mobileBB shield for Mozzi

Arduinoで音を出すとは?

PWMとは?

Page 40: mobileBB shield for Mozzi

Arduinoで音を出すとは?

PWMとは? !ArduinoでPWMを出すには?

analogWrite !!もうこれがPWM! http://arduino.cc/en/Tutorial/PWM !

Page 41: mobileBB shield for Mozzi

Arduinoで音を出すとは?

PWM !PWMは、電圧を比率にして出す ここまでOK 比率をどのくらいのスピード出すか?が問題になる。 !出てくる信号は、 出したい電圧の信号 + PWMをしている信号 !ほんとうに欲しいのは

出したい電圧の信号

Page 42: mobileBB shield for Mozzi

Arduinoで音を出すとは?

PWM !ほんとうに欲しい「出したい電圧」を手に入れるには、 PWMをしている信号を取り除く必要がある。 !条件 出したい電圧 が含んでいる周波数と PWMをしている信号の周波数が 重ならないこと。 !http://arduino.cc/en/Reference/analogWrite !おもいっきり音の周波数なので、このままでは使えない。

Page 43: mobileBB shield for Mozzi

Arduinoで音を出すとは?

PWM !ArduinoのPWMを高速にして、オーディオと重ならなくする方法 !http://interface.khm.de/index.php/lab/experiments/arduino-realtime-audio-processing/

Page 44: mobileBB shield for Mozzi

シールド基板の製作

Page 45: mobileBB shield for Mozzi

シールド基板の製作‣回路 Mozziのサイトにある出力用のフィルター回路 ‣Notch filter for STANDARD mode carrier frequency. ‣http://sensorium.github.io/Mozzi/learn/output/ ‣6kHz low pass and 16384Hz notch filter

!!‣基板をデザインするためのツール(CAD) ‣Fritzing !

!‣基板製作の発注  ‣P板.com

Page 46: mobileBB shield for Mozzi

Fritzingについて

‣Fritzing: http://fritzing.org/

Page 47: mobileBB shield for Mozzi

Fritzingについて‣ブレッドボードの配線図から回路図、基板設計図を生成できるツール(基板 PCB CAD) !‣ドイツのポツダム応用科学大学のインタラクションデザインラボ(Interaction Design Lab at the University of Applied Sciences Potsdam)でのオープンソース・プロジェクト !‣Arduinoユーザーが自分のプロトタイプのプロジェクトをプリント基板にする手助けとなるツール !‣基板デザイン ~ 基板発注までの独自サービスを用意

Page 48: mobileBB shield for Mozzi

Fritzingについて

Page 49: mobileBB shield for Mozzi

Fritzingについて

Page 50: mobileBB shield for Mozzi

Fritzingについて

Page 51: mobileBB shield for Mozzi

Fritzing パーツエディタ

ブレッドボード 回路図 基板パターン図

Page 52: mobileBB shield for Mozzi

Fritzing 基板製造オーダー

Page 53: mobileBB shield for Mozzi

Fritzingについて‣ブレッドボードの配線図からはじめられる !!‣Arduinoのプロジェクト、シールドのテンプレートが豊富 !!‣オリジナル(カスタマイズ)の部品を追加 ‣svg(Scalable Vector Graphics)ファイルでデザイン ‣Illustrator等で描ける ‣外形線やシルクスクリーンのロゴやイメージも同様 ‣今回、秋月の3.5mm audio jackを作成 !

‣入門編としてはおすすめの基板デザインツール !

Page 54: mobileBB shield for Mozzi

Fritzing ~ P板.com発注

Page 55: mobileBB shield for Mozzi

Fritzing ~ P板.com発注‣FritzingでGerber(RS-274X)データをエクスポート ‣10種類のガーバーデータを出力 ‣※ガーバーデータは、基板製造用のフィルムを作成するためのデータ !‣事前に上記データでOKかどうか問い合わせ → OK !‣P板.comでの(二層)基板製造サービスに必要なデータ Gerber(RS-274X) ‣部品面パターン copperTop.gtl  ‣半田面パターン copperBottom.gbl ‣部品面レジスト silkTop.gto ‣半田面レジスト silkBottom.gbo ‣部品面シルク maskTop.gts ‣半田面シルク maskBottom.gbs ‣外形線図  contour.gm1 ‣ドリルデータ&ドリルリスト mozzi_s_drill.txt !

‣Fritzingで、特に特別な設定等なく、書き出したデータで基板発注ができた !!

Page 56: mobileBB shield for Mozzi
Page 57: mobileBB shield for Mozzi
Page 58: mobileBB shield for Mozzi
Page 59: mobileBB shield for Mozzi
Page 60: mobileBB shield for Mozzi
Page 61: mobileBB shield for Mozzi
Page 62: mobileBB shield for Mozzi
Page 63: mobileBB shield for Mozzi

mobileBB shield for Mozzi

よろしくお願いします。 !twitter @BreadBoardBand !!Web http://www.breadboardband.org !Github http://www.github.com/breadboardband