CNC Plotter
One of out follower made this project. Here below is the content he share with Engineersgallery.
[nextpage title=”Introduction” ]
My passion for robotic constructions led me to develop a plotter cnc machine.
[sam id=”4″ codes=”true”]
What’s this??
This is all about a machine that can draw images which we have loaded before in the software that controlling the motors. The device consists of two bipolar stepper motors- coming from used CD/DVD drives- that directing the canvas to X and Y axis, a mechanism (my own inspiration) fitted with micro servo to move the pen up and down and finally thewooden frame.
To drive the stepper motors i tried mosfets and l293d ic. I prefer the second (l293d) although I noticed that they have more heat at 12v.
[/nextpage]
[nextpage title=”Video” ]
[youtube height=”500″ width=”500″]https://www.youtube.com/watch?v=N0PUDsu0Djc[/youtube]
[sam id=”4″ codes=”true”]
[youtube height=”500″ width=”500″]https://m.youtube.com/?#/watch?v=qQh_Zx2ZoTY[/youtube]
[youtube height=”500″ width=”500″] https://www.youtube.com/watch?v=YD1_8CUT03s[/youtube]
Arduino CNC : UPDATED WITH G CODE
[youtube height=”500″ width=”500″]https://m.youtube.com/?#/watch?v=qQh_Zx2ZoTY[/youtube]
[/nextpage]
[nextpage title=”Code” ]
[visitor]
Click here to view Block Diagram and Code (Free Registration )
[/visitor]
[member]
[message_box title=”Code” color=”red”]
#include <Stepper.h>
#include <Servo.h>
#define STEPS 400
Stepper stepperX(STEPS, 6, 7, 8, 9);
Stepper stepperY(STEPS, 10, 11, 12, 13);
Servo myservo;
int x_inc = 0;
int y_inc = 0;
int z_pos = 0;
word image[16] = {
0b0000000000000000,
0b0000011111100000,
0b0000011111100000,
0b0001000000001000,
0b0010000000000100,
0b0010000000000100,
0b0100111001110010,
0b0100011001100010,
0b1000000000000001,
0b1000000110000001,
0b0100000000000010,
0b0010010000100100,
0b0001001111001000,
0b0001100000110000,
0b0000011111000000,
0b0000000000000000
};
void setup()
{
stepperX.setSpeed(60);
stepperY.setSpeed(60);
delay(2000);
myservo.attach(2);
}
void loop()
{
for(int row = 0; row < 16; row++) {
penUp();
stepperX.step(-x_inc);
x_inc = 0;
for(int column = 0; column < 16; column++){
boolean pixel = bitRead(image[row],column);
if(pixel == 1){
penDown();
stepperX.step(5);
x_inc = x_inc + 5;
delay(150);
}
else{
penUp();
stepperX.step(5);
x_inc = x_inc + 5;
delay(150);
}
}
penUp();
stepperY.step(5);
y_inc = y_inc + 5;
delay(150);
}
penUp();
stepperX.step(-x_inc);
stepperY.step(-y_inc);
while(1){
}
}
void penDown()
{
myservo.write(50);
delay(150);
}
void penUp()
{
myservo.write(20);
delay(150);
}[/message_box]
[/member]
[sam id=”4″ codes=”true”]
[/nextpage]