Mechanical design

Assignments

#1 - Design a machine (mechanism + actuation + automation), including the end effector, build the passive parts and operate it manually

This week, my targets are the followings:

  • Contribute to the scope definition
  • Contribute to the machine system architecture
  • Identify uncertainties and risks.
  • Volunteer to design the software part
  • Identify the requirements for the SW part of the project
  • Prepare a simple SW prototype and show it to the team.
#2 - On the group page, shown how your team planned and executed the project, describe problems and how the team solved them, list future development opportunities for this project and include design files

See here for an overview and see also the following links for specific parts of the design

Learnings

#1 -Work and communicate effectively in a team and independently

  • We started by creating a project team to work effectively. The team members are:
    • Annie (arm mechanism and design)
    • Chuma (X and Y axis mechanism)
    • Francis (electronics)
    • Bomi (arm mechanism and design)
    • Sylvain (X and Y axis mechanism) and original idea
    • and myself (software)
  • Next, we organized some brainstorming sessions, on site and using Slack, to try to get a nice machine and a clear scope for the 2 weeks. See Bomi's site for more documentation on this.
  • As in all others projects, there are Risks and uncertainties. Here are some of them:
    • #001- How do we know a stepper has reached the upper limit of the course ? Not sure I got it but I heard I can count the pulse I send to the stepper and derive a distance from there
    • #002 - How do we know a stepper has reached the lower limit of the course (i.e the "origin" point) ? Assuming the machine is Off and the claw is currently at an unknown location... When I turn machine On, I want to move the claw to the lower location. But ... how many pulses do I need ??? Currently, I think we need a limit swith (physical). If there is one, I can just send pulses up to the moment the limit switch is hit. Then I have a reference point and I can rely on it for further moves.
    • #003 - Does the ATMEGA328P has enough I/Os for this project ? If I got it well, we need 4 I/O per stepper and ??? for the claw.... 3 steppers * 4 I/O = 12 .... Plus the 3 limit switches...... Or we go with a two wires stepper control ??? Anyway .... does the total fit with the MCU capabilities ???
  • My individual contribution in on the software level. The first step is to write down requirements. I proposed to use a Behavior Driven approach and here are the scenarios that came out:
    • #1 - GIVEN the machine is OFF, WHEN someone turns the switch ON THEN machine goes to BUSY state AND machine moves the claw to the default location X=0, Y=0, Z=0, machine opens the claw, machine starts Annie's pseudo random timer, and finally machine goes to READY state
    • #2 - GIVEN the machine is ON, WHEN someone turns the switch OFF THEN the claw stays in place and the machine goes OFF
    • #3 - GIVEN the machine is not BUSY AND left boundary is not reached WHEN someone press (either one single push or continuously) the "Go Left button" THEN machine goes to BUSY state machine moves the claw to the left by N pulses and finally machine goes to READY state
    • #4 - GIVEN the machine is not BUSY AND right boundary is not reached WHEN someone press (either one single push or continuously) the "Go Right button" THEN machine goes to BUSY state machine moves the claw to the right by N pulses and finally machine goes to READY state
    • #5 - GIVEN the machine is not BUSY AND far boundary is not reached WHEN someone press (either one single push or continuously) the "Go Far button" THEN machine goes to BUSY state, machine moves the claw away from the user by N pulses and finally machine goes to READY state
    • # 6 - GIVEN the machine is not BUSY AND near boundary is not reached WHEN someone press (either one single push or continuously) the "Come closer button" THEN machine goes to BUSY state, machine moves the claw closer to the user by N pulses and finally machine goes to READY state
    • #7 - GIVEN the machine is not BUSY WHEN someone press (either one single push or continuously) the "Go down button" THEN machine goes to BUSY state, machine moves the claw down by (distance tbd) and finally machine goes to READY state
    • #8 - GIVEN the machine is not BUSY WHEN someone press (either one single push or continuously) the "Go up button" THEN machine goes to BUSY state, machine moves the claw up by (distance tbd) and finally machine goes to READY state
    • #9 - GIVEN the machine is not BUSY WHEN someone press (either one single push or continuously) the "Open claw" THEN machine goes to BUSY state, machine opens the claw and finally machine goes to READY state
    • #10 - GIVEN the machine is not BUSY WHEN someone press (either one single push or continuously) the "Close claw" THEN machine goes to BUSY state, machine closes the claw and finally machine goes to READY state
    • #11 - GIVEN the machine is not BUSY AND claw is not at the default location WHEN Annie's pseudo random timer is reached or exceeded THEN machine goes to BUSY state, machine moves the claw to its lowest position, machine closes the claw, machine moves the claw to the default location (X, Y), machine opens the claw, machine resets Annie's pseudo random timer and finally machine goes to READY state
  • To design the software part of the machine, I had to get a clear list of HW specifications. That part is yet to be confirmed but here is what I have for the moment:
    • An MCU (ATMEGA328P) will be used in our machine
    • X axis is automated using a stepper motor. There is a lower limit switch.
    • Y axis is automated using a stepper motor. There is a lower limit switch.
    • Z axis is automated using a servo. There is no limit switch since it is a circular movement.
    • Claw mechanism has to be confirmed. It could be another servo
    • There is one On/Off swith
    • and there are 8 push buttons on the front:
      • Go to the left
      • Go to the right
      • Go far from user
      • Come closer to user
      • Go down
      • Go up
      • Open claw
      • Close claw
  • Next step is to build Software prototype to analyze and solve technical problems. I'm coding that simulator (click here to see the code) and it runs on a commercial board simialr to the custom one. Here is how it looks like

    and here is a example of the output

  • For sure, there are opportunities for improvements in the design

Achievements

#1 -Design a machine that includes mechanism+actuation+automation, build the mechanical parts and operate it manually

#2 -On the group page, shown how your team planned and executed the project, describe problems and how the team solved them, list future development opportunities for this project and include design files

Capstone

No link between this week and my final project since my final project is not a machine