mobileBB shield for Mozzi

1,806 views
1,705 views

Published on

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

Published in: Self Improvement
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,806
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

mobileBB shield for Mozzi

  1. 1. coma study room mobileBB shield for Mozzi ! ! ! 2013.11.16 at Bullet’s The Breadboard Band ! !
  2. 2. ‣The Breadboard Band
  3. 3. Version 1.0.1 2000 The Breadboard Band 2 種類のリズム波形・テ S4 1 2 3 4 5 6 7 3 つのボタン ( 緑 :10Hz, 青 :1kHz, 黄 : こちらの商品は完成品と 15.625kHz) を押すと音 なっています がでます。 ボタンの周波数を変えら 0.1µF 27 S2 C2 S3 スイッチ テンポが UP します 25 S4 スイッチ 電源 ON/OFF 24 DIP1 S3 OFF ON S1 スイッチ S2 スイッチを押す毎に 8 、7...1...8 ステップと ステップ数が変化します スピーカー ここから音が鳴ります 23 DIP2 28 22 S2 DIP3 2 21 DIP4 18 ジャック スイッチ S2 緑 14 ミキサーやヘッドフォンに 押すと音がでます 接続することができます 10Hz を中心に変化 DIP6 16 ボリューム 回すと音の高さが変わります DIP5 17 DIP7 15 DIP8 +5 24 S3 スイッチ S3 青 押すと音がでます 1kHz を中心に変化 スイッチ S4 黄 れます。 15.625kHz を中心に変化 押すと音がでます The Breadboard Band 使用後は必ず電源を OFF にして保管してください S4 URL : www.breadboardband.org MAIL : info@breadboardband.org こちらの商品は完成品と 14 なっています mobileBB 02 ver.1.0.1 mobileBB The Breadboard Band Version 1.0.1 2000 The Breadboard Band ケンサーです IC PSoC CY8C29466 タクトスイッチ 1 3 2 1 2 1 4 1 1 1 OFF ON 電源 左から右に 8 ステップ分の 音を切り替えられます S1 DIP スイッチ S4 1 2 3 4 5 6 7 mobileBB 03 ver.1.0.0 ON/OFF スイッチ スイッチ 円 8 ステップのリズムシー URL : www.breadboardband.org MAIL : info@breadboardband.org 使用後は必ず電源を OFF にして保管してください テンポが DOWN します TA4805S Vdd 28 S1 47µF 0.1µF 2 C3 C1 SP1 02 C3 C1 26 mobileBB ボリュームでそれぞれの S1 47µF 0.1µF 8 2000 The Breadboard Band ンポ・ステップ数を変更 円 できます テンポが DOWN します TA4805S Vdd 28 2 0.1µF 27 S2 C2 8 スピーカー ここから音が鳴ります こちらの商品は完成品と ジャック なっています mobileBB ミキサーやヘッドフォンに 接続することができます ボリューム タクトスイッチ 電池 CR3032 電池ケース スピーカー   3.5 ジャック DIP8 S1 R7 1k R6 音階の出方が多少変わるかも しれません 10k スイッチを押すと光ります 調整用 つまみ 7 R5 10k T1 2sc1815Y LED IC1B LM358N LED1 押すと音がします 10kB 6 R8 スイッチ VR2 5 2 R9 1 8 2 1 1 1 1 1 1 1 1 1 1 C2 回すと音の高さが変わります VR1 10kA スピーカー ここから音が鳴ります 2 ジャック こちらの商品は完成品と LM358N 1k 半固定抵抗 DIP7 R4 IC DIP6 15 1µ 電解コンデンサ つまみ 1 3 IC1A R1 R2 セラミックコンデンサ 10k 1k 0.22μF 1μF LM358 10k B 10k A DIP5 mobileBB 02 ver.1.0.1 R3 抵抗器 DIP4 18 URL : www.breadboardband.org MAIL : info@breadboardband.org CR2032H 抵抗器 DIP3 21 The Breadboard Band 円 音階を演奏する楽器です DIP2 22 使用後は必ず電源を OFF にして保管してください 2000 Version 1.0.1 The Breadboard Band 波形を変調して、倍音で DIP1 23 14 G1 01 スイッチを押す毎に 8 、7...1...8 ステップと ステップ数が変化します 0.22µF   3.5 ジャック S2 C1 スピーカー スイッチ S4 24 テンポが UP します PSoC CY8C29466-24PXI 電池ケース S3 10k 電池 スイッチ 10k 電解コンデンサ TA4805S 0.1μF 47μF 単 3 乾電池 10k セラミックコンデンサ 10k 3端子レギュレータ 25 16 できます DIP スイッチ 4P S3 17 2 種類のリズム波形・テ ンポ・ステップ数を変更 26 SP1 03 スイッチ PSoC CY8C29466 タクトスイッチ 左から右に 8 ステップ分の 音を切り替えられます DIP PSoC CY8C29466-24PXI ケンサーです 1 3 DIP スイッチ 4P 2 TA4805S 3端子レギュレータ 1 セラミックコンデンサ 0.1μF 2 Version11.0.0 電解コンデンサ 47μF 電池 単 3 乾電池 4 電池ケース 1 スピーカー 1   3.5 ジャック 1 1 IC PSoC CY8C29466 タクトスイッチ 3 ボリューム 1 50k A 電池 単 3 乾電池 4 電池ケース 1 スピーカー 1   3.5 ジャック 1 IC ON/OFF 電源 S1 SP1 PSoC CY8C29466-24PXI 8 ステップのリズムシー OFF ON スイッチ スイッチ 円 SP1 02 R10 10k 10k ミキサーやヘッドフォンに 接続することができます なっています mobileBB The Breadboard Band URL : www.breadboardband.org MAIL : info@breadboardband.org mobileBB 01 ver.1.0.1 mobileBB mobileBB 02 2000 円 mobileBB mobileBB Version 1.0.1 OFF ON スイッチ S1 電源 ON/OFF
  4. 4. mobileBB Workshop DIY IC! US M 2012年7月28日13:30-18:30 /IAMAS RCIC BRANCH @ f.Labo The Breadboard Band(原田克彦、大石彰誠、斉田一樹)
  5. 5. Mozzi sound synthesis library for Arduino ‣Inventor: Tim Barrass
  http://sensorium.github.com/Mozzi/ ! ‣Arduinoから直接音をつくるライブラリ ! ‣オープンソースプロジェクト ! ‣一般的な音響合成で使われるオシレータ、ディレイ、フィルタ、エン ベロップを扱うことがでる ! ‣追加のシールド、外部回路をなしで音をつくれる* ! ‣パフォーマンスやインスタレーションのためのアルゴリズミック音 楽を生成 ! ‣センサをつないでインタラクティブに音を出力
  6. 6. Mozzi sound synthesis library for Arduino ‣^[xor]sysnth ‣true digital polyphonic synthesizer ‣http://www.standuino.eu/devices/instruments/xorsynth/
  7. 7. 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
  8. 8. 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/
  9. 9. Mozzi sound synthesis library for Arduino ‣Inventor: Tim Barrass
  http://sensorium.github.com/Mozzi/ ! ! ! ‣特長 ‣便利なオーディオツールキット:オシレータ、 ディレイ、フィル タ、エンベロープ ‣8-14ビットでサンプリングレート16384Hzのオーディオ出力モード ‣64Hz以上からのコントロール速度を変えられる ‣高速なADCとCPUに効率的なコードによって、スムーズなオーディ オ処理を実現 ‣すぐに書き換えられるサンプルスケッチ ‣あらかじめ用意されているウェーブテーブルとMozzi用にサウンド ファイルを変換してくれるスプリクト
  10. 10. 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が起動している場合は再起動
  11. 11. Mozziライブラリのファイル構造
  12. 12. 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() が使える

  13. 13. 高周波をカットするには
  14. 14. 高周波をカットするには
  15. 15. Mozziの構造 ex01_Skeleton.ino ! #include <MozziGuts.h> #define CONTROL_RATE 64 // Mozzi用ライブラリ //コントロールレートの定義(64がデフォルト) ! void setup() { startMozzi(CONTROL_RATE); //Mozziの初期設化、処理開始 } ! void updateControl() { // 制御処理コードをここに書く } ! int updateAudio() { // オーディオ処理コードをここに書く return 0; } ! void loop() { audioHook(); //音を出力するためのバッファ処理 }
  16. 16. 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(); //音を出力するためのバッファ処理 }
  17. 17. センサ入力で音をコントロールする 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の処理開始
  18. 18. センサ入力で音をコントロールする 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(); //音を出力するためのバッファ処理 }
  19. 19. センサ入力で音をコントロールする ‣ボリューム(可変抵抗器)のつなげ方 ‣横が削れている方が右
  20. 20. mobileBB shield for Mozzi mobileBBの最新作は mobileBB for Mozzi ! 2013/11/3 - 11/4 Maker Faire Tokyo 2013で発表 ! ! http://breadboardband.github.io/ mobileBBshield_for_Mozzi/ !
  21. 21. Arduinoで音を出す そもそも音って何よ?(Arduino・電子回路的な意味で) ! 電圧をいろいろと変えながら出す、それが音。 ! ↓波形。電圧がこんな風になれば音が出ます。 ! ! !
  22. 22. Arduinoで音を出すとは? 一番簡単な方法 ! tone使う ! tone(pin, frequency); ! ! ! 「スケッチブックの例」02.Digital - toneKeyboard - toneMelody - toneMultiple - tonePitchFollower
  23. 23. Arduinoで音を出すとは? toneで出る音 矩形波(0V と 5Vが交互に出る)
  24. 24. Arduinoで音を出すとは? ただ、これだとこういう波形は出せない
  25. 25. Arduinoで音を出すとは? じゃあどうすれば? ! Arduinoの中にデータとして波形を持つことはできてる。 ! uint8_t randomwave = { 0, 100, 22, 33, 58 }; ! このデータを電圧の信号に置き換えるのが D/A変換
  26. 26. Arduinoで音を出すとは? D/A変換 どうやって? ! 1. 専用のICを使う 2. ラダー抵抗 3. PWM
  27. 27. Arduinoで音を出すとは? 専用のICを使う ! 一般的なオーディオ機器ではこの方法 ! ! Good - 音質がよい - サンプリング周波数やビットレートが柔軟に設定できる ! Bad - それなりに部品代が増える - 当然面積も増える
  28. 28. Arduinoで音を出すとは? ラダー抵抗 ! 例 http://www.instructables.com/id/Arduino-Audio-Output/? lang=ja ! Good - 簡単 - 好きなビットレートにできる ! Bad - マイコンのポートをたくさん使う
  29. 29. Arduinoで音を出すとは? PWM ! ! Good - ポート1本 - 外付けの回路が少ない ! Bad - マイコンのパワーを食う
  30. 30. Arduinoで音を出すとは? PWMとは? ! Arduinoのポートはすべてデジタルで、0Vと5Vしか出せな い。 0Vと5Vの「比率」は変えることができる。 ! 0Vを表したい→ ずっと0V 5Vを表したい→ ずっと5V ! 2.5Vを表したい   0V 5V 3Vを表したい    0V 0V 5V 5V 5V !
  31. 31. Arduinoで音を出すとは? PWMとは?
  32. 32. Arduinoで音を出すとは? PWMとは? ! ArduinoでPWMを出すには? analogWrite ! ! もうこれがPWM! http://arduino.cc/en/Tutorial/PWM !
  33. 33. Arduinoで音を出すとは? PWM ! PWMは、電圧を比率にして出す ここまでOK 比率をどのくらいのスピード出すか?が問題になる。 ! 出てくる信号は、 出したい電圧の信号 + PWMをしている信号 ! ほんとうに欲しいのは 出したい電圧の信号
  34. 34. Arduinoで音を出すとは? PWM ! ほんとうに欲しい「出したい電圧」を手に入れるには、 PWMをしている信号を取り除く必要がある。 ! 条件 出したい電圧 が含んでいる周波数と PWMをしている信号の周波数が 重ならないこと。 ! http://arduino.cc/en/Reference/analogWrite ! おもいっきり音の周波数なので、このままでは使えない。
  35. 35. Arduinoで音を出すとは? PWM ! ArduinoのPWMを高速にして、オーディオと重ならなくす る方法 ! http://interface.khm.de/index.php/lab/experiments/ arduino-realtime-audio-processing/
  36. 36. シールド基板の製作
  37. 37. シールド基板の製作 ‣回路 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
  38. 38. Fritzingについて ‣Fritzing: http://fritzing.org/
  39. 39. Fritzingについて ‣ブレッドボードの配線図から回路図、基板設計図を生成で きるツール(基板 PCB CAD) ! ‣ドイツのポツダム応用科学大学のインタラクションデザイ ンラボ(Interaction Design Lab at the University of Applied Sciences Potsdam)でのオープンソース・プロ ジェクト ! ‣Arduinoユーザーが自分のプロトタイプのプロジェクトを プリント基板にする手助けとなるツール ! ‣基板デザイン ∼ 基板発注までの独自サービスを用意
  40. 40. Fritzingについて
  41. 41. Fritzingについて
  42. 42. Fritzingについて
  43. 43. Fritzing パーツエディタ ブレッドボード 回路図 基板パターン図
  44. 44. Fritzing 基板製造オーダー
  45. 45. Fritzingについて ‣ブレッドボードの配線図からはじめられる ! ! ‣Arduinoのプロジェクト、シールドのテンプレートが豊富 ! ! ‣オリジナル(カスタマイズ)の部品を追加 ‣svg(Scalable Vector Graphics)ファイルでデザイン ‣Illustrator等で描ける ‣外形線やシルクスクリーンのロゴやイメージも同様 ‣今回、秋月の3.5mm audio jackを作成 ! ‣入門編としてはおすすめの基板デザインツール !
  46. 46. Fritzing ∼ P板.com発注
  47. 47. 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で、特に特別な設定等なく、書き出したデータで基板発注ができた ! !
  48. 48. mobileBB shield for Mozzi よろしくお願いします。 ! twitter @BreadBoardBand ! ! Web http://www.breadboardband.org ! Github http://www.github.com/breadboardband

×