Objective: build a monome - a complex electronic music instrument - using easy-to-learn, inexpensive components and a process that's so easy a kid could do it.
Gist: This touchscreen music instrument is essentially 4 parts:
- MaKey MaKey (or Arduino)
- copper tape
Sound is produced in either Scratch (visual programming language for kids) or Processing (visual programming language for artists). Additional info on my website: jdeboi.com.
- MaKey MaKey (or Arduino)
- about 20 alligator clips
- 64 Neopixels
- copper tape (double-sided conductive - 6mm x 30m)
- stranded 22 gauge wire
- 5V power supply
- power adapter
- 300 to 500 Ω resistor
- capacitor (1000 µF, 6.3V or higher)
- 22 square inch glass
- lots of cardboard (at least 26 inches long)
- thin, semi-transparent white paper
- soldering iron+solder
- wire strippers
- wire cutters
- measuring tape
- box cutter
- small philips head
Step 1: Neopixels
Neopixels are individually addressable, RGB LEDs. Adafruit sells them in long strips.
- Cut the Neopixels into 64 pieces, cutting along the line marked by the scissor icon.
- Tin all of the copper pads on the Neopixels to make it easier to solder on wires.
- Space out the neopixels by 2.5 inches so that each square on the lattice contains a single LED.
- Cut lots approximately 2 inch strips of 22 gauge, stranded wire.
- Strip the plastic off the tips and tin the wires so that it’ll be easier to solder onto the Neopixel’s copper pads.
- I recommend using 3 different colored wires for GND, 5V, and Data. Check the label on each Neopixel to make sure you’re always soldering the right wire to the right pad.
- Solder together 8 sets of 8 Neopixels.
- We’re going to zizag the Neopixels over the array- each row is 2.5 inches above the subsequent row.
- Always make sure that the LEDs arrows point in a continuous direction as you zig zag from one row to the next, and that you’re soldering 5V to 5V, Ground to Ground, Data to Data.
Adding Power Adapter
- Between the 4th and 5th row of Neopixels, we’re going to splice in the power supply. c
- In addition to the ground and 5V wires, insert a 1000 µF capacitor across the + and – power adapter terminals. The longer leg of an electrolytic capacitor is the positive leed.
- The data wire from the end of the 4th row wraps around to the beginning of the 5th neopixel row, as usual.
- Finish connecting all of the rows of Neopixels together to form the zigzagged array.
Neopixel Strip to MaKey MaKey
- Ground pin on strip to ground on the Makey Makey.
- Data pin on strip to the MaKey MaKey's D0 pin through a 300 ohm resistor.
- Install Arduino IDE.
- Install MaKey MaKey Arduino addon (unless you're just using an Arduino)
- Install Adafruit Neopixel library.
- Plug 5V power supply into power adapter.
- Upload a Neopixel sketch (in the example folder of the Adafruit Library) to test the Neopixels!
Step 2: Cardboard Lattice
The cardboard lattice is made up of 18 strips of cardboard.
- cut 9 row and 9 column strips. The dimensions of each are illustrated in the diagram. I used a box cutter and a piece of glass as a straight edge.
- Slot the pieces together. If the lattice is right side up, there should be a 22inch by 22 inch divit in the middle that holds the glass in place.
- Hot glue the Neopixels to a poster beneath the lattice to keep them from sliding.
- I used clay to fill the gaps between the cardboard squares. The clay also holds the cardboard in place. if you don’t have clay, tape or glue should work just as well.
Step 3: Touchscreen
We want to build an 8x8 monome that has 64 buttons, but the Makey Makey only has about 20 inputs. How can we create 64 separate keyboard triggers with only 20 Makey Makey inputs?
The solution is to multiplex the rows and columns. We create 8 rows and 8 columns of copper tape - each line connected to its own alligator clip - and by grounding the intersection of a row and a column, we trigger a unique key. There are 64 intersection points that can be triggered using just 16 Makey Makey inputs.
- Tape paper on glass
Tape a piece of semi-transparent white paper to the back of a 22 square inch piece of glass. The paper will diffuse the light from the LEDs and fill up the square lattice.
- Lay the columns
Start laying copper tape columns on the surface of the glass. It’s helpful to have the LEDs turned on so that we can align the tape with the cardboard.
- Non-conductive tape
This step is very important: place a piece of clear, non-conductive tape on top of the columns everywhere that they will intersect with rows -- i.e. the copper columns must be electrically isolated from the rows. This step is important because we only want a row and a column to connect when we touch the surface to trigger a button.
- Lay the rows
- Copper tape buttons
I attached a diagonal strip of copper tape to the row, and a diagonal strip to the column, so that I can easily touch both strips with my fingers to turn the button on or off.
- Alligator clips
Each column and each row is attached to the MaKey MaKey using through an alligator clip. It doesn’t matter which alligator clip is attached to which Makey Makey pin so long as the Arduino code is updated and accurately maps the rows and columns to the appropriate pin. You can download and check out the code from my Github profile.
- Connecting to ground
In order to trigger a key, you'll have to be touching ground. Attach one alligator clip to the ground pins on the MaKey MaKey and make sure to touch the the other end of the alligator clip to your skin.
Install the MaKey MaKey Arduino addon from Sparkfun.
Upload the "complete" Arduino code to the board.
Make sure you installed the Adafruit Neopixel library.
To generate sound, you'll need the Processing code. All the files you need are on my GitHub repo.
Step 4: Music Sketch
- Begin by installing Processing from their website.
- Download all of the code in the Processing folder in the Makey Makey Monome Github repository
- Open monome.pde, and click the arrow to run the sketch.
- To use this sketch as a standalone program to generate music, click “no serial.”
- If the reprogrammed MaKey MaKey is plugged into your computer, the Processing sketch can send and receive serial data to the board so that when you click a button on the Processing sketch, it changes the button on the MaKey MaKey Monome and vice versa. Click the button corresponding to the serial port on which the MaKey Makey is running.