El propósito de este proyecto era hacer un plotter de pluma de 3 ejes barato como fuera posible. Suponiendo que ya tienes un Arduino terminó me costando $30 para construir. Por favor, comprenda que los motores paso a paso que están dentro de CD-ROMS no son fuertes. Si la pluma cae mucho deja los motores de movimiento. Esto no daña los motores pero pensé que sería digno de mencionar. Pero si usted está buscando una forma barata de experimentar con 3 ejes de esto podría ser para usted.
El programa lee el binario 0 y 1s almacenados en un arreglo de palabra de moda de la fila o columna y luego controla los motores por consiguiente. Puede cambiar lo que se imprime al cambiar los datos de la matriz de "imagen". Es bastante básico y no debería ser demasiado difícil de entender o cambiar para adaptarse a sus deseos mejor.
Incluí el esquema que he seguido para el cableado de los controladores de Motor de puente H (SN754410NE). Pido disculpas por no tener un esquema completo, no he encontrado una manera fácil de hacer. Utilicé un regulador de 5V LM317 para cada puente H, pero honestamente ya que usé una computadora alimentación darle 5V no debería incluso necesita el LM317. Sólo podría tomar 5v de la fuente de alimentación y cable a cada puente en H. En mi caso he construido el tablero de control antes de elegir una fuente de alimentación.
Parte lista cantidad costo Total
Puente H Motor Driver 1A (SN754410NE) 3 $2,35 $29,25
Regulador de tensión (LM317) 3 ~$1.95
10uF/25V condensador 3 ~$0.45
Used CD-ROM 3 ~$5.00
Arduino Duemilanove/UNO (este indestructible se supone que ya tiene uno) ;)
Si no tienes un Arduino el costo total será más cercano a $60,00.
Inicio
#include < Stepper.h >
cambiar el número de pasos en su motor
#define pasos 200
crear una instancia de la clase paso a paso, especificando
el número de pasos del motor y los pernos ha
al
StepperX paso a paso (pasos, 6, 7, 8, 9); x plataforma (superior)
StepperY paso a paso (pasos, 2, 3, 4, 5); plataforma y (abajo)
StepperZ paso a paso (pasos, 10, 11, 12, 13); pluma de z
int x_inc = 0;
int y_inc = 0;
z_pos int = 0;
palabra imagen [16] = {}
0b0000001110000000,
0b0010011111000100,
0b0010001110000100,
0b0010000100000100,
0b0011111111111100,
0b0000011111000000,
0b0000011111000000,
0b0000001110000000,
0b0000011111000000,
0b0000011111000000,
0b0000110001100000,
0b0001100000110000,
0b0001100000110000,
0b0011100000111000,
0b0011100000111000,
0b1111111111111111
};
void setup()
{
ajustar la velocidad de los motores a 60 rpm
stepperX.setSpeed(60); inferior (60 rpm)
stepperY.setSpeed(60); superior (60 rpm)
stepperZ.setSpeed(60); Pluma (60 rpm);
Delay(2000);
}
void loop()
{
para (int fila = 0; fila < 16; fila ++) {}
penUp();
stepperX.step(-x_inc);
x_inc = 0;
para (int columna = 0; columna < 16; columna ++) {}
Boolean píxeles = bitRead(image[row],column);
if(pixel == 1) {}
penDown();
mover el eje delantero 5 pasos para cada bit de la matriz
stepperX.step(10);
x_inc = x_inc + 10;
Delay(15);
}
Else {}
penUp();
mover el eje delantero 5 pasos para cada bit de la matriz
stepperX.step(10);
x_inc = x_inc + 10;
Delay(15);
}
}
penUp();
Eje y posición para la siguiente fila
stepperY.step(10);
y_inc = y_inc + 10;
Delay(15);
}
penUp();
Ejes X/Y hogar Coloque nuevamente
stepperX.step(-x_inc);
stepperY.step(-y_inc);
Bucle sin fin
{while(1)}
}
}
void penDown()
{
Si la pluma se eleva
Si (z_pos == 0) {}
mover la pluma al papel
stepperZ.step(83);
Delay(15);
z_pos = 83;
}
}
void penUp()
{
Si el lápiz contra el papel
if(z_pos == 83) {}
mover la pluma de papel
stepperZ.step(-83);
Delay(15);
z_pos = 0;
}
}
FINAL