見出し画像

忙しい人の為のステッピングモーターで演奏する方法

はじめに

忙しい人でも秒でモーターを奏でられるようになります。
さあ、今日からあなたもモタニスト。

つかうもの

  1. ステッピングモーター(バイポーラ駆動)

  2. ブレッドボード

  3. ジャンパ線(オスtoオス)

  4. A4988

  5. Arduino UNO

  6. 12V電源

ソフトウェア

  1. Arduino IDE

  2. Domino

  3. hairless-midiserial

  4. MIDI Yoke


0.MIDI処理と送受信

0.1 プログラム

忙しいのですから書く暇なんてありません。
優秀な外国人のをさっさとコピペしましょう。
Arduino Code/MIDI Stepper V1にスケッチがあります。

今回の構成ではvoid setup()内69行目よりSerial.bigin(115200)のコメントアウトを外す(//を消す)と動作します。
(後に綴りますが、bigin(115200)等のBaud rateは、プログラムとhairless-midiserialで同一の設定にする必要があります。)

取り敢えずSerial.bigin(38400)にしとけば動きます。

pitches.hの追加もお忘れなく。

0.2 MIDI送受信

DominoとArduino間でのMIDIの送受信はUSBケーブル1本で行います。
その為の仮想MIDIケーブル,シリアル変換ソフト(MIDI yoke, hairless-midiserial)なのです。

0.3 Domino

MIDIはDominoから出力します。
環境設定(F12キー)から、MIDI-OUTデバイスを「out to MIDI Yoke:1」に設定しましょう。

0.4 hairless-midiserial

MIDI Inを「In From MIDI yoke:1」に設定しましょう。
次に、File→Preference→Serial Port SettingsからBaud rateの値を、プログラムの項目で述べたSerial.bigin(115200)の引数と同じにします。両者は同じ値でないと動作しません。
Serial port をArduino Unoに合わせれば、これでMIDIの送受信が可能となります。

使用の際は、プログラムを書き込みした後にブリッジをONにしてください。


1.配線と各ピンアサインの機能

1.1 A4988

ENABLEはLOWにすると有効になり、モーター軸の固定が解除されます。
注意:ENABLEを長時間無効(モーター軸を固定)にするとモーターが異常発熱します。初期状態では無効になっている事もご留意ください。

M1,M2,M3はマイクロステップ駆動の際に用います。滑らかな回転になり、M3が一番滑らかに回転します(使えば分かる)
C7以降の高音を奏でたい時はマイクロステップを使うと脱調せず、上手く演奏できます。
また、共振(音がカスゴミみたいになる)を回避するためにも便利です。
使う際はM1,M2,M3の何れかをVDDに繋げれば機能します。

RESETSLEEPは短絡させてください。
そういうものです。

しれっと可変抵抗もありますが、正直弄る必要ないです。
弄ることで共振が抑えられる場合があるかも。

1.2 配線

1.1に記したピンアサイン画像とプログラムとの睨めっこです。
取り合えず
STEP      →2
DIR         →5
ENABLE →8
この様にArduino繋げば安牌。

上記回路図より、電源関係は適当に配線して、A4988とモーターの接続はデータシート見とけば、最早完成。

ぶっちゃけコンデンサは要らん。

モーターのA相B相の線は、その製品のデータシート探せばわかる。
間違えると励磁の順番バラバラなって動かん。


完成

ちゃんちゃん。


補足

モーターのテスト用プログラム

#define STEP 2
#define DIR 5
void setup(){
  pinMode(STEP, OUTPUT);
  pinMode(DIR, OUTPUT);
}
void loop(){
digitalWrite(DIR, HIGH);//LOWで逆回転
digitalWrite(STEP, HIGH);
delayMicroseconds(2273);//440Hz
digitalWrite(STEP, LOW);
delayMicroseconds(2273);
}

この記事が気に入ったらサポートをしてみませんか?