Final Project Idea: Design A Toy

minesweeperpreviewPosed with the challenge to make a toy that will keep a child occupied for hours on end, we settled upon what we refer to as “Advanced Minesweeper”. As a board game borne from the depths of our childhood, the game will feature the following aspects:

  • REPLAYABILITY: With a randomized system of ‘mines’, no two rounds are ever the same.
  • STRATEGY: Teaches children to think creatively to win against their opponent.
  • EASY SET UP: With most of the components attached to the board, parents don’t need to worry about losing dozens of intricate pieces.

Minesweeper: Our game’s concept is based off minesweeper except now there is an opponent as opposed to single player. One now must sweep mines while also fighting your opponent.

-Checkers: Our game also draws from Checkers where your pieces eat the other opponent’s pieces and your pieces can level up.

-Electronic Battleship: The board game itself is going to be similar to this game board where your interactions trigger certain signals, lights, and audio.

Our system consists of a game board and game cubes:

Game Board – a plexiglass game board that is divided into a 10×10 grid. Each square in the grid is wired to an individual reed switch that can be activated by a game cube. (qty: 1)

Game Cubes – plastic game pieces that contain a magnet inside to activate a reed switch on the game board. (qty: 2)


Arduino Light Theremin

I was looking through my parts bin and stumbled upon the piezo. The book says that it is “A small element that vibrates when it receives electricity. When it moves, it displaces air around it, creating sound waves.”

This sounds a lot like a speaker to me, but I heard in lab that a piezo can be used as an input sensor as well as for output (which I think a speaker can do as well, however most speaker cones are probably too heavy to be useful as a microphone).

Just for fun I decided to build the Arduino Light Theremin project. It was fairly straightforward and required a photoresistor as a light sensor to control the piezo. Here is the completed circuit:


Next, I followed the book’s code example and setup my Arduino code. The program will first calibrate the light sensor during the first 5 seconds of plugging it in. Then, it uses these calibrated values to control the piezo’s output on digital pin 8.

Virtual Drumsticks Completed

Click here to see the beginning stages of this project.
Click here to read the initial project proposal.

After testing with one drumstick and verifying that I could turn an LED on and off, I ordered additional ball tilt switches (the Arduino kit only comes with one). I purchased this lot of 10 from Amazon: Gikfun ball tilt switches. These new switches only have 2 posts instead of 4 like the one included with my kit.

When the new switches arrived, I constructed another drumstick and tested. I decided to wrap the sticks in white electrical tape so that they would be able to withstand more use.


Next I setup Processing 3 by uploading the Firmata protocol to my Arduino. This allows you to interface with the Arduino from Processing (you must have the Arduino Library for Processing folder added to your Processing libraries folder for this to work). Then I experimented with some code.

Screen Shot 2015-11-08 at 8.55.59 PM

I set digital pins 2 and 3 on the Arduino to INPUT. I also wired my drumsticks/switches from +5V power to pins 2 and 3. When the ball tilt switches are level, they complete the circuit and send a HIGH signal to Processing. When the switches are not level, such as when striking a virtual drum, the circuit is broken and the Arduino sends a LOW signal to Processing.


Next, I found some drum sound effects (WAV files) online to use as drum beats. I imported the Minim sound library for Processing and was able to use the play() function to play my sounds whenever there was a LOW signal detected by the Arduino.

Screen Shot 2015-11-08 at 9.01.49 PM

The reason I chose to play the sound effect on a low signal was to prevent the sounds from going off while the drumsticks were being held in the vertical position. Each time the user swings the drumsticks, it breaks the circuit, sends a LOW signal to Processing, and my program plays the sound.

This was a fun experiment and obviously there are likely other types of switches that would be more accurate to use as virtual drumsticks, but for the price and simplicity, I was happy with the results I achieved.

Virtual Drumstick Progress

Click here to read the initial project proposal.

I experimented with the Arduino using a ball-tilt switch to create my drumsticks. I performed an initial test by wiring the tilt switch directly to the breadboard. Upon turning the Arduino and breadboard sideways, I could turn an LED on and off.

Slightly tilted - ON

Slightly tilted – ON

90 degree tilt - OFF

90 degree tilt – OFF

For a more durable interface, I decided to solder the tilt switch to long lead wires and taped them to art pencils to act as the drum sticks.




First test using the drumsticks. I can tell that the concept is working, but it is somewhat difficult to accurately activate the tilt switch unless a precise motion is used.

I believe this is due to my tilt switches having 4 posts, so when I order additional switches from Amazon, I plan to order tilt switches with only 2 posts.


Click here to continue to Part 2 of this project.

Midterm Proposal: Arduino

Drum-SticksIdea 2: Virtual Drumsticks

Note: My original idea below was not within scope of the project requirements, so I am revising my proposal as follows.

I fell in love with electronic music nearly 20 years ago. I grew up listening to a lot of hip-hop music, but the first time I heard Daft Punk’s album Homework, I felt like I was transported to another world. The deep basslines and mesmerizing rhythms were what drew me in, and recently I have begun playing with a midi controller and Garage Band to try making some of my own electronic beats.

So, while listening to Robert Owens on Duke Dumont’s new album, I I decided I wanted to deconstruct the track and create my own interactive version of the song.

To do this, I will create a set of virtual drumsticks that could be used to control the various sounds in the track. For the drumsticks, I will be utilizing two ball tilt switches attached to long lead wires that can be swung back and forth in a drumming motion. When the enclosed steel ball is moved, it breaks the circuit and the Arduino will send a signal to Processing to play a wav file.

I hope to add some additional switches to control the playback of the main baseline, and also add some visual effects that can be projected to a screen along with the music.



Idea 1: Cyber Aquarium

I have been a long time saltwater aquarium enthusiast, and one of the problems I have had is maintaining a regular feeding schedule for my fish when I am away, or even on a daily basis. Sometimes I am just too busy to remember to feed my fish throughout the day, and I end up giving one large feeding all at once, which is not as optimal for my fish (fish like to graze continually throughout the day rather than having one large meal). On top of that, other people in my household sometimes feed them without my knowledge, which leads to overfeeding, wasted food and polluted water conditions.

My idea is to create an automatic fish feeder. There are already several auto feeders on the market, which are controlled by time intervals (feed every 4 hours, etc). However, I would like to take my fish feeder one step further: train my fish to request a meal when it is hungry!

To achieve this, I would use an Arduino connected to a sensor that can recognize the presence of the fish. This may possibly be a proximity or distance sensor, IR sensor, etc. When the fish comes within proximity of the feeding area, a signal will be sent to a motor to rotate and dispense food from a small container. Upon completing the motor’s cycle, more fish food will enter the container in preparation for the next feeding.

Eventually, I hope that the fish will “learn” that it can receive food when entering the feeding area. To prevent overfeeding, a timeout will be implemented in the Arduino code so that the fish can only receive food once per hour. I am not sure if the fish can understand an LED or not, but I will have an LED mounted on the tank that will indicate if feeding is available or not. When the LED is on, the fish is allowed to have food, and the LED will turn off once the fish receives its meal until the next hourly allowance has become activated.

Other ways to expand on this idea would be using more sensors to gather more data about the fish and environment to make the feeding sequence more effective, such as turning pumps on or off, monitoring water conditions, etc. An LED could also be implemented to display the feeding status to the owner, so that you can quickly see what time the last feeding was, how many times the fish ate that day, etc.

I have found a similar project that utilizes an in-tank switch or “lure” to control feeding ( However, the switch is made of copper, which would not be suitable for a saltwater aquarium. I would like to explore other methods of detecting when the fish is hungry that are more minimal and less obtrusive. I would like the system to be simple to setup and use so that it does not detract from the beauty of the aquarium.


© 2020

Theme by Anders NorénUp ↑