Shapeshifting dragons Updated

TEMPLATE: FINAL DESIGN DOCUMENT

PROJECT NAME: [AbleRacer]

DESIGN TEAM: Shapeshifting Dragons

Matthew, Winston,Kelvin, Navisha, Kaylah, and Jose

BLUEPRINT:

20140520_171155

Draw & embed a blueprint of your final prototype, show it from multiple angles, and clearly label all of the parts (the parts list below is a numbered list – you could use those numbers in your blueprint

PARTS LIST:

20140520_171645

 

  1. In addition to the materials in the list above, be sure to get 3x 1/2 sized nuts, 2x 1/2 lock washers with internal teeth, one rod (the size is based on your preferences, we got a 1/2 x 4 inch rod), a breadboard.
  2. Include all the materials in your final prototype (do not include any materials from your earlier prototype)

IMPLEMENTATION TUTORIAL:

  1. STEP 1: Get Materials
  2. STEP 2: Cut the ball to fit in the steering wheel (cut in a “U” shape 2 inches deep and 1 inches wide).
  3. STEP 3:  Add sugru on the Steering wheel ( the sugru must be flat on the top of the wheel so that the four sensor Resistor can sit on top of it flat, But carved on the sides to hold on to the it).
  4.  STEP 4: place sugru on the wheel in triangle placement around the wheel.
  5. STEP 5: Attach the wood together by drilling and screwing it down, so that the wood is securely together.
  6. STEP 6: Attach the wooden columns to the sides of the mount by drilling them in, but be sure to measure the precise spots so no mistakes are made.
  7. STEP 7: Drill a hole in the center of the diagonal piece of wood (The same size of the diameter of the rod that you purchase)
  8. STEP 8: Put in the rod through the hole with the wheel attached and make sure it has a tight fit by applying the lock washers and nuts, as well as applying the pulley to the end of the rod
  9. STEP 9: Make a holding placement for the potentiometer
  10. STEP 10: Find and apply the coding to the arduino, to make the wheel recognize the potentiometer when turning left, right and stop
  11. STEP 11: Now connect the pulley on the rod to the potentiometer by using a rubber band
  12. STEP 12: From there, you can start testing the wheel by turning the wheel from right to left and observing the readings on the potentiometer

<CODE>

/**
 * ACCELERATE
 */
static inline void accelerate()
{
   Keyboard.write( KEY_UP_ARROW );
}

/**
* DECELERATE
 */
static inline void decelerate()
{
   Keyboard.write( KEY_DOWN_ARROW );
}

/**
 * READ STEERING WHEEL
 */
static inline void read_steering_wheel()
{
   static short steering_wheel_position = 0;

   steering_wheel_position = analogRead( STEERING_WHEEL );

   if( steering_wheel_position < LEFT ) {
      Keyboard.write( KEY_LEFT_ARROW );
      Serial.print( "<-- " );
   }

   if( steering_wheel_position > RIGHT ){
      Keyboard.write( KEY_RIGHT_ARROW );
      Serial.print( "--> " );
   }

   Serial.println( steering_wheel_position );
}

</CODE>


DEMO:

Shapeshifting Dragons Last Prototyping Day

-First we had to align the wooden brace to the mount by measuring it to the precise point so we could screw in the bases together later on

– Navisha and Kelvin screwed in the nails to the sides of the mount

– The group is making the measurements to plot the location of the 3 nails that are going to be drilled in through the ends of the bases

New Materials: From Trip to Home Depot

– 6×2 Nails

Next week, Winston plans to come in with a few sets of 3D printed U-Hooks that will serve as the wheel’s “flat surface”.

We also agree to meet up more frequently since there is still much drilling and work still to be done.

Note: the wheel’s diameter is .81 inches.

 

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!

PAUSE: Mixing Buddy before Maker Faire!

Describe your prototype as it is right now. What updates have you made in the last 2 weeks?

Our prototype is going great! Our code is working and we have made two working switches over the last two weeks. One of the is a normal lever switch the other is a glove switch, that turns on the mixing by touching two fingers.

We were also really proud that we won EMOTI-CON! We worked very hard on our project, and we’re very glad to see all of our work pay off!

What did you learn about your project after sharing it again with UCP teammates?

We got great feedback! Our UCP teammates loved our projects, and gave us interesting improvements. For example, how would we clean the glove, and so on.

What changes do you want to make before Maker Faire in the Fall? What are your next steps?

We are hoping to make a more aesthetically pleasing mount and arm, and maybe even create a speed switch.

ART^2 Code

Debugging the code

Below is the code that I have been slaving away at for the past two hours for ART^2. This is the code that has a working diagonal system. Before we could only draw/paint in squares, because only one motor could be on at a time. That is always true the way we have the code set up right now, so I made a sudo-diagonal method of doing it. One motor is on at one time, but they move only the slightest amount before they let the other one go and it repeats. This made an appearance of diagonal that is imperceptible to the human eye and a pencil.

Technical Junk

Also it turns out that for loops called inside the main “loop()” function makes everything stop working completely, which is why there is a while loop used as a for loop in the code. not using the for loop/while loop in the code makes the pencil move too slowly and stutter.

Next Steps in the Code

1. Make this work for all the directions
2. Use the map function to allow for sensitivity variability
3. Use the buttons on the Nunchuck for rotation of the servo motor

void stepper_controller() {

joystick_input();
joystick_input_neg();

if(directions[0]){
if(directions[1]){
int i = 0;
while(i < 500) {
stepy(true, 1/*map(joy_y_axis, 152, 233, 0, 1600)*/);
stepx(true, 1/*map(joy_x_axis, 145, 230, 0, 1600)*/);
i++;
}
}
}
}

void joystick_input() {
int joy_x_axis = nunchuck_buf[0];
int joy_y_axis = nunchuck_buf[1];

if(joy_x_axis > 145) {
directions[0] = true;
}
if(joy_y_axis > 152) {
directions[1] = true;
}
}

void joystick_input_neg() {
int joy_x_axis = nunchuck_buf[0];
int joy_y_axis = nunchuck_buf[1];

if(!(joy_x_axis > 145)) {
directions[0] = false;
}
if(!(joy_y_axis > 152)) {
directions[1] = false;
}
}

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

Art group = A.R.T. art

Name: Assistive Remote-controlled Two-dimensional Art (ART^2) = pronounced : art squared
Description:
ART^2 is an assistive painting device designed by MOUSE Corps for artists with Cerebral Palsy. Controlled by a nunchuk-joystick to help them express their love for art while keeping their artistic freedom.

Next up:

  • motor, shaft, timer belt and painter in the middle piece
  • motor mechanism to move from left to right
  • the lowering/raising of painter head
  • bug in code for motor that stops movements after 3 seconds of no movement

    • tighten timer belt on the side of motor

Accomplished today:

  • IT’S ALIVE!!!!!!!! (middle piece moves using nunchuk)