Team Work
Mechanical and Machine design
What we learned:
As a group we designed a machine that includes a mechanism, actuation and automation. We built the mechanical parts and made sure it operated manually. Later we actuated and automated the machine.
Sources and inspiration used:
Sand spining art https://www.youtube.com/watch?v=pH4X8TwVmzI
Mathieu Laporte: http://archive.fabacademy.org/2017/echofab/students/99/week11.html
Gaurang Shetty: http://archive.fabacademy.org/2017/fablabriidl/students/377/assignment111.html
What we did: First, we decided which kind of machine we were going to build. We chose to make a machine that draws patterns with sand over a disk that spins. Below you can see where we took inspiration from.
Then we started to brainstorm and sketch the ideas for the machine. Below you can see the sketches we made. The main idea is to build the disk and the structure, then with a code we can instruct the machine to draw the patterns.
The CNC machine that we created is for drawing on sand or engraving with a marker. We were inspired by the project of Guarang Shetty which is an XY plotter that can draw on a paper. We are also inspired by the project of Mathieu Laporte, his machine has X and Y axes, it is meant to draw in the sand using a metal ball and a magnet on top of one of the axe. It'll use G-code to make simple shapes on the sand.
We seek to develop a similar but simpler machine that meets the expectations of working with three axes. The machine was manufactured in MDF to be a fast prototype.
We got the metal bearing for the project and we used the engines that our guru gave us.
Below you cans see the the Solidworks files in SolidWroks format and also in DFX
Click on each image
to download Solidworks and AutoCad file
Click on each image
to download DFX file
Below you cans see the MDF pieces cut with laser
Below you can find the BRD and SCH files used for the machine. The components used are: Atmega328, two multiwatt 15 lead (L298), a crystal, diodes, resistors, pinheads, capacitors, clamps.
Click on the image
to download file
Click on the image
to download file
We needed two programs to run the machine, the first one to move the disk with a constant movement. The second program is to create the drawings. The programs were made in Arduino, below you can find the files.
Click on the poster to download file
It is important to note that to make the first circuit pictured in this site, we had to consider the second one. So that all the pins fit in the write way. We started welding the components to the new circuit, but we realized that there was a mistake in the routes, due to the material the routs didn't work. So we had to un-weld everything and cut again the circuit, below you can see the process.
We then decided to use an Inhous eFab Modus live circuite, made in Puebla. Due to technical complications. You can find the circuit below.
We cut in laser a sheet of paper where we could make a drawing.
In the video below you can see us testing the machine. These tests consist of testing from the serial monitor. A number is pressed and then the motor moves. If you press another number, it stops. Everything happens from the computer, direct in interface, for that reason we do not use a button.
It worked
Click on the image
to download file
Click on the image
to download file
This is the master program
This is the slave program
#include <Servo.h>
#include <Wire.h>
char code='x';
int cmd=0;
Servo act;
void setup() {
// put your setup code here, to run once:
act.attach(9);
Serial.begin(9600);
Wire.begin();
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{
code=Serial.read();
}
if(code=='0')
{
Wire.beginTransmission(0x1);
Wire.write(3);
Wire.endTransmission();
delay(1);
Wire.beginTransmission(0x2);
Wire.write(3);
Wire.endTransmission();
delay(1);
}
if(code=='1')
{
Wire.beginTransmission(0x1);
Wire.write(1);
Wire.endTransmission();
delay(1);
}
if(code=='2')
{
Wire.beginTransmission(0x1);
Wire.write(2);
Wire.endTransmission();
delay(1);
}
if(code=='3')
{
Wire.beginTransmission(0x2);
Wire.write(1);
Wire.endTransmission();
delay(1);
}
if(code=='4')
{
Wire.beginTransmission(0x2);
Wire.write(2);
Wire.endTransmission();
delay(1);
}
if(code=='5')
{
act.write(45);
}
if(code=='6')
{
act.write(55);
}
}
#include "TinyWireS.h" // wrapper class for I2C slave routines
#define i2c_addr 0x2
int stp=1, dir=7, ms1=2, ms2=3, slp=0, ena=10;\
byte rcvd=0;
int i=0;
void setup()
{
pinMode(stp, OUTPUT);
pinMode(dir, OUTPUT);
pinMode(ms1, OUTPUT);
pinMode(ms2, OUTPUT);
pinMode(slp, OUTPUT);
pinMode(ena, OUTPUT);
digitalWrite(ms1, LOW);digitalWrite(ms2, LOW);
digitalWrite(ena, LOW);digitalWrite(slp, HIGH);
digitalWrite(dir,1);
TinyWireS.begin(i2c_addr);
}
void loop()
{
if(TinyWireS.available())
{
rcvd=TinyWireS.receive();
if(rcvd==1)
{
digitalWrite(dir,1);
digitalWrite(stp,1);
delay(10);
digitalWrite(stp,0);
delay(10);
}
if(rcvd==2)
{
digitalWrite(dir,0);
digitalWrite(stp,1);
delay(10);
digitalWrite(stp,0);
delay(10);
}
if(rcvd==3)
{
digitalWrite(dir,1);
for(i=0; i++; i<200)
{
digitalWrite(stp,1);
delay(10);
digitalWrite(stp,0);
delay(10);
digitalWrite(stp,1);
delay(10);
}
}
if(rcvd==4)
{
digitalWrite(dir,0);
for(i=0; i++; i<200)
{
digitalWrite(stp,1);
delay(10);
digitalWrite(stp,0);
delay(10);
digitalWrite(stp,1);
delay(10);
}
}
}
}
We could better this machine by writing a more complex code so we can draw more shapes other than circles. We could also cut the machine in another material, a more solid one like steel. On the other hand we would like to try this machine using sand.
We used a local Fabhouse circuit, the design is from Fablab Puebla where I designed it but it was sent to Ryspee to be manufactured.
Characteristics of the FabHouse circuit:
Base material FR-4TG130
in two layers
PCB dimensions Width: 1.6 mm
red soldermask with white legends
Hasl finish
2 ounces of copper
6000 spaced
Minimum drill of 24000
microcontroller A4982
45x56 mm
Click on the image
to download file
Click on the image
to download file
The components are: pins, ATiny84, resistors, capacitors, screw terminals,TSSOP-24, IC1; 2 L298
2 16 pinhead , 2 4 pinhead , 18 Resistor, 10 con-wago-500 , 1 Led, 3 Tact, 10 SMA-DO214AC
A possible improvement for the future is to build the machine in steel and use the water cutter machine (I would also love to learn how to use it). Maybe the design can be a bit changed so it is not that big (it's hard to find a spot to place the machine), it could be more portable.
The components are:
12 con-wago-508
1 ATmega328
2 Resistor
1 Crystal
2 Spiceprefix
4 5 pinhead
1 3 pinhead
2 L298
16 ES2D
The components are: