StreetWriter: construyendo un dispositivo para imprimir con agua sobre asfalto





En el manual te contamos cómo montar un dispositivo bastante curioso y con un gran potencial, que te permite aplicar varias inscripciones en el asfalto mientras conduces. Todo en el mundo es ilusorio y temporal ... Y este proyecto lo ilustra bien.









Introducción



Empecé este proyecto porque quería dejar mi huella en el mundo, pero no quería dejar ninguna consecuencia.



También quería un proyecto complejo para mi nueva impresora 3D que incluyera programación para Arduino.



Por último, me gusta crear cosas utilizando la mayor cantidad posible de lo bueno disponible.



Como puede ver en mis videos, StreetWriter encaja con todo esto. Escribe mensajes de 20,32 cm (8 pulgadas ) de alto con agua en la acera mientras conduce y no deja residuos cuando el agua se evapora.



Construí dos StreetWriters con ligeras diferencias de diseño entre ellos. Este tutorial se basa en la segunda compilación, que se ha mejorado ligeramente.



StreetWriter suministra agua a presión a un colector que contiene 8 inyectores de combustible para automóviles. Mientras el StreetWriter se mueve, el Arduino controla los inyectores de combustible, rociando agua sobre la acera. El mensaje que se está escribiendo es uno de los 8 que se escribieron en la tarjeta SD conectada al Arduino. El operador puede seleccionar fácilmente entre los mensajes y puede grabar mensajes nuevos en la tarjeta SD usando una computadora. No hay restricciones sobre la longitud del mensaje, excepto por la cantidad de agua en el tanque. La publicación más larga que he escrito hasta ahora es pi, con una precisión de 300 caracteres.



Piezas, materiales y herramientas



Conjunto de ruedas motrices (usado en un viejo automóvil Power Wheels);



  • Discos "encontrados" de 5 pulgadas (12,7 cm);
  • Rueda excéntrica rotativa "encontrada";
  • «» ( );
  • ;
  • «» ;
  • () 1/8 NPT;
  • 1/8 «NPT;
  • ;
  • 12 ( - 6-7 , , LiPo);
  • Uno;
  • Arduino Shield (EKT-1016 Tindie.com);
  • SD-card shield Arduino (www.sparkfun.com/products/12761);
  • ;
  • , 3D- ( );
  • 8 ( Ebay);
  • ;
  • Dclips;
  • ;
  • 3 ;
  • ;
  • - ;
  • Destornillador


Paso 1: dispositivo general









El objetivo de este proyecto era escribir mensajes de texto utilizando agua como medio temporal de escritura. Al poco tiempo, el agua se evaporará y el mensaje desaparecerá sin dejar rastro.



Estaba menos interesado en el atractivo del dispositivo final que en su funcionalidad. Sin embargo, si está interesado no solo en la funcionalidad sino también en la apariencia, hay mucho margen de mejora.



En general, la unidad es una plataforma motorizada que utiliza 8 boquillas para rociar agua de manera controlada a medida que la plataforma se mueve.



Como se muestra en las imágenes de este paso, la plataforma es una tabla de madera accionada por dos motores tomados de pequeños coches de ruedas de juguete.



El depósito del lavaparabrisas con sistema de bombeo crea la presión de agua necesaria para el funcionamiento de 8 inyectores de combustible bajo el control del Arduino Uno.



El Arduino tiene un escudo que proporciona la corriente necesaria para operar los inyectores de combustible que el Arduino no puede suministrar directamente. También hay un escudo especial para Arduino con un lector de tarjetas SD, así como una serie de componentes para seleccionar el archivo que se utilizará y establecer la cantidad de presión de agua para escribir mensajes.



Además, se instala un control remoto StreetWriter, que utiliza componentes electrónicos convertidos de un automóvil controlado por radio.



Siga leyendo para conocer más detalles.



Paso 2: inyectores de combustible y colector













En muchos sentidos, este paso constituye la base del diseño de StreetWriter.



Compré 8 inyectores de combustible usados ​​y luego diseñé e imprimí en 3D un colector para colocar los inyectores de combustible y suministrar agua (ver los inyectores naranjas en el colector azul).



Los inyectores de combustible son excelentes para este proyecto. Cada inyector de combustible contiene una válvula para controlar el flujo de agua, un solenoide eléctrico de 12V para controlar la válvula, una boquilla que rocía agua en el área controlada y una tubería y un sello para suministrar agua a la válvula y la boquilla. Todas las piezas metálicas internas están fabricadas en acero inoxidable, por lo que el hecho de que usemos agua y no gasolina no provoca problemas de corrosión. Para acortar un poco la longitud del píxel de agua impreso, solo necesita que Arduino aplique un pulso de 12V al solenoide durante un corto período de tiempo.



Diseñé el colector para que los inyectores de combustible estén lo suficientemente separados para que sus píxeles fuera del agua estén colocados uno al lado del otro. Si sus boquillas de combustible rocían agua de una manera muy diferente, es posible que deba ajustar (subir o bajar) la altura del conjunto del colector / boquilla para que las boquillas estén muy cerca.



Encontré algunos conectores no estándar con cables que son adecuados para montar en los pines del inyector de combustible, pero puede usar los conectores originales del automóvil para esto. Para obtener más información sobre las conexiones, consulte el Paso 10 : Montaje final.



Los inyectores de combustible usados ​​se compraron en Ebay, por aproximadamente $ 2 cada uno



(nota del traductor: puede comprar inyectores similares en su tienda de automóviles local. También se venden conectores especiales para estos inyectores allí. Por ejemplo, aquí . Se recomienda usar un inyector estándar / kits de conectores con cables, ya que las sacudidas durante la conducción pueden causar inconvenientes (pérdida constante de contacto).



Parece que hay piezas similares disponibles para diferentes tipos de automóviles. La fotografía adjunta destaca las características importantes necesarias para operar el inyector con el diseño de colector que se muestra aquí.



  1. Junta tórica en la parte superior, sellando la unión boquilla / colector;
  2. , ( );


El colector impreso en 3D es la parte más desafiante de este proyecto.



Contiene 8 tomas de inyector de combustible, orificios para manómetro, entrada de agua y debe ser impermeable.



Diseñé esta parte en TinkerCad y fue bastante simple. Adjunto un archivo STL y un archivo Gcode para PLA. Mire también el video que muestra el modelo TinkerCad y la impresión 3D (tomó 8 horas).



Una de las imágenes de este paso muestra una pequeña sección roja del colector que muestra los orificios utilizados para sujetar los inyectores de combustible en el colector. Simplemente pasé un trozo de alambre de cobre a través de los cuatro orificios y el inyector de combustible encajó en su lugar.



El propósito principal de esta pequeña pieza fue verificar que el inyector encaja en el orificio y asegurarse de que el ensamblaje sea impermeable antes de proceder con el ensamblaje de 8 horas. Sujete la pieza en un tornillo de banco con un trozo de goma en el extremo abierto y bombeé agua a presión; el agua estaba goteando. Modelé esta parte varias veces con diferentes configuraciones en la cortadora Cura y no pude hacerla impermeable. Siempre se filtró en varios lugares. Al final, tomé Sli3er como un programa de corte y la pieza pasó la prueba de resistencia al agua en la primera impresión. El gcode de esta versión se adjunta aquí.



Una vez impreso el colector, se deben seguir algunos pasos finales antes de que se pueda utilizar.



  1. , ;
  2. 4 , ;
  3. 1/8 NPT .
  4. , , . , 3D- ,   . , WELD-ON 4 , , .


En este punto, los inyectores de combustible pueden instalarse en el colector y asegurarse allí con trozos de alambre de cobre.



Apliqué grasa de litio a la junta tórica de cada boquilla antes de instalarla para facilitar la instalación y asegurar un sello hermético.



Compruebe el trabajo realizado. Instale un manómetro y un adaptador de manguera. Aplique agua a presión atmosférica y busque fugas. Si los encuentra, puede usar pegamento WELD-ON 16 o diluyente WELD-ON 4 para sellar los encontrados y volver a probar.



Descargar el archivo del colector en STL



Descargar el archivo del colector en Gcode



Paso 3: chasis, motores y ruedas











Como dije en la introducción, el propósito de mi compilación de StreetWriter era la funcionalidad, no la belleza o la apariencia.



El marco está hecho de madera contrachapada de ½ ”(12,7 mm) con agujeros, rebordes de madera, etc. añadidos según sea necesario. La foto general da una idea de cómo se publicó todo. La única ubicación importante es la fila de inyectores de combustible en la parte trasera de la plataforma, entre las ruedas traseras. Por lo tanto, al girar la plataforma, el mensaje se distorsionará mínimamente y las ruedas nunca pasarán por encima.



Los inyectores de combustible cuelgan del colector y pasan por los orificios del bastidor. No se apoyan en un marco. El colector está en el marco y se sujeta sin apretar por una sola abrazadera de tubo, que se puede ver en la foto de la vista trasera.



La plataforma es impulsada por dos conjuntos de ruedas, que se tomaron de Power Wheels para niños viejos que tenía. La imagen adjunta muestra bloques similares. Los motores de la planta de energía están conectados por un cable al bloque en el marco y reforzados desde abajo con soportes en forma de L. He añadido condensadores de 0,1 uF a los terminales del motor para reducir el ruido eléctrico de los motores con escobillas. (Arduino se reinició espontáneamente sin condensadores).



El movimiento de esta plataforma es un movimiento de “tipo tanque”, en el que la energía del primer o segundo motor se apaga para el rodaje. La dirección es desproporcionada: detenga una rueda y el StreetWriter girará bruscamente. El operador realiza giros suaves presionando intermitentemente hacia la derecha o hacia la izquierda mientras avanza.



Hay una rueda en la parte delantera del cuadro que permite que StreetWriter realice giros cerrados cuando una rueda deja de girar.



Las ruedas traseras de los ciclistas estilo Power Wheel generalmente están conectadas por un eje, por lo que ambas ruedas giran juntas.



No funciona aquí porque quiero que las ruedas traseras funcionen de forma independiente para fines de dirección.



Encontré ruedas de 5 pulgadas (127 mm) en alguna parte y con algunos ajustes pude usarlas para negocios. Una inspección minuciosa revela que esta rueda en particular tiene 12 puntales. El conjunto de la unidad tiene 6 ranuras. Simplemente corté todas las otras patas y el resto de las patas encaja perfectamente en las ranuras del conjunto de transmisión. Pasé el perno a través del orificio que originalmente contenía el eje y una tuerca Nyloc para mantenerlos juntos con suficiente juego para permitir que todo girara. (Dependiendo de las piezas que utilice para los conjuntos de tracción y rueda, es posible que deba ser creativo para que funcionen juntos).



Descargue el diagrama de cableado de StreetWriter en pdf



Paso 4: control remoto





De acuerdo con el objetivo de utilizar piezas "encontradas" siempre que sea posible, el control remoto del StreetWriter se basa en la electrónica de un pequeño coche RC destrozado. Un requisito importante es que el control remoto debe ser por radio, no por infrarrojos, ya que StreetWriter se utilizará en exteriores. La mayoría de estos autos no tienen una dirección proporcional perfecta.



Giran a la derecha o a la izquierda, o siguen recto.



Usé componentes electrónicos de un automóvil de juguete y agregué un relé para elevar la potencia al nivel requerido para los ensamblajes de transmisión. El PCB inferior (marrón) de la imagen es de la máquina de escribir. La placa superior (con una resistencia de recorte) contiene un relé y un regulador de voltaje necesarios para los circuitos eléctricos de una máquina de 4.5 V. El circuito está adjunto.



El circuito es bastante simple. El transistor impulsa cada uno de los tres relés. Un relé impulsa el motor izquierdo, otro impulsa el derecho y el tercero cambia la dirección de potencia de ambos motores para el desplazamiento inverso. Las señales de control provienen de la placa de circuito impreso del automóvil controlado por radio. Cuando se aplica una señal de giro a la izquierda, el transistor hace que el relé izquierdo se apague, deteniendo ese motor.



El mando a distancia se muestra en la imagen. 



Agregué un trozo de cable musical (desenfocado en la imagen) para aumentar ligeramente el rango.



Este circuito solo tiene una conexión al Arduino. Esta conexión le dice al Arduino que el automóvil está avanzando. Si el automóvil se detiene o retrocede, no se rocía agua.



Paso 5: sistema de presurización













El agua presurizada para StreetWriter proviene de un depósito de limpiaparabrisas de un Subaru viejo, pero el automóvil del que proviene no es crítico. Cualquier tanque con una bomba de agua de 12V incorporada servirá.



Este tanque en particular contiene 2 bombas de agua, así que simplemente desconecté una de ellas y usé la restante. Hay una protuberancia en la parte inferior del tanque diseñada para acoplarse con un agujero en la carrocería del automóvil. Acabo de perforar un agujero en el marco de StreetWriter para encajar allí y atornillar la parte superior del tanque a una viga de madera en la plataforma. Luego utilicé los pernos para sujetar la placa con el interruptor de alimentación principal.



El motor de la bomba requiere más potencia de la que puede proporcionar la salida de Arduino. Se instala un amplificador de transistor en la propia bomba para reducir el ruido eléctrico. (ver diagrama de control y imagen de cableado bastante fea).



El tubo va desde la bomba del depósito hasta la boquilla del colector. La boquilla tiene el tamaño adecuado para adaptarse a la tubería y roscas NPT de 1/8 pulg. En el colector.



El código Arduino enciende brevemente el motor antes de permitir que los inyectores de combustible impriman para acumular presión en el sistema.



El código Arduino también activa la bomba cuando gira la perilla de cambio de presión para que el usuario pueda configurar la presión del colector según sea necesario, ya que diferentes superficies requieren más o menos agua para una buena legibilidad. Simplemente gira la perilla y la bomba se pone en marcha, para que puedas ajustar la presión con el manómetro. Cuando deja de girar la manija, la bomba se apaga.



Paso 6: Arduino Shields







StreetWriter requiere dos escudos además del Arduino Uno.



El primero, EKT-1016, es el que compré en Tindie.com. Proporciona la capacidad de utilizar 16 canales. En este proyecto estamos usando 8 de ellos.



El segundo escudo se obtuvo de SparkFun (www.sparkfun.com/products/12761).



Contiene un lector de tarjetas SD y varias opciones adicionales:



  1. potenciómetro para ajustar la presión del agua;
  2. un potenciómetro para seleccionar un archivo de texto que escribirá StreetWriter;
  3. LED multicolor que muestra cuál de los 8 archivos se ha seleccionado;
  4. cambie para desactivar la impresión al avanzar;
  5. conector para puesta a tierra y dos señales necesarias: un comando de " avance" y un comando de "presión" a la bomba.




Descargue el diagrama de cableado de StreetWriter en pdf



Paso 7. Letras de fuente y diseño de fuente





La función principal de StreetWriter es utilizar una fuente digital para crear símbolos.



Afortunadamente, alguien hizo todo el trabajo de crear las fuentes y nos proporcionó los resultados aquí .



Este programa de edición de fuentes tiene varias muestras de fuentes disponibles, lo que le da al usuario la capacidad de editar estas fuentes existentes.



Luego puede generar la fuente resultante como un bloque de código que puede poner directamente en su programa Arduino.



Cambié una de las fuentes para agregar huellas y este archivo está adjunto (footprintFONT.pf). Puede usar cualquiera de las fuentes de muestra que vienen con la fuente de píxeles, o la que viene con ella, para crear el bloque de código que necesita el firmware de Arduino.



Descargar archivo de fuente



Paso 8: archivos de texto





El siguiente paso del código Arduino le permite leer e imprimir uno de los 8 archivos de texto.



El archivo que se imprimirá se selecciona con la perilla giratoria en el escudo Arduino y se indica mediante la indicación LED (diferentes colores). Colores: rojo, verde, azul, amarillo, cian, magenta, blanco, negro.



Los archivos de texto de la tarjeta SD se nombran con los mismos ocho colores para facilitar su identificación. El texto del archivo no tiene nada que ver con el nombre del archivo.



Por lo general, coloco el archivo TOC.txt en la tarjeta SD para realizar un seguimiento del contenido de cada archivo, imprimo ese archivo y lo pego en StreetWriter. (ver imagen) Los



archivos pueden tener cualquier longitud. Por ejemplo, el archivo BLACK.txt contiene un PI de 300 caracteres.



Los archivos de texto se pueden crear en cualquier editor de texto, pero algunos editores pueden agregar saltos de línea que afectan el espacio entre los mensajes durante la impresión. Normalmente uso el Bloc de notas.



El programa Arduino que escribí tiene la capacidad de acceder a las posiciones de los caracteres "no imprimibles" en la tabla de fuentes accediendo directamente a la ubicación del carácter. Por ejemplo, parte de una huella está en la celda de fuente 128, por lo que el archivo de texto contiene ^ 128. El código Arduino detecta el "^" y lo usa como el "carácter de escape". No imprime "^", pero selecciona los siguientes tres caracteres como la ubicación de la fuente e imprime ese carácter.



(^ 128 ^ 129 ^ 130 ^ 131 ^ 132 ^ 133 imprime los seis caracteres que constituyen una marca izquierda y otra derecha.)



Descargar archivo de texto Rojo



Descargar texto Archivo verde



Descargar archivo de texto Azul



Descargar archivo de texto Amarillo



Descargar archivo de texto Cian



Descargar archivo de texto Magenta



Descargar archivo de texto Blanco



Descargar archivo de texto Negro



Descargar archivo de texto CONTENIDO



Paso 9: Código Arduino



Se adjunta el código Arduino para este proyecto. Sin embargo, hay algunas cosas que vale la pena mencionar.



El programa tiene dos pestañas. (Para que Arduino IDE encuentre y use estos archivos, deben colocarse en una carpeta llamada STREETWRITER_BLUE).



STATESET es simplemente un procedimiento que interactúa con el ETK-1016, incluidos sus controladores y, por lo tanto, los inyectores de combustible.



STREETWRITER_BLUE es la rutina principal donde sucede todo lo demás.



A partir de la línea 13, hay una matriz muy larga:



const uint8_t font [] PROGMEM = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.)

0x7E, 0x81, 0x95, 0xB1, 0xB1, 0x95, 0x81, 0x7E, // Char 001 (.)


0x44, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0x44, 0x00, // Char 120 (x)


0x00, 0x60, 0x40, 0x40, 0x40, 0x40, 0x60, 0x00 // Char 255 (.)

};

      
      





Esta es una tabla de fuentes. Cada línea describe un carácter y termina con un comentario, que indica la dirección de este personaje y su nombre. Los caracteres no imprimibles se indican con (.). Esta tabla es demasiado grande para caber en la memoria de trabajo de Arduino y el compilador la dirige a la memoria flash. Esto está bien, ya que la tabla solo se lee y no se escribe mientras Arduino se está ejecutando.



El bucle principal comienza en la línea 345. Determina que StreetWriter avanza, lee el siguiente carácter del archivo de texto abierto. Envía los bytes de este carácter a los inyectores de combustible de uno en uno. Luego elige el siguiente carácter y lo envía.



En la línea 347:



El Arduino no controla cuánto tiempo el bit de letra salpica agua cuando cambia la velocidad de StreetWriter. En la práctica, he descubierto que la velocidad de StreetWriter es bastante constante, por lo que probarlo una vez y ajustar el ancho del trazo durante la configuración es suficiente para obtener un resultado razonablemente bueno. En este código, puede ver que está configurado en 500.



Pulsemin, Pulsemax y Pulse son los valores que funcionaron para mis implementaciones.



La línea 376 tiene un código que enciende la bomba durante ½ segundo para permitir que el operador verifique y ajuste la presión. Mientras gire la manija, la bomba funcionará. Cuando detenga su rotación, la bomba, en consecuencia, se apagará.



En la línea 393el código comprueba qué carácter de fuente se devolvió del archivo de texto y decide cómo imprimirlo.



La rutina UNPACK en la línea 403 descomprime los bytes de la fuente y los envía a los controladores de los inyectores de combustible.



La subrutina COLOR en la línea 410 verifica la posición del potenciómetro de selección de archivo, enciende el color del LED correspondiente y luego abre el archivo de texto correspondiente.



Descargar streetwriter_blue.ino   archivo de



descarga de archivos stateset.ino



Paso 10: montaje y ajuste final











No he proporcionado un diagrama de conexión general, pero es simple.



  1. shiled-. , , . , shield-. (shield );
  2. shield- — Arduino, . 4- , shield- ( );
  3. : , Arduino . , ( );
  4. Los cables entre la placa de control de radio y la miniplataforma transportan energía y señales hacia adelante / atrás, izquierda / derecha.


Vamos a comprobar si todo funciona.  



  1. ¿Están los motores conectados para avanzar cuando el control remoto envía un comando de avance? De lo contrario, cambie los cables a los motores.
  2. ¿Arranca la bomba y se puede ajustar su presión?
  3. ¿Funcionan todos los inyectores de combustible cuando usted manda hacia adelante? Me gusta usar un patrón de prueba (white.txt) que debería dibujar 8 rayas.
  4. ¿El potenciómetro de selección de archivos cambia qué archivo se está imprimiendo actualmente? ¿Los archivos coinciden con el color del LED?
  5. ¿Es la letra lo suficientemente ancha? Si las letras son demasiado estrechas o demasiado anchas, debe cambiar el ancho del trazo en el código Arduino, ahora está configurado en 500.


Paso 11: mejoras



Dado que StreetWriter que se describe aquí es la segunda versión, ya se incluyen algunas mejoras con respecto a la primera.



Los mayores cambios:



  1. use un depósito de lavaparabrisas, no el rociador de jardín que puede ver en el video;
  2. Usando EKT-1016 en lugar de cableado dedicado para amplificadores de potencia.




Estaba pensando en crear una versión de 12-16 píxeles para obtener una resolución más alta en el texto escrito, pero no pude encontrar una fuente de software como Pixelfont para una resolución más alta, y soy demasiado vago para escribir esto desde cero. Por favor, avíseme si realiza tal montaje.



Me han pedido que use pintura u otro líquido que sea más resistente que el agua, pero me resisto. La naturaleza fugaz de lo que hace StreetWriter es parte de la idea.



He intentado agregar detergente de cocina al agua para ver si aparecen burbujas durante la impresión. Como resultado, tenía parches limpios y débiles en mi camino de entrada, con mensajes legibles que duraron varios meses. Sin burbujas.



Además, resulta que la implementación de esta idea a mayor escala se desarrolló en paralelo: www.trikewriter.com  



Nota del traductor : este proyecto fue implementado por el autor hace algún tiempo, por lo que no aprovecha las últimas oportunidades que el el mercado nos da en este momento ... En este momento, la implementación más racional de este sistema parece ser usar la placa esp32, esto simplificará significativamente muchos detalles del control de este sistema y usará un teléfono inteligente como panel de control.



, ,   2 , — , - . , . , , — .



Además, puede darle al sistema nuevas propiedades instalando una placa de acelerómetro / giroscopio o simplemente leyendo los pulsos de un codificador instalado en una de las ruedas. Esta instalación te permitirá montar todo el sistema de impresión con agua, en cualquier dispositivo de movimiento rápido, como un patinete eléctrico, lo que te permitirá aplicar de forma fácil y rápida largas inscripciones mientras conduces. Los inyectores automotrices están diseñados para operar a altas frecuencias y harán bien su trabajo. 






Los servidores de Macleod VDS son rápidos y seguros.



Regístrese usando el enlace de arriba o haciendo clic en el banner y obtenga un 10% de descuento durante el primer mes de alquiler de un servidor de cualquier configuración.






All Articles