Friday, June 8, 2012

Arduino Midi Controller Part 2: Button Troubles

100_3157

I continued working on the midi controller project by designing the plate that will hold the button matrix. My first thought was to attempt to 3D print the plate. While this may have worked if my makerbot had a larger print area, I did not think my design through enough. My first mistake was deciding to print 16 squares, one to hold each button, instead of 4 squares of 4 buttons. My second mistake was deciding to glue these squares together. The resulting matrix was very weak, and the 4th row eventually broke off (see below). Fortunately, the buttons are easily removable due to their threaded nut that keep them clamped on...

100_3161

...which leads me to the next mistake I made: somehow, I misplaced the nut for one of the buttons. While annoying, it isn't a total loss because the button still functions and I can just hot glue it into place. I think I'm going scrap the 3D printed plate and make one out of wood instead.

100_3162

The final part I worked on was creating knobs for the potentiometers I had. I plan on including 6 potentiometers in the final controller because the arduino has 6 analog inputs. The potentiometers conveniently have a 'D' shape which allows me to press-fit a knob that will clamp onto the component.

100_3160

Sunday, June 3, 2012

Arduino Midi Controller: Part 1

100_3151

In my previous post, I attempted to hack a Tiger Lights Out game to have an Arduino-controlled LED button matrix. While I was able to gain access to the LEDs, I had trouble reading from the button matrix. While I was troubleshooting, I found another midi controller that was similar to the monome: the midi fighter. This seemed like the best of both worlds, because it was easier to build because there were fewer buttons and the number of buttons was an even number, making it fit with 4 or 8 part music sequencing.

100_3149

I had most of the parts I needed except for buttons, LEDs to put into the buttons, and resistors. I wanted to use RGB LEDs to give each button more flexibility, and I also had access to some potentiometers.

So far, I've wired up the LEDs and written some demo code to show that I can access all of them and each of their colors work. The LEDs are driven by two shift registers, and I'll describe in more detail in a future post how the wiring and code works. For now, here's a demo video and its associated code: