Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
例外設計における大罪
Takuto Wada
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
DockerとPodmanの比較
Akihiro Suda
TDD のこころ @ OSH2014
Takuto Wada
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
QtとC++でGUIプログラミング
seanchas_t
1
of
29
Top clipped slide
ArduinoでMidiコントローラーを作ろう
May. 16, 2014
•
0 likes
11 likes
×
Be the first to like this
Show More
•
12,760 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Devices & Hardware
ArduinoでMIDIフィジカルコントローラーを作ろう、というスライドです。
tadfmac
Follow
Advertisement
Advertisement
Advertisement
Recommended
いまさら聞けないDockerコンテナ超入門
VirtualTech Japan Inc./Begi.net Inc.
866 views
•
37 slides
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
14.4K views
•
133 slides
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
40.9K views
•
27 slides
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
28.7K views
•
96 slides
継続的インテグレーションとテストの話
Preferred Networks
9.9K views
•
46 slides
HTTP/2, QUIC入門
shigeki_ohtsu
46.9K views
•
71 slides
More Related Content
Slideshows for you
(20)
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
•
3.7K views
例外設計における大罪
Takuto Wada
•
66.4K views
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
•
395 views
DockerとPodmanの比較
Akihiro Suda
•
42.3K views
TDD のこころ @ OSH2014
Takuto Wada
•
15.6K views
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
•
82.5K views
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
•
1.7K views
QtとC++でGUIプログラミング
seanchas_t
•
57.3K views
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
•
112.6K views
集中型か分散型か
Mugen Fujii
•
2.1K views
大規模分散システムの現在 -- Twitter
maruyama097
•
31.2K views
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
•
1.2K views
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
•
51.4K views
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
•
12.6K views
Docker 9 tips~意外と知られていない日常で役立つ便利技
Masahito Zembutsu
•
3.2K views
Interviewtemplate ver1.00.ppt
Userinterview textbook
•
1.9K views
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
•
62.6K views
Ruby 勉強会 第42回 発表資料 IO について
Tomoya Kawanishi
•
4.8K views
std::pin の勘所
Hiroaki Goto
•
2.6K views
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
•
64.1K views
Viewers also liked
(20)
WebRTC/ORTCの最新動向まるわかり!
Yusuke Naka
•
22K views
Raspberry PiとPdでオリジナルのシンセを作る
Chikashi Miyama
•
17.7K views
Arduino MIDI Hack
Yoshitaka Kuwata
•
4.6K views
ソフトシンセを作りながら学ぶPythonプログラミング
Ransui Iso
•
33.4K views
Interactive Music II - SuperCollider入門
Atsushi Tadokoro
•
11.8K views
Interactive Music II SuperCollider入門 2 - 関数とUGen
Atsushi Tadokoro
•
4.8K views
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
Atsushi Tadokoro
•
5.2K views
WebRTC on Native App
WebRTCConferenceJapan
•
2.3K views
Pythonで作る俺様サウンドエフェクター
Ransui Iso
•
7.5K views
Arduino / ArduBlock の簡単なプログラムと回路の例
mitunaga
•
617K views
ブレッドボードの使い方と Arduino に簡単な回路をつける例
mitunaga
•
596.2K views
Arduino 入門
mitunaga
•
668.7K views
arduinoでeVY1 Shieldを歌わせてみた
ta9mar
•
12.1K views
Hipatia de Alejandría
Pablo Profesor
•
234 views
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
Atsushi Tadokoro
•
4.6K views
ORTCの仕様書をざっくり斜め読みする
Yusuke Naka
•
6.2K views
WebRTC Meetup Tokyo #3 - WebRTC Conference参加報告
satoru_tk
•
1.4K views
WebRTC meetup Tokyo 1
mganeko
•
4.2K views
フィジカルコンピューティング入門 USB-MIDIベースのPepper-Monakaを使う
Yoshitaka Kuwata
•
1.7K views
Interactive Music II ProcessingとSuperColliderの連携1
Atsushi Tadokoro
•
4.7K views
Advertisement
More from tadfmac
(13)
ブラウザで、なんちゃってIoT
tadfmac
•
161 views
BLE無線通信で使えるCHIRIMEN
tadfmac
•
287 views
Sensor
tadfmac
•
328 views
ちりめn for らずぱい3 おさわり会
tadfmac
•
346 views
Web Music Demo Party #1 LT
tadfmac
•
390 views
Githubについて
tadfmac
•
239 views
mi:muz開発入門
tadfmac
•
785 views
缶たたくやつのつくりかた
tadfmac
•
1.4K views
なんでこうなった?
tadfmac
•
945 views
Romo欲しい
tadfmac
•
1.3K views
モノとつないでWebを楽しくしよう
tadfmac
•
3K views
ち〜ん
tadfmac
•
3.1K views
Web musicハッカソンへ行こう!
tadfmac
•
669 views
Recently uploaded
(20)
★可查可存档〖制作贝勒大学文凭证书毕业证〗
fgfg45
•
2 views
220凯斯西储大学.pdf
dsadasd17
•
2 views
★可查可存档〖制作田纳西大学文凭证书毕业证〗
vvvvv24
•
2 views
#国外文凭办理Cardiff学位证成绩单
ronime8068zatcom
•
2 views
★可查可存档〖制作麦吉尔大学文凭证书毕业证〗
mmmm282537
•
2 views
#国外文凭办理DU学位证成绩单
losapab511ockdiaom
•
2 views
#学位证靠谱办科隆大学文凭证书全套
qghfsvkwiqiubridge
•
3 views
【澳洲MU毕业证】购买莫道克大学学位证成绩单
JhhhfGffh
•
3 views
#国外文凭办理Tulane学位证成绩单
losapab511ockdiaom
•
2 views
#国外留学文凭购买Warwick假毕业证书
fc2c0f2b1mymailol
•
0 views
#学位证靠谱办萨瓦文凭证书全套
qghfsvkwiqiubridge
•
2 views
★可查可存档〖制作圣文森山大学文凭证书毕业证〗
mmmm282537
•
2 views
《雷根斯堡大学毕业证|学位证书校内仿真版本》
hj123saf
•
2 views
26中央昆士兰大学.pdf
dsadasd17
•
3 views
#国外文凭办理DePaul学位证成绩单
losapab511ockdiaom
•
2 views
12伦斯勒理工学院.pdf
dsadasd17
•
2 views
#专业办证《Plymouth毕业证学位证原版精仿》
mibiri4418mevor
•
2 views
5cl.pdf
Viya18
•
3 views
#国外文凭办理萨尔大学学位证成绩单
08e9d7528d5drman
•
2 views
#国外留学文凭购买Auburn假毕业证书
14zw8z53qmm
•
0 views
Advertisement
ArduinoでMidiコントローラーを作ろう
Arduinoで作るMIDIコン 2014.5.17 @tadfmac 14年5月17日土曜日
自己紹介 @tadfmac http://soundcloud.com/tadfmac 実験音楽の人。自然音、インプロ、コンピュータを組み合わせた作品をつくる。 たまたま見に行ったMaker Faire Tokyo
2013で衝撃を受け、人生初の「ハンダゴ テ」を購入。Arduinoも2013/12月に購入。最初はArduinoでも何かを繋ぐ場合、 ハンダゴテを使うものだと思っていたが、どう使うか判らず呆然とする。 その後本を買い漁り、ブレッドボードとジャンパーのことを知る。 つまり、今楽しい盛り。 14年5月17日土曜日
MIDIコンとは? PCと繋いで音をぐりぐりやったりするアレ。 14年5月17日土曜日
MIDIのメリット 1. 音楽系ソフト(DAWなど)と直接繋いで遊べる 2. 実はブラウザとも繋がる
(Web MIDI API) 3. プロトコルが決まってる(制御が簡単) MIDIのデメリット 1. ATmega16U2の書き換えが必要 2. Arduino側でジャンパーピン刺すの忘れる 3. プロトコルが決まってる(制約が多い) FirmataとMIDI 14年5月17日土曜日
こんな感じになる USBケーブル 今回は最低限な感じで 14年5月17日土曜日
用意するモノ ジャンパーピン USBケーブル Arduino UNO R3 ブレッドボード、部品 Mac (Winでも出来ますが、今回 はMacで説明します) 14年5月17日土曜日
手順 1. ATmega16U2にUSB MIDIファームを書き込む 2.
回路を組む(ブレッドボードとArduinoを配線) 3. Arduinoのスケッチを書いてロード 完成! 14年5月17日土曜日
1. ATmega16U2にUSB MIDIファームを書き込む 14年5月17日土曜日
1. ATmega16U2に書き込むツールを用意 Mac: dfu-programmer Win:
ATMEL FLIP (今回説明しません) 2. USB-MIDIファームイメージを用意 3. DFUモードでファーム書き換え 4. スケッチ書き込みモードへ 1. ATmega16U2にUSB MIDIファームを書き込む 14年5月17日土曜日
1. ATmega16U2に書き込むツールを用意 Mac: dfu-programmer MacPorts
→バージョン古くてATmega16U2未対応 ソースからビルド →「面倒」 ビルド済バイナリ 1. ATmega16U2にUSB MIDIファームを書き込む http://temp.dfm.lrv.jp/dfuprogrammer/dfu-programmer-061bin.zip http://qiita.com/tadfmac/items/b941f7d4858386e2d1b0 14年5月17日土曜日
2. USB-MIDIファームイメージを用意 MORECAT_LAB様 『Midi Firmware
for Arduino Uno (Moco)』 http://morecatlab.akiba.coocan.jp/lab/index.php/ aruino/midi-firmware-for-arduino-uno-moco/ ダウンロード http://morecatlab.akiba.coocan.jp/lab/wp-content/uploads/2013/09/dualMocoLUFA.tgz 1. ATmega16U2にUSB MIDIファームを書き込む 14年5月17日土曜日
DFUモード ATmega16U2 ATmega328P スケッチ書き込み dfu-programmer 1. ATmega16U2にUSB
MIDIファームを書き込む 14年5月17日土曜日
3. DFUモードでファーム書き換え 1. ATmega16U2にUSB
MIDIファームを書き込む DFUモードへの入り方 1. ジャンパーする 2. USBつなぐ 3. (ArduinoのLEDが光った ら)ジャンパはずす 14年5月17日土曜日
3. DFUモードでファーム書き換え 1. ATmega16U2にUSB
MIDIファームを書き込む $ dfu-programmer atmega16u2 get まずはDFUモードに入れてるか確認 Bootloader Version: 0x20 (32) こんな感じに表示されたら入れてます。 14年5月17日土曜日
3. DFUモードでファーム書き換え 1. ATmega16U2にUSB
MIDIファームを書き込む $ dfu-programmer atmega16u2 erase 消去 dualMoco.hex書き込み $ dfu-programmer atmega16u2 flash dualMoco.hex 最後にreset $ dfu-programmer atmega16u2 reset 14年5月17日土曜日
4. スケッチ書き込みモードへ 1. ATmega16U2にUSB
MIDIファームを書き込む 2. ジャンパーを今度は 下記のようにする。 1. USBはずす 3. USBつなぐ 14年5月17日土曜日
dualMocoを書き込んだArduinoはジャンパとセットで 持ち歩こう! 1. ATmega16U2にUSB MIDIファームを書き込む ジャンパなし:MIDIデバイスになる
下記のようにジャンパ:スケッチ書き込み 14年5月17日土曜日
2. 回路を組む(ブレッドボードとArduinoを配線) 14年5月17日土曜日
回路 ※タクトスイッチが プルダウンなのは、 反省していますw 14年5月17日土曜日
3. Arduinoのスケッチを書いてロード 14年5月17日土曜日
#include <MIDI.h> // つなげる場所により変えよう const
int LED = 13; const int BUTTON = 8; const int VOLUME = 0; const int CDS = 1; // 回路の抵抗度合いなどに応じて数値は調整しよう #define note_MIN 0 #define note_MAX 127 #define vol_MIN 200 // volume保護用抵抗 #define vol_MAX 1023 // CdSを手で覆った時だけ使いたいのでこんな値 // 明るさによって変わるので調整しよう #define cds_MIN 820 #define cds_MAX 1023 // pitchbendは本当は -8192 - 8191 だけど // 元々の値が荒いので、ベンド幅を1/4にしとく。 // #define pb_MIN -2048 #define pb_MAX 2048 スケッチ 1 2 14年5月17日土曜日
// 初期化処理です void setup(){ pinMode(LED,OUTPUT); pinMode(BUTTON,INPUT); MIDI.begin(1); } //
これはセンサー入力のフラつき対策 boolean checkChange(int val1,int val2, int range){ int l,h; l = val2-range; h = val2+range; if((l > val1)||(h < val1)){ return true; } return false; } int button = 0; int note = 0; int cds = 0; boolean isplay = false; void loop(){ int nowbutton; int nownote; int nowcds; // Note Number change nownote = analogRead(VOLUME); nownote = map(nownote, vol_MAX, vol_MIN, note_MIN, note_MAX); if(checkChange(nownote,note,1)){ if(isplay){ MIDI.sendNoteOff(note,0,1); MIDI.sendNoteOn(nownote,100,1); } note = nownote; } スケッチ 3 4 14年5月17日土曜日
// Cds (Pitchbend) nowcds
= analogRead(CDS); if(nowcds > cds_MIN){ nowcds = map(nowcds, cds_MIN, cds_MAX, pb_MAX, pb_MIN); MIDI.sendPitchBend(nowcds,1); }else{ nowcds = 0; if(cds != nowcds){ MIDI.sendPitchBend(0,1); } } cds = nowcds; // Button (Note ON/OFF) nowbutton = digitalRead(BUTTON); if(nowbutton != button){ if(nowbutton == HIGH) { MIDI.sendNoteOn(note,100,1); isplay = true; digitalWrite(LED,HIGH); }else{ MIDI.sendNoteOff(note,0,1); isplay = false; digitalWrite(LED,LOW); } delay(50); } button = nowbutton; } スケッチ 5 6 14年5月17日土曜日
スケッチ ソースは下記にあります。 http://qiita.com/tadfmac/items/9136f47ae1eea99a4ef7 14年5月17日土曜日
ATmega16U2を書き換えると、ArduinoのUSB機能を変更 できる! MIDI以外にも、同じやり方でキーボードやマウスなどに もできるので、シリアル以外の可能性も広がる! http://mitchtech.net/arduino-usb-hid-keyboard/ まとめ 14年5月17日土曜日
Q&A @tadfmac http://soundcloud.com/tadfmac http://www.slideshare.net/tadfmac/arduinomidi 14年5月17日土曜日
Advertisement