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.
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.
3D Printing¶
The following files were 3D printed.
Result¶
Assembled and manually moved the arm robot was completed.
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.
Case Cut¶
Wiring¶
The Arduino and A4988 motor drivers were wired as follows and connected to the motor.
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