Isi kandungan:

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

Video: Mesin Arduino Servo Drum: 4 Langkah

Video: Mesin Arduino Servo Drum: 4 Langkah
Video: Tutorial 7:Cara mengendalikan servo menggunakan Arduino 2024, November
Anonim
Image
Image

Ini adalah dua mesin mikro servo dan Arduino Uno yang dikendalikan atau robot. Servo dipasang pada braket kayu berbentuk L yang dipegang pada snare drum dengan 4 magnet kuat. Lengan servo dilekatkan pada dua sumpit yang berfungsi sebagai tongkat gendang. Ia agak kuat tetapi tidak terlalu kuat. Hit yang lebih kuat dapat diperoleh dengan menggunakan servo ukuran standard dan tongkat drum sebenar yang sedikit lebih berat. Tetapi itu juga memerlukan bekalan kuasa yang terpisah untuk servo. Dengan menggunakan mikro-servo, Arduino membekalkan arus yang mencukupi untuk memberi kuasa secara langsung tanpa bekalan kuasa yang berasingan.

Video menunjukkan percubaan saya untuk memprogram versi sederhana solo Wipeout drum. Sudah tentu ia bukan pada 160 denyut per minit yang sebenarnya tetapi itu dapat diperoleh dengan mudah dengan menambahkan servo lain yang akan cukup keren. Saya belum mengira berapa bpm teratas yang dapat diperoleh dengan menggunakan servo dan memerlukan sedikit kelewatan untuk mendapatkan tongkat drum dari kedudukannya yang diparkir ke kepala dram.

Irama yang anda boleh buat hanya dibatasi oleh imaginasi anda dan mesin dram adalah teman yang lebih menarik untuk dimainkan daripada mesin dram digital, jika anda seorang pemuzik.

Satu-satunya kelemahan adalah kebisingan servo yang tidak begitu ketara walaupun audio kamera nampaknya membunyikannya.

Langkah 1: Bina Kurungan Servo

Bina Kurungan Servo
Bina Kurungan Servo
Bina Kurungan Servo
Bina Kurungan Servo

Pendakap ini dibuat dari beberapa helai papan lapis hobi yang saya pakai. Saya membuat bentuk-L dengan mengikat dua keping bersama-sama dengan pendakap L logam. Kemudian sebatang kayu kecil terpaku pada jalur atas untuk menahan kedua servo tersebut.

Saya mempunyai dua pendakap servo yang berguna yang saya pasangkan ke bongkah kayu.

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

Langkah 2: Kabel Servo ke Arduino Uno

Kawat Servos ke Arduino Uno
Kawat Servos ke Arduino Uno

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

Kabel Ground ke tanah Arduino.

Wayar isyarat pergi ke pin 6 dan 7.

Perisai servo akan menjadikannya lebih mudah jika anda memilikinya.

Langkah 3: Kod Arduino…

Berikut adalah lakaran ringkas untuk bermain Wipeout. Anda hanya perlu menyesuaikan kedudukan servo untuk persediaan tertentu anda.

Berseronok!

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

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

#sertakan "servo.h"

// pemain dram Jim Demello Jun 2018

Servo myservo1, myservo2;

int servoPin6 = 6; // servo

int servoPin7 = 7;

batal myServo (int servoPosition, int servoNumber) {

jika (servoNumber == 1) {

myservo1.write (servoPosition);

}

jika (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

batal doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

jika (servoNumber == 1) {

jika (beat) {beat = 10; // jika pukul = 1 kemudian tambahkan sedikit servo ke bawah untuk hentakan yang lebih kuat

}

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

kelewatan (delayVal);

myServo (100, servoNumber); // ke atas

kelewatan (delayVal);

}

jika (servoNumber == 2) {

jika (mengalahkan) memukul = -10;

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

kelewatan (delayVal);

myServo (80, servoNumber); // ke atas

kelewatan (delayVal);

}

}

persediaan tidak sah ()

{

// Serial.begin (9600);

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

myservo1.write (100);

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

myservo2.write (90);

}

gelung kosong () {

penghapusan (); // wipeout drum rutin

// doOneEighthNote (2, 0);

kelewatan (40);

}

penghapusan batal () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // parm pertama adalah nombor servo dan parm kedua adalah beat (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);

}

Disyorkan: