Un pequeño proyecto en Arduino que imprime notificaciones que llegan a su teléfono: mensajes de una variedad de mensajería instantánea, noticias de Twitter y todo lo demás. Tal "aparato telegráfico" fue concebido como un juguete interesante sin un uso serio, pero resultó que recibir mensajes en forma de telegramas en papel es extremadamente agradable. Debajo del corte: una descripción del funcionamiento del dispositivo y un tutorial detallado.
Brevemente sobre cómo funciona todo
De hecho, todo el proceso de impresión se reduce a tres operaciones simples: movimiento a lo largo del eje X (tirando de la cinta), movimiento a lo largo del eje Y (movimiento del lápiz) y el proceso de dejar una marca en el papel.
El movimiento a lo largo del eje Y se realiza utilizando el
mecanismo lambda de P. L. Chebyshev , que convierte el movimiento de rotación en aproximadamente rectilíneo.
La cinta se extrae usando un auricular de silicona de los auriculares, girado por un motor paso a paso. Idealmente, la cinta debe pasar a través de dos rodillos presionados uno contra el otro, pero tal solución complicaría significativamente el diseño, por lo que la elección recayó en la más simple de las opciones de trabajo.
En proyectos similares (trazadores caseros, impresoras, etc. ...), el proceso de dibujo se lleva a cabo mediante un movimiento de traslación (o cercano a la traslación) del lápiz hacia arriba y hacia abajo. Tal sistema es demasiado engorroso para acomodarse en el mecanismo lambda, por lo que tomé un camino ligeramente diferente. Se instala un solenoide en la carcasa, al que se une una pequeña plataforma, levantando la cinta de papel. Tal solución es de poca utilidad en otros proyectos, pero encaja perfectamente aquí. Todos los elementos están ubicados en una caja de madera contrachapada de 64 × 64 mm.
El dispositivo mismo imprime literalmente todo lo que le llega en el puerto serie. Se cose una fuente de 128 caracteres en el boceto:
Para hacer esto, se escribió un
programa Java que convierte una imagen en una descripción de una matriz de bytes en C, si lo desea, la fuente puede ser alterada por usted mismo.
También desarrollé una pequeña
aplicación de Android , cuya tarea es capturar todas las notificaciones push que se muestran en el teléfono y luego enviarlas en segundo plano a arduino a través de bluetooth.
Que necesitamos
- Arduino Mini. Esta es una modificación en miniatura del Arduino Uno con un tamaño muy compacto. No es necesario usarlo. Si no desea insertar todos los dispositivos electrónicos de control en la carcasa del dispositivo, cualquier otra placa, por ejemplo, Arduino Uno o Leonardo, lo hará. También puede mirar en la dirección de Iskra Mini, un análogo completo del Arduino Mini.
- Servo SG-90. Los servos más pequeños y baratos de los existentes.
- Motor paso a paso 28BYJ-48. Un motor paso a paso muy barato con alta precisión de posicionamiento: 4096 pasos por revolución. Generalmente se vende ya con el controlador ULN2003.
- Solenoide 5V. Estos dispositivos no se usan con tanta frecuencia en productos caseros, como, por ejemplo, servos. Su esencia es la siguiente: estos son pequeños electroimanes que, cuando se les aplica corriente, empujan el material ubicado en ellos. Pueden realizar movimientos traslacionales muy rápidos que pueden controlarse.
- Módulo Bluetooth HC-06. Necesario para comunicarse con el mundo exterior. También puede considerar conectarse a wifi a través de esp8266 en lugar de usar un módulo bluetooth
- Almohadillas de goma (insertos) para auriculares. Es necesario para la fabricación de un mecanismo de estiramiento de papel. Cuanto más grande sea el almohadón, mejor.
- Eje 3mm. La elección del material es amplia: puede usar brochetas de madera con un diámetro de 3 mm o tornillos con sombreros aserrados.
- Pegamento Para mayor precisión, es mejor usar 3 tipos de pegamento: PVA para pegar piezas de madera, pegamento térmico y súper pegamento para fijar los elementos restantes.
- Papel de lija Incluso con una fabricación muy precisa de piezas, necesitarán un ajuste, por lo tanto, sin rectificar, no irán a ninguna parte.
- Contrachapado 4 mm. Puede encontrarlo en una ferretería o tienda de pasatiempos. Quizás otras opciones sean adecuadas, por ejemplo, plexiglás.
- Dibujos. Puedes llevarlos aquí .
Y en formato DXF - aquí Muchas pequeñas cosas ...- Bolígrafo capilar o rotulador. Los bolígrafos y bolígrafos de gel, así como los lápices, son mucho peores, ya que el rastro que dejan en el papel es mucho menos claro.
- Tornillos pequeños Con un diámetro de no más de 2 mm. A menudo, estos se utilizan en todo tipo de juguetes chinos.
- Tubo retráctil Necesario para alargar el eje del motor paso a paso. El diámetro interno antes del calentamiento está en la región de 6 mm.
- Interruptor. A quien quieras. Puede mirar en la dirección de pequeños botones con fijación.
- Conector de alimentación 2,1 mm de barril Jack.
- Diodo La denominación y las características no desempeñarán un papel importante, puede abandonar alguna radio antigua.
- Interruptor de transistor o relé . Más sobre ellos se escribirá a continuación.
Fabricación de piezas
Esta etapa depende de su deseo y de sus capacidades. Puede cortarlo en la máquina o cortar todas las piezas manualmente. Por cierto, no es necesario repetir el proyecto exactamente. Por ejemplo, no puede intentar insertar todos los dispositivos electrónicos de control en el dispositivo. O, habiendo entendido el principio del trabajo, hacer algo similar literalmente "en la rodilla", y todo funcionará de todos modos.

Para aquellos que planean hacer todo manualmentePara hacer todos los detalles, necesitará: una sierra de calar (sierra de calar), un taladro (máquina de perforación), una impresora, papel de lija y, si es necesario, archivos.
El algoritmo aquí es este. Imprima los dibujos, péguelos en madera contrachapada. Luego taladre todos los agujeros necesarios en los contornos internos. Los contornos de las ranuras deben cortarse, retirando un poco de espacio (~ 0.2-0.5 mm) hacia adentro, de modo que las puntas (después de un pequeño manejo de la lima) ingresen a los pull-ups. Después de eso, cortamos los contornos internos, arrancamos / lijamos el papel que pegamos y lo trituramos. No tiene nada de complicado, lo principal es trabajar con cuidado y no apresurarse.
Armar el caso
Si bien no hay nada complicado: simplemente tome las piezas y péguelas. Asegúrese de que no quede exceso de pegamento en las piezas.


Instale el soporte de la bobina.
Al pegar este elemento, recomiendo usar un taladro para mantener la alineación. Primero, las paredes laterales se pegan al cuerpo, y luego se monta una cubierta sobre ellas. Preste atención a la perpendicularidad: el mecanismo lambda depende de la posición del orificio en la cubierta de este soporte.


Poniendo el mecanismo lambda
Entonces llegamos a la primera etapa crucial: el ensamblaje del mecanismo lambda. Primero necesitas hacer un hombro para el servo. Cada servo viene con varios columpios de plástico. Es necesario tomar uno de ellos y triturar como se muestra en la figura a continuación. Y luego pégalo en el hombro en blanco.


A continuación, hacemos un hombro con un "portalápices". El orificio para el instrumento de escritura se verifica mejor por adelantado. Lo más probable es que esté en la región de 8-9 mm. Pegue dos anillos en la parte superior e inferior. Para evitar que se muevan, puede insertar un bolígrafo o taladro de un diámetro adecuado en el orificio. Después de que el pegamento se seque, rectificamos las superficies internas y externas del anillo hasta que su superficie se vuelva lo suficientemente uniforme. En el lateral perforamos un orificio para el tornillo de sujeción.
Ahora puede proceder al ensamblaje del mecanismo lambda. Primero debe pegar el servo sobre el adhesivo termofusible para que la distancia desde su eje hasta el orificio del soporte de la bobina sea exactamente de 20 mm. A continuación, gire el servoaccionamiento en sentido antihorario hasta que se detenga, después de lo cual ensamblamos toda la estructura de acuerdo con la foto:


Puede verificar la operatividad de este mecanismo si conecta el servo a Arduino y carga el boceto de las muestras: Servo → Barrido (Por defecto, el servo está conectado al pin 9). Por si acaso, le doy el código de croquis a continuación.
Servo barrido#include <Servo.h> #define MIN_ANGLE 150 #define MAX_ANGLE 180 Servo servo; void setup() { servo.attach(9); } void loop() { for(int i=MIN_ANGLE; i<=MAX_ANGLE; ++i) { servo.write(i); delay(15); } for(int i=MAX_ANGLE; i>=MIN_ANGLE; --i) { servo.write(i); delay(15); } }
En esta etapa, puede seleccionar el rango de trabajo de los ángulos para el servo configurando los valores MIN_ANGLE y MAX_ANGLE (este rango es aproximadamente 150 ° ... 180 °), esto será necesario en el futuro. Si el mecanismo no funciona sin problemas, intente aflojar los tornillos o colocar las arandelas.
Ponemos la diapositiva de papel
Ahora tenemos casi trabajo de joyería por delante: hacer una diapositiva a lo largo de la cual se moverá la cinta de papel, así como una plataforma que se montará en un solenoide. Los rieles largos deben estar pegados a la base para que sus extremos se apoyen contra el estante de la bobina, y la distancia entre ellos debe ser de 13 mm.


A continuación, se pega una barra corta superior a estos listones. El ensamblaje de esta unidad es más fácil de producir en superpegamento. Trate de no dejar el exceso de pegamento, ya que puede interferir mucho con el estiramiento del papel.
El área debe lijarse hasta el grosor mínimo posible (≤1,5 mm), y un borde debe tener forma de cuña para que el papel se deslice más fácilmente. Puede tomar y crear este sitio de inmediato con una regla de madera relativamente delgada o una tarjeta de plástico innecesaria. Además, un soporte redondo está pegado a él en el centro. A continuación, se pega un solenoide dentro de la carcasa para que su eje se ubique en el centro del orificio. Después de eso, pegue suavemente la almohadilla a la varilla solenoide en el superpegamento. Debería verse más o menos así:


Al comienzo de la prueba, intente simplemente aplicar 5V al solenoide. Si el sitio ha subido, entonces todo está bien. Si esto no sucede, intente invertir la polaridad. Si esto no ayuda, intente empujar la varilla del solenoide con su propia mano. Si se mueve o se mueve con gran esfuerzo, significa que el pegamento adicional llegó allí.
La conexión del solenoide a la placa de control
no se realiza
directamente : para esto debe usar un relé electromagnético o un interruptor de transistor. Puede buscar soluciones ya preparadas, por ejemplo,
aquí . También será útil leer
este artículo . Usé el relé soviético RES49. A continuación se muestra un diagrama de la conexión del solenoide a través de un transistor TIP120.
El uso de un diodo en el circuito es obligatorio. Aquí realiza una función de bloqueo, sin ella, la placa Arduino se reiniciará constantemente. Las características del diodo no juegan un papel importante, se puede encontrar y eliminar de cualquier placa antigua.
Mecanismo de tracción
Para que el mecanismo de brochado funcione, es necesario asegurar una fricción mínima de la cinta de papel en la superficie de la carcasa. Puede reducir la fricción si frota la pista con abundante parafina o, en el peor de los casos, le pega una tira de cinta transparente.
Procedemos al procedimiento de fabricación. Cortamos el eje de la longitud requerida (28 mm), después de lo cual delineamos el lugar donde se ubicará el almohadón de los auriculares, enrollamos varias vueltas de cinta aislante en el eje, para que nuestro "rodillo" se ajuste firmemente en él.
Luego, después de morder las "orejas" del motor paso a paso para montarlas en el hilo, lo colocamos en un nicho. Luego, usando un tubo termocontraíble, fijamos el eje al eje del motor. Si todo salió bien, arreglamos el motor con adhesivo termofusible. Intente hacer que el eje sea perpendicular a la pista y paralelo al plano horizontal. El cojín del oído y el eje del motor se pegan mejor inmediatamente al eje con superpegamento.

Para verificar, conectamos el motor paso a paso a través del controlador a la placa de control y cargamos el boceto de las muestras en él: Paso a paso → stepper_oneStepAtATime. Solo necesita cambiar el valor de la variable stepsPerRevolution de 200 a 4096 y eliminar el retraso (500).
Por si acaso, le doy el código con las correcciones a continuación.
stepper_oneStepAtATime #include <Stepper.h> const int stepsPerRevolution = 4096; Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { } void loop() { myStepper.step(1); delay(5); }
Después de cargar el boceto, el motor paso a paso debe comenzar una rotación suave y lenta. Puede intentar deslizar un trozo de cinta de papel debajo del rodillo. Ella también debe comenzar un movimiento suave y lento. Si esto no sucede, es posible que la rugosidad de la superficie sea alta, lo que se corrige con papel de lija de grano fino.
Eje para bobina
Esta es quizás la etapa más fácil entre otras. Tomamos un eje de ~ 25 mm de largo, una parte restante sin usar y los unimos. Puede que tenga que colocar una arandela entre el estante para el carrete y la parte para la que no se me ocurrió un nombre.


Ahora unas palabras sobre la cinta de papel. Su ancho óptimo es de 11 mm. Puede idear varias tecnologías para su fabricación. Por ejemplo, tome un rollo de cinta de verificación (rollo de papel de calco, papel cuadriculado, etc.) y simplemente córtelo. Me gustó la opción de cortar hojas A4 en tiras, que luego se pegan cuidadosamente en la cinta de la longitud deseada.
Poniendo todo junto
Si todos los mecanismos ya funcionan, ahora es el momento de comenzar la etapa más difícil: hacer que funcionen juntos. Primero necesita ensamblar / soldar el circuito a continuación.
Coloqué todos los componentes electrónicos en la carcasa del dispositivo de la siguiente manera (algún día aprenderé a soldar normalmente, pero esta vez no):
También instalamos un interruptor y un conector de alimentación. Como interruptor, usé el MT-1 soviético. Recomiendo tomar algo más pequeño, porque usar un interruptor de palanca tan grande en un caso tan pequeño es un lujo inadmisible, es mejor tomar este lugar con algo más útil.
Algunas fotos del dispositivo terminado Procedemos a depurar el programa. Para hacer esto, tome el boceto
AQUÍ y cárguelo en el tablero.
Traté de comentarlo lo más posible, así que espero que sea lo más claro posible. Cuando se inicia el programa, el dispositivo imprime la palabra "HOLA", y luego literalmente imprime todo lo que viene al módulo Bluetooth. Su tarea en la etapa de depuración es seleccionar los valores DOT_UP_DELAY, DOT_DOWN_DELAY, SERVO_MAX, SERVO_STEPS, SERVO_DELAY y LINE_TAB en el boceto para que la inscripción "HOLA" al iniciar el programa sea lo más hermosa posible.
Una vez que se alcanza la calidad de impresión deseada, puede intentar enviar algún mensaje a través de Bluetooth. Para hacer esto, puede descargar cualquier aplicación a su teléfono con la frase "terminal Bluetooth" en su nombre, conectarse al dispositivo (lo más probable es que se muestre con el nombre hc-06) y comenzar a enviarle mensajes. Tenga en cuenta que el tamaño del búfer del puerto serie en el Arduino es de 64 bytes. Esto significa que si envía un mensaje que es demasiado largo, no imprimirá exactamente lo que desea.
También escribí una pequeña
aplicación de Android que detecta las notificaciones push que se muestran en su teléfono y las envía a imprimir. También se puede usar como un simple terminal bluetooth. Las versiones de Android de 4.3.0 son compatibles. Debe recordar permitir que la aplicación acceda a las notificaciones del sistema; de lo contrario, nada funcionará.
Cómo permitir que la aplicación acceda a notificaciones Esta es una versión beta de la aplicación, si es necesario la modificaré y ampliaré la funcionalidad.
Parte decorativa
Esta etapa no es obligatoria en absoluto, y en algunos casos es más probable que dañe. Todo es para su gusto aquí. En mi caso, por ejemplo, envejecí todas las partes de madera con una pátina y la cubrí con una fina capa de barniz, y también hice pequeños letreros de "Mini Telegraph", "ON / OFF" y una placa con la firma.
Para resumir
Eso es todo Espero que hayas disfrutado este pequeño proyecto. Quizás algunas ideas o soluciones le parecieron interesantes. Con un alto grado de probabilidad modificaré
este proyecto Estaré encantado de cualquier pregunta, consejo y sugerencia en los comentarios. Si logras hacer algo similar, será muy interesante para mí mirarlo, si tienes alguna pregunta, puedes escribir
aquí .
Lista de artículos que pueden ser útiles.
ListaUna comprensión profunda de lo que está trabajando ayudará a evitar muchos errores desagradables.
(Algunos artículos están en inglés, pero con bellas imágenes en color)