Don't wanna be here? Send us removal request.
Text
470 Final “Kilroy was here!” Daniel,Reese,Ben



Diagram Fritzing

Statement of Experience Goal
Our goal was to have a mysterious and fun experience where individuals would find the “Kilroy was here” box and be able to push a button on the box. This would send a message to the server relaying how many individuals found Kilroy at a specific location. The box would then be physically moved and the message updated to the new location.
Summary
Our original goal was going to develop a device based on the Kilroy mythos of WW2. Considering the original “meme” "Kilroy was here" was a character that United States soldiers often wrote/etched on the walls of buildings and structures that they came across. It was a form of entertainment for many of the American soldiers who found themselves depressed and in low morale as the war went on. It's important to note that Kilroy was also used as a symbol of pride and accomplishment. Kilroy was here often marked as a territory that had been liberated by United States soldiers. Reconnaissance units used it as a means to communicate to soldiers that this area had been scouted out. In the end “Kilroy was here”, become a message to all those who opposed the united states a nice warning that there was no country beyond the reach of the united states
Narrative,issues,discoveries,results
Originally, we were going to use firebase as a means of storing data from our Arduino. This would have been our server and would keep track of the number of times Kilroy was found in a specific location. We would use a web page of our own creation in order to present this data to users. Users would be able to access this data via a QR code. Our hopes of constructing our project in this manner were dashed when we could not get our Arduino to correctly connect to firebase in order to upload the data. We searched for varying means of constructing a server that our Arduino could use to store the data but couldn't find or get any of the subsequent servers working. Eventually, we would move on from attempting to get server communication working/ database communication working. Instead, we will be using Thingspeak in order to get the Arduino to communicate with Twitter. Our Arduino would send a text to Thingspeak which in turn would convert our text into a post that would be published on Twitter. Informing any followers that Kilroy was found in a specific location. Eventually, this is how we got it working.
Process
After confirming that we could use Thingspeak as a way for an Arduino to post messages to Twitter. We got started on a way the user could interact with our Arduino to send the messages. Originally we would be doing this through buttons. Where the user would press a button after which the Arduino would send a message to Twitter stating where “Kilroy was found at (blank)” depending on the hardcoded location we would have for that day. This message would then get tweeted. Although we had problems with our button not reading correctly(possibly fried?). Regardless, we quickly swapped to use velostat where the user would simply press the nose of Kilroy to tell the Arduino to tweet the location message.
Code
https://pastebin.com/wCUAbe7b
Citations
ThinkTweet
https://thingspeak.com/login?skipSSOCheck=true
Additional Kilroy information
https://www.thoughtco.com/killroy-was-here-4152093
Twitter Link
https://twitter.com/KillroyRIT
0 notes
Text
Game Challenge
For our physical computing game we decided to make a sort of disc golf game with bottle caps, a cd and yarn from the required materials. The game it self would be the player trying to land bottle caps on a cd suspended from air in a limited amount of time. Whenever a bottle cap lands on the cd the motor activates to reposition the cd randomly. The way that the machine knows to reposition is the activation of a velostat that is on the cd. The velostat sends different current to the arduino that lets it know its time to reposition and adds a point to the players score. During the repositioning the velostat reading stops so we do not get values that conflict with the scoring.
0 notes
Text
470 Project 2
Photo’s:
Displaying the Final Version



Circuit:

Experience Goal: The taxonomy of the light-up shoes is color, periodicity, as well as emotions and motivation. These feelings are mostly focused on the audience as the user is often unaware of the state of the shoes while walking, standing, and moving around, but can still make an impact on the user's experience as the shoes often insistence on attention and are designed to draw the users attention even though under normal circumstances the user would never look down at his shoes. The purpose, in this case, is to invoke a sense of childlike joy within not only the user but the audience, as they recall times when they once wore shoes that put on a dazzling light show and drew the attention and admiration of friends and acquaintances. This could be a way of bringing social groups together through emotion and recollection of childhood memories. The shoes will catch the audience's attention through periodicity which is well known for drawing the attention of human beings this is displayed in the blinking lights of automobiles (turn signals, police sirens, fire engines), stoplights, warning lights, and the periodicity within the music that often brings attention to lyrics and the underlying meaning of certain pieces of music. The periodicity of the shoes flashing lights is important to draw the audience and user's attention back to the shoes so they can further appreciate not only the colors but also revisit that childlike wonder that the shoes are meant to invoke. This wonder can be used to motivate the user and members of the audience to move forward in trying times or during difficult tasks. The remainder of simpler and easier times can bring a sense of peace to the user which can reinvigorate them to push past their issues and overcome obstacles.
Summary: We are creating a shoe that would light up when stepped on by the user. The LEDs would light up in varying flashing patterns that would change each time the user lifts his foot. In order to determine, whether or not the user was taking a new step we would use velostat as a pressure sensor. This would be done by reading voltage from the shoe as if the 2 sides of the velostat were closer a high voltage would be read in and we could determine that a person has taken a step. In order to prevent the LEDs from continuing to blink when the user is standing we wrote code that would not allow the next LED sequence to play if the user had not lifted their foot. We used a transistor to send power to all the LEDs and used 220 ohm resistors to limit the current that would be flowing through the LEDs so the brightness of all LED’s would stay the same.
Narrative:
The Beginning:
We first started by putting together our Arduino to read the current resistance values of the velostat material. This is important as it would let us know exactly how much resistance the velostat faced in an environment where there is no pressure and what the reading would be in an environment of heavy pressure like the pressure of a person stepping on it. We would encounter our first problems here when during the construction of the circuit we accidentally attached a resistor to the wrong places(power instead of ground).
The Mid-Point:
We contemplated our stretched goals as well as the viability of an external power source to fully demonstrate our product. At this point, we began construction and testing of what would be our final circuit. We would also discuss how the LEDs would be illuminated choosing to illuminate the shoes briefly once the user took a step the LEDs would flash in a certain pattern. We had also discussed a system where the user would be able to change the pattern of the flashing lights through a button.
The Conclusion: It was here that we put the velostat within the old shoe for testing finding that the LEDs would illuminate correctly under pressure. We had trouble properly wiring it and for some reason, the resistance values were differing from our initial test. So we rewrote the code to compensate for the new values. We attempted to get the button system to work correctly but the yellow LEDs would never illuminate so we gave up on that idea and instead replaced it with a system where every time the user raised his foot a new random pattern would be played if he took a new step. LEDs were soldered to a single wire so they could fit through the holes we had made in the shoe.
Everything was put together with the velostat being under the sole of the shoe.
Code:
Arduino Code:
//Light up shoes project
//Pin declaration
const int analogInPin = 14;
const int analogOutPin1 = 2;
const int analogOutPin2 = 21;
const int buttonPin = 4;
unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers
//Shoe variables
int buttonState = 0;
int lastButtonState = LOW;
int randomNum = 0;
int ledController = 2;//if button has been pressed will determine which set of led's will light up when velostat resisitance is low enough
boolean ledState = LOW;
int sensorValue = 0; // value read from the pot
boolean footUp = true;
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
//Pin setup
pinMode(analogOutPin1, OUTPUT);
pinMode(analogOutPin2, OUTPUT);
pinMode(analogInPin, INPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
// read the analog in value
sensorValue = analogRead(analogInPin);
int reading = digitalRead(buttonPin);
//debouncing
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
}
if (buttonState == HIGH) {
ledController++;
}
if (ledController == 3) {
ledController = 0;
}
}
//If the user lifted their foot up and then placed it down
if (footUp && (sensorValue > 850))
{
//depending on the randomnum generated play a sequence
if (randomNum == 0)
{
footUp = false;
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(200);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(150);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(250);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(150);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(250);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
}
if(randomNum == 1)
{
footUp = false;
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(100);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(75);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(125);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(75);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(125);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(100);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(75);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(125);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(75);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(125);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
}
if(randomNum == 2)
{
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(250);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(300);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = HIGH;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
ledState = LOW;
digitalWrite(analogOutPin1, ledState);
digitalWrite(analogOutPin2, ledState);
delay(50);
}
}
//If the foot is lifted set it to true and set another random Num
Serial.println(sensorValue);
// wait 2 milliseconds before the next loop for the analog-to-digital
// converter to settle after the last reading:
delay(2);
}
Unity Code
using System.Collections; using System.Collections.Generic; using System.IO.Ports; using UnityEngine;
public class ShoePrints : MonoBehaviour { SerialPort data_stream = new SerialPort("COM3", 9600); public string receievedstring; public GameObject shoePrefab; private int shoeCount;
// Start is called before the first frame update void Start() { data_stream.Open(); }
// Update is called once per frame void Update() { receievedstring = data_stream.ReadLine(); if(receievedstring == "FEET") { shoeCount++; Vector3 shoePostion = new Vector3(UnityEngine.Random.Range(-4.5f, 4.5f), Random.Range(-4.5f, 4.5f), 0);
Quaternion shoeRotation = new Quaternion(); shoeRotation.eulerAngles = new Vector3(0, 0, Random.Range(0, 360));
GameObject newShoe = Instantiate(shoePrefab, shoePostion, shoeRotation); SpriteRenderer shoeRenderer = newShoe.GetComponent<SpriteRenderer>(); shoeRenderer.color = new Color(1.0f, Random.Range(51.0f, 255.0f)/255.0f, 51.0f/255.0f); shoeRenderer.sortingOrder = shoeCount;
Debug.Log(shoeRenderer.color); } } }
Citations:
Video Connecting Arduino to Unity: https://www.youtube.com/watch?v=5ElKFY3N1zs
0 notes
Photo









Video:https://drive.google.com/file/d/1A8MtbwSNTlcSDt6ontFzTKToiWRcpx8V/view?usp=sharing
Code:https://drive.google.com/file/d/13AMdwSWyDJ3GtUchAKr2H2uh_IYH2Tn9/view?usp=sharing
Daniel Joseph P1Blink Project
Goal: Create a small game about hunting ghosts using a potentiometer and a photoresistor.
Summary: Originally, I was going to use the potentiometer to get analog values if the value from the potentiometer is greater than the random value I was generating then, the red LED would light up. Indicating that the player has found a ghost! The player can then use a flashlight(most likely on his/her phone) and shine it directly on the photoresistor. I also used analog outputs to let the player know what was their current state this is printed out by using Series.printin and is controlled by a single changing string value called playerStatus: No LED’s ON =“looking for ghost” Red LED ON= “Ghost Found!” Red & Yellow Led On = “Ghost was found and was scared away!”. This way the player can play the game and get feedback on what's going on in 2 different ways. If the player scares a ghost the random number is rerolled. Later I changed this so that the ghost can only be found between randomNumber & randomNumber+20. I would also add a rock obstacle component later on.
Narratives, Issues, Results, Discoveries: As I was creating the circuit, I grew an interest in adding a second component to the game. I decided that I would add an Ultrasonic Distance Sensor and give the player a rock obstacle that they would have to push away. First I needed to figure out how the distance sensor worked. I did this by looking up how others set up the ultrasonic sensor and the code they used to run it. (https://www.makerguides.com/hc-sr04-arduino-tutorial/) After testing the function for the ultrasonic distance sensor I ran into a problem, the sensor wasn't working. I found out this was because the echo and trigger connected to the wrong digital pins on my UNO board. After fixing this problem I went on to add additional LEDs to let the player know when they encountered a rock(small red LED) and when they moved the rock out of the way(small green led). At this point, one of the issues I was having was that I was running out of resistors. I was concerned that using the 10-ohm resistor may cause problems for the smaller LEDs but after testing this I found they worked fine if not being a little dimmer. In addition to this, I had to move some wires around as at this point I ran out of longer wires and had to exchange a few wires with other components to bring the circuit together. Finally, I re-configured my code to act accordingly: the player now has a 50/50 chance of running into a rock, in this case, the player will be unable to find a ghost, therefore they must move the rock to continue. After the rock is moved a 50/50 chance is rolled again to determine if the player encounters another rock, or can continue ghost hunting; this roll happens again if the player scares a ghost. I also modified the code so a ghost will only sit on a spectrum from (randomNumber -> randomNumber+20) This made finding the ghost hard but the game more fun. So after moving the rock the player will continue to look for ghosts to scare. The result is a game where are searching for ghosts using a potentiometer between a random value and 20+ this random value, but first, the player must move a rock if it has been detected(the small red LED will light up), This is done by getting the ultrasonic distance sensor to detect an object(your hand) is 20cm away or less. This will move the rock out of the way. (illuminating the small green LED briefly) If there aren't any additional rocks then the player will be able to look for ghosts. (no LEDs will be on) Once they find ghosts(Large Red LED will glow) they will shine a light over the photoresistor if a value of 80 or lower is read by the photoresistor then the ghost will be scared away (illuminating the yellow LED briefly).
APA Bibliography:
15, L. S. J., 20, D. M. N., 24, J. M., 19, G. D. C. N., 21, B. de B. N., 16, A. R. S., 17, B. de B. S., 16, K. P. M., 16, B. de B. M., 1, K. C. M., 14, B. de B. M., 27, S. S., 27, B. de B. S., 8, E. S., 8, B. de B. S., & 8, D. S. S. (2021, October 5). HC-SR04 ultrasonic sensor with Arduino tutorial (5 examples). Makerguides.com. Retrieved February 14, 2022, from https://www.makerguides.com/hc-sr04-arduino-tutorial/
0 notes
Photo





I created a 2 led system controlled by 2 switches if both switches were turned on then they would both simply be on if both were off they would both turn off. If The first switch was turned on then the second led was switched off and the first led would blink in 1 second intervals. If the second button was switched on but not the first both would blink in intervals of 2 seconds. Something that I did not know was that any LED that had not been given instructions would keep its past instructions, so if I wanted the LED before to stay on but now I need it to be Off I need to specify this. I also ran into trouble when turning off both LED’s. They seem to blink at random intervals when I need both of them off.
0 notes
Link
If you have a chance to visit the city of Vancouver. You'll find a city full of life and wonders. With amazing architecture and stunning beaches, you’ll find beauty all around this wonderful city in Canada. One of these amazing pieces of architecture is the Science World Dome. Although the building itself is incredible to look at, much of its wonder is hidden by daylight. At night the dome has hundreds of lights that illuminate the building at night in a stunning display of vibrant colors. However, this isn't the best part about the building. Across the water, in Olympic Village, you will find OH! Set up. It is a 1:60 model of the famous Science World Dome. This is where the Interactive art of the building comes into play as with the help of 240’s by touching the scale model you can change/illuminate the Dome in real-time!
The “OH!”, was created by Tangible, an art and design studio based in Vancouver. Their main goal is to combat the hyper connected world that leaves people further and further disconnected from each other, the environment, and the world around them, by bringing people together through their interactive art installation. Like I stated before “OH!” was built in the Tangible art studio with funding and support by the “Creative BC’s Interactive Fund”. They crafted a 1:60 scale model of the Science World covered with 240 LED’s and 240 sensors that sense the movement of people’s hands when they physically touch the model. The data gathered from these sensors are then sent to the actual Science World Dome via a wireless cellular connection. This data is then used to change the lights on the Science World Dome in real time. This data that is sent to the World Science Dome can be controlled by an app on a smart device like a phone or tablet. Allowing workers at the Dome to control when OH! Is active or is in one of its many “screen saver modes” ranging from 6 differing patterns.
OH!’s audience has always been and will be public as the purpose of its construction is to bring people together! The device often draws crowds of people who love to play with the sensor and watch how the big dome across the river lights up like magic. The device seems to have been made for all people as “OH!’s” concept and function are very easy to understand. In many of the photos people of all races, nationalities, and age groups come out and play with the device. Overall the device's aim was to reconnect people to their world and environment. Creating a striking and memorable experience that drives people away from their disconnected worlds glued to smart devices and brings them together.
OH!’s original purpose was to simply bring people together and let them explore and interact with their environment to create a memorable experience. Allowing friends, families, and strangers to all interact with their world and connect to their environment as well as enjoy the beauty of their surroundings. Allowing people to start conversations with each other, inspire people, share in the excitement of the structure. Overall it was made to be a place where the public can hang out, enjoy each other's company and the beauty of the water and the Science world building, as well as reconnect people with the world, their surroundings, and allow people to connect with each other.
1 note
·
View note