Machine Design
Week 02 Progress
We design and build a machine that plots almost anything.
“DXB Plotter”
Before we begin to talk about our specific part in the project, we think it's important to see the first part of the project successful and done to move on the part of working the machine. Well, the concept was already clear in our heads and even if we had the main files to build the axes, it was hard to figure the way it would move or space it'd take. Especially in the coming part which is calculating the steps the motor moves or runs in such distance “1 mm”. Muaath and Hashim explained the formula of calculating that.
Back to the idea of out project “DXB Plotter”, It's sure that the concept is not the most innovative in the way that it does already exist and that we probably did not push the concept that far upfront. Still, for us, at least, it's a bold move to machines building and the result seemed really awesome to us!! As a reminder, we are still novice and we've already traveled a long way to arrive at that point where we could make such a machine!
Planning
Also, as a group assignment for this phase of the project here how we separated the tasks:
- Servo motor ( Eidha)
- Stepper ( Darshan)
- Limit switch ( Zubair)
- XY Axis movement ( Salama)
- Video, poster and vinyl (Zahrah )
Calculation
We had to calculate how many steps per 1 millimeter. we need to specify an axis’ steps per mm that means how many steps the motor has to run to reach a motion of 1 mm.
We used this page for calculation (http://www.aquickcnc.com/wiki/Stepper_Motor_Calculations)
A very common resolution for stepper motors is 200 steps per revolution, so we know 200(steps per revolution).
It's hard to measure turns per 1 mm so what we measure the distance in one turn and quarter (1.25 revolution) and it was 9.17(mm).
200(steps) *1.25 (revolution) = 250 (steps) then we found steps per 1mm by dividing the steps by distance 250(steps)/9.17(mm) = 27.26(steps per 1mm).
Typical stepper motors are 1.8 (degrees per step) this will increase the accuracy and smooth the movement of the motor beside reducing the noise, so we enable something called micro stepping. This will increase the number of steps per revolution with a factor of 2n (n is an integer).
so we multiply steps per mm by micro-stepping settings 8*27.26(steps per 1mm)= 218 (steps per 1mm).
We have to provide this number (218 steps per 1mm) to the software for motion control.
In the universal G-code sender
we have to identify which com port we are using to communicate with our machine. we are selecting the firmware should be set to GRBL and the baud rate that corresponds to our machine. The baud rate should be similar to the baud rate to what we had in Arduino IDE.
There is an keyboard movement option with step size and unit. This will control the axis manually.
After we sit X and Y axis in a proper position we set the machine zero location by click on Reset Zero that means that we initialize the home position for our machine.
We wrote $$ in the command bar that will display the settings for the movement for each axis. Update the GRBL settings by typing the following into the command line.
$0 = 218 this command then press enter for X axis
$1 = 218 this command then press enter for Y axis
Alzubair Part
-Limit Switches
We worked on a limit switch called KW12.
The connections were easy, C,NO that's all we needed as we connected to the CNC Shield. The white goes with the C, which is where the electricity goes, the NO is where the circle closes when the switch clicks.
After that the only thing missing is to enable the homing cycle and the hard limits, and they are $17 and $16, we need to set them to 1 which means true as in enabled. Then they work perfectly with the limit switches.
- Clippers for Wiring
For the wiring, we tried something really simple with relation to the thickness of our base material, which is almost 6mm, and we got the shape below, after a second attempt in a similar design, we basically just made the space wider by 1mm more than the first design. That was it.
-Universal G-code Sender
We had problems with sending files with the G-code, it didn't work before. We fixed that by changing some settings for the drawing we have from inkscape, because that's what we used. First thing was making the drawing Hairline.
Second is changing the canvas size so that it fits the shape we have. And also make sure its in px like the picture below.
Then we just saved it but we did change settings when we get the G-code Window, as we didnt have a stepper Z-Axis, we changed most values that depended on it to zero.
● Indexers
● The indexer (or controller) is a microprocessor capable of generating step pulses and direction signals for the driver. In addition, the indexer is typically required to perform many other sophisticated command functions.
Drivers
● The driver (or amplifier) converts the indexer command signals into the power necessary to energize the motor windings. There are numerous types of drivers, with different voltage and current ratings and construction technology. Not all drivers are suitable to run all motors, so when designing a motion control system the driver selection process is critical.
● CNC Shield Board:
● Latest CNC Shield Version 3.0 for Arduino.
● GRBL 0.9 compatible. (Open source firmware that runs on an UNO for Arduino that turns G-code commands into stepper signals)
● PWM Spindle and direction pins
● 4-Axis support (X, Y, Z , A-Can duplicate X,Y,Z or do a full 4th axis with custom firmware using pins D12 and D13)
● 2 x End stops for each axis (6 in total)
● Coolant enable
● Uses removable A4988 or DRV8825 compatible stepper drivers
● Jumpers to set the Micro-Stepping for the stepper drivers. (Some drivers like the DRV8825 can do up to 1/32 micro-stepping )
● Compact design.
● Stepper Motors can be connected with 4 pin molex connectors or soldered in place.
● Runs on 12-36V DC.
Image has been downloaded from this
LINK
● In order to communicate with the stepper motor, using arduino we download the following essential tools, softwares and extensions.
● 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.
● This is the
LINK to download GRBL library for arduino
●Grbl Controller is software that is designed to send GCode to CNC machines, such as 3D milling machines. It isn't super smart, it just needs to give the user a nice way to get commands down to whatever controller they are using. Version 3.0 is has been optimized for the Arduino to control Grbl shields.
● Inorder to copy the GRBL files, we first extract all file and choose the folder inide the main downlaoded folder and copy the same to the Arduino libraries as show in the image below.
Image has been used from this
LINK
CNC Shield Board: Package Includes:
●1 x CNC Shield Board
●4 x A4988 Stepper Motor Driver
●4 x Heat Sink
● Since we are using only 2 stepper motor for, the following image shows the connection of the same with the drivers on shield.
● Also the stepper requires power of 12V, so we connected an external power supply to the shield as well.
● We choose the example option and open the GRBL/ GRBL to Arduino to obtain the code.
● The following image shows that I selected the Arduino Uno board and ArduinoISP to upload the sketch.
● The following is the code, from the GRBL to Arduino library, used to program the arduino wiht sheild in order to communicate with the motors through GRBL and universal gcode sender.
● This is the
LINK to download Universal G code sender software.
● This is how the software look like once connected to the port and using firmware GRBL to communicate with the stepper motors.
● Here we can choose options such as command and edit them as per the stepper motor and project requirement, also control the motors with the help of machine control.
● We need to have a java script to run the above software. This is the
LINK to download Java script to run the universal gcode sender software.
● G-codes, also called preparatory codes, are any word in a CNC program that begins with the letter G. Generally it is a code telling the machine tool what type of action to perform, such as: Rapid movement (transport the tool as quickly as possible in between cuts)
● This is the
LINK to download extension for gcode in inkscape.
● Driving Stepper Step in time, step in time Come on, mateys, step in time Step in time Step in time, step in time Step in time, step in time Never need a reason, never need a rhyme We step in time, we step in time "Step In Time" Robert B. Sherman and Richard M. Sherman
● The following image shows the poster we have been preparing for our group project page, as per the specifications of 1920x1080. Its been quite a good progress in terms of the testing and integration part of the project. The group showed great amount of passion to achieve the results in the given time.