Draw Robot

by ProjectDrawBot in Circuits > Arduino

5557 Views, 44 Favorites, 0 Comments

Draw Robot

Drawing Robot

This robot was made as part of the [MECA-Y403] Mechatronics I and [MECA-H409] Design Methodology courses.

Supplies

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:

  1. A 3D Printer
  2. Screwdriver set with Philips and Hex Bits
  3. Cordless Drill
  4. Jig Saw, if cutting the wooden board manually
  5. Drill Bit set with M3 and M4 sizes
  6. Hammer
  7. Electrical Pliers
  8. Tools to remove supports and clean the 3D printed parts
  9. Set of small wrenches
  10. Multimeter
  11. Soldering Station
  12. 30V, 1A Power Supply
  13. (Optional) A set of hex sockets and driver

Table of Contents

  1. Abstract
  2. Project motivation
  3. Function
  4. State of the art
  5. High-Level Design 
  6. Design of Sub-Systems
  7. Mechanical Systems
  8. Circuitry & Sensors
  9. Software
  10. Integration guide 
  11. Demo project show
  12. Review of the project
  13. Bill of materials 
  14. Team Preview
  15. Project Repo and resources

Abstract

The aim of this mechatronics project is to design a Drawing machine, the process included different fields to be combined in which as a team, each member was assigned a different role to fulfil. This drawing machine is an A4 sized machine that controls a pen through a guided path, this path is then derived from the movements of 3 motors, 2 which are steppers for X and Y movements and 1 servo-motor solely for the Z direction, the material used for the building of the machine were purely selected to be feasible and robust (ex.PLA and Aluminum), hence keeping the costs at a minimum. The machine can be communicated with via either a USB connection or Bluetooth pairing, which ideally makes it more user-friendly, additionally the drawing tool is replaceable as well allowing the users use their desired tool, as there is no limitation to the drawing modes, the machine can draw with increasing complexity. In this paper we are going to showcase the process and the guideline that we followed to build our own 3-axis drawing machine, from scratch, along with the designed parts and the resources needed. 

Project Motivation

 Automation is increasingly present 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 the sector of education, where 3D printers are being used to enhance customized teaching and to showcase the actual technology to prospective engineering. 

The aim of the following project consists in the creation of a machine capable to draw on an A4 sheet of paper from a digital drawing. To do this, the drawing in .PNG format 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.

Functions

Several functions have been implemented on the machine. The robot is able to draw thanks to a GRBL file which will be communicated to it by a computer. The communication is done through a USB cable connecting the micro-controller and the computer. The Bluetooth communication function has been prepared and implemented in the code but has not be tested in time.

The machine can be equipped with all kinds of writing tools with a maximum diameter of 15mm for drawing tool It is therefore possible to replace the writing tool more easily.

Thanks to the 3 degree of freedom of the robot, the whole surface of an A4 (297 x 210 mm) sheet can be used without constraints and can make discontinuous lines, i.e. draw several separate shapes without a line connecting them. It is also possible to change tools or colors by pausing the drawing and to resume the work after the change. Another feature is that it is possible to increase or decrease the size of a drawing and the velocity of drawing.

State of Art

Mechatronics Draw Robots report - Online LaTeX Editor Overleaf and 5 more pages - Personal - Microsoft​ Edge 31_12_2021 09_05_23 (2).png

An assessment of the current market offering for the product’s intended role should be made in order to

gauge the current state of technology and desired features. Table shows an analysis of the current state of the art


High-Level Design

subsystems.jpg

to design this robot we divided it into 3 sub-systems:

  • Mechanical
  • Electrical
  • Software


Mechanical Parts

rod_box.png
Mount.jpeg
Servo-TOOL.jpeg
final_real_robot.jpg

Manufacturing choices: Minimum weight and cost

A 3D printer was used to create all main components of the robot, while pre-made screws and rods where used. The main requirements for the Mechanical part are:

  • 3D printer with PLC 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 models. 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 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.


Circuit

Circuit Diagram_bb3.png
Circuit Diagram_schem.png
circuit_final.jpeg

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 endstops 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 on in the figures listed.

Software

Flow.png

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 an 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 is 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 commands 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 Guide

Mount (1).jpeg
ASSEM (1).jpg
BeltY.jpeg

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

Robot Running
5.PNG
2.PNG
3.PNG

Having our machine ready a quick guide is shown below to walk you through the process on how to startup the machine and run your drawings.

  1. First we start by preparing and converting the drawing file to a G-Code file using Inkscape.
  2. Open UGS and establish the connection with the Arduino via the USB or depending on the chosen communication method, by choosing from the COM port and then clicking connect icon.
  3. after connecting with the machine, open the Drawing file, and Click unlock. additionally make sure you connect the shield to the power supply after connecting the Arduino.
  4. Before clicking the play button fix the Drawing paper on the platform, and make sure the desired drawing tool head is placed, as shown in the picture below.
  5. Now you are ready to run the Code, and using the visualizer you can observe the current path of the machine, using the tools you can pause, stop and resume the process.

Review of the Project

Looking back at the process several mistakes could have been avoided and we are going to list them here, along with the gained experience and knowledge that we can implement in the future project. Finally the possible improvements that could have been made if the time allowed.

Of course errors are hard to be avoided, especially when it comes to the initial design process, during the project we have made errors but some of them could have been avoided by putting more thoughts on the problem, Like the importance of the alignment of the rods that we have not taken into account directly, thus, making us lose precious time, to resolve this we have spent extra time on designing and printing parts that could perfectly hold bearings allowing us to have a smoother movements of the rods and to get rid of the dis-alignment, another problem that could have been avoided, was that we didn’t take into account the insertions of the bearings for all the 3D parts, hence, increasing the consumption of the resources because the parts needed to be reprinted.

In addition to that, Some errors were made due to the lack of experiences and deeper knowledge. For example, we believed that decreasing the diameter of the holes while printing would ideally hold the rods. In a matter of fact they were held correctly, but it wasn’t the correct way to do it. Thanks to the assistants for their help to solve these problems. There were also some errors on the design itself, we have made a structure too big for our working area. All that errors made us realised that we have a lot to learn but this project increased our experience. 

If time allowed, we could improve the design of the Z-axis by adding a pulley to hold the Nylon wire more firmly for the tool. The pen holder could also be improved by adding a spring system that allows to push the pencil correctly onto the working area. 

Bill of Materials

Bill.png

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 item used. In total we have spend 155.21 euros which is under 200 euros constrain.



Team Preview and Management

DSC_7949.JPG

Radu-Stefan CRISTEA: Good day, I’m Stefan. I finished my Bachelor’s in Mechanical and Manufacturing Engineering at Trinity College Dublin. During my studies I focused on mechanical engineering, but for the first two years I studied a little bit of all engineering fields before specialising. My thesis was based on the cooling performance of 3D printed heat sinks. For this project I designed the electrical circuit, helped with the final design of the robot, and final assembly.

• MOHAYAD OMER: Greetings!!, I was responsible about the software part in the project, and the integration of the subsystems for assembly of the machine. I obtained my Bachelor’s degree at the University of Debrecen, in the field of Mechatronics engineering,

• MUSTAFA OZBOSTAN : Hello, I’m Mustafa. I did my Bachelor’s degree at ULB in electromechanical engineering. I had the chance to do several projects related to my studies, like: Autonomous car, Rescue robot. For this robot, I participated in the construction, modelling and assembly of the robot.

• MUSTAFA SHARAF: Hello, I’m Mustafa Sharaf, I finished my Bachelor’s degree at the Lebanese International University. for this robot, my main contribution was in the design part using SOLIDWORKS, in addition to building the robot.

• ABDUSAMED DEMIREL: Dear professors, I did my Bachelor’s degree in ULB in electromechanical engineering. During my degree I have done a few project like autonomous car, prosthetic hand that help to gain a lot of experiences. For this project, I was in charge of the mechanical design, construction and assembly.

Project Repo and Resources

Please find below the link to the drive folder with the Report, all the designs, software, and codes used. in addition to the videos.

https://drive.google.com/drive/folders/1FVr6_ITKW...

I have also posted this projects to PCBWay community, here is the link:

https://www.pcbway.com/project/shareproject/Draw_...