Interaction Analysis
For our project, we made a tilting board with a spiral. Kids could use photosensors to control how much to tilt the board and try to get the marbles on the board into the middle of the spiral. Since we were situated in the Garage section of the Children’s Museum, not many of the children were interested in any of the projects presented. However, a few children and adults did come up. One parent found the board extremely interesting and played with it for roughly 2 minutes. The children that interacted with our project played for 20 seconds before getting bored. Our project is not the most intuitive for young children, a component we hope to fix in our next iteration. Instead of using photosensors, we will be using bright, colorful buttons in our next iteration. We will also paint our project to make it more attractive. We will have “Press Me!” signs next to the buttons to help children navigate through the project. We hope parents and their children can work together to get the marbles in the middle, creating a cute bonding experience. This visit was crucial in helping us realize the major flaws in our design, such as the lack of attraction for kids and technical faults.
Engineering Analysis
We had many technical limitations. One, the levers continually fell off. Two, our box holding the ball bearing would fall down sometimes. We had never experienced this aspect in lab testing. In our next iteration, we need to make our levers handle less force and also glue the box with the ball bearing down.
Revision Plan
The fundamental experience needs to be modified by adding more color and also making the movement of tilting the board more smooth. We will be using springs to alleviate the force of gravity of the board, and will need to learn how to work with those. We will rigorous test these revisions in the lab by pressing buttons randomly and pushing the board around a little to test the durability of the project. We have a list of revisions that need to be made to our current project: paint board, add buttons, use springs to make movement smoother, adjust how servos are attached to put them in a strong position, add LEDS in the corners of the board, make “press me” signs near buttons, and have a big sign with the game name near the project. We need to buy relatively wear springs in order to make these adjustments.
Code for Arduino #1
#include <Servo.h> const int SERVO1_PIN = 8; const int SERVO2_PIN = 7; const int SENSOR1_PIN = A0; const int SENSOR2_PIN = A1; int sensorValue1; int sensorValue2; Servo s1; Servo s2; int outputValue1; int outputValue2; void setup() { // put your setup code here, to run once: pinMode(A0,INPUT); pinMode(A1,INPUT); s1.attach(SERVO1_PIN); s1.write(90); s2.attach(SERVO2_PIN); s2.write(90); Serial.begin(9600); delay(500); } void loop() { // put your main code here, to run repeatedly: sensorValue1 = analogRead(SENSOR1_PIN); outputValue1 = map(sensorValue1, 0, 1023, 0, 90); //s1.write(outputValue1); sensorValue2= analogRead(SENSOR2_PIN); outputValue2 = map(sensorValue2, 0, 1023, 0, 90); //s2.write(outputValue2); Serial.print(outputValue1); Serial.print(","); Serial.println(outputValue2); if (outputValue1<30 && outputValue2<30){ s1.write(outputValue1); s2.write(90); }else{ s1.write(outputValue1); s2.write(outputValue2); } delay(100); }
Code for Arduino #2
#include <Servo.h> const int SERVO1_PIN = 8; const int SERVO2_PIN = 7; const int SENSOR1_PIN = A0; const int SENSOR2_PIN = A1; int sensorValue1; int sensorValue2; Servo s1; Servo s2; int outputValue1; int outputValue2; void setup() { // put your setup code here, to run once: pinMode(A0,INPUT); pinMode(A1,INPUT); s1.attach(SERVO1_PIN); s1.write(0); s2.attach(SERVO2_PIN); s2.write(0); Serial.begin(9600); delay(500); } void loop() { // put your main code here, to run repeatedly: sensorValue1 = analogRead(SENSOR1_PIN); outputValue1 = map(sensorValue1, 0, 1023, 0, 90); //s1.write(outputValue1); sensorValue2= analogRead(SENSOR2_PIN); outputValue2 = map(sensorValue2, 0, 1023, 90, 0); //s2.write(outputValue2); Serial.print(outputValue1); Serial.print(","); Serial.println(outputValue2); if (outputValue1<10 && outputValue2>80){ s1.write(outputValue1); s2.write(0); }else{ s1.write(outputValue1); s2.write(outputValue2); } delay(100); }
Leave a Reply
You must be logged in to post a comment.