Week 10

Mechanical & machinedesign

Group Assignment Sand drawing CNC

Mechanical & machinedesign: Sand drawing CNC

April 06, 2024

Meet our team!


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
  • - actuate and automate your machine

What did we do on this week?


This week, we were assigned a team to design, build, assemble, and program a CNC. This task was a challenge for all of us since we didn't know each other before. We had to learn to work as a team with colleagues who weren't even from our degree programs. The goal of building this CNC was to employ the skills acquired in previous weeks and apply them to a team project. Our team chose to make a CNC that draws in sand as a decorative piece initially. As the project progressed, we came up with ideas to potentially create molds with the sand and produce pieces using some other technique in the future.

Sketching our ideas

During the brainstorming session in our first team meeting, the idea of making a CNC that draws in sand emerged because one of our team members had seen a video on TikTok where they made these images in beach sand. When we proposed it to the team, everyone voted in favor of making it. Next, we see the first sketch of the project where we marked the dimensions, materials, structure.


The idea was simple in our minds; there would be 2 axes, X and Y. These two axes would perform the drawing in the sand using a magnet at the tip of the tool, dragging a stainless steel ball, creating the drawing in the sand. Initially, the structure was intended to be built with 20x20 aluminum profiles, but we encountered the economic limitations of the team and the university so we decided to make the structure out of 15 mm MDF. The materials considered were smooth rods, plain bearings, and PLA for 3D printing, but we would later discover that we needed more things.

- Materials and tools -

Here is the main materials and tools we used for build our CNC.

Quantity Description material
1 Arduino UNO and CNC shield for Arduino.
2 A4988 Drivers
2 NEMA 17 Stepper Motors
4 Linear Bearings
2 2 Belt Pulleys for Nema Stepper Motors
2 Timing Belts.
4 Linear shafts 8 mm Diameter, 40 mm large
1 3 mm MDF board, 120 x 240 mm
1 15 mm MDF board, 120 x 240 mm
1 PLA roll.
4 20x20x200mm aluminum profiles
1 Box of M4 screws
1 Magnet
1 Stainless steel ball.
400 gr Sand.

- Team task distribution -

For this test, a Starrett gauge was used for measuring the concentricity of the spindle/cutting tool, first with the spindle off, then turned on. This measuring gauge has a range of 0.01mm and after the tests, no variation was found.

Team mate Work assigned
Ximena Mendieta Supervision of the 3D design/td>
correction of the dimensions of the parts
assembly of the CNC.
Alejandro Alvarez machinedesign
3d printing
Project managment
Assembly
Luis Islas G code
David Gonzalez 3D print
assembly of prototypes
final assembly
Fernanda Capetillo machinedesign Supervision
Final assembly
Rodrigo Gomez Design of the lower structure pieces
group web page
laser and router cutting of pieces
Valeria Barroso Electronics production
G code programming
Andrea Rodriguez Grbl controller
Vector transformation

- machinedesign -

To create our machine we decided to use a cartesian mechanism where the system would be only used in a planar dimension (XY) and would have a two step motor for the Y axis and a Single motor for the X axis. To create the design we research for different commercially available machines that already use this style of kinematics like the UltiMaker 3D printer where the printing head moves along the XY axis

To create our system we would three pieces that will carry the stepper motors, two of them set on two corners that will drive the Y axis (so this pieces will need to be parallel and mirrored one from another) and another piece that will be placed on the steel-rod and move along the Y axis but control the X axis.

For this, the mirrored corner motor support will have a pocket to have a Nema-17 stepper motor and be fixed to the aluminum extrusion as well as having a insertion place for the Y-axis rod.

At the opposite corner, we need a corner to fix a belt pulley where the belt will return to the stepper motor and an insertion place for the Y-axis rod as well.

Another critical part of the mechanism is the X-axis system where another Nema motor is needed. How ever, this motor will be moving along the Y-axis, therefore the motor needs to be mounted on the rod with a linear ball bearing and have the space for a Nema 17, two rods for the X-axis and a space to lock and create tension for the dented belt.

On the opposite side, there will be another part where those two rods will be inserted, another essential criteria is to have the belt pulley as well as the linear ball bearing mechanism.

For our magnet we had a part segment where the belt is fixed to add tension to the mechanism, two sets of lineal ball bearing and a shaft to get the magnet on the proper height to be able to drive the ball on the sand.

Design criteria

As these parts will be 3D printed, there were multiple sets of rules that were taken into account:

  • No greater than a 60° slope.
  • Add rounding to corners where stress could be concentrated.
  • No bridges greater than 20 mm.
  • No walls with less than 1.6 mm thickness.
  • Design all parts to be support free.
Assembly

The CNC had the assembly made to make sure that all parts are well aligned. This will be a critical to ensure that at the moment to have the physical assembly all parts will fit and the mechanism will work.



Render

This is a virtual render of our project selecting materials

- 3D impression, router, laser cut. -

3D impression

Here we left you the previous Configuration of the software UltiMaker Cura for printing 3D pieces.

Mistakes on 3d printing
  • Poor Bed Adhesion: This occurs during the first layer. The print did not adhere properly to the print bed, leading to warping or detachment. It was caused by improper bed leveling and insufficient bed temperature.
  • Warping: This happened due to escalating some pieces at 100% and others at 102% due to the contraction of the material, causing them to contract unevenly and distort the shape of the object. It can be mitigated by using a heat gun carefully or it will deform the edges like shown in the pictures, also using adhesion aids like rafts or brims so they don't contract more than needed.
  • Fractures: As discovered, 3D printing materials are not equally suited to bearing loads. Brittle materials like PLA are more likely to fracture under pressure compared to tougher materials. In the end, PET G was chosen because it was believed this material has higher impact resistance and may prevent breakage.

Router

Our team decided to use different materials for the construction of our CNC because we had a limited budget. We utilized various materials for different parts of the structure. For the base of the CNC, we used 15mm MDF, which we will cut with the router. In this activity, we used Asia Robotica; you can see the features and general instructions at the following link: Group Assignment. In this base, we made a recess inside for the entry of 20x20 mm profiles and made the holes where the M4 screws are located.


Video of cutting on router


Laser cut

As we previously mentioned, we used different materials, and to create the box that would hold the sand, we planned to make it out of 2mm acrylic, but we were unable to find the material and had to end up making it out of 3mm MDF. For this piece, we used the laser cutting process.


Parmeters

The parameters we used for the laser cutting are the following. It's important to calibrate it beforehand so that we don't have too much kerf and our pieces can assemble correctly. However, we had to use glue.


Here are the progress of cutting in laser.

- Step motors -

  • With the Arduino programmed and equipped with the shield, the next critical phase in our project involves extensive testing of the motors.
  • This process is facilitated by the use of Universal Gcode Sender, an open-source software platform known for its comprehensive suite of features designed to communicate with sophisticated CNC controllers.
  • To start the testing procedure, the initial step involves establishing a connection between our Arduino and the computer through the Universal Gcode Sender interface.
  • We proceed to load our pre-written g-code. Selecting the COM7 port is crucial, as it is the channel through which the Arduino communicates with the PC.
  • We ensure that the grbl firmware is selected, which is essential for interpreting the g-code and translating it into precise motor movements.
  • Upon clicking the 'connect' button, the software attempts to establish a link with the Arduino. A successful connection signifies that we are ready to proceed to the motor testing phase.
  • We can now directly interact with the CNC machine through specific commands, such as entering the "y" or "x" commands into the Universal Gcode Sender, prompting the corresponding motors to activate.
  • Observing the motors move in response to our commands offers tangible proof of our project's progress and functionality.
  • This testing phase is not just a demonstration of our machine's operational capabilities; it's also an essential step in troubleshooting and refining the system.
  • Through careful observation and adjustment, we can identify any potential issues with the motor's response, alignment, or speed.
  • This phase of our project is about bridging the gap between theoretical design and practical application, moving us closer to realizing our vision of a fully functional CNC machine.
  • It's a testament to the synergy between software and hardware, and a pivotal step in our journey from concept to creation.

- Programming and G-Code -

Inkscape

In the Inkscape program, we click on the "File" menu and change the document size to match the dimensions of the sand bed so that we can work with the final measurements.


Step 2: (Images 2, 3, and 4) We paste the image we want to be drawn in the sand. Then, under "Trace," we select "Trace Bitmap" to open its menu. From there, we change the threshold to 0.6.

\

Step 3: (Images 5 and 6) We update the preview and click "Apply". We then drag the trace we just made to remove the previous one.



Step 4: (Images 7 and 8) With the new image, we can now generate our G-code. We select the image and under "Trace," we click "Object to Path" and then "Dynamic Offset".



Step 5: (Images 9, 10, and 11) Now, using the Extensions tool, we go to Gcodetools and click on "Tool Library". A menu will open; we ensure that the tool types are set to default and click "Apply". From the opened menu, we change the diameter to 2.0.



Step 6: (Images 12 and 13) From the Extensions tool, we go to Gcodetools and select "Orientation Points". In that menu, we make sure it's in mode 2 and click "Apply".



Step 7: (Images 14, 15, 16, and 17) Using the Extensions tool, we enter Gcodetools and select "Path to Gcode". From that menu, we go to preferences and write the name of our file, ensuring it ends in (.ngc). In the directory section, we write where we want to save our document and then click "Apply".

- CNC Assembly Process -

Gather Components: After printing all pieces, collect all the necessary components for your CNC machine assembly. This includes 3D printed parts, linear motion components (such as rails, bearings, and lead screws), electronics (stepper motors, motor drivers, Arduino or other controller board), power supply, spindle or router, fasteners, and any other accessories.

Assemble Base Frame: Start by assembling the frame of the CNC using the 3D printed parts and rods to form the square and the base. Follow the assembly instructions provided with the design files or refer to any documentation available. First, ensure the measures are correct, then assemble all other parts.

Install Linear Motion Components: Attach the linear motion components such as rails, bearings, and lead screws to the frame according to the design specifications in the assembly. Use the appropriate fasteners and make sure they are correctly aligned to secure them in place and ensure smooth movement along the axes.

Mount Motors and Electronics: Mount the stepper motors, motor drivers, and controller board onto the spaces in the 3D printed parts. Connect the wiring between the motors, drivers, and controller according to the wiring diagram.

Sandbox and Final Frame: After assembling the sandbox, insert the square component aligned with the CNC machine into the designated space within the 3D printed parts. Then, place the necessary sand and magnets on top.

Test and Calibrate: Before using the CNC machine, perform a thorough test and calibration procedure. This includes homing the machine, checking movement along each axis, and calibrating motor steps/mm and acceleration settings using the CNC control software.

- Files to download -

Files to 3d printing
CNC design
DXF files