Daftar Isi:

Mesin Drum Servo Arduino: 4 Langkah
Mesin Drum Servo Arduino: 4 Langkah

Video: Mesin Drum Servo Arduino: 4 Langkah

Video: Mesin Drum Servo Arduino: 4 Langkah
Video: SERVO ARDUINO DRUM 2024, Juli
Anonim
Image
Image

Ini adalah dua mesin drum atau robot yang dikendalikan mikro-servo dan Arduino Uno. Servo dipasang pada braket kayu berbentuk L yang dipegang pada snare drum dengan 4 magnet kuat. Lengan servo dibaut ke dua sumpit yang berfungsi sebagai stik drum. Ini cukup keras tetapi tidak terlalu keras. Hit yang lebih keras dapat diperoleh dengan menggunakan servos ukuran standar dan stik drum asli yang sedikit lebih berat. Tapi itu juga membutuhkan catu daya terpisah untuk servos. Dengan menggunakan mikro-servo, Arduino memasok arus yang cukup untuk memberi daya secara langsung tanpa catu daya terpisah.

Video menunjukkan upaya saya memprogram versi sederhana dari solo drum Wipeout. Tentu saja tidak pada 160 denyut per menit yang sebenarnya tetapi itu dapat dengan mudah diperoleh dengan menambahkan servo lain yang akan sangat keren. Saya belum menghitung berapa bpm teratas yang dapat diperoleh dengan menggunakan servo dan memang membutuhkan beberapa penundaan untuk mendapatkan stik drum dari posisi parkir ke kepala drum.

Irama yang dapat Anda ciptakan hanya dibatasi oleh imajinasi Anda dan mesin drum adalah pendamping yang lebih menarik untuk dimainkan daripada mesin drum digital, jika Anda seorang musisi.

Satu-satunya downside adalah kebisingan servo yang tidak terlalu terlihat meskipun audio kamera tampaknya cukup menonjol.

Langkah 1: Bangun Braket Servo

Bangun Braket Servo
Bangun Braket Servo
Bangun Braket Servo
Bangun Braket Servo

Braket ini terbuat dari beberapa potongan kayu lapis hobi yang saya miliki. Saya membuat bentuk-L dengan menyatukan dua bagian dengan braket L logam. Kemudian sebatang kayu kecil direkatkan ke strip atas untuk menahan dua servos.

Saya memiliki dua braket servo praktis yang saya pasang ke balok kayu.

Saya menggunakan 4 magnet neodymium untuk menahan braket ke snare drum.

Langkah 2: Hubungkan Servo ke Arduino Uno

Hubungkan Servo ke Arduino Uno
Hubungkan Servo ke Arduino Uno

Servos vcc (kawat tengah) menuju ke pin Arduino 5 v.

Kabel Ground ke ground Arduino.

Kabel sinyal masuk ke pin 6 dan 7.

Perisai servo akan membuatnya lebih mudah jika Anda memilikinya.

Langkah 3: Kode Arduino…

Di bawah ini adalah sketsa sederhana untuk memainkan Wipeout. Anda hanya perlu menyesuaikan posisi servo untuk pengaturan khusus Anda.

Selamat bersenang-senang!

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#sertakan "servo.h"

// drummer servo Jim Demello Juni 2018

Servo myservo1, myservo2;

int servoPin6 = 6; //servo

int servoPin7 = 7;

void myServo(int servoPosition, int servoNumber) {

if (servoNumber == 1) {

myservo1.write(servoPosition);

}

if (servoNumber == 2) {

myservo2.write(servoPosition);

}

}

void doOneEighthNote(int servoNumber, int beat) {

int delayVal = 60;

if (servoNumber == 1) {

if (mengalahkan) {mengalahkan = 10; // jika ketukan = 1 maka tambahkan sedikit lebih banyak servo ke bawah untuk pukulan yang lebih kuat

}

myServo(150 + ketukan, servoNumber); //turun

penundaan(delayVal);

myServo(100, servoNumber);//naik

penundaan(delayVal);

}

if (servoNumber == 2) {

jika (ketukan) ketukan = -10;

myServo(60 + ketukan, servoNumber); //turun

penundaan(delayVal);

myServo(80, servoNumber);//naik

penundaan(delayVal);

}

}

batalkan pengaturan()

{

// Serial.begin(9600);

myservo1.attach(servoPin6, 1000, 2000); // pasang servo pada pin 9 ke objek servo

myservo1.write(100);

myservo2.attach(servoPin7, 1000, 2000); // pasang servo pada pin 9 ke objek servo

myservo2.write(90);

}

lingkaran kosong() {

memusnahkan(); // menghapus rutinitas drum

//doOneEighthNote(2, 0);

penundaan (40);

}

batalkan penghapusan() {

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0); // parm pertama adalah nomor servo dan parm kedua dipukul (1=beat, 0=no beat)

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 0); doOneEighthNote(1, 0); doOneEighthNote(2, 1); doOneEighthNote(1, 0);

doOneEighthNote(2, 0); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

doOneEighthNote(2, 0); doOneEighthNote(1, 0); doOneEighthNote(2, 1); doOneEighthNote(1, 0);

doOneEighthNote(2, 0); doOneEighthNote(1, 0); doOneEighthNote(2, 1); doOneEighthNote(1, 0);

doOneEighthNote(2, 0); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0);

}

Direkomendasikan: