MOUSE Corps Soars at Emoti-con!

On Saturday, June 1st, 2013, MOUSE Corps joined over 150 other amazing young people from all over NYC at The New York Public Library – Bartos Forum for the 5th annual Emoti-Con!

The four MOUSE Corps Legacy groups — JoyPix, ArtSquared, Extend-a-Arm, and Mixing Buddy — created displays that showcased their design process as well as their final prototypes. MOUSE Corps spent much of the day pitching their projects to everyone who came by their tables, including fellow student presenters from other MOUSE Squads, Radio Rookies, The Point, Girls Write Now, and many others, as well as members of the judging panal and even Adam Balkin from NY1! It was inspiring to see so many talented, dedicated young people from different organizations from all over New York City get the chance to interact with one another and show off all of their amazing, ingenious projects!

One of the highlights of the day for MOUSE Corps was that our partners from UCP were able to join us for much of the afternoon at Emoti-con and see the prototypes that they inspired and helped conceptualize and design!

ArtSquared and Mixing buddy were both selected as finalists and invited to come up on stage and pitch their projects to the entire room. Afterwards ArtSquared was given the Point of View Award for bringing a unique perspective to Assistive Technology Design, and Mixing buddy won both Most Innovative and Crowd Favorite for their unique design and killer stage pitch!  All four Legacy Groups had outstanding projects this year. The entire MOUSE Corps team has a LOT to be proud of!

For more information about our Emoticon adventures, click here!

Fire Dragons

Well during this meeting we have finally come up with a Permanent name
Extend-o-Arm
We have also made more progress with the de-bugging for the code on the motor.
#include // include the servo library
Servo servoMotor; // creates an instance of the servo object to control a servo
Servo servo2;
int analogPin = 0; // the analog pin that the sensor is on
int analogValue = 0; // the value returned from the analog sensor

const byte PIN_BUTTON_SELECT = 2; // Select button is triggered when joystick is pressed

const byte PIN_BUTTON_RIGHT = 3;
const byte PIN_BUTTON_UP = 4;
const byte PIN_BUTTON_DOWN = 5;
const byte PIN_BUTTON_LEFT = 6;

const byte PIN_ANALOG_X = 0;
const byte PIN_ANALOG_Y = 1;
int val;
int val2;
int pos = 0;
void setup() {
Serial.begin(9600);

// Specify each pin connected to a pushbutton as an input.
// Also enable the Arduino’s internal “pull-up” resistors
// for each pushbutton we want to read–this means the shield
// doesn’t need to have resistors on it.
// Note that when a pull-up resistor is used on a pin the
// meaning of the values read are reversed compared to their
// usual meanings:
// * HIGH = the button is not pressed
// * LOW = the button is pressed
pinMode(PIN_BUTTON_RIGHT, INPUT);
digitalWrite(PIN_BUTTON_RIGHT, HIGH);

pinMode(PIN_BUTTON_LEFT, INPUT);
digitalWrite(PIN_BUTTON_LEFT, HIGH);

pinMode(PIN_BUTTON_UP, INPUT);
digitalWrite(PIN_BUTTON_UP, HIGH);

pinMode(PIN_BUTTON_DOWN, INPUT);
digitalWrite(PIN_BUTTON_DOWN, HIGH);

pinMode(PIN_BUTTON_SELECT, INPUT);
digitalWrite(PIN_BUTTON_SELECT, HIGH);

servoMotor.attach(8);
servo2.attach(9);
}

void loop() {
// Print the current values of the inputs (joystick and
// buttons) to the console.
Serial.print(“l:”);
Serial.print(digitalRead(PIN_BUTTON_LEFT));
Serial.print(” “);

Serial.print(“r:”);
Serial.print(digitalRead(PIN_BUTTON_RIGHT));
Serial.print(” “);

Serial.print(“u:”);
Serial.print(digitalRead(PIN_BUTTON_UP));
Serial.print(” “);

Serial.print(“d:”);
Serial.print(digitalRead(PIN_BUTTON_DOWN));
Serial.print(” “);

Serial.print(“x:”);
Serial.print(analogRead(PIN_ANALOG_X));
Serial.print(” “);

Serial.print(“y:”);
Serial.print(analogRead(PIN_ANALOG_Y));
Serial.print(” “);

Serial.print(“s:”);
Serial.print(digitalRead(PIN_BUTTON_SELECT));
Serial.print(” “);

Serial.println();

val = analogRead(PIN_ANALOG_X); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
servoMotor.write(val); // sets the servo position according to the scaled value
delay(15);

val2= digitalRead(PIN_BUTTON_DOWN);
if (val2 == LOW)
{
for(pos = 0; pos< 1000; pos += 2)
{
servo2.write(pos);
delay(7);
}
}
}
Although there are some bugs left I feel that the bugs will be resolved by the end of next week.
We tested the the mounting mechanism that will be used to mount the Mechanical Arm.

That's All

So right now I am able to make…

So right now, I am able to make the servo stop at a certain angle.
The problem is that, it won’t go back to position zero.
Right now I need code a method that will make the servo move back to zero.

hint:
servo.detach( );
this can stop a continuous rotation servo.
code so far:

// Store the Arduino pin associated with each input
#include // include the servo library
Servo servoMotor; // creates an instance of the servo object to control a servo
Servo servo2;
int analogPin = 0; // the analog pin that the sensor is on
int analogValue = 0; // the value returned from the analog sensor

const byte PIN_BUTTON_SELECT = 2; // Select button is triggered when joystick is pressed

const byte PIN_BUTTON_RIGHT = 3;
const byte PIN_BUTTON_UP = 4;
const byte PIN_BUTTON_DOWN = 5;
const byte PIN_BUTTON_LEFT = 6;

const byte PIN_ANALOG_X = 0;
const byte PIN_ANALOG_Y = 1;
int val;
int val2;
int pos = 0;
void setup() {
Serial.begin(9600);

// Specify each pin connected to a pushbutton as an input.
// Also enable the Arduino’s internal “pull-up” resistors
// for each pushbutton we want to read–this means the shield
// doesn’t need to have resistors on it.
// Note that when a pull-up resistor is used on a pin the
// meaning of the values read are reversed compared to their
// usual meanings:
// * HIGH = the button is not pressed
// * LOW = the button is pressed
pinMode(PIN_BUTTON_RIGHT, INPUT);
digitalWrite(PIN_BUTTON_RIGHT, HIGH);

pinMode(PIN_BUTTON_LEFT, INPUT);
digitalWrite(PIN_BUTTON_LEFT, HIGH);

pinMode(PIN_BUTTON_UP, INPUT);
digitalWrite(PIN_BUTTON_UP, HIGH);

pinMode(PIN_BUTTON_DOWN, INPUT);
digitalWrite(PIN_BUTTON_DOWN, HIGH);

pinMode(PIN_BUTTON_SELECT, INPUT);
digitalWrite(PIN_BUTTON_SELECT, HIGH);

servoMotor.attach(8);
servo2.attach(9);
}

void loop() {
// Print the current values of the inputs (joystick and
// buttons) to the console.
Serial.print(“l:”);
Serial.print(digitalRead(PIN_BUTTON_LEFT));
Serial.print(” “);

Serial.print(“r:”);
Serial.print(digitalRead(PIN_BUTTON_RIGHT));
Serial.print(” “);

Serial.print(“u:”);
Serial.print(digitalRead(PIN_BUTTON_UP));
Serial.print(” “);

Serial.print(“d:”);
Serial.print(digitalRead(PIN_BUTTON_DOWN));
Serial.print(” “);

Serial.print(“x:”);
Serial.print(analogRead(PIN_ANALOG_X));
Serial.print(” “);

Serial.print(“y:”);
Serial.print(analogRead(PIN_ANALOG_Y));
Serial.print(” “);

Serial.print(“s:”);
Serial.print(digitalRead(PIN_BUTTON_SELECT));
Serial.print(” “);

Serial.println();

val = analogRead(PIN_ANALOG_X); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
servoMotor.write(val); // sets the servo position according to the scaled value
delay(15);

val2= digitalRead(PIN_BUTTON_DOWN);
if (val2 == LOW)
{
for(pos = 0; pos< 1000; pos += 2)
{
servo2.write(pos);
delay(7);
pos = 1000;
}
}

}

Fire Dragon 4-16-13

Today for Extend-A-Arm (EAA),

Zainab worked on the modelling the crutches and trying to determine where it would be best to place the controls and EAA on the crutches. Updated and improved how the object that EAA picks up will be delivered to Tawn etc. Came up with some moving forward question that needs to be looked at moving forward with the production of the EAA.

Wilson and Filipa worked on and updated the code for the controls and movement of EAA. They have made improvements in making the controls works as they need to.

CODE HERE:

// Store the Arduino pin associated with each input
#include // include the servo library

// JOYSTICK controll
Servo servoMotor; //creates an instance of the servo object to control a servo
int analogPin = 0; // the analog pin that the sensor is on
int analogValue = 0; // the value returned from the analog sensor
const byte PIN_ANALOG_X = 0; // right-left controll
const byte PIN_ANALOG_Y = 1; // will not be using this one for now
const byte PIN_BUTTON_SELECT = 2; // Select button is triggered when joystick is pressed
int val;

// BUTTON controll
Servo servoMotor2;
const byte PIN_BUTTON_RIGHT = 3;
const byte PIN_BUTTON_UP = 4;
const byte PIN_BUTTON_DOWN = 5;
const byte PIN_BUTTON_LEFT = 6;

////////////////////////////////////////////////////////////////

void setup() {
Serial.begin(9600);

// Specify each pin connected to a pushbutton as an input.
// Also enable the Arduino’s internal “pull-up” resistors
// for each pushbutton we want to read–this means the shield
// doesn’t need to have resistors on it.
// Note that when a pull-up resistor is used on a pin the
// meaning of the values read are reversed compared to their
// usual meanings:
// * HIGH = the button is not pressed
// * LOW = the button is pressed

pinMode(PIN_BUTTON_RIGHT, INPUT);
digitalWrite(PIN_BUTTON_RIGHT, HIGH);

pinMode(PIN_BUTTON_LEFT, INPUT);
digitalWrite(PIN_BUTTON_LEFT, HIGH);

pinMode(PIN_BUTTON_UP, INPUT);
digitalWrite(PIN_BUTTON_UP, HIGH);

pinMode(PIN_BUTTON_DOWN, INPUT);
digitalWrite(PIN_BUTTON_DOWN, HIGH);

pinMode(PIN_BUTTON_SELECT, INPUT);
digitalWrite(PIN_BUTTON_SELECT, HIGH);

servoMotor.attach(8);
servoMotor2.attach(9);
}

////////////////////////////////////////////////////////////////

void loop() {
// Print the current values of the inputs (joystick and
// buttons) to the console.
Serial.print(“l:”);
Serial.print(digitalRead(PIN_BUTTON_LEFT));
Serial.print(” “);

Serial.print(“r:”);
Serial.print(digitalRead(PIN_BUTTON_RIGHT));
Serial.print(” “);

Serial.print(“u:”);
Serial.print(digitalRead(PIN_BUTTON_UP));
Serial.print(” “);

Serial.print(“d:”);
Serial.print(digitalRead(PIN_BUTTON_DOWN));
Serial.print(” “);

Serial.print(“x:”);
Serial.print(analogRead(PIN_ANALOG_X));
Serial.print(” “);

Serial.print(“y:”);
Serial.print(analogRead(PIN_ANALOG_Y));
Serial.print(” “);

Serial.print(“s:”);
Serial.print(digitalRead(PIN_BUTTON_SELECT));
Serial.print(” “);

Serial.println();

val = analogRead(PIN_ANALOG_X); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
servoMotor.write(val); // sets the servo position according to the scaled value
delay(15);

if (PIN_BUTTON_LEFT==LOW)
{
servoMotor2.write(0);
}
}

Omar and Ivan worked on the the scissor like movement of EAA when extending, delivering object to user and retracting. They created a cardboard model to help them better understand how all the movements will work.

Next Week Goal:
To start creating and putting together the actual product instead of just prototypes

Today Feedback

So To start of this Blog Post I will be Stating the Feedback we receive:
1.One thing Tawn Stated was that being right handed.(try to make it Universal)
2.Another thing that she mentioned would be that she prefers the device Attached to the Crutches, or the Wheelchair.
3. Lighter than 5 pounds.
4. Weight that the Arm should be able to pick is about 2-3 pounds.
5. Three fingers is preferred
6. Another thing would be that it would be that it is easily removed, Putty Type .
7.Buttons would be preferred.
8.A way to attach the device to the wheelchair without causing interfering.
9.Walker is 35.5 Inches, 7 Inches From cup holder to the arm grabber. 4.9 (Arm Garber)

Fire Dragon Meeting – April 2nd 2013

Today in our meeting, we have planned out five next meetings. In addition, we worked on some of our sketches and began coding the joystick and game buttons for the motor. While Zainab and Miguel sketched, several questions were mentioned:

  • How heavy is too heavy?
  • Where would be best to attach the splint on the crutches for the user?
  • Where should the controls of the “extend an arm” be placed?

While we pondered these questions, Omar and Ivan were assembling small prototypes to implement the grasp of the project. Wilson made sure that the code has started and developed for the Arduino.

Our implementation plan is the following:

4/16 – Integrate Components (all motions and improve code)

4/23 – Test Structure (Stability, Weight, Materiality, Smoothness)

4/30 – Wearability, Refine Ergonomics & Code, Efficiency

5/14 – Troubleshooting (Clear blueprint diagram to explain function and prepare for Emoticon)