PROJECT DEVELOPMENT

WEEK 00

Task:

   complete your final project, tracking your progress:

      what tasks have been completed, and what tasks remain?

      what has worked? what hasn't?

      what questions need to be resolved?

      what will happen when?

      what have you learned?

   documentation during development

   demand- vs supply-side time management

   spiral development

 

Fabrication

 

The first idea consists in using gears to drive the servo motors and allow movement of the parts.

But when operating the gear generates pressure on the other parties. So I need to change the design or make safety each parts with structure.

The second idea design based in train mechanist, now change the design concept allows pieces are secure , with the respective support and a structure for easy placement of the booster, this module is repeated 16 times.

Each parts of the modules places ready for be cut by laser in format of the work place

Componets

  Manufacturing

  • Acrylic laser cut parts
  • 16 Servo motors

Componets

  Electronics

  • 16 servomotors
  • 16 photoresistor solded with resistor of 10k
  • 16 LEDs solded with resistor of 220 ohm

3 fabduinos for send signal to the output and input

For the final project I made my own protoboard for connect all the servos, with GND and VCC. All the pins are connected to a power supply of 5V.

GND

GND

VCC

SIGNAL

SIGNAL

This is the case for save the the boards and hide all the wire

Assembly

  • The assembly is per module and then all the structure that union each part
  • The assembly took me several hours since I returned to redesign the modules to let the servomotor adjusted without any screw strain

Programming

The programming based on passing the hand over a input(LDR ), action servomotors rotate 45 degrees, and each time the LDR receives less light drives the servo to reach 180 degrees this translate into increasingly that rotates , the piston rises 3 centimeters. At the same time it causes an ignition sequence of the LEDs are activated.

The programming test is not working perfect because when I touch the LDR , the servomotor move, but I don't want it return up to 180 degrees.

Final presentations links:

 

Here is my code of the final project all design files

Task:

 

what tasks have been completed, and what tasks remain?

  • Assembly and programming
  • Make a case for the wires
  •  

what has worked? what hasn't?

  • The fabduino board and protoboard work perfect
  • Some servomotor get freeze

 

what questions need to be resolved?

  • How to make wireless? Its necessary 8 wires per module?
  • How can I improve the design?
  • How can I improve the programming ?

 

what will happen when?

  •  I need to improve my skill design

 

what have you learned?

  • Make press fit design without glue
  • Optimization design
  • Read code
  • Write code and programming

 

License

 

Kinetic sculpture  (as defined below) is provided under the terms of this creative commons public license ("ccpl" or "license"). The work is protected by copyright and/or other applicable law. Any use of the work other than as authorized under this license or copyright law is prohibited.

 

By exercising any rights to the work provided here, you accept and agree to be bound by the terms of this license. To the extent this license may be considered to be a contract, the licensor grants you the rights contained here in consideration of your acceptance of such terms and conditions.

 

#include <Servo.h>

 

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo;

int led = A5;

 

int sensor = A0;

 

void setup() {

  myservo1.attach(3);

  myservo2.attach(4);

  myservo3.attach(5);

  myservo4.attach(6);

  Serial.begin(9600);

  myservo.write(0);

  pinMode(led, OUTPUT);

}

 

// the loop routine runs over and over again forever:

void loop() {

 

  int sensor = analogRead(A0);

  while(sensor<250){

    myservo1.write(0);

    myservo2.write(0);

    myservo3.write(0);

    myservo4.write(0);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor>250){

    myservo1.write(45);

    sensor = analogRead(A0);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor<250){

    myservo1.write(45);

    myservo2.write(45);

    myservo3.write(45);

    myservo4.write(45);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor>250){

    myservo1.write(90);

    myservo2.write(90);

    myservo3.write(90);

    myservo4.write(90);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor<250){

    myservo1.write(90);

    myservo2.write(90);

    myservo3.write(90);

    myservo4.write(90);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor>250){

    myservo1.write(135);

    myservo2.write(135);

    myservo3.write(135);

    myservo4.write(135);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor<250){

    myservo1.write(135);

    myservo2.write(135);

    myservo3.write(135);

    myservo4.write(135);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  delay(100);

  sensor = analogRead(A0);

  while(sensor>250){

    myservo1.write(180);

    myservo2.write(180);

    myservo3.write(180);

    myservo4.write(180);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

  sensor = analogRead(A0);

  while(sensor<250){

    myservo1.write(180);

    myservo2.write(180);

    myservo3.write(180);

    myservo4.write(180);

    sensor = analogRead(A0);

    digitalWrite(led, LOW);

    delay(50);

    digitalWrite(led,HIGH);

    delay(50);

  }

 

  //Serial.println(sensor);

  delay(100);

}

Copyright © Jorge Huang Li - FAB ACADEMY 2016