Introduction: Guitar Hero With Arduino

About: App developer. I construct boombox systems with custom made LED lights. I 3D print LED projects. Find these on my youtube channel - https://www.youtube.com/channel/UCqGyMBhEmdCIQHVGJ77Y_4w

The Arduino allows users to customize virtually anything they ever desire with a small amount of code. I decided to develop a Guitar Hero game with adjustable speed, volume, and multiple game modes. This project can also run off of 3 AA batteries so it can be portable. I hope you guys learn from this project and have fun customizing it! Let me know what you guys think!

To get a general overview, please watch the video above.

The overall cost of this project is less than $15

Supplies

3D printer

5x momentary push buttons

Speaker wire,

2x 50k ohm potentiometers

0.5 watt speaker

Arduino Nano

30x WS2812b LEDs

1 amp switch

Soldering Iron + solder

Hot Glue

Step 1: Print the Designated Parts

In total, there are about 9 parts to this project. The total printing time was around 15 hours for me. I split up the projects and glued the pieces together with e6000. My goal was to be able to slide a white 3D printed piece over the LEDs to diffuse them and give a glowing effect. With this in mind, I had to edit the walls and add a gap to slide the white piece over.

The first section I printed is the push button enclosure. My goal is to solder a ground wire and daisy chain from one button to the next with the ground wire. When the button is pressed, it will return the ground wire signal to the Arduino letting it know that it was pressed. The wide holes are for the end of the led to slide into if there was any extra room, however, this could be filled in and was not necessary.

The small holes are for the ground wires to go from the buttons to the Arduino. Those wires would then travel to the next component which is the grid

The grid was printed to have 5 Columns and 6 rows. The LEDs slide through each of the wide holes to keep them in place while the small wire travels next to them to go towards the Arduino enclosure. After I printed the grid, I developed a casing that held the grid in place.

At the end of the board is the enclosure for the Arduino, the speaker, and potentiometers. I ended up using a Dremel to dig a hole for the Arduino for direct updating and power.

Step 2: Soldering

Above is the soldering diagram and what the project should look like. There was a lot of soldering involved. Make sure to have proper ventilation and it helps to have a pair of helping hands or tweezers to help hold wires and other material About 3/4ths of the pins were used on the Arduino. Once the pieces were in place, it was a tight squeeze to solder the wires, especially on the LED strips. I used clamps when gluing each piece to ensure a flat and strong bond between the plastics. If I needed to replace parts, I can remove the glued pieces and re-glue them as needed

I daisy-chained the buttons with a ground wire instead of running each individual wire to a button. Each button has a corresponding pin to the Arduino along with the LEDs.

Step 3: Code It!

You can create your own code and 3D prints or you can download the code along with the 3D prints from my website www.neehaw.com

My code is not the most efficient but it gets the job done. I have two game states to represent the two game modes currently implemented. The first one is a regular guitar hero and to get to this the first button must be pressed while idling. It will run through a series of animation then the game will start. Adjusting the volume will change the loudness of the speaker while adjusting the speed potentiometer will adjust how fast the LEDs move down.

To use the other 8-bit guitar game mode, press the 5th button. In this mode, the user can play an electric guitar while tuning it with the speed knob. When the knob is moved, the next button pressed will be the new tune. To get out of this mode, hold all 5 buttons at the same time.

Step 4: Enjoy!

I hope you learned from this project. Feel free to edit and if you create this project, let me know how it turned out :)

I'm open to any comments or suggestions. Thank you for your time.