Week 12. Group / Mechanical design, Machine Design¶
This is group assignment page for West harima student :
Student¶
instructor¶
- Hiroe Takeda
group assignment¶
- design a machine that includes mechanism+actuation+automation+application
- build the mechanical parts and operate it manually
- document the group project and your individual contribution
hero slide¶
hero video¶
Idea and Task/Part¶
1.sketch¶
To begin, I made several suggestions.
I decided roughly what kind of design we would like.
I also made some sketches to determine details such as connections and specific sizes.
Finally, the volume of the project was so large that it was unlikely to be completed on time, so we decided to create the Conveyor belt sushi system.
person in charge | Task/Part |
---|---|
myself | Slide Rail Mechanical Design and production |
instructor | Electronics Design and Production |
group works | electrical wiring |
Slide Rail Mechanism (Koharu part)¶
2.BOM¶
Product name | Number of units purchased | Price | links |
---|---|---|---|
NEMA17 Stepper Motor | 2 | 2,400 (yen) | Amazon |
GT2 Timing Belt | 1 | 1,820 (yen) | Amazon |
Electronic Switch Control Board DC 5V-36V | 1 | 699 (yen) | Amazon |
Wheelp V Wheel Plate Mini | 1 | 1,579 (yen) | Amazon |
Tamiya 54393 Type380 Sport-Tuned Motor | 2 | 627 (yen) | Amazon |
Switching Power Supply 12V30A | 1 | 2,980 (yen) | Amazon |
Aluminum frame 5 series 20x20 - 1200 | 1 | 1,060 (yen) | Misumi |
3.Design and Assembly¶
3.0 frame
I purchased an aluminum frame from Misumi.
I inserted this into Fusion360 with 3D data.
Download ↓
- Fusion360
3.1 Stepping Motor
First, measure the parts to be used. This process is very important for design.
I designed the parts to attach the motor to the frame in Fusion360.
- try1
It worked, but I had to come up with another design because the motor heats up and could unravel the PLA.
- try2
This time I think I have created a simple yet good design!
3.2 Pulley (side without motor)
I think we have designed this one well.
3.3 assembly
The design is output and attached to the frame.
Install using TM3 T-nuts. Install the other side in the same manner.
Finally, the belt and wheels are attached to complete the process.
4.Case Design¶
Two DC motors, one stepping motor, and the part through which the pinball passes are incorporated.
Output completed! I spent so much time on this. It was very difficult to take pictures because I had so many supports on.
Actually.... We have tried our best to create a mechanism to launch a ping-pong ball, which was our first idea, but we decided that we could not make it due to time constraints and had to change our plans quickly. This 3D printed case was not adopted as a machine and is stored in my house.
5.Plate¶
I made a plate to put the plates on.
- disin(Fusion360)
Designed to allow for the installation of limit switches.
- 3D printing
Finish by filing the limit switch so that it can be easily turned on.
Electronics Design and Production (instructor part)¶
6.connections¶
In my case, I used Arduino Uno R4 Minima and connected as follows
ENA : 5 DIR : 6 PUL : 7
- Arduino Uno R4 Minima Pinuot
- Stepping motor operation check
int PUL=7; //define Pulse pin
int DIR=6; //define Direction pin
int ENA=5; //define Enable Pin
void setup() {
pinMode (PUL, OUTPUT);
pinMode (DIR, OUTPUT);
pinMode (ENA, OUTPUT);
}
void loop() {
for (int i=0; i<6400; i++) //Forward 5000 steps
{
digitalWrite(DIR,LOW);
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delayMicroseconds(50);
digitalWrite(PUL,LOW);
delayMicroseconds(50);
}
for (int i=0; i<6400; i++) //Backward 5000 steps
{
digitalWrite(DIR,HIGH);
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delayMicroseconds(50);
digitalWrite(PUL,LOW);
delayMicroseconds(50);
}
}
- result
7.set limit switch¶
It is attached to both bridges and the part where the plate rides.
8.programming(final code)¶
stepping motor + limit switch x 3
This is the actual code used.
// Motor control pins
const int ENA = 5; // ENA (Enable)
const int DIR = 6; // DIR (Direction)
const int PUL = 7; // PUL (Pulse)
// Limit switch pins
const int leftLimitPin = 2; // Left-end limit switch
const int rightLimitPin = 3; // Right-end limit switch
const int centerSwitchPin = 4; // Center switch (plate detection)
// Motor movement status
bool moving = false;
bool direction = true; // true = moving right, false = moving left
void setup() {
// Set pin modes
pinMode(ENA, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(PUL, OUTPUT);
pinMode(leftLimitPin, INPUT_PULLUP);
pinMode(rightLimitPin, INPUT_PULLUP);
pinMode(centerSwitchPin, INPUT_PULLUP); // Enable pull-up for center switch
// Enable motor initially
digitalWrite(ENA, HIGH);
digitalWrite(DIR, direction); // Set initial direction (right)
digitalWrite(PUL, LOW);
Serial.begin(9600); // For debugging
}
void loop() {
// Read center switch (LOW = plate present)
bool centerPressed = digitalRead(centerSwitchPin) == LOW;
// Debug: print center switch state
Serial.print("Center switch state: ");
Serial.println(centerPressed ? "Pressed (plate present)" : "Not pressed (no plate)");
if (centerPressed) {
moving = true; // Start movement if plate is present
} else {
moving = false; // Stop if no plate
digitalWrite(PUL, LOW); // Stop motor
}
if (moving) {
// Change direction if a limit switch is triggered
if (digitalRead(leftLimitPin) == LOW) {
direction = true; // Move right
digitalWrite(DIR, direction);
Serial.println("Left limit reached → Reversing to right");
delay(300); // Debounce delay
}
if (digitalRead(rightLimitPin) == LOW) {
direction = false; // Move left
digitalWrite(DIR, direction);
Serial.println("Right limit reached → Reversing to left");
delay(300); // Debounce delay
}
// Move motor
for (int i = 0; i < 64000; i++) { // Advance 64000 steps
digitalWrite(DIR, direction ? LOW : HIGH); // Set direction
digitalWrite(ENA, HIGH); // Enable motor
digitalWrite(PUL, HIGH); // Pulse HIGH
delayMicroseconds(20); // Pulse width
digitalWrite(PUL, LOW); // Pulse LOW
delayMicroseconds(20); // Interval before next pulse
}
}
}
Once the code is written, it is complete!
wiring¶
Wiring was done by two people.
data file¶
possible improvements¶
- The base was a little unstable, so I thought it would be better if it were designed to be a little sturdier and more stable.
Problems and Solutions¶
- When installing the stepping motor, the distance between the holes that had been drilled for installation was narrower than the actual value, making it impossible to install the motor. Therefore, we re-measured and remade the model.