Paso 8: Software (grabado de la trama)
Cuando diseñé originalmente la máquina, sólo quería grabar archivos regulares de mapa de bits . Así que hice tres programas separados, que cuando usan juntos, permiten imágenes de mapa de bits normal para grabado en madera.Programa C# (archivo de texto genera "instrucción")
Esto acepta un archivo de mapa de bits y salidas a un archivo de textoque contiene "caracteres de instrucción". El tipo de mapa de bits acepta es un mapa de bits de 24 bits, con los pixeles de solo blanco y negro (no grises / de colores). El programa analiza el mapa de bits, fila por fila la exploración para los pixeles negros que necesitan para ser grabado. Primero, explora la fila superior de izquierda a derecha, luego gotas hacia abajo una fila, exploraciones de derecha a izquierda, se despliega otra fila, exploraciones de izquierda a derecha y así sucesivamente, hasta que la última fila se escanea. Se puede omitir pixels en blanco en los bordes de las filas, y puede omitir filas en blanco. También, debido a las limitaciones de búfer serial de Arduino, el programa divide el archivo de texto en separados por comas "bloques de instrucción", que son menos de 64 caracteres de largo. Estas instrucciones numéricas son interpretadas por el Arduino (véase sección Arduino Sketch para más detalles).
Este programa funciona bien para imágenes más pequeñas (por ejemplo, menos de 1000 x 700), pero consigue empantanado con imágenes más grandes que tienen un montón de píxeles quemados (puede tardar más de 10 minutos para generar el archivo de instrucciones).
La forma en que este programa analiza la imagen lleva directamente a la forma de que la máquina graba la imagen. Arduino utiliza el archivo de instrucciones para hacer la máquina graba la imagen por fila.
Muestra bloques de instrucciones separados por comas (para ver significan de los números, desplácese hacia abajo hasta la sección de sketch de Arduino):
111111111111111111111111115555555555555555555555555555555555920,
019201920192010101010101010101010101010101010101010101010101010,
010101010101010101010101010101010101010101010101010101010101010,
0101010101010101010101010192019201920,
11594039403940394039403940303030303030303030303030303030303030,
030303030303030303030303030303030303030303030303030303030303030,
0303030303030303030303030303030394039403940394039403940,
El ejecutable está en la parte inferior de la página
Procesamiento de IDE Sketch (datos de la instrucción de arroyos)
Un simple bosquejo de procesamiento fue creado en secuencia el contenido del archivo de instrucciones.
Usted puede obtener procesando desde aquí: http://processing.org/
Los datos se transmiten mediante una conexión de puerto serie virtual a Arduino. El bosquejo envía los bloques de instrucciones separadas por comas, una cuadra a la vez, con un retardo entre bloques. Estas demoras se calculan en tiempo de ejecución, basada en los contenidos de cada bloque de instrucciones. El retraso es necesario para asegurarse de que el bosquejo de procesamiento no enviarles nuevas instrucciones para el Arduino antes de han ejecutado las instrucciones anteriores. Si esto ocurre, la imagen grabada se corrompió, por lo que los valores de tiempo utilizado en el proceso del bosquejo y bosquejo de Arduino tiene que ser compatible.
El bosquejo del proceso también proporciona un estado de progreso , contando el número total de bloques de instrucciones, y continuamente informar cuántos bloques de instrucción han sido enviados a Arduino.
El bosquejo está en la parte inferior de la página
Arduino Sketch (Interprets instrucción datos y controles de hardware)
El sketch de Arduino interpreta cada bloque de instrucciones. Hay un número de caracteres de la instrucción:
1 - mover hacia la derecha por un pixel rápida (pixel en blanco)
2 - mover hacia la derecha por un pixel lenta (pixel quemado)
3 - mover a la izquierda por un pixel rápida (pixel en blanco
4 - mover a la izquierda por un pixel lenta (pixel quemado)
5 - se mueven hacia arriba por un pixel rápida (pixel en blanco)
6 - se mueven hacia arriba por un pixel (pixel quemado) de lenta
7 - se mueven hacia abajo por un pixel rápida (pixel en blanco)
8 - se mueven hacia abajo por un pixel lenta (pixel quemado)
9 - encender el láser
0 - laser turn OFF
r - ejes retorno a la posición de arranque
Con cada personaje, el arduino ejecuta una función correspondiente, escribir a los pines de salida.
Arduino controla la velocidad del motor a través de los retrasos entre pulsos de paso. Idealmente, la máquina funcionaría los motores a la misma velocidad alta, si su grabado un píxel o pasa sobre un píxel en blanco. Sin embargo, debido a la limitada capacidad del diodo láser, la máquina tiene que frenar un poco cuando se quema un pixel. Por esta razón hay dos velocidades para cada dirección en la lista de caracteres de instrucción anterior. En la actualidad, he configurado la máquina pasa sobre un píxel en blanco de 8msy pasa sobre un píxel quemado de 18ms.
El sketch de Arduino también controla el escalado de imagen.
Los controladores paso a paso se han configurado para caminar por el medio, lo que significa que los controladores de 400 pulsos de paso por una revolución del motor, o 400 pulsos de paso 5 mm de movimiento lineal. Sin ninguna escala, las imágenes grabadas serían demasiado pequeñas para ver.
Decidí usar un factor de escala de 8, para que cuando la máquina mueve un píxel, se envían pulsos de paso 8. Esto se traduce en 50 píxeles / una revolución del motor, o 50 píxeles / 5mm de movimiento lineal. Esto significa que la echada del pixel es de 0.1 mm, o 254 dpi. Una imagen de 1600 x 900 píxeles será 16 cm x 9 cm de tamaño.
Cabe señalar que aunque la echada del pixel es de 0,1 mm, el lugar de píxeles creado por el láser es mayor que 0,1 x 0,1 mm.
El bosquejo está en la parte inferior de la página