Week15 & 17. Mechanical design & Machine Design

This week we will do mechanical design in a group.
Then, actually create the design and confirm that it works manually.

Group Assignment

The content of our group assignment is here.
Week15 Group Assignment

The main robot arm will be created by Tomaru = san in the final project.
Therefore, the design is to be left to Tomaru = san.

Impressions

As long as I see a machine moving in various places, it moves and moves in a natural way.
However, when I try to make it, I do not know how it works.

Role in group assignment

This week, using the designed 3D and 2D data, I did output by laser cutting and 3D printing.

Laser cutting

The following data were cut out by laser cutting.

hand
arm

It was as follows for laser cut.
We packed the place, and made color settings for the cut and engraving parts.

Some parts were cut, then adjusted and cut again.

handcut
armcut

3D Printing

The following files were 3D printed.

heroshot1
heroshot2

Result

Assembled and manually moved the arm robot was completed.

handprint
handprintsetting

Create Case

Create a base for rotating the robot arm.
The shaft part to rotate was created by Sakai=san.
I created the case part.

The housing must have the following elements.
Hole for installing stepping motor.
Hole through which the shaft passes.

caseDesign

Case Cut

casePhoto

Wiring

The Arduino and A4988 motor drivers were wired as follows and connected to the motor.
wiring

Programming

I created a program to rotate the base.

Turn right with ‘r’ key
Turn left with ‘l’ key
Stop with ‘s’ key

Operate the A4988 motor driver using the AccelStepper library.

#include <AccelStepper.h>
//Define stepper motor connections
#define dirPin 4
#define stepPin 5

#define STATUS_STOP 0
#define STATUS_RIGHT 200
#define STATUS_LEFT -200

//Create stepper object
AccelStepper stepper(1,stepPin,dirPin); //motor interface type must be set to 1 when using a driver.

int state = 0;

void setup()
{
  Serial.begin(9600);    
  stepper.setMaxSpeed(1000); //maximum steps per second
  stepper.setAcceleration(30);
}
void loop()
{
  stepper.setSpeed(state); //steps per second
  stepper.runSpeed(); //step the motor with constant speed as set by setSpeed()
  // receive Serial Communication
  if (Serial.available() > 0) {
    // read a Byte
    char readByte = Serial.read();

    switch (readByte){
      case 'l':
        state = STATUS_RIGHT;
        break;
      case 'r':
        state = STATUS_LEFT;
        break;
      case 's':
        state = STATUS_STOP;
        break;
      default:
        break;
    }
  }
}

Result

Operation look at GroupAssignment.
Week15 Group Assignment

Files

CutdataForHandParts
CutdataForArmParts
MoterAttachment
FritzingFile CutdataForCase
ArduinoCode