|
GRBL firmware |
|
|
Inkscape |
|
|
UGS |
Draw robot
The materials required to build this project are listed below, in the Bill of Materials section. The tools we will need to use to construct the robot are:
- A 3D Printer
- Screwdriver set with Philips and Hex Bits
- Cordless Drill
- Jig Saw, if cutting the wooden board manually
- Drill Bit set with M3 and M4 sizes
- Hammer
- Electrical Pliers
- Tools to remove supports and clean the 3D printed parts
- Set of small wrenches
- Multimeter
- Soldering Station
- 30V, 1A Power Supply
- (Optional) A set of hex sockets and driver
Automation is increasingly present in our day to day lives. In the personal area, homes are being equipped with smart home devices and on the industrial side, more and more sectors are in the process of integrating programmable machinery to help in completing or simplifying tasks. One sector that has profited from this is education, where 3D printers are being used to enhance customized teaching and showcase the actual technology to prospective engineering. The following project aims to create a machine capable of drawing on an A4 sheet of paper from a digital drawing. To do this, the drawing as an image file will be converted thanks to a program to g-code, that allows the robot's motors to draw the image. It has been decided that the robot will have 3 degrees of freedom.
A 3D printer was used to create all main components of the robot, while pre-made screws and rods were used. The main requirements for the Mechanical part are:
- 3D printer with PLA material
- 8-mm smooth steel rods
- 8-mm ball bearing (X4)
- 3-mm and 4-mm screws with nuts
- 75 X 75 CM wooden board
For manufacturing, the plastic parts will be formed by plastic injection modelling because it can create products with a 0.09mm accuracy which is more the enough for this product, in addition to being cheap and popular for this type of plastic model. Steel rods and screws used are standard market items and available.
CAD Design Assembly:
- The first step is to insert the ball bearings and then the rods into the bearing holder and the motor into its slot, then place the cover on top and use 4mm screws with nuts.
- Then insert the endings of the bottom two rods in the bases and screw the bases to the wooden board at maximum length.
- After that, the two bases of the X-axis mechanism will be fixed using inner screwing and the pen holder will be placed in its slot using 4-mm long screws.
- After that the Y-axis tension pulley will be fixed on the wooden board.
A more detailed description can be found in the repository
Circuit Design:
The requirements for the electrical circuit are simple: the circuit needs to be able to drive the robot's axes in the x and y directions, move the tool head up and down on the z-axis, and be able to perform homing calibration independently. The circuit should also be robust and compact enough so it can be mounted to the robot base plate.
- The CNC Shield is attached to the Arduino and Stepper Motor Drivers are inserted into the X and Y axis slots and the Bluetooth Module draws power from a 5V pin on the Arduino that is left unoccupied by the CNC Shield.
- For the Protoboard, a normal board was used. The connectors soldered to the board are Dupont Female Headers for connections to the Arduino and JST XH Female pins for connections to the robot hardware for robustness, although Dupont headers can be used.
- The end-stops are wired to be in the NO (Normally Open) configuration, although if the user prefers, they can be wired in the NC (Normally Closed) configuration with changes to the code made.
- The rest of the connections are straightforward and detailed in the figures listed.
Software:
we will need to upload a custom program/firmware that will derive the motors and guide the drawing tool, allowing us to realise a drawing from input file commands, with the possibility to monitor the machine and configure its performance accordingly. Additionally, an optimal method to convert the desired drawing/photo to a simple input file that can be interpreted by the Arduino to derive the respective commands are required.
Firstly, for the optimization of the machine, MIGRBL Firmware is used, it is an open-source, embedded, high-performance g-code-parser for NC controllers written in optimized C, it translates the coordinates command written in a G-Code to respective X, Y and Z movements, and it fully gives the option to modify the machine parameters, most important ones to us are:
- Feed rate [mm/min]: Speed of the drawing tool along the x-y plane.
- Step size [steps/mm]: The number of steps made by the stepper motor to move one mm on each axis.
- Servo Angle [Degree]: The angle required to raise the tool head.
- Max travel [mm]: maximum travel from end to end for each axis in mm, useful for using soft limits switches.
Next, after preparing our controller we need to convert the drawings/pictures to a G-Code file, we can use commercial software such as Inkscape, as it gives more freedom when generating the code, such as we can specify the dimension of the drawing area and drawing style (Filling, Edge outlining), Hence, allowing us to have more than one drawing modes.
Moreover, after generating the G-Code file and having our controller ready, we need a communication interface between the controller and the user device, hence, Universal G-Code Sender (UGS) is used, it allows us to visualize the working mode of the machine for each of the commands while configuring the above-listed machine’s parameters. Below you can see the total flow and integration of the individual software. Code Files:
- MIGRBL firmware for the interpretation of the G-Code command: https://github.com/robottini/grbl-servo.git
- Inkscape for the Conversion of the drawing file make sure you install MIGRBL extension as well: https://inkscape.org/
- Universal G-Code sender to send the input file and monitor the machine: https://github.com/winder/Universal-G-Code-Sender.git
Integration:
after preparing the components from all of the subsystems, we are now ready to assemble the machine. the pictures shows the main parts that are installed accordingly.
Firstly, as shown in figure, tag 1 and 2 shows the installation of the X directional axis motor and the limit switch, while 3 and 4 shows the installations of the Y directional axis motor and Y axis limit switch accordingly. after fixing them in the frame, the mount assembly looks like this.
When fixing the motors for the translation movement, the belts have to be tightened well to decrease the slip and increase the drawing accuracy, in this machine, for the X direction belt. A smooth pulley fixed and tightened in a mid position between the two bases was used, while for the Y it is done by fixing the pulleys in this fashion.
Shown in tag 6 and 5, the drawing tool frame and the servo motor are placed, the drawing tool is raised and lowered by the movement coming from the servo-shafts rotating in a 0-90 degrees, they are both connected by a nylon wire, Furthermore the tool can be replaced or adjusted by the screws, as shown bellow.
Next, we can start the wiring for electrical part as discussed in Section 5.2.1, the connection for the actuators and sensors were all joined in the proto-board, and assembled inside the Electronics Box, Furthermore the picture below shows the cross section of the box.
Finally, after the assembly of the Electrical connection, and plugging the power supply to the shield, the machine is ready to be connected to the user device (either by Bluetooth pairing or USB connection), meaning that we can now start drawing.
Demo Project Show:
The below video shows the working of the robot with a small feed rate for visualization of the process, however, the user can increase the drawing speed of the robot as he wishes from UGS.
Bill of materials:
Here is a list of materials with the price for a pack, the number of item on the pack and the number used. In total used column, it’s the price for the number of units used.
I hope you have fun designing this machine!
I have also posted this projects to Instructables community, here is the link: https://www.instructables.com/Draw-Robot/
Draw robot
- Comments(0)
- Likes(3)
- Engineer Mar 29,2023
- (DIY) C64iSTANBUL May 24,2022
- cory May 22,2022
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by cory
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
111 0 0 -
DIY Laser Power Meter with Arduino
162 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
154 0 2 -
-
A DIY Soldering Station Perfect for Learning (Floppy Soldering Station 3.0)
554 0 2