Inhoudsopgave:
- Stap 1: Wat heb je nodig
- Stap 2: monteer circuit
- Stap 3: Programmeer het
- Stap 4: Bouw het
- Stap 5: Speel de drums
Video: Studiodrums: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Drummers zouden uren en uren oefenen… Maar niet iedereen kan thuis een drum hebben: ruimte en lawaai zijn een groot probleem!
Om deze reden wilden we een draagbare en stille drumkit maken die je thuis kunt spelen.
Dit drumstel is heel gemakkelijk te gebruiken, je hoeft alleen maar op de pads te slaan en het klinkt als een echte drum! Het wordt ook geleverd met een display waarop u kunt zien op welke pad u slaat. En als je hem in een stille modus wilt gebruiken, sluit je gewoon je koptelefoon aan op de laptop!
Stap 1: Wat heb je nodig
MATERIAAL
- Arduino Uno
- Breadboard
- wat draad
- 5x piëzo's
- 5x 1M Ohm weerstanden
- 5 potdeksels
- Eva schuim
- Schuimbord
PROGRAMMA'S:
- Arduino IDE
- Verwerken
*Volg de onderstaande links om de bovenstaande programma's op uw computer te downloaden:
- https://www.arduino.cc/en/main/software
- https://www.arduino.cc/en/main/software
Stap 2: monteer circuit
Allereerst moeten we aan de piëzo's solderen (GND aan het gele deel en de analoge pin-draad aan het witte deel van de piëzo).
We gebruiken een breadboard om alles aan te sluiten.
Sluit de weerstand en de draden van de piëzo aan zoals weergegeven in het bovenstaande schema. Verbind vervolgens de GND-draad van het breadboard met GND op Arduino. Sluit ten slotte elke draad van de piëzo aan op een analoge pin op uw Arduino, zoals hieronder weergegeven.
Piëzo's aangesloten op analoge pinnen:
- Caixa = A0;
- Karel = A1;
- Tomtom = A2;
- Crash = A3;
- Bom = A4;
Stap 3: Programmeer het
We besloten om ons eigen display voor de drumkit te maken in plaats van een vooraf ingesteld programma te gebruiken. We hebben hiervoor Processing gebruikt.
We hebben het zo geprogrammeerd dat wanneer er op een piëzo wordt geslagen, het geluid van de bijbehorende trommel zal klinken. Bovendien zal het corresponderende drumpatroon op het scherm oplichten.
U moet verwerkingsgeluid importeren en seriële bibliotheken verwerken.
Vergeet niet om de drumgeluiden toe te voegen aan een datamap!
ARDUINO-CODE
//PIEZOS ZIJN VERBONDEN MET ANALOGE PINS
const int caixa = A0;
const int charles = A1;
const int tomtom = A2;
const int crash = A3;
const int bombo = A4;
const int drempel = 100; // Drempelwaarde om te beslissen of het gedetecteerde geluid klopt of niet
// LEES EN BEWAAR DE WAARDE DIE VAN DE SENSORPINNEN WORDT GELEZEN
int caixaReading = 0;
int charlesReading = 0;
int tomtomReading = 0;
int crashReading = 0;
int bomboReading = 0;
ongeldige setup() {
Serieel.begin(9600); // gebruik de seriële poort
}
lege lus() {
// lees de sensor en sla deze op in de variabele sensorReading:
caixaReading = analoogRead(caixa);
// als de sensorwaarde groter is dan de drempel:
if (caixaReading >= drempel) {
// ALS JE DE CAIXA RAAKT, STUUR 0 NAAR VERWERKING
Serieel.print("0, ");
Serial.println(caixaReading);
}
charlesReading = analoogRead(charles);
if (charlesReading >= drempel) {
// ALS JE DE CHARLES RAAKT, STUUR 1 NAAR VERWERKING
Serieel.print("1, ");
Serial.println(caixaReading);
}
tomtomReading = analoogRead(tomtom);
if (tomtomReading >= drempel) {
// ALS JE DE CAIXA RAAKT, STUUR 2 NAAR VERWERKING
Serieel.print("2, ");
Serial.println (tomtomReading);
}
crashReading = analoogRead(crash);
if (crashReading >= drempelwaarde) {
// ALS JE DE CAIXA RAAKT, STUUR 3 NAAR VERWERKING
Serieel.print("3, ");
Serial.println (crashReading);
}
bomboReading = analoog lezen (bombo);
if (bomboReading >= 15) {
// ALS JE DE CAIXA RAAKT, STUUR 4 NAAR VERWERKING
Serieel.print("4, ");
Serial.println (bomboReading);
}
vertraging(10); // vertraging om overbelasting van de seriële poortbuffer te voorkomen
}
VERWERKINGSCODE
//GELUID EN SERILE BIBLIOTHEKEN IMPORTEREN
verwerking.geluid importeren.*;
importverwerking.serienummer.*;
Seriële myPort; // Maak een object van de seriële klasse
String waarde; // Gegevens ontvangen van de seriële poort
//DRUMGELUIDEN
Geluidsbestand caixa;
Geluidsbestand charles;
SoundFile-tomtom;
SoundFile-crash;
SoundFile-bom;
//DRUMS STUDIO AFBEELDINGEN
PImage img0;
PImage img1;
PImage img2;
PImage img3;
PImage img4;
PImage img5;
PImage img6;
//DRUMS STUDIO GOLVEN VARIABELEN
vlotter n = 0;
vlotter n2 = 1;
vlotter n3 = 2;
vlotter n4 = 3;
vlotter n5 = 4;
zweven y = 0;
zweven y2 = 1;
zweven y3 = 2;
zweven y4 = 3;
zweven y5 = 4;
ongeldige setup()
{
// OPEN WAT DE POORT IS DIE JE GEBRUIKT
String portName = Serial.list()[0]; // verander de 0 in een 1 of 2 enz. om overeen te komen met uw poort
myPort = nieuw serieel (dit, poortnaam, 9600);
//DRUMS STUDIO CONSOLA
maat (720, 680);
achtergrond(15, 15, 15);
slagGewicht(2);
//LAAD DRUM STUDIO-BEELDEN
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");
//LAAD GELUIDEN
caixa = nieuw SoundFile (dit, "caixa.aiff");
charles = nieuw SoundFile (dit, "charles.aiff");
tomtom = nieuw SoundFile (dit, "tomtom.aiff");
crash = nieuw SoundFile (dit, "crash.aiff");
bombo = nieuw SoundFile (dit, "bombo.aiff");
}
nietig tekenen()
{
//TITULO DRUMS STUDIO
afbeelding (img0, 125, 0);
//GOLVEN TEKENING
if (y>720) //Start de golven opnieuw
{
y = 0;
y2 = 1;
y3 = 2;
y4 = 3;
y5 = 4;
}
vul (0, 10);
rect(0, 0, breedte, hoogte);
// Dejamo's vullen een blanco para
// dibujar la bola
vullen (255);
slag (250, 255, 3);
punt(y, (hoogte-40) + sin(n) * 30);
n = n + 0,05;
y = y + 1;
slag (250, 255, 3);
punt(y2, (hoogte-40) + cos(n2) * 30);
n2 = n2 + 0,05;
y2 = y2 + 1;
slag (250, 255, 3);
punt(y3, (hoogte-40) + sin(n3) * 30);
n3 = n3 + 0,05;
y3= y3 + 1;
slag (250, 255, 3);
punt(y4, (hoogte-40) + cos(n4) * 30);
n4 = n4 + 0,05;
y4 = y4 + 1;
slag (250, 255, 3);
punt(y5, (hoogte-40) + sin(n5) * 30);
n5 = n5 + 0,05;
y5 = y5 + 1;
//DIBUJO BATERIA SIN NINGUNA PARTE ILUMINADA
afbeelding (img1, 0, 80);
// MAAK UITGANGEN VOOR ELKE INPUT
if (myPort.available() > 0)
{ // Als er gegevens beschikbaar zijn, val = mijnPort.readStringUntil('\n'); // lees het en sla het op in val
println (val);
String lijst = split(val, ', '); //Open een lijst voor het nemen van elke invoerwaarde
if (lijst!=null)
{
if (list[0].equals("0")) { // if you hit the caixa
caixa.play(); //Speel caixa-geluid af
afbeelding (img2, 0, 80);//De caixa is verlicht in het scherm
println("caixa"); // print het uit in de console
} else if (list[0].equals("1")) { //if you hit the charles
charles.play();//Speel charles sound af
afbeelding (img3, 0, 80);// De charles wordt verlicht in het scherm
println("charles"); // print het uit in de console
} else if (list[0].equals("2")) { //If you hit the tomtom
tomtom.play();//Tomtom-geluid afspelen
afbeelding (img4, 0, 80);//Tomtom wordt verlicht op het scherm
println("tomtom"); // print het uit in de console
} else if (list[0].equals("3")) { //If you hit the crash
crash.play();//Speel crashgeluid af
afbeelding (img5, 0, 80); // Crash wordt verlicht in het scherm
println("crash"); // print het uit in de console
} else if (list[0].equals("4")) { //if you hit the bombo
bombo.play();//Speel bombo-geluid af
afbeelding (img6, 0, 80); // Bombo is verlicht in het scherm
println("bom"); // print het uit in de console
}
}
}
}
Stap 4: Bouw het
Voor de realisatie van het prototype hebben we:
gebruikte alledaagse elementen om het proces te vereenvoudigen, maar altijd op zoek naar functionaliteit en een goede afwerking.
De eerste stap was om de kabels aan de piëzo te lassen en deze op een voldoende lengte af te knippen om vrijheid te hebben bij het plaatsen van de batterij op de tafel of waar we gaan oefenen.
Na enig onderzoek stelden we vast dat het belangrijk was dat de pad de vibratie van elke impact optimaal doorgaf aan de piëzo-elektrische, zodat materialen zoals hout of plastic werden weggegooid. Ten slotte hebben we ervoor gekozen om metalen deksels te gebruiken voor conserven, die voldoen aan hun functie en een passend uiterlijk hebben voor hun doel.
Proberen met de drumsticks en zoals verwacht, waren de effecten te luidruchtig en verwijderden ze de oplossing van stille drums. Om het op te lossen, bedekken we het oppervlak met een Eva-schuim, gesneden op de afmetingen van de centrale omtrek van het deksel. Het is met dubbelzijdig tape dun genoeg gelijmd zodat het reliëf niet opvalt tijdens het spelen. Omdat de rand van de deksels nog steeds een vervelend geluid maakte waardoor we niet comfortabel konden spelen, hebben we een paar kleine druppels smeltlijm op de rand gedaan om te voorkomen dat de pad wegglijdt en elke impact zoveel mogelijk te verzachten.
Om te voorkomen dat de vier pads uiteenvallen tijdens het aanraken, hebben we ze paarsgewijs met elkaar verbonden door middel van een draadstang die vanaf de zijkant naar binnen ging en van binnenuit met een kleine moer werd bevestigd. Het probleem toen we begonnen te spelen was dat, aangezien het een metalen materiaal was, het de trillingen van de ene pad naar de andere overdroeg, dus toen we er een speelden, klonk zijn partner tegelijkertijd.
Uiteindelijk verwijderden we de staven en zagen dat het voldoende en zelfs praktischer was om de piëzo-kabel zelf als een unie te gebruiken.
Wat betreft het pedaal, we hadden het eerste idee om de piëzo tussen een sandwich te houden; om de directe impact van de piëzo tegen de grond te vermijden. Om dit te doen hebben we de piëzo op een houten plaat gelijmd en een andere PVC-plaat van dezelfde grootte gelijmd, waarin we een kleine scheur hebben gemaakt die zowel de piëzo als de kabel vergemakkelijkt en herbergt.
In eerste instantie gebruikten we voor beide platen PVC, maar na verschillende tests kwamen we tot de conclusie dat dit materiaal te veel impact absorbeerde en dit doorgaf aan de piëzo.
Om te voorkomen dat een pedaal losraakt en beweegt terwijl je stapt, hebben we besloten om een rubberen band tussen de sandwich te plaatsen om het pedaal tegen onze voet te houden en elke slag op de trommel te garanderen.
Ten slotte hebben we, om een betere afwerking te krijgen, zelf een kleine doos gebouwd waarin het protoboard en de arduino zaten. Hier komen de 5 kabels aan de ene kant binnen en kan de USB-kabel via de andere worden aangesloten. Het is gemonteerd in karton met zwarte veren, vanwege het eenvoudige gebruik en om door te gaan met de zwart-witte esthetiek van het hele prototype.
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Hoe plug-ins in WordPress te installeren in 3 stappen: 3 stappen
Hoe plug-ins in WordPress te installeren in 3 stappen: In deze tutorial laat ik je de essentiële stappen zien om de WordPress-plug-in op je website te installeren. In principe kunt u plug-ins op twee verschillende manieren installeren. De eerste methode is via ftp of via cpanel. Maar ik zal het niet opsommen, want het is echt compl
Akoestische levitatie met Arduino Uno stap voor stap (8 stappen): 8 stappen
Akoestische levitatie met Arduino Uno Stap voor stap (8-stappen): ultrasone geluidstransducers L298N Vrouwelijke DC-adapter voeding met een mannelijke DC-pin Arduino UNOBreadboardHoe dit werkt: eerst upload je code naar Arduino Uno (het is een microcontroller uitgerust met digitale en analoge poorten om code te converteren (C++)