Indholdsfortegnelse:

Studio trommer: 5 trin
Studio trommer: 5 trin

Video: Studio trommer: 5 trin

Video: Studio trommer: 5 trin
Video: Tim Holtz Rotary Media Trimmer My Review 2024, November
Anonim
Studio trommer
Studio trommer

Trommeslagere ville bruge timer og timer på at øve… Men ikke alle kan have en tromme derhjemme: plads og støj er et stort problem!

Af denne grund ønskede vi at oprette et bærbart og stille trommesæt, som du kunne spille derhjemme.

Denne trommesæt er meget let at bruge, du skal bare ramme puderne, og det vil lyde som en rigtig tromme! Det leveres også med et display, hvor du kan se, hvilken pude du slår på. Og hvis du vil bruge den i en stilhedstilstand, skal du bare tilslutte dine hovedtelefoner til den bærbare computer!

Trin 1: Hvad skal du bruge

MATERIALE

  • Arduino Uno
  • Brødbræt
  • Noget ledning
  • 5x piezoer
  • 5x 1M Ohm modstande
  • 5 krukke låg
  • Eva skum
  • Skumplade

PROGRAMMER:

  • Arduino IDE
  • Forarbejdning

*For at downloade ovenstående programmer til din computer skal du følge nedenstående links:

  • https://www.arduino.cc/en/main/software
  • https://www.arduino.cc/en/main/software

Trin 2: Saml kredsløb

Saml kredsløb
Saml kredsløb
Saml kredsløb
Saml kredsløb

Først og fremmest skal vi lodde til piezoer (GND til den gule del og den analoge stifttråd til den hvide del af piezo).

Vi vil bruge et brødbræt til at forbinde alt.

Tilslut modstanden og piezoens ledninger som vist i diagrammet ovenfor. Tilslut derefter GND -ledningen til brødbrættet til GND på Arduino. Tilslut til sidst hver ledning i piezoen til en analog pin på din Arduino som vist herunder.

Piezos tilsluttet analoge ben:

  • Caixa = A0;
  • Charles = A1;
  • Tomtom = A2;
  • Crash = A3;
  • Bombo = A4;

Trin 3: Programmer det

Programmer det
Programmer det

Vi besluttede at oprette vores eget display til trommesættet i stedet for at bruge et forudindstillet program. Vi har brugt Processing til dette.

Vi har programmeret det, så når en piezo rammes, lyder lyden fra den tilsvarende tromle. Derudover lyser det tilsvarende trommemønster på skærmen.

Du skal importere behandlingslyd og behandle serielle biblioteker.

Glem ikke at tilføje trommelyde til en datamappe!

ARDUINO KODE

// PIEZOS ER TILSLUTTET TIL ANALOGSTIFTER

const int caixa = A0;

const int charles = A1;

const int tomtom = A2;

const int crash = A3;

const int bombo = A4;

const int tærskel = 100; // tærskelværdi for at bestemme, hvornår den detekterede lyd er et bank eller ej

// LÆS OG OPBEVAR VÆRDIEN LÆS FRA SENSORPINDE

int caixaReading = 0;

int charlesReading = 0;

int tomtomReading = 0;

int crashReading = 0;

int bomboReading = 0;

ugyldig opsætning () {

Serial.begin (9600); // brug den serielle port

}

void loop () {

// læs sensoren og gem den i den variable sensorLæsning:

caixaReading = analogRead (caixa);

// hvis sensoraflæsningen er større end tærsklen:

hvis (caixaReading> = tærskel) {

// HVIS DU HITTER CAIXA, SEND 0 TIL BEHANDLING

Serial.print ("0");

Serial.println (caixaReading);

}

charlesReading = analogRead (charles);

if (charlesReading> = tærskel) {

// HVIS DU HITTER CHARLES, SEND 1 til BEHANDLING

Serial.print ("1");

Serial.println (caixaReading);

}

tomtomReading = analogRead (tomtom);

hvis (tomtomReading> = tærskel) {

// HVIS DU HITTER CAIXA, SEND 2 TIL BEHANDLING

Serial.print ("2");

Serial.println (tomtomReading);

}

crashReading = analogRead (crash);

if (crashReading> = tærskel) {

// HVIS DU HITTER CAIXA, SEND 3 TIL BEHANDLING

Serial.print ("3");

Serial.println (crashReading);

}

bomboReading = analogRead (bombo);

hvis (bomboReading> = 15) {

// HVIS DU HITTER CAIXA, SEND 4 TIL BEHANDLING

Serial.print ("4");

Serial.println (bomboReading);

}

forsinkelse (10); // forsinkelse for at undgå overbelastning af den serielle portbuffer

}

BEHANDLINGSKODE

// IMPORTLYD OG SERIEBiblioteker

import behandling. lyd.*;

import behandling. serie.*;

Seriel myPort; // Opret objekt fra seriel klasse

String val; // Data modtaget fra den serielle port

// TROMMELYDE

SoundFile caixa;

SoundFile charles;

SoundFile tomtom;

SoundFile nedbrud;

SoundFile bombo;

// DRUMS STUDIO BILLEDER

PImage img0;

PImage img1;

PImage img2;

PImage img3;

PImage img4;

PImage img5;

PImage img6;

// DRUMS STUDIO WAVES VARIABLES

flyde n = 0;

float n2 = 1;

float n3 = 2;

float n4 = 3;

flyde n5 = 4;

flyde y = 0;

float y2 = 1;

float y3 = 2;

float y4 = 3;

float y5 = 4;

ugyldig opsætning ()

{

// ÅBEN HVAD PORT ER DEN DU BRUGER

String portName = Serial.list () [0]; // ændre 0 til en 1 eller 2 osv. for at matche din port

myPort = ny Serial (dette, portnavn, 9600);

// DRUMS STUDIO CONSOLA

størrelse (720, 680);

baggrund (15, 15, 15);

strokeWeight (2);

// LÆS TROMLE STUDIO BILLEDER

img0 = loadImage ("drumsstudio.png");

img1 = loadImage ("res.png");

img2 = loadImage ("caixa.png");

img3 = loadImage ("charles.png");

img4 = loadImage ("tomtom.png");

img5 = loadImage ("crash.png");

img6 = loadImage ("bombo.png");

// LÆS LYDE

caixa = ny SoundFile (denne, "caixa.aiff");

charles = ny SoundFile (denne, "charles.aiff");

tomtom = ny SoundFile (denne, "tomtom.aiff");

crash = ny SoundFile (dette, "crash.aiff");

bombo = ny SoundFile (denne, "bombo.aiff");

}

ugyldig trækning ()

{

// TITULO DRUMS STUDIO

billede (img0, 125, 0);

// BØLGER TEGNING

hvis (y> 720) // Start bølgerne igen

{

y = 0;

y2 = 1;

y3 = 2;

y4 = 3;

y5 = 4;

}

fyld (0, 10);

ret (0, 0, bredde, højde);

// Dejamos fylder et blanco para

// dibujar la bola

fyld (255);

slagtilfælde (250, 255, 3);

punkt (y, (højde-40) + sin (n) * 30);

n = n + 0,05;

y = y + 1;

slagtilfælde (250, 255, 3);

punkt (y2, (højde-40) + cos (n2) * 30);

n2 = n2 + 0,05;

y2 = y2 + 1;

slagtilfælde (250, 255, 3);

punkt (y3, (højde-40) + sin (n3) * 30);

n3 = n3 + 0,05;

y3 = y3 + 1;

slagtilfælde (250, 255, 3);

punkt (y4, (højde-40) + cos (n4) * 30);

n4 = n4 + 0,05;

y4 = y4 + 1;

slagtilfælde (250, 255, 3);

punkt (y5, (højde-40) + sin (n5) * 30);

n5 = n5 + 0,05;

y5 = y5 + 1;

// DIBUJO BATERIA SIN NINGUNA PARTE ILUMINADA

billede (img1, 0, 80);

// GØR UDGANG FOR HVER INDGANG

hvis (myPort.available ()> 0)

{// Hvis data er tilgængelige, val = myPort.readStringUntil ('\ n'); // læs den og gem den i val

println (val);

String list = split (val, ','); // Åbn en liste for at tage hver inputværdi

hvis (liste! = null)

{

if (liste [0].equals ("0")) {// hvis du rammer caixa

caixa.play (); // Afspil caixa -lyd

image (img2, 0, 80); // Caixa belyses på skærmen

println ("caixa"); // udskriv det i konsollen

} ellers hvis (liste [0].equals ("1")) {// hvis du rammer charles

charles.play (); // Afspil charles -lyd

image (img3, 0, 80); // Charles er belyst på skærmen

println ("charles"); // udskriv det i konsollen

} ellers hvis (liste [0].equals ("2")) {// Hvis du rammer tomtom

tomtom.play (); // Afspil tomtom -lyd

image (img4, 0, 80); // Tomtom er belyst på skærmen

println ("tomtom"); // udskriv det i konsollen

} ellers hvis (liste [0].equals ("3")) {// Hvis du ramte nedbruddet

crash.play (); // Afspil crashlyd

billede (img5, 0, 80); // Crash belyses på skærmen

println ("nedbrud"); // udskriv det i konsollen

} ellers hvis (liste [0].equals ("4")) {// hvis du ramte bomben

bombo.play (); // Afspil bombo -lyd

billede (img6, 0, 80); // Bombo lyser på skærmen

println ("bombo"); // udskriv det i konsollen

}

}

}

}

Trin 4: Byg det

Byg den
Byg den
Byg den
Byg den
Byg den
Byg den
Byg den
Byg den

Til realisering af prototypen har vi

brugte hverdagens elementer til at forenkle processen, men altid på udkig efter funktionalitet og en god finish.

Det første trin var at svejse kablerne til den piezoelektriske, skære disse til en tilstrækkelig længde til at have frihed, når vi anbragte batteriet på bordet, eller hvor vi skulle til at øve.

Efter nogle undersøgelser observerede vi, at det var vigtigt, at puden optimalt overførte vibrationen af hver påvirkning til den piezoelektriske, så materialer som træ eller plast blev kasseret. Endelig valgte vi at bruge metal låg til dåsemad, der opfylder deres funktion og har et passende udseende til deres formål.

Forsøg med trommestikkerne og som forventet var påvirkningerne for støjende og flyttede væk fra løsningen af en tavs tromler. For at løse det dækker vi overfladen med et Eva -skum, skåret til dimensionerne af lågets midterkreds. Det er limet med dobbeltsidet tape tyndt nok, så aflastningen ikke er mærkbar, når der spilles. Da kanten af lågene stadig lavede en irriterende støj, der forhindrede os i at spille behageligt, lagde vi et par små dråber smeltelim på kanten for at forhindre, at puden glider og blødgør hver stød så meget som muligt.

For at forhindre, at de fire puder spredes, mens de rørte ved, sluttede vi dem parvis ved hjælp af en gevindstang, der kom ind fra siden, fastgjort indefra med en lille møtrik. Problemet da vi begyndte at spille var, at da det var et metallisk materiale, overførte det vibrationerne fra den ene pad til den anden, så da vi spillede den ene, lød hans partner på samme tid.

Endelig fjernede vi stængerne og så, at det var nok og endnu mere praktisk at bruge selve piezokablet som en forening.

Med hensyn til pedalen havde vi den første idé om at holde piezo mellem en sandwich; for at undgå piezo's direkte påvirkning mod jorden. For at gøre dette limede vi piezoen på en træplade og limede en anden PVC -plade af samme størrelse, hvortil vi lavede en lille revne, der letter og rummer både piezoen og kablet.

Først brugte vi PVC til begge plader, men efter flere tests indså vi, at dette materiale absorberede for meget slag og overførte det til piezo.

For at undgå at have en pedal løs og bevæge sig, mens du træder, besluttede vi at placere et gummibånd mellem sandwich for at holde pedalen til vores fod og sikre hvert slag på tromlen.

Endelig, for at opnå en bedre finish, byggede vi selv en lille kasse, der husede protoboardet og arduinoen. Det er her, de 5 kabler går ind gennem den ene side og gør det muligt at tilslutte USB -kablet via den anden. Den er monteret i sort fjerkarton, for nem håndtering og for at fortsætte med sort -hvid æstetik af hele prototypen.

Anbefalede: