Week - 15 Machine Design
As a part of this week's assignment, we were asked to design and a machine with automation and actuation. The main criteria are that it must be at least a 2 axis machine. So we started discussing what type of machine can be done. We had done our personal research and had bought to the table each of our own ideas regarding the same. The final conclusion was to make an X-Y plotter, but the question was, ‘What more can be done?'. As the discussion progressed we came up with the idea that we'll make a caricature machine, that captures an image of the person and draws them, also the end effector can be modular, meaning it could be changed to a pen, pencil, cutter, paintbrush etc. We wanted to design the holder in such a way that it can serve as a multi-purpose holder, and hereafter much iterations and learning process is our final model and its working.
Machine Demonstration
Now to discuss the process and making of the machine.
MTM kit
MTM stands for Machines that make. This is like a library of machine and its prototypes done by students of MIT namely Jens, Nadya, Johnathan etc. There are several types of machine and their documentation available here.
http://mtm.cba.mit.edu/
So we started to use one of them to prototype and see how the axis works. The prototyping was done in corrugated cardboard sheet. The whole assembly and the files can be found here
http://mtm.cba.mit.edu/machines/science/
Sourcing a high-density cardboard was difficult. So we had to go with what was available. The thickness of the material was half of what was being used and since it was only for prototyping we reduced the scale of the drawing. Another challenge was to get the right laser cut parameters as the sheet caught on fire several times in the past with the same material. After testing various parameters we got the right one where the material didn't catch on fire.
Laser Cutting Test
We used speed 20 and power 20. Once the parts were cut we started taking them out and with the help of the gif in the website started assembling the frame.
Assembly .Gif
The material was not all that great. It was not crisp and when bent it was not sharp. We had an additional millboard, so we cut the millboard with the same file and tried assembling it as well.
Laser Cutting In MillBoard
Once both the parts were assembled this is how they looked.
This helped us understand how the axis works. How and where the motor sits and the rods that help in sliding etc.
Having briefly understood the working we wanted to change it. See how we could improve upon it. So we started reading about various other projects and about the X-Y axis machine. The following link was very useful in understanding the working of the X-Y machine
http://corexy.com/theory.html
Roles and Responsibilities
As we tried and tested the MTM kit we had a basic idea how the machine functions. We split tasks among ourselves to efficiently function in our areas of expertise.
-Project Management (Organizing time schedule, bringing the group and task together)
-Material Procurement (Procurement of all materials required for the project)
-3D Printing (Slicing the files, Printing the necessary components, Iterations)
-End effector (Design and working of the end effector )
-Documentation (Bill of quantities and pictures)
-2D design (Desinging the 2d files for the machine and its iterations)
-Laser Cutting (Laser cutting the designed files, checking the paramenter and press-fit)
-Painting (Painting of components)
-Slide (Designing the machine poster)
-Video (Editing pictures and videos for documentation)
-Documentation (Group documentation of design and assembly)
-3D modeling (Designing and modeling of the 3d files for the machine)
-Laser cutting (Laser cutting the designed files, checking the paramenter and press-fit)
-Documentation (Documentation of the electronics and Programming of the machine)
-Electronics (Complete electronics and working of the machine)
-Programming (Installing GRBL, Generating G-code, etc.)
-Documentation (Assisting with necessary materials for documentation)
-Testing (testing the machine and its functions)
Group:
-Designing (The basic design of the machine)
-Assembly (Putting all the parts together)
-Prototyping (Checking the machine for stability and iterations for the same)
-Testing (Testing the machine in all built and electronic aspect)
Simplification and Redesigning
Now in case of MTM, we have 2 axes separately. Meaning each axis is controlled by an individual motor. We wanted to combine the two. We wanted to see if we could combine the movement of the x-axis and y-axis without having to build two frames. Now that means the central portion will intersect and we have to come up with a system that holds both in place. That is not possible in the MTM kit as the central box can accommodate two rods, but that means all the outer frame has to be removed. So we were kind of stuck trying to find a solution to simplify the machine. Lesser the parts, easier and faster it is to fabricate the machine.
When trying to find a solution for the same is when we came across this machine in Thingiverse.
https://www.thingiverse.com/thing:2349232/#files
The machine was very simple and we decided to use this project as a reference for our machine.
We had a discussion again to see what we can design ourselves and what to use reference. For X and Y axis side parts, we have decided to design our own and laser cut it, whereas the central portion we used the design from the reference and first see how it works, and the design our own from it. Another important point in his design is the use of belt instead of threaded rod for movement. Using the rod increases the expense and the joinery detail. So to make it affordable using the belt was a good option.
Prototyping I:
We have started with vector design files with the calculation of making 450 * 450 mm machine.
2D in CAD
The design was very rough as once we started assembling our first machine, there will be a lot of iterations. We then laser cut the parts and also 3d printed the central portion from the Thingiverse library.
2D and 3D parts
Note the above picture does not contain all the parts. It is just an initial picture when we started off.
The next step was to assemble all parts together and see how they fit. As a group of 4, we split into 2 pairs trying to assemble the 3d portion and laster cut parts. There were some hammering and drilling to do to fit everything perfectly.
Assembly
We could not assemble the machine as there were several flaws in the design.
Problem identification and iteration
Once we laser cut all parts and assembled we have found the major issue of alignment to central part and x y rods. In order to resolve x y-axis alignment problem, we took central bearing holder as a reference to ground and mark the dimension and center to center distances. For both axes, we noted down actual dimensions and redesigned vector files. Also, the motor height was not considered in the previous design.
Prototyping II:
Having identified the problems, we re-designed the 2d files and laser cut them
Once the cutting was done we tried assembling together with 2 NEMA17 stepper motors lying on the same axis.
Complete Assembly
We tried rotating the motors by hand to see how the movement of the axis works and noted down them down to use it for programming.
Problem identification and iteration
All was not perfectly still. All four members were required to operate the machine manually. These were the problems that we faced.
-The whole assembly was not stable
-the rods need to be fixed more securely
-The pulley does not rotate freely
-the Motor need to be held properly
These were the major problems that we Identified after 2nd prototype. Having thought about it we figured we would re-design and go for the final model.
Final Model
Since the whole model was to be fixed on to a base the parts needed to be made press fit, the base had to be designed. Also, slots for placing the Arduino and shield with holes for the wires were identified and included in the design. We Came up with a double layer system to attach then rods and in the y-axis, we used bearings for the same.
In our final model we decided to 3d print the central portion as per out design and the pulley was not rotating freely. So all this changes were made in the 3d design and printed again.
The motor holder was cut out in acrylic. And the rest of the laser cut parts in 5mm thick MDF.
We assembled the x-axis parts to check for error and it was all fine
So then we put all the parts together and checked if it was all good. The assembly was perfect and stable.
Now to draw the base, we placed it on a thicker MDF board, measured it manually and took it to CAD.
Then parts were laser cut.
To give the model a more finished look we decided to give it a coat of paint. We gave a coat of lacquer and a coat of black acrylic spray paint. The model looked neater this way.
Then once the drying was done we assembled the model onto the base
So this is the final machine
And we tried moving the machine manually this time and it was really stable.
Electronics and Programming
This drawing robot is powered by an Arduino Uno controller and a CNC Shield which uses GRBL firmware.it allows you to draw things in Inkscape and then plot them out. The drawing robot receives G Code commands that are created inside an Inkscape extension or here in universal gcode sender
Electronics component required
2x stepper motors (Nema 17 bipolar motor)
1x Arduino Uno board with Arduino CNC shield
2x A4988 stepper driver (with jumpers @ 4x microstepping)
Controlling machine
For start with controlling part you first need to download few files and software which are listed as A,B,C
GRBL installation
GRBL first needs to be installed on your Arduino Uno in order for you to send Gcode files with the universal gcode sender
About Grbl
Grbl is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard.
Most open source 3D printers have Grbl in their hearts. It has been adapted for use in hundreds of projects including laser cutters, automatic hand writers, hole drillers, graffiti painters and oddball drawing machines. Due to its performance, simplicity and frugal hardware requirements Grbl has grown into a little open source phenomenon.
About grbl refer this link for more details about grbl
Download the GRBL firmware here: Link
You can follow the guide on how to install GRBL here: Link
Grbl installation
Steps for grbl installation on arduino
Download the Grbl source code (v0.9j)
Click the Download ZIP button on the Grbl home page.
Unzip the download and you'll have a folder called grbl-master.
Launch the Arduino IDE, Make sure you are using the most recent version of the Arduino IDE!
Load Grbl into the Arduino IDE as a Library.
Click the Sketch drop-down menu, navigate to Include Library and select Add .ZIP Library.
imp- Select the Grbl folder inside the grbl-master folder, which only contains the source files and an example directory..
7 Include library , for this Go to sketch and select include library and select grbl servo master
Click down-down menu, select GrblUpload. Compile and upload Grbl to your Arduino.
Connect your Arduino Uno to your computer.
Make sure your board is set to the Arduino Uno in the Tool->Board menu and the serial port is selected correctly in Tool->Serial Port.
Click the Upload, and Grbl should compile and flash to your Arduino! (Flashing with a programmer also works by using the Upload Using Programmer menu command.)
Click down-down menu, select GrblUpload. Compile and upload Grbl to your Arduino.
Connect your Arduino Uno to your computer.
Make sure your board is set to the Arduino Uno in the Tool->Board menu and the serial port is selected correctly in Tool->Serial Port.
Click the Upload, and Grbl should compile and flash to your Arduino! (Flashing with a programmer also works by using the Upload Using Programmer menu command.
B Using inkscape to generate gcode
For this first Download the latest version of inkscape for your computer here: Link, here we use it to generate gcode from vector image in .nmc format file which we send into machine using universal gcode sender, I will run you through the steps on how to generate Gcode files using Inkscape:
Step 1 import image
Go to File>Open
Browse for image or vector file
To resize image, first click on it then hold ctrl while dragging a corner
Step 2 create path from image i.e trace bitmap
Step 3 move bitmap to new layer
Step 4 open tools library change the parameters as shown in image
Step 5 create orientation point ,this are the point which you have to use for setting the size of your plotter make sure this values are less than what max value you added in grbl code and resize your image and put this between points
Step 6 generate gcode
First select the image then navigate to Extensions>Gcodetools>Path to Gcode
Click on the Preferences tab and specify the directory and name
Click back to the Path to Gcode tab and click apply
Now close the window
C. Universal gcode sender for sending gcode
1 Download latest version of universal gcode sender here open this for this you first nees to install latest version of java script link and open the software , we have use this because as it support many libraries and have user friendly interface
2 change grbl parameters
You will need to change the GRBL parameters before you start drawing with your machine
Enter these values as seen to the right in the command box
3 go to machine control and browser your gcode file and send
D. Testing the Machine
Plug in the power supply
Plug in the USB cord into your computer connecting your arduino
Launch the universal GCode Sender and browse for your gcode file
Test your robot with one of the sample codes
Attach a pen, colored pencil, sharpie or any writing utensil you prefer.
Areas Of Improvement
-Automatic Bed leveling
-Better Aesthetic design
-The servo needs to be better caliberated
-Motor holding fixtures
-Universal End effector design needs more refining
Bill Of Quantities
Process and working of Machine