Introduction: Fuse Beads NES Controller

Making a game controller with fuse beads that looks like a fridge magnet made of fuse beads that looks like a Nintendo NES controller.

Vintage video-game aesthetics made a big come-back a few years ago. Fuse beads, with their "pixel" look, design flexibility and easiness of use (suited for 5-year-olds +), benefited from this trend and became increasingly popular as a craft and as a form of personal expression: from Super Mario coasters to plastic jewerly, Zelda-inspired street art , and fridge magnets representing tapes or old-fashioned video-game controllers such as the NES from Nintendo. Aesthetics of the digital world leaked onto the physical one (ref: Wojtowicz), all in a nice geeky old-school way.

This project pushes the whole geekiness of it even further by making an actual game controller that references fridge magnets that reference Nintendo game controllers. All using fuse beads (and Arduino). Although not yet compatible with Nintendo game consoles, the controller can send simple binary information through the serial port that can be read by regular softwares and be used in computer games, computer music or other types of real-time control of digital content.

For this project, you will need:
- fuse beads (often called Hama or Perler): a few red ones and lots of black and grey ones
- a pegboard
- an iron
- iron paper
- push buttons (three or more)
- an Arduino micro-controller (how to get started with Arduino will not be explained here)
- a tape roll
- wires, a soldering iron and other equipment for making electronic circuits
- hot glue
- a USB cable
- a computer with USB port

Step 1: Front Panel

We start by making the front of the game controller, using fuse beads (also called Hama beads or Perler beads). This controller is not going to be an exact replica of a NES controller: only three buttons will be real, the red ones on the right, and the crosse on the left. Due to time and material constraints for preparing this instructable, the cross button will also be a simple push button.

The first step is to figure out the layout of the panel, then place the beads one by one on the pegboard.

- The pattern should resemble the appearence of a Nintendo NES controller (or of a fridge magnet imitation) as much as possible, only *inverted*.

- The size of front panel depends on the size of the buttons that fit in it. Make sure to test how much space you will need with the buttons you have available, before getting started with the arrangement.

- Leave empty space where the buttons are going to be and make button covers of the same size.

Once you are done arranging the beads, cover them with ironing paper, and iron them in order to fuse them together. The beads should melt just enough to hold together tight. Wait until the beads have cooled down before removing the paper.

The side that will be visible in the end is the one below that has not been ironed.

Step 2: Back and Sides

The 2nd step is to make the rest of the controller box: the casing in which the electronics will be placed.

In the same way as in step one, make rectangles of fuse beads for the back panel and the sides of the box.
- Make sure to make the sides deep enough to have an Arduino board inside of the casing. I made them 4 rows large.
- Also make sure to remove one line of beads in the intersections in order for the sides to fit together.
- On one side, make room for the Arduino's USB port.

Use a glue-gun to assemble the parts. Test to see if how well the Arduino's USB port would fit into the opening before gluing it. Another possible method is to sew the parts together, taking advantage of the fact that they have an even stucture of holes.

Step 3: Electronics

Next step, the electronics: Building the circuit, programming it and fitting it into the controller's casing.

I placed a roll of transparent tape next to the Arduino in order to allow for the front panel to sustain pressure from the push buttons, as the casing has a certain depth to accomodate for the Arduino and the plastic casing is rather fragile in comparison to wood, cardboard or other types of plastic packaging. But anything with the right size and robustness goes.

Before soldering the buttons, make sure they are positioned in such a way that they will properly fit into the empty spaces on the front panel.

For each push-button, one side of the switch needs to be connected to the ground and the other one to one of Arduino's digital pins (here: digital pins 3, 5 and 8 for the cross button and the red ones, in that order - see code). No need for resistorsm, as floating values will be forced to "high" in the programming code.

Some isolating material might be need to separate the Arduino from the back of the circuit.

In terms of programming the micro-controller, it is assumed here that you are already familiar with Arduino and have the programming environment installed on your computer. If not, all you need to know is gathered on the Arduino resource page www.arduino.cc.

The code I used is the following:

int CrossButton = 3;
int RedButtonL = 5;
int RedButtonR = 8;
int val1 = 0;
int val2 = 0;
int val3 = 0;

void setup() {
pinMode(CrossButton, INPUT);
pinMode(RedButtonL, INPUT);
pinMode(RedButtonR, INPUT);
digitalWrite(CrossButton, HIGH);
digitalWrite(RedButtonL, HIGH);
digitalWrite(RedButtonR, HIGH);
Serial.begin(9600);
}

void loop(){
val1 = digitalRead(CrossButton);
val2 = digitalRead(RedButtonL);
val3 = digitalRead(RedButtonR);
Serial.print(val1, BIN);
Serial.print(val2, BIN);
Serial.print(val3, BIN);
Serial.println(",");
delay(10); // pause for 10 milliseconds
}

Step 4: Et Voilà!

The final step of this project, as far as the hardware is concerned, is to place the front panel and the button covers, and to secure the construction.

Different methods for closing the casing can be used:
- A few drops of hot glue on the corners of the buttons to hold them close to the front panel, and one the borders of the casing to close it: robust method but makes it difficult to reach for the electronic components if there is any problem
- Sewing: all beads have a hole in the middle, and so does the circuit board, which makes it possible to sew them together and close the box in a non-permanent way. However, the thread might be too visible for one's taste.
- Double-sided tape: versatile but not very robust.
- A combination of all of them.

The button covers made on step 1 can now be glued on top of the push-buttons.

The game controller's hardware is now finished and ready to be control a softtware!

As mentioned in the intro, the controller is not compatible with Nintendo consoles (yet), but serial information coming from the controller can be used in many kinds of interactive applications (see example in step 5), including computer games.

So go ahead, geek on!


Step 5: Example: Control ITunes With Your Fuse Beads NES

Here is an example of application for the controller: a "remote controller" for iTunes. You can change track and volume (for Mac only) using Applescript commands sent through Arduino.

1. Download the following application from Tinker.it to execute Applescript commands that can control iTunes when calling certain characters:
http://tinker.it/now/2007/04/26/control-your-mac-from-arduino-the-easy-way/
(direct link: http://www.tinker.it/files/asproxy02.dmg )
Make sure to choose the right port.

2. Modify the previous Arduino code in the following way in order to send characters to the app when pressing the buttons:

int CrossButton = 3;
int RedButtonL = 5;
int RedButtonR = 8;
int val1 = 1;
int val2 = 1;
int val3 = 1;
int state1 = 1;
int state2 = 1;
int state3 = 1;

void setup() {
pinMode(CrossButton, INPUT);
pinMode(RedButtonL, INPUT);
pinMode(RedButtonR, INPUT);
digitalWrite(CrossButton, HIGH);
digitalWrite(RedButtonL, HIGH);
digitalWrite(RedButtonR, HIGH);
Serial.begin(9600);
}

void loop() {
val1 = digitalRead(CrossButton);
if (val1 != state1 && val1 == 0){Serial.print("C");}
if (val1 != state1){state1 = val1;}

val2 = digitalRead(RedButtonL);
if (val2 != state2 && val2 == 0){Serial.print("B");}
if (val2 != state2){state2 = val2;}

val3 = digitalRead(RedButtonR);
if (val3 != state3 && val3 == 0){Serial.print("A");}
if (val3 != state3){state3 = val3;}

delay(10);
}

3. Use the following commands in the app :
Change track (cross button):
C tell application iTunes
play next track
end tell

Volume up / down for red buttons B and A (see http://bbs.macscripter.net/viewtopic.php?pid=103916 )
A tell application "iTunes"
set currentVolume to sound volume
set sound volume to currentVolume + 10
end tell
B tell application "iTunes"
set currentVolume to sound volume
set sound volume to currentVolume - 10
end tell

Press start in the applescript application.... Done! Now you have a fuse beads NES controller that can control iTunes!

Comments

author
Nisalotaco made it!(author)2011-08-05

couldn't you technically have used the actual board of the NES controller and substituted it with the Audino?

author
SUPERBROMO made it!(author)2011-01-18

you have forgotten the start and select buttons two very key buttons needed for gaming

author
bigmama1079 made it!(author)2011-01-14

Very, very nice 'ible. At first I saw this and thought "Hey, anyone can use perler beads with a pixel map to make 8 and 16-bit stuff". And then WHAM!!! Functioning controller! Well played, sir.

author
rhoaste made it!(author)2010-11-07

Boredom is the new excitement.

author
xUNMERITEDx made it!(author)2010-08-10

Rawrrrr<3 Please, don't stop talkin' dirty! ^. ^'' Like your skills =D Have a great day! -Michel Merx.

author
pTEARgriffin made it!(author)2010-05-11

 Does any one have This app they  would be able to sent me thanks

author
sillyzombie666 made it!(author)2010-04-22

i might do this , i have a pile of those beads some where and a spare nes controller i can just take the board from

author
pTEARgriffin made it!(author)2010-04-08

 The Link to download the app doesn't work please help i need this app Thanks

author
Lalya made it!(author)2010-04-12

uh-oh, looks like tinker.it took it down, or maybe they're having a problem with their server? i'm sure they'd send it to you though if you ask them. i would send it to you but i can't find it at the moment, sorry!
good luck!

author
loserpoo made it!(author)2009-12-26

i bought a lot fuse "perler" beads today

author
osgeld made it!(author)2008-12-08

i like it course the easiest route to nes compatibility would be going down to your local ma-pa used game store and getting one of their 3$ generic nes controllers (dont kill a "vintage" one)

author
naruto+the+ninja13 made it!(author)2009-04-02

whats the difference? (im not being sarcastic im just curious)

author
osgeld made it!(author)2009-04-08

Cause I and most people around would rather see a el cheapo china knock off destroyed rather than a vintage NES controller Which reduces supply and drives up prices for people who happen to collect them (not me) This sort of thing happened to a lot of vintage 80's computers during the 90's (and ive chopped up a lot of C-64's), what once was a 3$ thrift store computer is now a 300-600$ item on ebay, which sucks

author
Lance+Mt. made it!(author)2009-03-29

I liked it -Thinking bout it now, Chris

About This Instructable

22,667views

95favorites

License:

More by Lalya:Fuse Beads NES Controller
Add instructable to: