Thank goodness that during the choice of the machine, we had an option B. And they are the use of Nadya Peek's modules. For several years the students of the Fab Academy of the Fab Lab León have used these modules.
For the creation of the X and Y axes to create a plotter, we were inspired by the machine they made at the Fab Lab Facens in 2017.
Thanks to Nadya Peek's MTM page, you can download the module designs. Also thanks to the documentation of the "Cintya" machine made by the Fab Lab León in 2019, I begin to design the different modules.
A module for the X axis, a module for the Y axis with a union connector for both axes.
As the Y axis a part is in the air, to give it a mobile foothold, I design a marble holder inspired by the educational robot "Escornabot". Ivan sent me the design of the end effector, a holder to hold a pencil or a marker and I add it to the simulation.
This is the 3D view of the machine.
Once the simulation was done, I went on to create the exploded view of the machine to cut it in the laser and the support with the marble holder that will be 3D printed. At the bottom of the page you will find the files to download.
The machine requires 3mm DM, two stepper motors with calibrated rod, four 9.5mm aluminum cylindrical guides, a PLA or PETG filament and two marbles.
The first thing I will do is cut all the pieces with the laser cutter. The Fab Lab León laser cutter is 600 x 300 mm, so I have to use two 3 mm DM plates. The cutting parameters are Power: 90% / Speed: 15% / Frequency: 5000 Hz ppi 400
At the same time I print on PETG the supports with the marbles and the support of the tool that Ivan designed. The marble support, I put supports so that it makes perfect the accommodation of the marble.
And this is the result of the movement of the marble, inside the support. It rolls and also has some slack to give us cushioning.
This is the support of the tool that Ivan designed and that transforms from "bits to atoms" thanks to the internet, from Bilbao to León.😀
The next step is to assemble the Nadya modules cut with the laser and screw the steppers. To join the laser cut pieces, although they have pressfit, some pieces I assure with hot silicone and white glue. Make sure that the calibrated stepper rods fit snugly into the plastic inserts.
The next thing is to mount the support with the marble on the end of the machine and the support of the tool that Ivan designed. (I have to say that I made a mistake and mounted the opposite axis 🤣, nothing that cannot be solved by changing it in a moment).
And this is the end result of the machine. 😍
Once everything is ready, I try to move the two axes, each independently. Here is the sample video, and through the video conference of witness Alvaro, waiting to move on to the programming and electronic part. Thanks to Pablo my instructor who acted as camera director. 🤗
Once the Arduino Mega 2560 has been programmed (without connecting the RAMPS module); I connect the RAMPS where there are three Polulu Drivers (HR4988). We are only going to use two axes, in our case X and Y. By the GRBL software configuration, that connection is on the X axis and on the Z axis (this can be modified in the code). The RAMPS is powered by a 12V, 10A power supply. This is the physical connection.
When we started testing the machine, we realized that sometimes the machine was "lame". The part of the tool was raised. So I printed another support with the marble and put it to the end.
Another improvement, this is to avoid the noise caused by rubbing the two Nadya modules together. Pablo and I had the idea of putting some vinyl or tape on the profile and goodbye noises. 😅
The machine was manufactured and configured in less than a week. It is something incredible, given the situation. 😊
But if we had more time, I would like to improve the end-effector. I would use a rack and pinion to raise and lower the marker and that would not mark the page, when it makes the trajectory in the air. I would also like to try using other tools, apart from the marker. Same as using a litter box and moving the sand with an awl, or marking the modeling clay.
Also, I have ordered all the necessary pieces to create Jake's modules this summer 🌞, in order to know and discover how these modules work and not stay with the desire to assemble them.
Given the situation and the moment we are going through all over the world, I am very proud of this team. 🤗
Thanks to videoconferencing and in real time, we have managed to assemble a machine, program it and have it draw something through a GCODE. It has been incredible; guys when all this happens and we can meet, we have to take a few beers to the health of the machine, LE-CAR-BIL.
Find below the files that I made for this assignment.
I have been in charge of Programming the machine.
These are the electromechanical components that we have used in our machine:
We do not have information about the rod because it is recycled from another project. Based on information from similar rods we initially consider the feed to be 8mm / turn.
Arduino Mega 2560
Ramps v1.4
Drivers Polulu (HR4988)
I cannot find datasheet of this model, so I consider initially that it is similar to the Nema 17HS4401 whose characteristics are:
Type: Bipolar.
Voltage: 12V.
Current: 1.7A
1.8 degree step angle.
No. Steps: 200.
I have done the programming tests using the material I had available:
Ramps v1.5
Drivers Polulu (HR4988)
HTA3D step motor 17HS4401
As we have little time, we will use a firmware to control the machine.
In this link there is a list of the most used firmwares for 3D printers and CNC machines.
We decided to test the GRBL firmware because it is easy to configure and can be controlled using the Universal G Code Sender software.
To download the Universal G Code Sender software, click on this link. To run it you need to have JAVA installed.
We downloaded GRBL firmware from here.
I cannot install it because it is an update of the previous version and it needs you to have the first version loaded on the arduino, so I find this link to download it.
In examples is the script to load the GRBL to arduino.
I load the script into the Arduino Mega without connecting the Ramps for security. Now I open the Universal G Code Sender to try to move the motors.
PROBLEM
We connect to the Arduino Port and in the “Machine Control” tab we try to move the motors by pressing x +, x-, y +, y-. But the motors do not move with this firmware. Maybe we have to modify the code to work with the ramps.
SOLUTION
We looked for solutions to my problem and found that there is a GRBL firmware version for Arduino Mega and Ramps. This is the link.
I load it into the Arduino without any problem.
PROBLEMS
But when Adrián and Iván try to load it, appears an compilation error. Cannot find the system.h file.
SOLUTION
Finally, Adrián tries another computer (Nuria’s super computer) and manages to load the firmware on the Arduino.
We connect the Ramps (with the drivers and motors connected) to the Arduino and connect the power supply.
Now we open the Universal Gcode Sender. And we select the Arduino port, 115200 baud and GRBL. We click on “Open” and the software connects to the arduino.
To do a first test, in the “Machine Control” tab select “Step Size” = 10, “millimeters” and click the x +, x-, y +, y-, z + and z- buttons to move the motors.
Now the engines work.
The next step is to correctly configure the firmware so that the car moves the distance that we say. In the “Commands” tab, we write “$$” to see the parameters.
The relationship between motor steps and displacement in millimeters (steps/mm) of each motor are the parameters 100, 101 and 102.
CAs we do not have the datasheet of the threaded rod and the motors, we have initially considered the following parameters:
Threaded rod feed = 8mm / turn.
Stepper feed = 200 steps/ turn.
So 200/8 = 25 steps/mm
We change the parameters writing in the console of the “Commands” tab:
$100=25
$101=25
$102=25
We tried moving the carriage 40mm using the buttons on the “Machine Control” tab but the carriage barely moved.
Rod and motor parameters are not correct, so we have to test values to correct it.
We tried to configure to 250 steps / mm
$100=250
$101=250
$102=250
But the carriage moves 24mm instead of 40mm. So we make a cross multiply and we get 416 steps / mm.**
(250x40)/24=416
$100=416
$101=416
$102=416
Now the carriage moves what we say.
Universal Gcode Sender software allows you to use a gcode to move the machine.
We tried using Mods to generate a gcode and loaded it. But it doesn’t work properly. In addition we realize that we have interchanged the z and y axis. We changed them on the ramps to fix it.
But that gcode keeps doing weird things. So I use Cut2D / Aspire software, which I normally use to generate gcodes for my circuit mill.
Finally we open this gcode in Universal Gcode Sender and it works correctly.