Design a machine that includes mechanism+actuation+automation
Build the mechanical parts and operate it manually
Document the group project and your individual contribution
Deciding the machine
We spent quite a lot of time on discussing and debating about what we should build, what activities will be required and who will be doing what.
We decided to make a fabricatable machine HECTOR. Reason to choose is because it has very good documentation availble + it does look nice.
We also looked as a backup option and one thing we wanted to try was machine that makes machine and what better than a cardboatd CNC by Nadya Peek. What cool about Machine that make machine and MTM is different type of machines can be made from the same modular design. We really liked the magic chess project
As another backup, we had group members wanting to build a motion control system for x, y and z and make an xy plotter machine. This instructable was there to provide guidance.
As per our success with these machines, others could learn from the mechanisms and electronics and they could also add further functionalities.
Deciding the tasks
As a team we decided like what we need for this group project and segregated each task within the group. First we agreed that we need to do Rapid prototyping to understand it better what actually is needed.
Number 1 priority for the task we agreed amoung ourselves was to do Rapid prototyping and try out following options before we decide the segregation of work.
Try hector mechanism after cutting its design files on CNC/Laser
Try out nadya peek cardboard based design on laser
Try out xy plotter design with a generic motion control system.
Outsource the milling of aluminum parts for hector as in fab lab we dont have metal CNC available
Understanding mechanism for Machine
For all three of these options, we looked at mechanisms and these are the two different type of mechanisms that are used in these machines. It was critical for our group to understand these mechansims so that we can order the right parts.
Like Hector uses Rack and Pinion, Nadya week cardboard CNC uses Lead screw mechanism, xy plotter would use lead screw and timing belts.
Getting Started MTM CNC machine
We identified the key activities for this mahine by following Nadya link. Some of the material was not available with us in Lab so we had to improvise the design a little bit to make it work.
BOM
linear and threaded rods
Stepper Motors
Cardboard for laser Cutting
RAMPS v1.4 for Stepper motors
Arduino
Screws and nuts
CAD modelling
We faced our first challenge with Nadya design the link that was shared was not having the Cardboard cut files so we decided to design it from scratch. Also the stepper motor used by Nadya had the threaded rod attached.
First we thought of getting a coupler for stepper motor from market but it was not available.So we decided to change the design and create our own version of it.
Designing Our Own Coupler Version
As we don't had the right component we made a customized coupler for our threaded rod and stepper motor.
You can find more details in the attached Fusion file how this was designed. Screenshot also attached for your reference.
Next step was to create the design as per Nadya cradboard CNC design, again we had missing files so we designed this in Coreldraw and later cut it using the laser machine. You can download files from here.
We used injection molding and casting (which we outsourced) and 3d printer to print the customized coupler.
You can refer to the design files attached in laser cutting section.Again you can get the right stepper motor with threaded rod attached, in our case order delivery was taking time so we customized it for machine week
Final outcome
Final assembly
Electronics and Programming
Though nadya fabricated the electronics in fab lab, for intial testing of our machine we wanted to try pre fabricated board. So we decided to leverage Arduino and RAMPS v1.4.
Steps needed to make it work
Attaching RAMPS Shield on Arduino and connecting the stepper driver with RAMPS
What we agreed on as a group was to build a modular machine which had a common motion control system for x, y and z directions. There should be scope to change the end-effector to achieve different functions such as adding an extruder system to make a 3d printer, adding a spindle for cnc engraver, a laser for laser cutting, a pen for a plotter, adding a microscope for a tele-medicine system, etc.
To begin with we would have xy plotter as the end effector which seemed achievable in the time that we had.
CAD modelling
Mechanical frame
We had purchased a DIY kit for making a 3d printer which inspired the mechanical design of xy plotter. The 3d assembly of the drawings of this DIY kit were laser cut for creating the mechanical frame. The image shows the assembly of the CAD model in Solidworks.
Using these designs, I laser cut all these parts from the acrylic that we had available in our local Fab Lab.
Pen lift mechanism
I added two brackets to mount the pen lift mechanism. The CAD for the components needed for the pen lift mechanism were designed by me.
This CAD was converted into stl format. Then Ideamaker software was used to create the g-code. The 3d printer in Jay's office was used to fabricate the slider support and the pen holder. This image shows the 3d printer.
These images show the 3d printing process finished.
The below images are for the CAD and 3d printing of the pen holder.
Bill of materials (BOM)
Apart from the laser cut mechanical frame and parts for the pen lift mechanism, we needed:
1. Nema 17 stepper motor with pulley for the x direction movement
2. Nema 17 stepper motor with pulley for the y direction movement
3. Two Nema 17 stepper motor with couplers for the z direction movement
4. One micro switch 10t85 each for x, y and z direction homing
5. Two M8 lead screw 345 mm in length, two M8 guide rods 380 mm in length for the z axis movement
6. Two M8 guide rods 436 mm in length along the x axis
7. Two M8 threaded rods 400 mm in length for y axis movement
8. 7 Linear bearings for the bed of the machine and end effector connections
9. Left and right z axis nut supports
10. 12 V, 20 A power supply
11. 220 mm X 220 mm Bed and bed aluminium plate
12. Micro servo motor for pen lift
13. End effector brackets
14. Pen slider support
15. Pen holder
16. 1.6 m timing belt for x and y axis movement
17. Arduino Uno
18. CNC shield module for arduino Uno
19. Four A4988 motor drivers for the stepper motors
Parts 1, 2, 3, 4, 10, 12 and 19 were available in the local market of the city. Part number 17 and 18 were ordered through amazon. Part number 14 and 15 were designed by us and 3d printed. The other parts were not easily available so they were used from the diy 3d printer kit available in Jay's work place.
Assembly of the mechanical frame
The components of the mechanical frame were assembled watching the following video.
The machine looked like this at this stage.
Demo of the manual operation
The xy plotter should move in the x and y direction and the pen lift mechanism should lift the pen in z axis.
The following video shows the manual operation in the x axis:
The following video shows the manual operation along the y axis.
This video shows the servo motor lift. The pen is placed in a slider support causing it to move only up and down along the z axis.
Learnings
All the group members also exchanged the learnings that they had in terms of the mechanisms explored and the electronics based automation that may be possible to assist each other.
Actuation of the xy plotter
The first step was to test each stepper motor, limit switch and servo motor to find out if they worked. Jay used arduino code to verify the actuation. Arduino Uno was connected to A4988 motor driver and the stepper motor for this purpose.
The x axis actuation was succesfully implemented. The demo video:
The x axis actuation tested the use of timing belts with pulleys. This was a eureka moment for me to find the mechanism working in the first go. I did reduce the slackness in the mechanism after few trials. The y axis actuation was succesfully implemented as follows:
The z axis actuation was succesfully implemented as follows:
This tested the use of lead screw mechanism in the z axis. Next, Jay also tested the servo motor for the pen lift.
Automation
After getting the confidence with the actuation, it was time for automation. We wanted to be able to create a drawing in a 2D vector software such as Inkscape, then convert this drawing into tool path using a g-code extension for inkscape, followed by sending this gcode to the machine.
GRBL is commonly used firmware with the CNC shield for Arduino for motion control with CNC based operations. So, I was searching for some previous projects using GRBL to automate an xy plotter. I did find this [instructable](https://www.instructables.com/id/How-to-Make-GRBL-CNC-V3-Shield-Based-Mini-CNC-Mach-1/) for me to get step by step instructions to build my first machine :).
BOM for automation
The materials required for automation were:
1. Arduino Uno
2. CNC Shield V3
3. Servo motor
4. 2 A4988 motor drivers
5. Pen holder
6. Pen slider mechanism
7. 12 V DC power supply upto 10 A current
Wiring diagram
This image shows the wiring done on the CNC shield. Before this wiring, the CNC shield was placed over Arduino Uno.
GRBL firmware
Next, the GRBL firmware was downloaded, renamed as GRBL and placed in Arduino libraries folder. The grblUpload.ino example file was uploaded in Arduino Uno.
Image in Inkscape
I wanted to plot the image of sunset so I googled for such images and chose this one.
Inkscape extension for Servo Motor
Next, please make sure that you have Inkscape version 0.47 as the inkscape extension for servo works only in this version of Inkscape. Inkscape extension was downloaded from this link. Next please download these files in inkscape directory>Share>Extension folder.
G-code creation in Inkscape
Now open inkscape and set page size to 100 mm x 50 mm from menu icon File>Document Properties.
Now we need to vectorize this bitmap using the trace bitmap feature.
The vectorized image with the thresholding results in this image.
This image can be used to generate the tool path and g-code generation using the GRBL extension (MI GRBL Z-AXIS SERVO CONTROL) under the Extensions menu icon. The following image shows the settings used in the extension. Please play with the g-code M4 or M3 depending on which one of these gives the servo the lift.
This image separates the actual tool path from the vectorized image. This is what would be sketched by the xy plotter with the help of the g-code created in this file.
G-code streaming software
For streaming the g-code to Arduino, the universal g-code sender was downloaded. Please connect the Arduino to the laptop and open this software. Select the COM port and set the baud rate to 115200. Click on "Open". Next go to the "Commands" Tab. Enter $$ for knowing the present GRBL configuration.
Please change the $100, $101, $130, $131 as per your document size and resolution. To change the $100 (x max travel, mm) value from 40 to 100, please enter in the command line $130=100 & hit enter. You can press $$ in the Commands tab to confirm. Now its time to stream g-code to the machine. Go to "FILE MODE" Tab. Browse to your g-code file and hit enter. The image shows the processing on the computer screen.
The image below shows the screen once the job has finished.
Working of the xy plotter
Sunset sketch
The below video is for the process explained above to create the g-code for the sunset sketch. The sunset sketch using the plotter:
The Pen lift mechanism in all its glory:
The view from the back side of the plotter:
The view from the front side of the plotter:
The final plot came out to be:
Text plotting
This video shows the other aspects of plotter's mechanisms:
The images on the universal g-code sender.
The final text:)
Way forward
This xy plotter just converts the vector image in Inkscape to a plot. But the homing hasn't been applied. Secondly, to make this mechanism work the bed size got reduced. This could be improved. The resolution of the steppers could be refined using the jumpers on the GRBL shield.