Author Archives: Mike Thal

Prismatic Box

When I started this project, I wanted to make a controller that could manipulate an image in Processing.  The design of this controller would be similar to this one from HitBox, but with slightly different button positions:


I bought 12 buttons from Video Games New York and took a sturdy cardboard box from my apartment.  Here’s a stock image of the Light Blue buttons:

From there, I brought my materials to the ITP 4th Floor to get wires, solder, and various tools.  I measured the size of the buttons to determine the size of the holes I would need to cut into the box.  Once the measurements were complete, I slid the buttons in.

Box with Buttons

Next came the wiring.  I’ve actually never used solder before this project, but I learned very quickly with a little help.  I started by soldering the wires from the 4th floor to the buttons on one side and the Arduino cables on the other.  I was only able to wire half of the buttons before Tuesday’s class since I also wanted to work on the Processing program.

Wires for Six

The initial thought was for Processing was to display what button is being pressed.  However I thought this would be boring, so I tried to make something more exciting.  Since this controller design is intended for video games, I decided to make a circle that would move around based on button presses.  However, it became difficult for me to implement animations in a way that I wanted.

As exciting as this would have been, I came to the realization that the important part of my project was the hardware.  Still, I didn’t want to just show button presses in Processing.

First DemoWhile showing my progress in class, Drew suggested that I should have the colors of the buttons on my controller blend in Processing.  I really liked this idea because it was simpler than the animated circle, but more exciting than the basic buttons.  I decided that blending colors would be the basis of my new program.

The next day, I got back to wiring.  I had to secure some of the original solder joints with heat shrink wraps.  After that I soldered the rest of the wires to the other six buttons.  Then figured out how properly attach my buttons to the breadboard in circuit.  I also decided that didn’t need the white buttons anymore because they were having trouble staying in the breadboard.  On top of that, I didn’t want to use that color in my new Processing program.

Wires in Breadboard

Once everything was wired, I programmed the Arduino to communicate with my computer.  Here’s the code for that:

Now the only thing left was the program in Processing.  I decided to alter the “ArrayBallsAddSubtract” code from class to allow for Arduino input.  I also changed numerous parameters including as the colors, sizes, and opacity of the balls.  You’ll find my code and a video demo below:



I learned so much over the course of this project between hardware design, soldering, and programming.  But if there’s one thing I learned this week that trumps everything else, it was to know my limits.

I’m the type of person who has grand elaborate ideas.  These ideas are great in theory, but practically I don’t always have the skills, knowledge, or time to complete them.  Eventually, I get so fixated on these ideas that I become frustrated when I can’t finish them.  But during this project I was able to change course when I noticed things weren’t working, specifically with Processing.

Despite being disappointed in this change originally, I realized that I had already created something I was really proud of.  I’ve wanted to make a controller like this for over a year, and the fact that I was able to do so is amazing to me.  On top of that, I was still able to program software to demonstrate this controller.  Sure, it wasn’t the software I originally had in mind, but it’s something I was within my abilities.

At the end of the day (or week as it may be), I’m ecstatic that I was able to develop something I’ve thought about for a long time.  But more importantly, I’m happy that I could surpass the such a big creative obstacle: myself.

Bread Plate and Drink Cup 3.0 (Now with Processing!)

I decided to upgrade my bread plate and drink cup circuit from the the beginning of the semester.  Now instead of red and green LEDs, Processing provides a red or green window instead.  I wanted to add sounds as well but Minim was being… difficult.  You’ll find my codes and my circuit below.

Bread Plate and Drink Cup_bb







What Computing Means to Mike

“With great power, comes great responsibility”

Ever since the first Spider-Man movie came out, this phrase has been repeated over, and over, and OVER again. People may be tired of hearing it, but it describes exactly how I feel about computing.

The speed at which modern technology works is staggering. Millions of bits and bytes transferred within seconds, the ability to multi-task with numerous applications, virtual reality, and the entire Internet in the palm of our hand. College students can even build a global business from their dorm room, something absolutely unheard of fifteen years ago. Humanity has so many possibilities at our fingertips, and I absolutely love it!

Having said that, we really have to be careful with all this power. And no, I’m not saying we’ll make Terminators from this technology or the Google Drones will turn on humans. What saying is that this technology can be so immersive that we often lose sight of other important things in life.

For example, programming an entire website may be enjoyable, but it can be lonely to sit in a room all day doing that. Virtual reality, on the other hand, allows us to explore brand new worlds while completely ignoring what’s “outside of the box”. But when we leave the box, we find that other people have been exploring the world we live in. They’ve been socializing, making friendships, and interacting in the very ways that make us human. Forgetting to do this can make the real world extremely difficult place to live in.

Sorry for the slightly depressing post guys, but I hope you understand where I’m coming from. I’m not saying we should stop Apple from selling computers or shut down the Internet. However, I think it’s important to take a break from these things every once in while so we can truly experience all that life has to offer.

Rainbow Hadouken

First of all, I’d like to give a BIG thank you to Scott and Joe for helping me figure this out.  I was pretty stumped, despite it seeming quite simple.

For this week, I took a clip from a game called Ultimate Marvel vs. Capcom 3.  This clip includes two large beams that are (mostly) Cyan.  I decided it would be really cool to see what that clip would look like if I replaced all the Cyan pixels with random colors.  The first beam is in the normal color, but I clicked my mouse during the second beam to trigger the color change.  Results and code are below!


James Bond Intro in Processing




Self Portrait (With a Nice Soundtrack!)


Hey guys!

I hope you enjoy this video of me drawing myself…  quite terribly, I might add.  I’m not the best at drawing and apparently I can overlook filling in the skin on my face.  But I’m still VERY proud of the program and the music choice from Mario Paint.  It seemed fitting!

Additionally, here’s my code for this program:

Tone Generator With Pitch Control

This week, I expanded on the basic tone generator circuit we covered earlier.  With some extra code, I was able to use a potentiometer as a pitch bend dial.

As seen below, the voltage that passes through the potentiometer directly affects the pitch that is played.  The higher the voltage, the higher the pitch and vice versa.

Once I worked that out, I added a delay function to give the tone some rhythm.  If you raise the delay, the tones will play at a slower tempo.  Conversely lowering the delay will cause the tones to play faster.


Love-O-Meter Mishap

Hey guys,  hopefully you can help me figure this one out.  I’m betting that the “shock factor” was due to how I wired this and not a faulty part.  Please let me know what you think though!

Mike Thal – Bread Plate and Drink 2.0

I hope everyone had a nice weekend!  You’ll find all the information on my upgraded device in the video below.

Mike Thal – Chapter 1 Reading Response

In the first chapter of The Art of Interactive Design, Crawford goes through the various differences between interaction and reaction. He explains that reaction is the equivalent of a one-sided conversation. One person is just saying things, but the other isn’t really enhancing the conversation. This occurs for at least one of three reasons:

  • One person doesn’t listen to the other.
  • One person doesn’t think about what the other person said.
  • One person doesn’t respond at all.

This makes a lot of sense with technology as well. To have interactivity, it’s essential that both people fully participate in the conversation. In the case of computers, people can speak to machines through various commands. Computers will “listen” to these commands, think about how to perform them, and ultimately carry them out.

However, Crawford’s definition of interactivity actually makes me wonder about video games. Are they really that interactive? Video games have often been cited as one of the most interactive mediums of our time, and yet many of them just tell a story. Sure players can influence the way a their character(s) move or act within the game, but many games don’t “listen” to the players actions. This creates a reactive situation for the player, much like a movie or book.

There are exceptions to this when games have multiple endings, of course. Many of the titles by BioWare and Bethesda Studios will change the events and/or endings of the narrative based on a player’s choices. But even in those situations, the exact scripts of those endings are predetermined and cannot be fully influenced by the player.