Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

mobileBB shield for Mozzi

2,408 views

Published on

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

Published in: Self Improvement
  • Be the first to comment

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

×