Categories

Meta

Posed 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)

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.

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.

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.

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.

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

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.

Reading Response to Transforming Mirrors: Subjectivity and Control in Interactive Media by David Rokeby

David Rokeby claims that the technology we use reflects back to us like a mirror. This is what makes technology interactive and can give us a sense of self-image. He believes that technology as a mirror can be a form of self expression. For example, artists can try to instill interaction into the context of their art by providing a “blank canvas” or “looking glass” for the spectator to reflect upon. When we are presented with a blank canvas, we have a natural curiosity to want to fill that canvas.

He also states that interaction can be added through navigable structures, creative mediums, transforming mirrors and automation. In my personal work, I feel that it is a combination of these factors that makes my artwork more interactive, with navigation being the most important for me. I find that intuitive navigation is what draws the user or spectator into the work. When the navigational structures are too difficult to use or understand, the user is likely to lose interest in the work and give up.

This week we built our own zoetrope animation devices. The spinning device has slits in the side and a sequence of images can be seen through the slits. Because of persistence of vision (POV) our eyes believe that the image appears to be moving.

Step 1: Wiring the breadboard

First we added two switches to the breadboard, one to control on and off, and the other to change directions. We also added a potentiometer to control the speed of the motor. This was all achieved using the H-bridge integrated circuit that came with our kit.

Step 2: Adding the motor

We attached our motor and a 9 volt battery to our breadboard. The battery is responsible for powering our DC motor, while the Arduino powers the switches and H-bridge.

Step 3: Building the zoetrope

We used a CD as a ridged platform to mount our zoetrope. A wooden assembly was used to mount the zoetrope to our motor.

Step 4: Testing the animation

We tested the zoetrope and, though a bit fast, we could see the animation playing through the slits in the side of the zoetrope.

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 (https://hackaday.io/project/4894-training-fish-to-feed-themselves). 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.

In this lab, we created a simple circuit to control LEDs simulating a spaceship interface.

Step 1: Setting up the circuit

We wired up the breadboard with two red LEDs and one green LED, wired in series through 220 ohm resistors. Next, we placed a switch on the breadboard to control the operation of pin 2 on the Arduino. We used a 10k-ohm resistor for the switch which connected to ground when the switch was open and read “low” when there is no voltage coming through the switch.

Step 2: Writing the code

We wrote a short program to control our spaceship LEDs. First we setup pins 3-5 to control output, and pin 2 to accept input. Then, in the main loop of our program we created a condition to check for low voltage output on the switch (input 2). If low-voltage was detected, the LEDs would flash in the proper sequence.

Step 3: Testing the program

We connected the Arduino to the computer and launched our program in the Arduino software. When we press the button on the breadboard, our lights flash in sequence just as we intended.

Step 4: Adding a temperature sensor

We added a temperature sensor in place of the switch. Now, when the temperature sensor is touched, the LEDs will flash in sequence. This is also known as the Arduino Love-o-meter project.

In this lab we created different types of switches to control LEDs on our breadboard. First we discussed Ohm’s law, which is:

R=VI

Where

R = Resistance
V = Voltage
I = Current

Step 1: Powering an LED

We created a simple circuit to power an LED with 5 volts. Using Ohm’s law, we calculated that our 1.7V LED will require a 220Ω resistor so that we don’t burn out our LED. The resistor reduces current flow, which in turn reduces the overall voltage.

LED powered by 5V using 220ohm resistor. Don’t forget to connect the LED with correct polarity.

Step 2: Adding a switch in series

Next, we slightly changed the configuration so that we could add a simple switch inline with the circuit. When the circuit was powered back on, the LED would only light when the button was pressed.

Step 3: Adding creativity to the switch

Then we got more creative with out switch. I brought in an old telephone, which I wanted to use to control my LED. Aluminum foil and lead wires were added to the phone so that when the phone was hung up it would complete the circuit and light my LED, and when it was off the hook the LED would turn off.

Step 4: Testing the switch

I tested my switch and to my surprise, the switch actually worked! There are many other creative ideas for making a switch. It would be interesting to work with some of theses ideas to create interfaces for users to interact with.

Donna Hardaway claims that the people of the late twentieth century have become cyborgs, a concept of hybrid machine and organism which blurs the line between reality and imagination. Previously, machines were not capable of self-motivation, self-design and autonomy, but now our machines have become more and more lively and humans have become more inert. This all comes down to a blur in the concept of our identities of gender, race and class. I feel that we have progressed even further down this path now that we are in the year 2015 (Haraway originally wrote her manifesto in 1983).

She also criticizes the feminism movement as alienating its audience rather than communicating. I feel that any movement or cause that is trying to achieve influence over other people should make it a fundamental principle not to alienate or leave out other people. I agree with Haraway, and believe that it makes it harder for people to listen or be influenced if they feel alienated.