Sadržaj:

Arduino Servo bubanj stroj: 4 koraka
Arduino Servo bubanj stroj: 4 koraka

Video: Arduino Servo bubanj stroj: 4 koraka

Video: Arduino Servo bubanj stroj: 4 koraka
Video: BRUCE servo dikiş makine motoru hız ayarı 2024, Srpanj
Anonim
Image
Image

Ovo je jednostavan dva mikro-servo i Arduino Uno upravljani bubanj ili robot. Servomotori su montirani na drveni držač u obliku slova L koji se drži za snare bubanj s 4 snažna magneta. Servo krakovi su pričvršćeni vijcima na dvije štapiće koji služe kao štapići za bubanj. Prilično je glasno, ali ne preglasno. Mnogo glasniji hitovi mogli bi se postići korištenjem servo servera standardnih veličina i pravih bubnjeva koji su prilično teži. Ali to bi također zahtijevalo zasebno napajanje za servomotore. Koristeći mikro-servosisteme, Arduino isporučuje dovoljno struje za izravno napajanje bez zasebnog napajanja.

Video prikazuje moj pokušaj programiranja jednostavne verzije solo bubnja Wipeout. Naravno da to nije stvarnih 160 otkucaja u minuti, ali to bi se lako moglo dobiti dodavanjem još jednog servo -a što bi bilo super. Nisam izračunao koji se najveći broj okretaja u minuti može postići korištenjem servo uređaja i zahtijeva određeno kašnjenje u prebacivanju palice s parkiranog položaja na glavu bubnja.

Ritmovi koje možete stvoriti ograničeni su samo vašom maštom, a bubnjarski stroj zanimljiviji je suigrač za sviranje od digitalnog bubnjarskog stroja, ako ste glazbenik.

Jedini nedostatak je servo buka koja nije toliko uočljiva, iako se čini da je zvuk kamere prilično uočljiv.

Korak 1: Izgradite servo nosač

Napravite servo nosač
Napravite servo nosač
Napravite servo nosač
Napravite servo nosač

Ovaj nosač izrađen je od nekih traka šperploče za hobije koje sam imao pri ruci. Napravio sam L-oblik spajanjem dva komada zajedno s metalnim L-nosačem. Zatim je mali drveni blok zalijepljen na gornju traku kako bi držao dva serva.

Imao sam dva zgodna servo držača koje sam pričvrstio na drveni blok.

Koristio sam 4 neodimijska magneta za držanje nosača na dobošu.

Korak 2: Priključite servosisteme na Arduino Uno

Spojite servosisteme na Arduino Uno
Spojite servosisteme na Arduino Uno

Servos vcc (srednja žica) ide na Arduino 5 v pinove.

Žice za uzemljenje na Arduino uzemljenje.

Signalne žice idu na pinove 6 i 7.

Servo štit bi vam dodatno olakšao ako ga imate.

Korak 3: Arduino kod …

Ispod je jednostavna skica za reprodukciju Wipeout -a. Morate samo prilagoditi položaje serva za vaše posebno postavljanje.

Zabavi se!

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

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

#include "servo.h"

// servo bubnjar Jim Demello lipanj 2018

Servo myservo1, myservo2;

int servoPin6 = 6; //servo

int servoPin7 = 7;

void myServo (int servoPosition, int servoNumber) {

if (broj serva == 1) {

myservo1.write (servoPosition);

}

if (broj serva == 2) {

myservo2.write (servoPosition);

}

}

void doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

if (broj serva == 1) {

if (beat) {beat = 10; // ako je beat = 1, dodajte još malo servo za jači udarac

}

myServo (150 + otkucaja, broj serva); // dolje

kašnjenje (delayVal);

myServo (100, broj serva); // gore

kašnjenje (delayVal);

}

if (broj serva == 2) {

if (beat) beat = -10;

myServo (60 + otkucaja, broj serva); // dolje

kašnjenje (delayVal);

myServo (80, broj serva); // gore

kašnjenje (delayVal);

}

}

void setup ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // priključuje servo na pin 9 na servo objekt

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // priključuje servo na pin 9 na servo objekt

myservo2.write (90);

}

void loop () {{100} {101}

obrisati(); // brisanje rutine bubnja

// doOneEighthNote (2, 0);

kašnjenje (40);

}

void wipeout () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // prvi parm je servo broj, a drugi parm je bitan (1 = otkucaj, 0 = bez otkucaja)

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);

}

Preporučeni: