Adivino Moosetar (Zoltar) (4 / 9 paso)

Paso 4: Impresora Serial

he usado esta impresora serial https://www.sparkfun.com/products/10438

Usé Serial1 en la Mega para hablar con la impresora, las piezas relevantes del código son:

Serial1.Begin(19200);

Tengo varios métodos para ejecutar la impresora e imprimir imágenes, etc.:

En su mayor parte a escribir al puerto serie como esta:
Serial1.Print («Moosetar dice: ¡ cuidado! ");

Para imprimir imágenes hago esto:
printBitmap (moose_outline_width, moose_outline_height, moose_outline_data, true);
y los datos como un archivo .h.  Más información sobre cómo hacerlo se puede encontrar aquí http://learn.adafruit.com/mini-thermal-receipt-printer/bitmap-printing

Que conseguir luego de impresa por la impresora.  He encontrado algunos métodos auxiliares en la biblioteca de la señora Ada.  Porque yo estaba usando hardware serial tuve algunos problemas con su código, pero cambiado y había incluido en el bosquejo.  Aquí están los métodos pertinentes.

void writePrintMode()
{
Serial.println(printMode);
Serial1.Write(27);
Serial1.Write(33);
Serial1.Write(printMode);
}

void setPrintMode (uint8_t máscara) {}
printMode | = máscara;
writePrintMode();
¿charheight = (printMode & DOUBLE_HEIGHT_MASK)? 24:48;
¿MaxColumn = (printMode & DOUBLE_WIDTH_MASK)? 16:32;
}

void setNormalMode()
{
printMode = 0;
writePrintMode();
Serial1.Write(27);
Serial1.Write(45);
Serial1.Write(Zero);
Serial1.Write(27);
Serial1.Write(32);
Serial1.Write(Zero);
Serial1.Write(29);
Serial1.Write(33);
Serial1.Write(Zero);
}

void unsetPrintMode(uint8_t mask)
{
printMode & = ~ máscara;
writePrintMode();
}

void printerLineFeed(int lines)
{
para (int i = 0; i < líneas; i ++)
{
Serial1.Write(10);
}
}

void writeBytes(uint8_t a) {}
Serial1.Write(a);
}

void writeBytes (uint8_t a, uint8_t b) {}
Serial1.Write(a);
Serial1.Write(b);
Delay(300);
}

void writeBytes (uint8_t a, uint8_t b, c) {uint8_t
Serial1.Write(a);
Serial1.Write(b);
Serial1.Write(c);
Delay(300);
}

void writeBytes (uint8_t a, uint8_t b, uint8_t c, d) {uint8_t
Serial1.Write(a);
Serial1.Write(b);
Serial1.Write(c);
Serial1.Write(d);
Delay(300);
}

void printBitmap(Stream *stream) {}
tmp de uint8_t;
uint16_t ancho, alto;

tmp = corriente -> read();
ancho = (corriente -> read() << 8) + tmp;

tmp = corriente -> read();
altura = (corriente -> read() << 8) + tmp;

printBitmap (anchura, altura, secuencia);
}

void printBitmap (int w, int h, corriente * stream) {}
int rowBytes, rowBytesClipped, rowStart, chunkHeight, x, y, i, c;

rowBytes = (w + 7) / 8; Redondear al siguiente límite de bytes
¿rowbytesclipped = (rowBytes > = 48)? 48: rowBytes; anchura máxima 384 píxeles

para (rowStart = 0; rowStart < h; rowStart += 255) {}
Emitir hasta 255 filas a la vez:
chunkHeight = h - rowStart;
Si chunkHeight (chunkHeight > 255) = 255;

writeBytes (18, 42, chunkHeight, rowBytesClipped);

para (y = 0; y < chunkHeight; y ++) {}
para (x = 0; x < rowBytesClipped; x ++) {}
mientras que ((c = corriente -> read()) < 0);
Serial1.Write((uint8_t)c);
}
para (i = rowBytes - rowBytesClipped; i > 0; i--) {}
mientras que ((c = corriente -> read()) < 0);
}
}
timeoutSet(chunkHeight * dotPrintTime);
}
prevByte = '\n';
}

void printBitmap)
int w, int h, uint8_t const * mapa de bits, bool fromProgMem) {}
int rowBytes, rowBytesClipped, rowStart, chunkHeight, x, y, i;

rowBytes = (w + 7) / 8; Redondear al siguiente límite de bytes
¿rowbytesclipped = (rowBytes > = 48)? 48: rowBytes; anchura máxima 384 píxeles

para (i = rowStart = 0; rowStart < h; rowStart += 255) {}
Emitir hasta 255 filas a la vez:
chunkHeight = h - rowStart;
Si chunkHeight (chunkHeight > 255) = 255;

writeBytes (18, 42, chunkHeight, rowBytesClipped);

para (y = 0; y < chunkHeight; y ++) {}
para (x = 0; x < rowBytesClipped; x ++, i ++) {}
Serial1.Write (fromProgMem? pgm_read_byte (mapa de bits + i): *(bitmap+i));
}
i += rowBytes - rowBytesClipped;
}
timeoutSet(chunkHeight * dotPrintTime);
}
prevByte = '\n';
}

Artículos Relacionados

Zoltar habla - el Instructable

Zoltar habla - el Instructable

aparece en el boletín de Instructables 17 de diciembre de 2009<-------------------------------------------------------------------------------------->Vadeado a través de cerca de 1000 fotografías para tratar de dar lo más detalladamente posible.Esto
Zoltar el magnífico

Zoltar el magnífico

recordar "Big" el golpe, protagonizada por Tom Hanks, ahora puede ser el adivino siempre críptico "Zoltar" completa con naughty fortunas en este traje de autónomos que deja las manos libres para interactuar con la gente.Paso 1: Lo que
Zoltar

Zoltar

Nos encontramos con una de estas máquinas en Las Vegas mientras que en unas vacaciones familiares de esquí de fondo clásico adivinación. Nuestra hija mayor pensó que sería gracioso que uno para Halloween así que hicimos nuestro mejor esfuerzo para ob
Adivino psíquica - un robot que lee la mente de Twitter

Adivino psíquica - un robot que lee la mente de Twitter

Parque de atracciones espeluznante atracción y App de Twitter!El adivino de mente grupal psíquica es una atracción de Feria tipo arcade que puede decirle a su fortuna. Incluso mejor que aunque - también es una aplicación de Twitter conectado a la red
Cómo hacer papel de adivinos

Cómo hacer papel de adivinos

adivinación de papel es divertidos pequeños proyectos de origami para la predicción de alguien es el futuro.  Pueden ser para cosas tontas como bola mágica 8 de preguntas respondería.  El exterior tiene un color o número.  Alguien toma el color de nú
Zoltar - el parpadeo de lámparas

Zoltar - el parpadeo de lámparas

esta es la primera de una serie de instrucciones detalladas sobre temas concretos de mi (ejem) (tos)Flotador de Zoltar Segway galardonado (Ok, Im escalada mi caballo alto !)Las luces de atrás:Espero que hayas visto Zoltar, por lo que mis referencias
Encantos de adivino madera

Encantos de adivino madera

me vino la idea de polvo de estrellas de la película y se trata de una versión en miniatura y voy a hacer la versión de tamaño completa pronto.se necesita:cuchillo 1) pluma (o cuchillo)2) un archivo (no un clavo)3) un surtido de plumas permanentes de
Disfraz de Zoltar

Disfraz de Zoltar

me vino la idea para hacer el disfraz de Zoltar de la película Big, luego sólo sucedió a partir de ahí. Hice mi traje de una caja de refrigerador que recibí de Lowe, y el resto de los elementos de la máquina que dice fortuna son sólo algunas cosas qu
Cómo hacer un Cootie Catcher/adivino

Cómo hacer un Cootie Catcher/adivino

Cómo hacer un Cootie Catcher/adivino - Funny Videos clips son un clic de distancia nadie puede hacer estos juguetes de patio de la escuela tradicional de una pieza ordinaria de papel! La misma técnica se utiliza para doblar cada juguete; sólo el camb
Adivino de personalidad múltiples

Adivino de personalidad múltiples

Este proyecto de Arduino es un retroceso a varios juegos de arcade de carnaval y la novedad de cuando era un niño. He hecho muchos proyectos de Arduino, pero este es mi primer proyecto que era mi propio diseño. Antes de esto, generalmente había segui
Cómo hacer un adivino truco

Cómo hacer un adivino truco

esto es cómo hacer que un adivino de truco que usted puede elegir si darle una mala suerte o buena fortuna.Se necesita:PapelHerramienta de escrituraPaso 1: doblar Doblar las esquinas hacia el centro, voltear el papel, luego doblar las esquinas hacia
Cómo... Hacer un adivino! Prometo que esto es impresionante!

Cómo... Hacer un adivino! Prometo que esto es impresionante!

Paso 1: Necesita un pedazo de papel, 4 crayones de diferentes colores, lápices de colores o marcadores, tijeras, un lápiz.Paso 2: Tomar su pedazo de papel y doblar como un velero.Paso 3: Ahora que el pliegue se, corta en la parte inferior con sus tij
Arduino Powered adivino

Arduino Powered adivino

He creado este divertido Instructable para mostrarle cómo hacer un adivino Digital totalmente personalizable. Cuando se pulsa el botón, recibirá una fortuna al azar. Esta es toda la diversión de las fortunas, sin tener que comer todas las galletitas!
DIY adivino

DIY adivino

esta es una manualidad realmente sencilla y fácil para todos. Usted puede hacer sobre la marcha, en su casa, o en avión largo paseos paseos en coche. De diversión ya que hay muchas variaciones de la fortuna real y tienes que ejercitar la imaginación,