中国の激安Arduinoを買ってみた。Arduinoでmidi音源を鳴らしてみた。
格安Arduino動いたよ〜! pic.twitter.com/1ZuYBJBQdT
— カイバ (@kaiba) 2016年8月6日
Nano 5枚で1500円(300円/枚)、UNOが400円!
この値段なら気軽に使えそう!
2016年の情報
安チップのため、Arduino IDEで認識するために、ドライバを別途入れる必要がありました。
OSX Elcapitan、Arduino IDE 1.6.10で動きました。
void setup() {
// initialize digital pin 13 as an output.
pinMode(2, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
delay(150); // wait for a second
digitalWrite(2, LOW); // turn the LED off by making the voltage LOW
delay(150); // wait for a second
}
このようなコードを書き、D2に抵抗とLEDをさしてLチカを確認した。
13番PINを使うとボード上のLEDがLチカします。
- ボードはArduino Nano
- プロセッサは ATmega328p(old bootloader)を使用する必要があった
2026年の情報: midiを鳴らしたい
10年後に更新することがあろうとは。2026年の情報を追記します。
なんでArduinoをいじりだしたかというとmidiをならしたかったからです。
midiは簡単ですね。
M1 macでボードをNano、ポートをお使いのUSB、プロセッサは ATmega328p(old bootloader)で動作しました。
Geminiにコードを書いてもらいました。
// MIDIのチャンネル指定(0 = チャンネル1)
byte midiCh = 0;
void setup() {
// MIDI標準ボーレート
Serial.begin(31250);
}
void loop() {
for (int note = 30; note <= 72; note++) {
// ド、レ、ミ、ファ、ソ、ラ、シ、ドの音階(半音含む)を順番に
// ピアノの白い鍵盤だけにするなら、特定の数値のみ選ぶ必要があります
noteOn(0x90 | midiCh, note, 0x45); // 音を鳴らす(ベロシティ69)
delay(500); // 0.5秒待つ
noteOn(0x80 | midiCh, note, 0x00); // 音を止める
}
delay(1000); // 1周したら1秒休み
}
// MIDI信号を送るための関数
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(cmd); // ステータスバイト(Note On/Off + チャンネル)
Serial.write(pitch); // ノート番号(音の高さ)
Serial.write(velocity); // ベロシティ(音の強さ)
}
midiケーブルを切断しまして、Arduinoにはんだ付けします。
- midi ピン4: 220Ωの抵抗を介して Arduinoの 5V へ
- midi ピン5: 220Ωの抵抗を介して Arduinoの TX (D1) へ
- midi ピン2: Arduinoの GND へ(シールド線)
動いた〜! 本当にいい時代になりましたね。
