Touchwire Video Final Video

Posted in Uncategorized | Leave a comment

Touchwire looking back and moving foward

I over all happy with how Touchwire turned out by the end of the semester. thinking back certain aspects of the project stick out as working very well while others could have gone smoother.

 

The Good

 Libgdx for development of the android app worked well. I wish I was more familiar with java but other than that minor detail the library worked great and allowed us to rapidly build and iterate the android app.

Learned a lot about physical computing and different ways to think about it. Really opened up the possibility of interesting future projects

The Bad

I wish every one on the team was more familiar with all that goes into physical computing . we had the issue of having one person which new how to wire up the tangible object and then another different person being the only one with soldering experience. 

The Future

Touchwire could be worked on in the future to use bigger screen or more tangible objects as well as really interesting and unique tangible objects.

Though I do not see development of Touchwire continuing in the immediate future, most of the team is interested in pursuing new projects and I my self am interested in exploring what else could be done with tangible objects or really any other physical computing used in interactive games and apps.

Posted in Uncategorized | Leave a comment

Full Touchwire Code

The full touchwire code base for the app can be found at https://github.com/MarcosAlfonso/Touchwire as for the code used on the Arduino tangible is presented below.

 

/*
An Arduino code example for interfacing with the
HDJD-S822-QR999 Color Sensor. Put an object in front of the
sensor and look at the serial monitor to see the values the sensor
is reading. Scaling factors and gains may have to be adjusted
for your application.

by: Jordan McConnell
SparkFun Electronics
created on: 1/24/12
license: OSHW 1.0, http://freedomdefined.org/OSHW

Connect the gain pins of the sensor to digital pins 7 – 12 (or ground).
Connect the led pin to digital 13.
Connect Vr to analog 0, Vg to analog 1, and Vb to analog 2.
*/

// Define pins
const int ledpin = 13;
const int ledpin2 = 12;
const int GSR1 = 12;
const int GSR0 = 11;
const int GSG1 = 10;
const int GSG0 = 9;
const int GSB1 = 8;
const int GSB0 = 7;

int redpin = A2;
int greenpin = A1;
int bluepin = A0;

// Sensor read values
int red = 0;
int green = 0;
int blue = 0;

void setup()
{
Serial.begin(9600);
pinMode(ledpin2, OUTPUT);
pinMode(ledpin, OUTPUT);
pinMode(GSR1, OUTPUT);
pinMode(GSR0, OUTPUT);
pinMode(GSG1, OUTPUT);
pinMode(GSG0, OUTPUT);
pinMode(GSB1, OUTPUT);
pinMode(GSB0, OUTPUT);

// Turn on the LE
digitalWrite(ledpin, HIGH);
// Set the gain of each sensor
digitalWrite(GSR1, LOW);
digitalWrite(GSR0, LOW);
digitalWrite(GSG1, LOW);
digitalWrite(GSG0, LOW);
digitalWrite(GSB1, LOW);
digitalWrite(GSB0, LOW);
}

void loop()
{

// Read sensors
// On page 7 of the datasheet, there is a graph of the
// spectral responsivity of the chip. Scaling factors were
// selected based on this graph so that the gain of each
// color is closer to being equal
red = analogRead(redpin) * 10;
green = analogRead(greenpin) * 14;
blue = analogRead(bluepin) * 17;

// Print values to the serial monitor
Serial.print(“Red: “);
Serial.print(red, DEC);
Serial.print(“\t\tGreen: “);
Serial.print(green, DEC);
Serial.print(“\tBlue: “);
Serial.println(blue, DEC);

if (red> 6000) {
digitalWrite(ledpin2, HIGH);
}
else{
digitalWrite(ledpin2, LOW);
}

delay(200);
}

Posted in Uncategorized | Leave a comment

draft Script

Get Interest:

 

Go out and Find

Look for children ages 8+

 

At Table Curious

Have you ever wondered how the lights in your room work?

Have you ever wondered how electricity works?

 

Have Interest:

 

Pre Pre anything

Get Parents permission to for their child to play with app

Get parents permission to interview their child about their experience.

 

Pre Questions

Have you learned about electricity at all in school?

Do you play with legos?

Have you ever played with a tablet before?

Smart Phone?

Have you ever messed with electronics before?

Read about them?

* Apple or Android

* Have you ever taken apart an electronic toy to see how it works?

 

Scenario Explanation

Ok so we have this physical light (show tangible light to child and then set on tablet)

Now inside the tablet we have this battery drag battery component out so now child can see tangible light and battery on the tablet.

At this point see if they want to wire it up if so let them try help if needed if they are not confident go ahead and wire one part of the circuit and let the child finish if still not comfortable see if you can explain everything better and see what is unclear

Once the light is on and everything is happy ask child if they want to add a button or switch to this circuit so they can control when the light is on and off.

Once again present the set up of the unwired battery and light but this time put a switch object between the two and try and not wire anything for the child.

If struggling again question and help out with the completion of the circuit

 

Post Questions

For this part just use the questionnaires

Be sure to get responses from both the parent and the child.

Posted in Uncategorized | Leave a comment

draft post interview questions for kid

Touchwire Interview Child Questionnaire

1. Was this fun

2. Are you at all interested in learning more about electricity?

2. Did you learn anything

If so

what did you learn

else

was this to confusing

3. What did you like about the experience

why

4 What did you not like about the experience

why

do you think x would help with this

5. Do you have any final thoughts about your experience

Thank you for your time and enjoy your day.

Posted in Uncategorized | Leave a comment

Almost complete code for detecting tangible type, position, rotation, and state

Quick Description: It quickly trys to locate the top-left and right point of our objects then uses this to find the difference in rotation between our tangible and the world space. It also in the same loop adds together the total distance between points used to ID the object

 

Link to code formatted on paste bin http://pastebin.com/tcJAywD3

And full code pasted again below but unformated

private void detectTangibleType()
{
if(touchList.isEmpty())
tangibleType = TangibleTypes.NoTangible;
else
tangibleType = TangibleTypes.LightTangible;

//Work in Progress below
if(touchList.size() < 3)
tangibleType = TangibleTypes.NoTangible;
else
{
float lValue = 0;// Used to find the top-left point “should” be lowest value
float rValue = 0;// Used to find the top-right point “should” be lowest value
float componentKey = 0;// Used to figure out what component this is dst of all points added together
int topLeftTouch = -1;// “should” become pointer to topLeftTouch if stays -1 serious error has occurred
int topRightTouch = -1;// “should” become pointer to topRightTouch if stays -1 serious error has occurred

//Loop through all the touches on object to calculate top-left point, top-right point and component key
for(int i = 0; i < touchList.size(); i++)
{
int currentTouch = touchList.get(i);// Main touch being looked at
int nextTouch = touchList.get(i+1 % touchList.size());// Next touch (looped) to be looked at
Vector2 currentPoint = new Vector2(Gdx.input.getX(currentTouch), Gdx.input.getY(currentTouch));// Vector of current point
Vector2 nextPoint = new Vector2(Gdx.input.getX(nextTouch), Gdx.input.getY(nextTouch));// Vector of next point

//Find the top left point (HACKY)
float leftKeyValue = currentPoint.x * currentPoint.y;
if(leftKeyValue < lValue){
lValue = leftKeyValue;
topLeftTouch = currentTouch;
}
//Find the top right point (HACKY)
float rightKeyValue = (GameManager.ScreenX – currentPoint.x) * currentPoint.y;
if(rightKeyValue < rValue)
{
rValue = rightKeyValue;
topRightTouch = currentTouch;
}
//Calculate the componentKey
componentKey += currentPoint.dst(nextPoint);
}

//Calculates a Vector to represent x-axis in the local space of the tangible using the top-l and top-r points
Vector2 tangibleX = new Vector2(Gdx.input.getX(topRightTouch) – Gdx.input.getX(topLeftTouch), Gdx.input.getY(topRightTouch) – Gdx.input.getY(topLeftTouch));

//Angle of rotation to the local space of the tangible from the world space
float angleOfRot = tangibleX.angle();

//For button/switch on tangible states
if(touchList.size() == 4)
componentKey = 9001;
//Check for an error state
if(touchList.size() >4)
componentKey = -1; //error state;
}

}

Posted in Uncategorized | Leave a comment

Checklist for User Study

video recording capable camera

tripod for camera

android tablet with software loaded on to it. (Marcos’s)

fully assembled tangible object, self powered and with embedded program running on it.

laptop with current build of app and embedded Arduino tangible program (for critical failure and quick rebuilding of project)

script sheets

2 questionnaires 30 copies each

parent questionnaire

child questionnaire 

 

Posted in Uncategorized | Leave a comment

Rough draft for TouchWire scenario

John and Mary are 8 and 10 years old siblings. Thier parents introduces TouchWire to them by showing them the tangible components and the mobile application. They stays around while the two go through the first few levels of TouchWires’s learning mode. Thier parents help them a when they get stuck, but soon they back off and let John and Mary solve the puzzles and build the circuits with no outside help. Over the course of a few weeks John and
Mary continue to play with TouchWire off and soon exhaust the learning mode from there the move into the sandbox where they work together to build a really cool circuit which they proudly show off to their parents.

 

Posted in Uncategorized | Leave a comment

Summery LightUp: An augmented, learning platform for electronics

Authors: Joshua Chan, Tarun Pondicherry , Paulo Blikstein

 

LightUp is a physical system for learning about and constructing circuits. It uses a modular design that encapsulates the function of a single piece of circuit such as a resistor. Except in the where do to safety reasons its better to hide more than one component. On top of just abstracting the parts of the circuit the pieces also have symbols that you would see on a technical diagram to help speed up the process of relating symbol to physical interaction.

 

The system was tested in three different scenarios but I feel the one which best demonstrated its use was in a classroom testing it against traditional instruction methods, such as alligator clips. In this test case they found that students using LightUp learned faster and more accurately what was going on with the circuits they were building or debugging. They related this to the way that LightUp naturally forms circuits that look like technical schematics so translation was much easier for the beginning students.

 

The final part of LightUp is a augmented reality visioning system that allows the user to see the way power is flowing through their circuit. After building a circuit the user simply takes a photo of it and runs it in the LightUp app. The LightUp app uses an open source coding system on the blocks to read them and then reconstruct the circuit in a popular circuit simulation package. From their it outputs the information needed from the simulation back over the image so the user can see the way hidden parts of their circuit are behaving without needing to use complex simulation software themselves.

Posted in Uncategorized | Leave a comment

Basic Quick Idea Proposal

This is just a real quick sketch of an idea. 

Have an application based on building circuits where the physical tangibles actually react based on there location on the surface and state of the application like if you drag wires and wire up to the physical tangible but only in the mobile application a led tangible will light up. Or if you can have physical switches that effect the flow of the current in the application.

Posted in Uncategorized | Leave a comment