Professional Documents
Culture Documents
Arduino Minimal Drum Kit
Arduino Minimal Drum Kit
Arduino Minimal Drum Kit
by Ryo Kosaka
This is minimal drum kit using arduino UNO. 2.Trigger midi converter with arduino UNO .
First of all, please check this instructables page. The signal sent from the pad of " 1 " is processed by
arduino of " 2 " and converted into MIDI signal. And
E-drum With Small 3D Printer and Thick Paper the MIDI signal is transmitted from arduino to iPhone,
laptop, etc, and sound comes out.
Since I started making this, I was captivated by piezo
and electronic drums. Let's make it!
I was fascinated by a very simple mechanism of I apologize in advance that English is not my first
electronic drums and the great invention called MIDI. language
https://www.youtube.com/watch?v=cDVI-QIp1Nc
hex wrench
cutter knife
Material
circle cutter
1mm thick paper
Soldering Iron
PLA filament
M3 - 10mm bolt and nuts Hi-hat stand (Anything is OK. I am using YAMAHA
HS650A)
M3 - 15mm bolt and nuts
Kick pedal (Anything is OK. I am using YAMAHA
M3 - 25mm bolt and nuts FP7210A)
Circuit
Piezo
FSR
Cable
Solder
Arduino Minimal Drum Kit: Page 3
Universal board
1M resistor
10 k resistor
Tact switch
1. circle cutter
I printed parts with infill at 20%. The thickness of the layer is 0.3 mm.
Of course, few people own laser cutters individually. Please use MDF of 5.5 mm. It is designed to have the
same dimensions as those made with a 3D printer.
If you can freely use laser cutters from universities
and companies, use this vector data. So it is also possible to attach mount parts or to make
it a kick pad.
Vector Data :
https://github.com/RyoKosaka/drums/tree/master/vect There is also a way to use a laser cutter in FabLab or
or TechShop.
Use the M3-15 mm or M3-25 mm bolts for the center part to fix the bottom part to each other.
Since the design has hardly changed, I want you to You can use butterfly nuts, but I also made tuning
see the above mentioned article for detailed keys that can be tightened even with ordinary nuts, so
explanation. please use it by all means.
*** NOTICE *** In these photo, shell height is 40 For fixing the mesh head, use M6-70 mm bolts.
mm. but you make shell height 55 mm.
Once you've made a hole, remove the mesh head
Do not forget to make the height of the shell 55 mm. again to put a piezo
When the shell dries, with the mesh head fixed, make
a hole of 9 mm in diameter for the socket.
Selection of materials is very important. For trigger cones the best choice is to buy already
molded ones. I decided to make it because I can not
I used a sponge sheet made from 10 mm thick and 5 get it in my country, Japan.
mm thick natural rubber.
I just bought it in the neighborhood DIY store, so I It is not good if it is too hard or too soft. I am trying on
doubt if this is the best. various materials.
SNARE Since the kick pad uses only one piezo, only tip can
be used.
In the case of a snare, use two piezo as shown in the
picture. No sensor plate is required.Two sponge foams under
the piezo
Connect piezo's red cable to each of tip and ring.
Place the sensor offset from the center.
Both black cables connect to sleeve.
It is because arduino can not judge the strength of hit
Do not forget to thread the cables through the holes in if beater hits sensor directly.
the sensor plate when soldering.
HI-HAT
Piezo for the head (piezo connected to tip) needs to
be sandwiched with 10 mm thick sponge foam as The circuit is the same as the kick pad.
shown in the picture.
Put a piece of 10 mm thick sponge foam under the
One below, three on the top. And make the top 3 piezo.
cones like the picture.
Fix the sensor plate. Firmly fix it. Make the end of the cone visible 2-3 mm when viewed from the side.
Of course, the same procedure is also used when using an 8-inch pad as a snare.
Since the length can be adjusted, even if there is some error in the length, it is OK.
In order to fix the pipe, it is designed so that the M3 nut can be loaded inside the part.
Since I am planning to make a full set, I also First, measure the diameter of the pole where you
designed a tom mount. want to install the part. It would be good to print parts
that are about 2 mm larger than its diameter and then
With this, you can use it with an actual drum. tighten the bolts after sandwiching the plastic plate
like a photo in the gap.
Mount on the pole, but the diameter of the pole is
different depending on the company. So, I prepared a
model every 1 mm from 15 mm to 25 mm.
https://www.youtube.com/watch?v=6k6vkDfpSu8
After producing the shell with thick paper, I thought Apply adhesive and overlay these.Do not forget to
that if you use thick paper I can make cymbals. extend the adhesive cleanly and thinly
First. Cut thick paper into a circle with a diameter of Hold firmly with your hands, then place the weight
300 mm. Make three of this. around and dry.
Next, make a notch from the center. For silencing, put a 5 mm thick sponge and drill a
hole. You can not open the hole neatly, but you can
Finally, a second notch is made from the point 10 mm hide the hole so it's okay.
apart parallel from the first notch.
Complete by attaching sensor mount and cable guide
In this way, three pac-mans with a small mouth with double-sided tape. It might be easier if you use
opened are made. glue gun.
1. 10 mm 1. 10 mm
1. 10 mm
Hi-Hat Controller sends the opening and closing of Even though it's only HIGH and LOW, you may
the hi-hat to arduino. wonder why I used FSR.
The circuit is very simple. I use FSR to correspond to sound modules such as
Roland and Yamaha.
It is made by combining three parts.
And in the sound source exclusive for drums such as
Attach the FSR to the bottom part and fix the socket. EZ DRUMMER 2, there are several stages in the
FSR can be used even if a hole is opened. degree of opening of the hi-hat.
Attach a 10 mm sponge to the FSR like a photo. If it is FSR, it may be possible to respond by just
modifying the code. However, I have not tried it.
Fix the cover with M3 - 10 mm bolts.
It is the easiest way to complete your own e-drum. Or you can use trigger to MIDI converter.(Roland
TMC-6 or Alesis Trigger iO)
If you have a sound module, just connect it.
Do you want to make it yourself? Let's go to the next
Even if you do not have one, you can get it second step.
hand. I tried using Roland's TD-10. That's great.
https://www.youtube.com/watch?v=8JTfHaHsme8
With usb cable alone, you can send midi signal from Next,Please proceed according to this site until the
arduino. description below.
In other words, make arduino be recognized by [ sudo dfu-programmer atmega16u2 flash Arduino-
iPhone etc. as a midi device without any additional usbserial-uno.hex ]
hardware.
Just replace "Arduino-usbserial-uno.hex" with
First of all, check this page. "dualMoco.hex".
http://morecatlab.akiba.coocan.jp/lab/index.php/aruin Therefore,
o/midi-firmware-for-arduino-uno-moco/
[ sudo dfu-programmer atmega16u2 flash
https://github.com/kuwatay/mocolufa dualMoco.hex ]
If you connect normal arduino UNO directly to After rewriting, your Arduino will be recognized as a
iPhone, you will get an error message like "Arduino MIDI device.
UNO is not compatible".
If you short-circuit the pin as shown in the picture, it
So, you have to rewrite the USB chip (ATmega16U2) will be recognized as normal Arduino.
used in arduino UNO.
If not (when not short-circuited), arduino UNO will be
https://www.arduino.cc/en/Hacking/DFUProgramming recognized as a MIDI device.
8U2
In other words, when writing code using the arduino
This instruction is how to rewrite the hex file. IDE, you have to short-circuit the pins as shown in
the picture.
First, Download "dualMoco.hex" in your PC and move
If you think that the previous step is difficult, please try Hairless MIDI.
https://open-e-drums.tumblr.com/post/171304647319/using-hairless-midi
There is arduino UNO and shield in the box. After printing the model of the case and the cover
first, it is good to make the shield according to it.
Refer to the image of fritzing for the circuit of the
shield. There is also a 3D model of the cover, but I made a
cover with a laser cutter. Please choose whichever
Diodes are for protection but I saw the information you like. It would be good to put paper on the 3D
that arduino UNO has protection circuit, diodes may printed cover.
not be necessary. Does anyone know about this?
Please see Step 10 for mounting on the pole and
Place the tact switch and toggle switch on a separate parts for it.
universal board. The size is "".
You can check the code on GitHub or Arduino Create I am a beginner in programming. This code can be
improved further.
This code uses MIDI library and Liquid Crystal library.
Download
http://www.instructables.com/ORIG/FQG/JK3H/J4G585YZ/FQGJK3HJ4G585YZ.ino
…
Select an instrument with the inc / dec button and In searching for peaks, values are taken
select the setting item with the next / back button. consecutively for several milliseconds after exceeding
When the EDIT button is pressed while the the threshold. The highest value among them will
instruments and items you want to set are displayed, peak. This several milliseconds is SCANTIME. There
you can change the value with the INC / DEC button. is no need to change it.
Then, pressing the EDIT button again confirms the
change. HEAD / RIM
If you watch at the latter part of the video you will Set the ease of the rim. Raising it makes it difficult to
understand how to operate. sound. If you lower it too hard the rim will sound when
you hit the head. Regarding the judgment of the head
THRESHOLD and the rim, it may be necessary to improve the code
PEDAL VELO
The lowest value at which sound comes out
Unlike other pads, the velocity of the pedal is
SENSITIVITY constant. The initial value is 100. Please change to
your favorite value.
Sensor sensitivity. If you lower it, you will gain high
velocity even if you hit softly. MASK TIME
https://www.youtube.com/watch?v=cDVI-QIp1Nc
Korg Gadget has a drum machine in it. You can play just by connecting the same as garageband, but the note
number is different.
There are 8 pads, assigned to those pads from 36 to 43 from the left.
1 3 4 2
1. note : 36
2. note : 43
3. 37
4. 42
There are a number of DAWs for PCs that can be used on this drum set, including GarageBand.
Especially difficult setting is unnecessary. Please connect in the same way as iPhone.
A lot of information was very useful when making this drum set. Here, I will introduce them.
https://www.youtube.com/watch?v=z-ROTzYW0A0
https://www.youtube.com/watch?v=vQ9rhX51P9M
https://www.youtube.com/watch?v=Byq9zh9g7aM
https://www.youtube.com/watch?v=kgRkO_zj30g
Some parts may not be usable unless their dimensions are changed. It is difficult to edit STL data. So I uploaded
fusion 360 data. However, since I am editing data while trial and error, it is better not to depend too much on the
history function.
https://github.com/RyoKosaka/drums/tree/master/Fusion360
I just tried making it experimentally. Unfortunately, we can not actually export 3D models
using this ...
I made it by Processing thinking that it would be fun if
I could change the pad split position freely and export It's just an experiment. Try playing.
it with STL.
You need a peasy library and controlP5 library
It would be fun if a 3D model was created simply by
entering the size of the pad you want and the 3D
printer you own.
https://www.youtube.com/watch?v=-R5oYCIH67s
There is still room for improvement. I decided to share I am sorry it has become a very long instruction.
it because I am over the hump with this production. Thank you so much for reading to the end.
Surely, you think that this kit has too few pads. Thank you so much, Arduino!
Do not worry. Using arduino MEGA you can make Thank you so much, RepRap!
exactly the same thing. If you just add more pads it
will not be a big deal.Since analog pins are more than Thank you so much, Roland and KORG and
doubled, a fine drum set will be completed. YAMAHA!
I am planning to make it, but I just started working. I Thank you so much, Ikutaro Kakehashi!
will add pictures and codes when done.
Please feel free to ask anything.
Detailed production process is published on this blog.
Check it if you are interested. Have fun!!!!!!
Since it is still in beta, there may be bugs, but you can use it.
https://github.com/RyoKosaka/HelloDrum-arduino-Library
425/5000
Hello Ryo Kosaka ...
I really liked the idea, and I made 2 Drum pads with 6 sensors each.
but it did conflict when I use the 2 Arduino Uno, connected on the same PC ... They fail!
And even though 1 is only connected to the PC, it takes time to recognize MIDI .. you need to
disconnect and reconnect 10x or more.
Hi! in your laser cutting model, there is no front rim bass drum (
Hi, the bass drum rim is the same dimensions as the 8 inch pad rim.
I already understood it, but not immediately ... after the order of plywood cutting. I think it's worth
adding this ring to the bass pad file
anyway you did a great job for all people on planet! i'm glad that such good people exist .
successes to you in everything
If you do not use the LCD and you only use one piezo on the pad, it's easy.Just copy the part of
KICK in this code 443-
476(https://github.com/RyoKosaka/drums/blob/master/arduino/HELLODRUM/HELLODRUM.ino)
and change the name and increase it.And you also have to increase the constants related to KICK
like this.
ex.
int KICK[6] = {200, 700, 36, 1, 0, 0};
¯copy&paste&rename
int TOM[6] = {200, 700, 36, 1, 0, 0};
boolean kickFlag = false;
¯
boolean tomFlag = false;
int piezoValue_3 = analogRead(A3); //kick drum
¯
int piezoValue_10 = analogRead(A10);
Regarding the circuit diagram, replace the UNO of this
image(https://github.com/RyoKosaka/drums/blob/master/circuit/circuit.png )with MEGA and add
piezo to the analog pin.
Hi Sir,
Can I delete this code?
Cause I dont have to use LCD for my project.
void loop() {
/////////////////////////////////// CIRCUIT ///////////////////////////////////////
int button_set = digitalRead(6);
int button_up = digitalRead(7);
int button_down = digitalRead(8);
int button_next = digitalRead(9);
int button_back = digitalRead(10);
int piezoValue_0 = analogRead(A0); //snare head
int piezoValue_1 = analogRead(A1); //snare rim
int piezoValue_2 = analogRead(A2); //hi-hat
int piezoValue_3 = analogRead(A3); //kick drum
int fsrValue_0 = analogRead(A4); //hi-hat pedal
////////////////////////////////// EDIT MODE ////////////////////////////////////
int UP[4] = {5, 50, 1,1}; //{threshold, sensitivity, note, flag}
int UP_ADVANCE[4] = {1, 50, 1,1}; //{scantime, rim / head, pedal velocity ,masktime}
Arduino Minimal Drum Kit: Page 36
char* instrument[] = {
"SNARE HEAD", "SNARE RIM", "HIHAT OPEN",
"HIHAT CLOSE", "HIHAT PEDAL", "KICK", "ADVANCED SETTING"
};
char* setting[] = {
"THRESHOLD", "SENSITIVITY", "NOTE", "FLAG"
};
char* setting_ADVANCE[] = {
"SCAN TIME", "HEAD / RIM ","PEDAL VELO", "MASK TIME"
};
if (UPDOWN < 0) {
UPDOWN = 6;
}
if (UPDOWN > 6) {
UPDOWN = 0;
}
if (NEXTBACK < 0) {
NEXTBACK = 3;
}
if (NEXTBACK > 3) {
NEXTBACK = 0;
}
////////////////////////////// EDIT BUTTON ////////////////////////////////
if (button_set == LOW && buttonState == true && buttonState_set == true) {
lcd.clear();
lcd.print("EDIT");
buttonState = false;
buttonState_set = false;
delay(500);
}
if (button_set == LOW && buttonState == true && buttonState_set == false) {
lcd.clear();
lcd.print("EDIT DONE");
buttonState = false;
buttonState_set = true;
delay(500);
}
if (button_up == LOW && buttonState == true && buttonState_set == false) {
switch (UPDOWN) {
Hi Sir Ryo,
I cant understand the step 14. :(
Can you help me to understand this.
Hi Rendel,
Oh, this step certainly was short of explanation.
First, download attached "dualMoco.hex" in your PC and move to Downloads.
next, please proceed exactly according to this page.
https://www.arduino.cc/en/Hacking/DFUProgramming8U2
Only change the description according to the attached image.
Good luck!
Hi Sir,
I had a problem code uploading using your code.
Here's the problem.
Arduino Minimal Drum Kit: Page 42
Arduino: 1.8.6 Hourly Build 2017/10/30 11:33 (Windows 10), Board: "Arduino/Genuino Mega or
Mega 2560, ATmega2560 (Mega 2560)"
C:\Users\MRBello\Downloads\HELLODRUM\HELLODRUM.ino:23:18: fatal error: MIDI.h: No such
file or directory
#include <MIDI.h>
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Hi Ryo,
Is this right? Thanks
Hi!,
Did you finished this with arduino mega?
Interesting. I was have recently begun to look into drums. I'll have to try making a set like this
sometime.
Thanks!