Skip to content

Week 10 - Group / Mechanical Design, Machine Design

This is group assignment page of Mechanical Design and Machine Design (Kitakagaya students):
- Shin Masuoka
- Hiroe Takeda

Group assignment

  • Mechanical Design (part 1 of 2)

    • Design a machine that includes mechanism + actuation + automation + application
    • Build the mechanical parts and operate it manually.
    • Document the group project
  • Machine Design (part 2 of 2)

    • Actuate and automate your machine.
    • Document the group project

VIDEO

SLIDE

alt text

HERO SHOT

The Vacuum forming machine we made
alt text
The result of vacuum forming
alt text
with painted
alt text

Planned and executed the project

  • We make rough sketch alt text
  • Learn about the DIY vacuum forming system with Youtube.

  • Plan of movement

  • Identifying necessary parts
  • Check Datasheet
  • Making Board (Prototype)
  • Making Control Box & Panel (Prototype)
  • Assembly
  • Programming
  • Debugging

Machine Building Process

3D modeling

  1. Frame

    • I bought frame parts from Misumi, and its web site shares 3D model of their product. I just downloaded and opened with SolidWorks.
      3Dmodel_1
    • Downloaded 3D model parts_3
    • 3D model of assembled frame is also available parts_1
  2. Vertical shaft and bushing

    • I bought shaft and bushing unit for vertical actuation from Amazon.
      3Dmodel_2
    • Amazon does not offer 3D model for its products. I measured actual size once I received the parts, then created 3D model.
      parts_4
      parts_5
      parts_6
    • Assembled on Solidworks
      parts_7
  3. Motor

    • We utilize existing motor, I measured actual size and 3D modeled.
      parts_14
    • I also created 3D model of motor holder.
      parts_13
  4. Stage and film holder

    • Our plan was to make it with 5mm thick Aluminum as designed below.
    • Stage
      parts_16
    • Film holder
      parts_2
  5. Pulley holder

    • We utilize pulley from an old 3D printer. I measured the pulley box and created 3D model to attach it to the frame.
      parts_8
    • For left and right parts, I prepared mirror copy.
      parts_9
  6. Stage holder

    • This part is to connect linear bushings and the stage.
    • I carefully designed of clearance from other parts, motor and pulley at top and bottom end.
      3Dmodel_3
      parts_11
    • This part needs to be connected actuating belt.
  7. Vacuum box and coupler
    • Vacuum box as the base of the machine. We planned to connect a vacuum machine to this box.
      parts_18
  8. Complete 3D model
    • Assembled 3D model and confirmed each size are fine (No friction, no interferance) 3Dmodel_4
      3Dmodel_6
      3Dmodel_5

Making of the parts

  1. Frame

    • Easily built up, but must confirm each parts connected right angle.
      Assem_1 Assem_2
  2. 3D printing parts (Pulley holder, Stage holder, Vacuum box coupler)
    Assem_3
    Assem_4

    • Then put insert nuts into the parts with a soldering iron.
      Assem_5
  3. Stage and film holder

    • Aluminum plate before cutting Assem_6
    • Cutting 5mm thick aluminum plate with our lab’s original CNC.
      Assem_7
    • Need to lubricate cutting oil so that the cutting friction heat not going high. Otherwise the tip of aluminum melt and you cannot cut.
      Assem_8
    • Once cutting completed, remove the tabs.
      Assem_10

    • Made screw holes with a screw tap Assem_11

    • Vacuum box
    • I cut a plywood with our CNC. Assem_18
    • Then build up a box
      Assem_19
  4. Making Original Board
    Schematic by Kicad
    alt text
    PCB by Kicad alt text
    Soldering alt text

  5. Wiring alt text
  6. Making Control Box alt text alt text
  7. Assembly
    • It’s time to assemble alt text
    • Install Motor alt text
    • Install Limit Switch alt text
    • Install Control box alt text
    • Install Panel alt text
    • Bundle the wires alt text
    • Prototype1 assembly is Done. alt text
    • Vacuum parts are installed under the frame.
      • The peg board was bought at a store.
      • The vacuum cleaner hose was fixed with straps.
        alt text
    • After test ON 11-April, We choose electric heating stove to heat. alt text
    • Install electric heating stove (Work on Progress)

Problems and how the team solved them

Problems how the team solved them
Aluminum plate, mill breaks when cutting with CNC machining - The break caused that the lubricant ran out in the middle of the cutting.
- We purchased lubricant and aluminum cutting again. We learned the lubricant is important.
vacuum suction is low - We change narrow space for box connected with vacuum. Then Caccum suction become high.
Wires are pull out a lot of time, and need debugging. - Change to 2226TX terminal that not pull out easily.
Heating Problem - Heating is function is not decided yet. We continue to work it with for future development opportunities for this project.

Design software

Titles Software
Machine Hardware Solid works
Control box Fusion360
Board Kicad

Design file

Programming Code for Arduino IDE

The completion code is as follows.

// Pin definitions for stepper motors A and B
const int motorA_PUL = 16;
const int motorA_DIR = 17;
const int motorA_ENA = 18;

const int motorB_PUL = 19;
const int motorB_DIR = 20;
const int motorB_ENA = 21;

// Pin definitions for sStart button and limit switch 
const int limitSwitchAPin_up = 0;
const int limitSwitchBPin_up = 1;
const int limitSwitchAPin_down = 2;
const int limitSwitchBPin_down = 3;
const int upButtonPin = 4;
const int downButtonPin = 5;
const int heatButtonPin = 6;
const int startButtonPin = 7;

// Pin Definition for Relay
const int heater_relay = 27;
const int vacuum_relay = 28;

// Stepping motor step count and delay time
const int stepsPerRevolution = 200;
const int stepDelay = 200000 / stepsPerRevolution; // MicroSec

void setup() {
  // Setting of Pin 
  pinMode(motorA_DIR, OUTPUT);
  pinMode(motorA_PUL, OUTPUT);
  pinMode(motorA_ENA, OUTPUT);

  pinMode(motorB_DIR, OUTPUT);
  pinMode(motorB_PUL, OUTPUT);
  pinMode(motorB_ENA, OUTPUT);

  pinMode(upButtonPin, INPUT_PULLUP);
  pinMode(downButtonPin, INPUT_PULLUP);
  pinMode(startButtonPin, INPUT_PULLUP);
  pinMode(heatButtonPin, INPUT_PULLUP);
  pinMode(limitSwitchAPin_up, INPUT_PULLUP);
  pinMode(limitSwitchBPin_up, INPUT_PULLUP);
  pinMode(limitSwitchAPin_down, INPUT_PULLUP);
  pinMode(limitSwitchBPin_down, INPUT_PULLUP);

  // Setting of Relay pin
  pinMode(heater_relay, OUTPUT);
  pinMode(vacuum_relay, OUTPUT);
}

void loop() {

 // (1)When the up button is pressed
 if (digitalRead(upButtonPin) == LOW) {

     // Enable stepper motors
         digitalWrite(motorA_ENA, HIGH);
         digitalWrite(motorB_ENA, HIGH);

     //Rotate both stepper motors
      if (digitalRead(limitSwitchAPin_up) == HIGH) {
        rotateMotor_cw(motorA_DIR, motorA_PUL);
      }

      if (digitalRead(limitSwitchBPin_up) == HIGH) {
        rotateMotor_cw(motorB_DIR, motorB_PUL);
      }
    }

 // (2)When the down button is pressed
 if (digitalRead(downButtonPin) == LOW) {

     // Enable stepper motors
         digitalWrite(motorA_ENA, HIGH);
         digitalWrite(motorB_ENA, HIGH);

     //Rotate both stepper motors
      if (digitalRead(limitSwitchAPin_down) == HIGH) {
        rotateMotor_ccw(motorA_DIR, motorA_PUL);
      }

      if (digitalRead(limitSwitchBPin_down) == HIGH) {
        rotateMotor_ccw(motorB_DIR, motorB_PUL);
      }
    }

 // (3)When the heating button is pressed
 if (digitalRead(heatButtonPin) == LOW) {
     // Enable stepper motors
         digitalWrite(motorA_ENA, HIGH);
         digitalWrite(motorB_ENA, HIGH);

     // Rotate both stepping motors until both limit switches A and B are pressed
      while (digitalRead(limitSwitchAPin_up) == HIGH || digitalRead(limitSwitchBPin_up) == HIGH) {
       if (digitalRead(limitSwitchAPin_up) == HIGH) {
         rotateMotor_cw(motorA_DIR, motorA_PUL);
        }

       if (digitalRead(limitSwitchBPin_up) == HIGH) {
         rotateMotor_cw(motorB_DIR, motorB_PUL);
        }
     }
     // Heater relay ON when both limit switches A and B are pressed
        digitalWrite(heater_relay, HIGH);

     //Heating OFF when start button is pressed
      if (digitalRead(startButtonPin) == LOW) {        
       digitalWrite(heater_relay, LOW);
     }
 }

 // (4)When the start button is pressed
 if (digitalRead(startButtonPin) == LOW) {
     // Enable stepper motors
      digitalWrite(motorA_ENA, HIGH);
      digitalWrite(motorB_ENA, HIGH);

     // Rotate both stepping motors until both limit switches A and B are pressed
      while (digitalRead(limitSwitchAPin_down) == HIGH || digitalRead(limitSwitchBPin_down) == HIGH) {
       if (digitalRead(limitSwitchAPin_down) == HIGH) {
         rotateMotor_ccw(motorA_DIR, motorA_PUL);
        }

       if (digitalRead(limitSwitchBPin_down) == HIGH) {
         rotateMotor_ccw(motorB_DIR, motorB_PUL);
        }
     }

     // Vacuum relay ON for 10 seconds when both limit switches A and B are pressed
         digitalWrite(vacuum_relay, HIGH);
         delay(10000);                        
         digitalWrite(vacuum_relay, LOW);    
         delay(1000);
    }

}


// function definition 

void rotateMotor_cw(int motor_DIR_cw, int motor_PUL_cw) {
  digitalWrite(motor_DIR_cw, HIGH); // Rotate in clockwise direction
  digitalWrite(motor_PUL_cw, HIGH);
  delayMicroseconds(stepDelay);
  digitalWrite(motor_PUL_cw, LOW);
  delayMicroseconds(stepDelay);
}

void rotateMotor_ccw(int motor_DIR_ccw, int motor_PUL_ccw) {
  digitalWrite(motor_DIR_ccw, LOW); // Rotate in counterclockwise direction
  digitalWrite(motor_PUL_ccw, HIGH);
  delayMicroseconds(stepDelay);
  digitalWrite(motor_PUL_ccw, LOW);
  delayMicroseconds(stepDelay);
}

Reference code

A very hard time with the program code. The following sites and others helped me.

Listed future development opportunities for this project

Heating is function is not decided yet. We continue to work it with for future development opportunities for this project.

Test: Electric Stove

Turn the electric stove upside down and fix it to the top of the machine.

The electric heating wire was sagging, so I fixed it in several places with wire. alt text After a few tries, the electric heating wire broke. The electric stove with electric heating wire was given up. alt text

Test: Heat gun:

  • Currently, there are no moving parts to move the heat gun.
  • The heat gun is manually moved and heated, as fixing the heat gun is not suitable due to the extremely low heating.

Last update: June 12, 2023