Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Trommeslagere ville bruke timer og timer på å trene … Men ikke alle kan ha en tromme hjemme: plass og støy er et stort problem!
Av denne grunn ønsket vi å lage en bærbar og stille trommesett som du kan spille hjemme.
Denne trommesettet er veldig enkelt å bruke, du må bare slå på putene, og det vil høres ut som en ekte tromme! Den kommer også med en skjerm hvor du kan se hvilken pute du slår på. Og hvis du vil bruke den i stillhetsmodus, er det bare å koble hodetelefonene til den bærbare datamaskinen!
Trinn 1: Hva du trenger
MATERIALE
- Arduino Uno
- Brødbrett
- Noen ledninger
- 5x piezoer
- 5x 1M Ohm motstander
- 5 glasslokk
- Eva skum
- Skumbrett
PROGRAMMER:
- Arduino IDE
- Behandling
*For å laste ned programmene ovenfor til datamaskinen din, følg koblingene nedenfor:
- https://www.arduino.cc/en/main/software
- https://www.arduino.cc/en/main/software
Trinn 2: Sett sammen kretsen
Først av alt må vi lodde til piezos (GND til den gule delen og den analoge pin -ledningen til den hvite delen av piezo).
Vi vil bruke et brødbrett for å koble alt sammen.
Koble motstanden og ledningene til piezo som vist i diagrammet ovenfor. Koble deretter GND -ledningen til brødbrettet til GND på Arduino. Til slutt kobler du hver ledning i piezoen til en analog pinne på Arduino som vist nedenfor.
Piezos koblet til analoge pinner:
- Caixa = A0;
- Charles = A1;
- Tomtom = A2;
- Krasj = A3;
- Bombo = A4;
Trinn 3: Programmer det
Vi bestemte oss for å lage vår egen skjerm for trommesettet i stedet for å bruke et forhåndsinnstilt program. Vi har brukt Processing for dette.
Vi har programmert det slik at når en piezo treffes, vil lyden til den tilhørende trommelen høres. I tillegg lyser det tilsvarende trommelmønsteret på skjermen.
Du må importere behandlingslyd og behandle serielle biblioteker.
Ikke glem å legge trommelydene til en datamappe!
ARDUINO -KODE
// PIEZOS ER TILKOBLET TIL ANALOG PINNER
const int caixa = A0;
const int charles = A1;
const int tomtom = A2;
const int krasj = A3;
const int bombo = A4;
const int terskel = 100; // terskelverdi for å bestemme når den oppdagede lyden er et bank eller ikke
// LES OG OPPBEVAR VERDIEN LES FRA SENSORPINER
int caixaReading = 0;
int charlesReading = 0;
int tomtomReading = 0;
int crashReading = 0;
int bomboReading = 0;
ugyldig oppsett () {
Serial.begin (9600); // bruk serieporten
}
void loop () {
// les sensoren og lagre den i den variable sensoren Lesing:
caixaReading = analogRead (caixa);
// hvis sensoravlesningen er større enn terskelen:
if (caixaReading> = terskel) {
// HVIS DU HITTER CAIXA, SEND 0 TIL BEHANDLING
Serial.print ("0");
Serial.println (caixaReading);
}
charlesReading = analogRead (charles);
if (charlesReading> = terskel) {
// HVIS DU HITTER CHARLES, SEND 1 TIL BEHANDLING
Serial.print ("1");
Serial.println (caixaReading);
}
tomtomReading = analogRead (tomtom);
if (tomtomReading> = terskel) {
// HVIS DU HITTER CAIXA, SEND 2 TIL BEHANDLING
Serial.print ("2");
Serial.println (tomtomReading);
}
crashReading = analogRead (krasj);
if (crashReading> = terskel) {
// HVIS DU SLÅR CAIXAEN, SEND 3 TIL BEHANDLING
Serial.print ("3");
Serial.println (crashReading);
}
bomboReading = analogRead (bombo);
if (bomboReading> = 15) {
// HVIS DU SLÅR CAIXAEN, SEND 4 TIL BEHANDLING
Serial.print ("4");
Serial.println (bomboReading);
}
forsinkelse (10); // forsinkelse for å unngå overbelastning av den serielle portbufferen
}
BEHANDLINGSKODE
// IMPORTLYD OG SERIEBibliotek
import behandling. lyd.*;
import behandling. serie.*;
Seriell myPort; // Lag objekt fra serieklassen
String val; // Data mottatt fra serieporten
// TROMMELYDER
SoundFile caixa;
SoundFile charles;
SoundFile tomtom;
SoundFile -krasj;
SoundFile bombo;
// DRUMS STUDIO BILDER
PImage img0;
PImage img1;
PImage img2;
PImage img3;
PImage img4;
PImage img5;
PImage img6;
// DRUMS STUDIO WAVES VARIABLES
flyte n = 0;
flyte n2 = 1;
flyte n3 = 2;
flyte n4 = 3;
flyte n5 = 4;
flyte y = 0;
flyte y2 = 1;
flyte y3 = 2;
flyte y4 = 3;
flyte y5 = 4;
ugyldig oppsett ()
{
// ÅPEN HVER PORT ER DEN DU BRUKER
String portName = Serial.list () [0]; // endre 0 til 1 eller 2 osv. for å matche porten din
myPort = ny Serial (dette, portnavn, 9600);
// DRUMS STUDIO CONSOLA
størrelse (720, 680);
bakgrunn (15, 15, 15);
slagvekt (2);
// LAST TRUMMESTUDIO BILDER
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");
// LADE LYDER
caixa = ny SoundFile (dette, "caixa.aiff");
charles = ny SoundFile (dette, "charles.aiff");
tomtom = ny SoundFile (dette, "tomtom.aiff");
crash = ny SoundFile (dette, "crash.aiff");
bombo = ny SoundFile (denne, "bombo.aiff");
}
ugyldig trekning ()
{
// TITULO DRUMS STUDIO
bilde (img0, 125, 0);
// BØLGER TEGNING
hvis (y> 720) // Start bølgene igjen
{
y = 0;
y2 = 1;
y3 = 2;
y4 = 3;
y5 = 4;
}
fyll (0, 10);
rett (0, 0, bredde, høyde);
// Dejamos fyller en blanco para
// dibujar la bola
fyll (255);
slag (250, 255, 3);
punkt (y, (høyde-40) + sin (n) * 30);
n = n + 0,05;
y = y + 1;
slag (250, 255, 3);
punkt (y2, (høyde-40) + cos (n2) * 30);
n2 = n2 + 0,05;
y2 = y2 + 1;
slag (250, 255, 3);
punkt (y3, (høyde-40) + sin (n3) * 30);
n3 = n3 + 0,05;
y3 = y3 + 1;
slag (250, 255, 3);
punkt (y4, (høyde-40) + cos (n4) * 30);
n4 = n4 + 0,05;
y4 = y4 + 1;
slag (250, 255, 3);
punkt (y5, (høyde-40) + sin (n5) * 30);
n5 = n5 + 0,05;
y5 = y5 + 1;
// DIBUJO BATERIA SIN NINGUNA PARTE ILUMINADA
bilde (img1, 0, 80);
// LAG UTGANGER FOR HVER INNGANG
hvis (myPort.available ()> 0)
{// Hvis data er tilgjengelig, val = myPort.readStringUntil ('\ n'); // les den og lagre den i val
println (val);
String list = split (val, ','); // Åpne en liste for å ta hver inngangsverdi
hvis (liste! = null)
{
if (list [0].equals ("0")) {// hvis du treffer caixa
caixa.play (); // Spill caixa -lyd
image (img2, 0, 80); // caixa belyses på skjermen
println ("caixa"); // skriv den ut i konsollen
} annet hvis (liste [0].equals ("1")) {// hvis du treffer charles
charles.play (); // Spill charles -lyd
image (img3, 0, 80); // Charles er opplyst på skjermen
println ("charles"); // skriv den ut i konsollen
} annet hvis (liste [0].equals ("2")) {// Hvis du treffer tomtom
tomtom.play (); // Spill tomtom -lyd
image (img4, 0, 80); // Tomtom lyser opp på skjermen
println ("tomtom"); // skriv den ut i konsollen
} annet hvis (liste [0].equals ("3")) {// Hvis du traff krasjen
crash.play (); // Spill av krasjlyd
bilde (img5, 0, 80); // Crash lyser på skjermen
println ("krasj"); // skriv den ut i konsollen
} annet hvis (liste [0].lik ("4")) {// hvis du traff bomben
bombo.play (); // Spill bombo -lyd
bilde (img6, 0, 80); // Bombo lyser på skjermen
println ("bombo"); // skriv den ut i konsollen
}
}
}
}
Trinn 4: Bygg den
For å realisere prototypen har vi
brukte hverdagslige elementer for å forenkle prosessen, men ser alltid etter funksjonalitet og en god finish.
Det første trinnet var å sveise kablene til den piezoelektriske, kutte disse til en tilstrekkelig lengde for å ha frihet når du arrangerer batteriet på bordet eller hvor vi går for å øve.
Etter en del undersøkelser observerte vi at det var viktig at puten optimalt overførte vibrasjonen av hvert slag til den piezoelektriske, slik at materialer som tre eller plast ble kastet. Til slutt valgte vi å bruke metalllokk til hermetikk, som samsvarer med deres funksjon og har et passende utseende for formålet.
Prøver med trommestikkene og som forventet, var støtene for bråkete og flyttet bort fra løsningen på en stille trommer. For å løse det dekker vi overflaten med et Eva -skum, kuttet til dimensjonene til lokkets sentrale omkrets. Den er limt med dobbeltsidig tape tynn nok til at lettelsen ikke merkes når du spiller. I tillegg, ettersom kanten på lokkene fortsatt gjorde en irriterende støy som forhindret oss i å spille komfortabelt, la vi noen små dråper smeltelim på kanten for å forhindre at puten glir og mykner hvert slag så mye som mulig.
For å forhindre at de fire putene sprer seg mens de berøres, har vi samlet dem i par ved hjelp av en gjenget stang som kom inn fra siden, festet fra innsiden med en liten mutter. Problemet da vi begynte å spille var at siden det var et metallisk materiale, overførte det vibrasjonene fra den ene puten til den andre, så når vi spilte en, hørte partneren hans samtidig.
Til slutt fjernet vi stengene og så at det var nok og enda mer praktisk å bruke selve piezokabelen som en forening.
Når det gjelder pedalen, hadde vi den første ideen om å holde piezo mellom en sandwich; for å unngå direkte påvirkning av piezo mot bakken. For å gjøre dette limte vi piezoen på en treplate og limte en annen PVC -plate av samme størrelse, som vi lagde en liten sprekk til for å lette og ta imot både piezoen og kabelen.
Først brukte vi PVC for begge platene, men etter flere tester innså vi at dette materialet absorberte for mye slag og overførte det til piezo.
For å unngå å ha en pedal løs og bevege seg mens du går, bestemte vi oss for å plassere et gummibånd mellom smørbrødet for å holde pedalen mot foten og sikre hvert slag på trommelen.
Til slutt, for å oppnå en bedre finish, bygde vi selv en liten eske som inneholdt protoboardet og arduinoen. Det er her de 5 kablene kommer inn gjennom den ene siden og lar USB -kabelen kobles til gjennom den andre. Den er montert i svart fjærkartong, for enkel håndtering og for å fortsette med den svart -hvite estetikken til hele prototypen.