jueves, 20 de diciembre de 2018

Impresión 3D: diseñando e imprimiendo nuestras primeras piezas

Una vez probada nuestra impresora 3D Ender 3 y habiendo comprobado que funcionaba correctamente, debíamos pasar a la fase de creación de nuestras propias piezas para posteriormente reproducirlas en tres dimensiones. Pese a haber trabajado puntualmente con programas de modelado en 3D, desconocíamos si estos trabajaban con formato de datos compatibles con nuestra máquina, si existían formatos estándar, si necesitaríamos un programa para realizar conversiones,... El fichero que habíamos usado en nuestra prueba inicial tenía la extensión .gcode, pero los modelos creados con nuestro software de diseño tenían extensiones .obj, .stl o .svg,... entre otros, los cuales almacenan en su interior agrupación de distintas figuras definidas por secuencias de triángulos así como una serie de propiedades adicionales de las mismas tales como colores, texturas,... Por tanto, no podíamos crear ficheros .gcode directamente con nuestros programas de diseño.
Diseño de chasis de vehículo con tracción total controlado por Arduino.
Fase de diseño de un posible modelo de chasis NorbaLander 2.
Buscando en la tarjeta de memoria proporcionada con la Creality Ender 3, encontramos la versión 15.04.3 para Windows del programa Cura 3D, un software de corte o "slicer" ampliamente utilizado en todo tipo de impresoras 3D. Inicialmente pensamos que se trataba de un programa de diseño, aunque rápidamente nos percatamos que era más bien un software de conversión de formatos de modelos 3D a .gcode. Esta segunda suposición era más correcta, aunque no del todo precisa, ya que el proceso realizado no se trata de una mera conversión, sino de la creación de una secuencia de instrucciones legibles por una impresora 3D que le informan sobre cómo debe actuar para imprimir una pieza, y en las cuales intervienen muchos parámetros proporcionados por el usuario y no incluidos dentro de los formatos de modelado, tales como temperatura del nozzle, temperatura de la cama, material de impresión, velocidad de impresión, porcentaje y algoritmo de relleno de las piezas macizas, grosor de las capas exteriores de las piezas, creación de soportes adicionales para evitar deformaciones en el proceso de impresión,... Por tanto, el software Cura 3D se encarga de leer un modelo 3D, seccionarlo en finas rodajas horizontales, analizarlas añadiendo o eliminando si fuera necesario elementos adicionales como soportes o huecos, para a continuación crear una secuencia de comandos que indique a la impresora como imprimir estas capas, incluyendo entre los mismos instrucciones de control de temperatura, velocidad, recorrido,... Todas estas órdenes finalmente se almacenan dentro del fichero de texto .gcode legible por la impresora.

Diseño de chasis seccionado por software Cura 3D.
Representación del recorrido a trazar por la impresora 3D, dictado por el fichero .gcode, incluyendo tanto el objeto a imprimir como otros elementos de sustentación generados automáticamente.

Instalación del software de corte o "slicer".

Antes de instalar el software incluido con la impresora, y teniendo en cuenta que el ordenador que teníamos más a mano estaba gobernado por Linux, buscamos por Internet algunas alternativas compatibles con este sistema operativo, ya que la versión 15.04.3 que teníamos, además de algo antigua (del año 2015), funcionaba solo para Windows. En la página de Ultimaker pudimos comprobar que Cura 3D era opensource y podía descargarse de forma gratuita para cualquier plataforma (Linux, Windows o macOS). Así que buscamos la versión más reciente para Linux y procedimos a intentar descargarla. Sin embargo, era tal la cantidad de información se nos pedía para ello, que buscamos una solución alternativa (Actualización: ya es posible descargar el software seleccionando la opción de no compartir información).
Captura de pantalla de cuestionario a rellenar para descargar software Cura 3D.
Cuestionario que debe completarse para descargar Cura 3D desde la página oficial de Ultimaker.
Pudimos comprobar que existían repositorios para Ubuntu 16.04 en los que se incluía este software. Sin embargo, previa a la instalación, y para no tener problemas con las dependencias, debíamos instalar Python 3.X, necesario para que Cura 3D funcione correctamente. A continuación habría que incluir en el sistema los repositorios adecuados y finalmente proceder a la instalación del software de corte. En resumen, hay que ejecutar los siguientes comandos (nos los tiene que ejecutar Toni, "el administrador"):
pdm@mark1:~$ sudo apt-get install python3 python3-dev python3-sip
pdm@mark1:~$ sudo add-apt-repository ppa:thopiekar/cura
pdm@mark1:~$ sudo apt-get update && sudo apt-get install cura 
Tras su ejecución, se realizó la instalación de la versión 2.7.0 del programa, que si bien no es la más reciente (agosto del 2017), si que es bastante más moderna que la que teníamos.

Preparación del modelo de prueba.

Con todo instalado y listo solo quedaba crear un modelo de prueba, transformarlo en formato .gcode y finalmente proceder a su impresión tridimensional: ¡¡¡Chupao!!!
Usando nuestro programa de diseño favorito, el Tinkercad, procedimos a crear una pequeña figura, relativamente simple, pero con sus pequeñas dificultades a la hora de ser impresa. No queríamos perder mucho tiempo ni filamento ABS, que no es barato. Así que realizamos un pequeño "banner" con el nombre del proyecto.
Diseño de logo NorbaSky realizado con TinkerCad.
Modelo de logotipo NorbaSky diseñado para ser impreso en 3D.
Exportamos el objeto a un fichero .obj y a continuación lo cargamos en Cura 3D, usando los parámetros por defecto, indicando obviamente el tipo de filamento, la temperatura del cabezal y de la cama, y algún que otro parámetro adicional. Generamos el fichero .gcode correspondiente y procedimos a iniciar la impresión.

Primer intento de impresión: problemas de sujeción.

Al principio parecía que todo iba a la perfección, hasta que comenzó a imprimirse "el puente" o la zona más elevada del logotipo, la cual no disponía de ningún tipo de sustentación. Al trazar los primeros filamentos que unían los dos "pies" de la figura, estos comenzaron a curvarse hacia abajo por su propio peso.
 
Primer intento de impresión 3D de nuestro modelo.
Según pasan los minutos, la figura va tomando forma sobre una plataforma un tanto gruesa para cada una de las superficies de sujeción de la misma. Esta plataforma tiene un grosor de unas cinco o seis capas. Aún no sabíamos que este tipo de estructura era configurable, por lo que inicialmente quedamos un poco sorprendidos por su existencia. Más tarde comprobamos que se trataba de una superficie artificial diseñada para crear adherencia con la cama de la impresora: la balsa.
Estructura de "balsa" usada para solucionar algunos problemas de adherencia en la impresión 3D.
Detalle de la "balsa" de adherencia, así como la ausencia de otro tipo de soportes auxiliares.
La figura podría haber quedado bien de tener los soportes adecuados para las estructuras que quedaban en el aire. No obstante notamos otros problemas relacionados con el relleno de la misma, que no se agarraba muy bien a las paredes, quizá por una excesiva velocidad.
Problemas de deformación ocasionados en la impresión 3D de una pieza sin soportes adecuados.
Detalle de estructura libre de soportes auxiliares, lo que provoca una deformación.
El proceso no pintaba nada bien. Decidimos esperar a finalizar la figura, ya que Cura 3D nos había informado que el proceso tardaría poco más de una hora. El resultado final fue un verdadero "churro".
Deformaciones producidas en el proceso de impresión 3D.
Resultado de nuestra primera pieza impresa, con grandes deformaciones y grietas.
Todos los filamentos inferiores del "puente" se habían ido curvando hacia abajo por su propio peso, quedando muy separados de los superiores, produciéndose grieta tras grieta en el proceso. Hasta que la figura no estuvo casi acabada, no comenzó a apreciarse una mejoría en el acabado. Calificación de la prueba: suspenso claro. Según parece, este tipo de deformaciones se producen habitualmente por una velocidad de impresión demasiado alta, y por no crear soportes para las partes que "quedan en el aire". Habíamos pecado de ingenuos pensando que el software generador del fichero .gcode crearía soportes automáticamente, y aunque en parte esto es cierto, había que indicarlo expresamente en la configuración del programa.

Segundo intento de impresión: problemas de adherencia.

Para el segundo intento de impresión, procedimos a disminuir la velocidad de impresión (de 80mm/s a 30mm/s), marcamos la opción de generación automática de soportes (desde todos los puntos de la figura) y por si acaso, aumentamos la densidad de impresión en el interior de la figura (de 20% a 60%), ya que esta era muy delgada y habíamos notado que no se estaba realizando correctamente, seguramente por la excesiva velocidad. Con estos cambios, el tiempo de impresión se disparaba a casi 7 horas. Para acelerar un poquito el proceso procedimos a disminuir ligeramente el borde de adherencia (a 0,8 cm), ya que hasta el momento no habíamos tenido problemas al respecto, y suponían un gasto de filamento y de tiempo de proceso. Así, el tiempo de impresión se reducía a 5 horas y media. Seguramente esto fue nuestro mayor error.
Comenzamos la segunda prueba con los nuevos parámetros, y aunque todo comenzó a la perfección, rápidamente notamos como la figura se despegaba de la cama y se torcía. Habíamos perdido adherencia (efecto "warping") y al cabo de unos minutos el cabezal de impresión chocaba con las zonas despegadas y comenzaban a producirse errores.
Problema en el proceso de impresión 3D. El efecto warping deforma la pieza.
Detalle del efecto "warping" generado en nuestra impresión, fruto del reducido borde de adherencia.

Tercer intento de impresión: frágil borde de adherencia

En el tercer intento modificamos el borde de adherencia aumentando su superficie (de 0,8cm a 2,2cm) a fin de que éste no se despegase fácilmente, o bien, si comenzaba a despegarse, no llegase hasta la base real de la figura. Con estos nuevos parámetros, el proceso de impresión comenzó de forma satisfactoria. Se estimaba una duración de 5 horas y media de trabajo.
Proceso del tercer intento de impresión, mostrando detalle de la amplia superficie de adherencia.
Durante la primera hora todo funcionó correctamente, pero poco a poco uno de los bordes de adherencia se fue despegando de la cama. Aparentemente esto no supondría un problema, ya que la separación era mínima y no afectaba a la figura.
Problema en el proceso de impresión 3D consecuencia de la pérdida de adherencia o efecto warping.
Detalle de inicio de pérdida de adherencia "warping" en la parte inferior derecha de la imagen.
Sin embargo, según pasaban los minutos la separación se hacía mayor. No estamos seguros de si el borde subía y empujaba a la figura hacia arriba, o era la figura la que se curvaba, quizá por efecto de la temperatura, y tiraba del borde de adherencia. En cualquier caso, lo que parecía ir como la seda en un principio, poco a poco fue perdiendo calidad.
Problema en el proceso de impresión 3D: acusado efecto warping que deforma la pieza.
Aumento del "warping" en la parte derecha de la figura, con la consecuente deformación de la figura.
El resultado afectó seriamente a las capas inferiores de la figura, quedando menos afectadas las superiores, las cuales ganaban en calidad a medida que se alejaban de la cama. Por otra parte, las zonas interiores de la figura parece que se consolidaban correctamente, lo que nos hace pensar que la densidad indicada en el proceso era correcta, e incluso podría reducirse algo más para ganar ligereza, ahorrar costos y reducir el tiempo de impresión.
Resultado final de la impresión 3D a falta de eliminar los soportes auxiliares.
Resultado del tercer intento de impresión 3D de nuestro logo, aún sin eliminar los soportes auxiliares.
Algunas de las medidas a tomar para evitar el warping son la de crear superficies anchas en la base, precalentar la cama lo suficiente y con hasta 15 minutos de antelación, nivelar perfectamente la impresora, y finalmente controlar la temperatura ambiente o proteger la impresora con algún tipo de cubierta. Al parecer, esta última medida es quizá la más importante, así como la más complicada para nosotros. Intentaremos solucionarlo en la siguiente impresión.
Resultado final del tercer intento de impresión 3D de nuestro logo, visto desde arriba.
Problemas en la impresión 3D generan una deformación en la pieza.
Resultado final del tercer intento de impresión 3D de nuestro logo, visto desde el frente.

Cuarto intento de impresión: calentando el entorno

En vista de las complicaciones técnicas para proteger la impresora con una cubierta mientras realiza la impresión, decidimos en esta cuarta prueba poner cerca de la misma un calefactor de infrarrojos, lo suficientemente próximo como para emitir calor y lo suficientemente alejado como para no quemar durante una exposición continuada de entre 4 y 5 horas. Esto podría paliar los negativos efectos que el frío ambiente del laboratorio pudieran ejercer sobre el proceso de impresión 3D. También seleccionamos una "balsa" como borde de adherencia, la cual es bastante más gruesa que una superficie básica formada por una única capa de impresión.
Detalle de sección de nuestro diseño, desde CURA 3D, listo para el cuarto intento de impresión.
Pese a la correcta adherencia, la pieza comienza a romperse como consecuencia de dilataciones incorrectas durante la impresión 3D.
Cuanto intento de impresión con amplia superficie de adherencia y calentador posterior.
El proceso comenzó muy bien, y la "balsa" aguantó perfectamente adherida a la cama. Sin embargo, la pieza se fue poco a poco despegando de la balsa. Esto nos hace pensar que sigue existiendo el problema de dilatación inadecuada y que es la pieza la que tira del borde, y no este último el que empuja a la pieza.
Proceso de impresión de nuestro cuarto intento, con estufa de infrarrojos posterior.
El resultado obtenido en esta nueva prueba es más satisfactorio que el obtenido en la prueba anterior. Las proporciones de la figura son más reales, y existe menos distorsión el las capas inferiores. Sin embargo han aparecido grietas en las capas intermedias. Esto seguramente sea consecuencia de que la balsa ha conseguido "agarrar" a la pieza más tiempo, hasta que al final han ganado las fuerzas de dilatación que por una parte han separado la pieza de la balsa y por otro la han fragmentado en distintas secciones.
Problemas de impresión 3D causados por dilataciones incorrectas.
Resultado del cuarto intento de impresión 3D de nuestro logo, aún sin eliminar los soportes auxiliares.
Comparativa de resultados de impresión 3D.
Comparativa de resultados: cuarta impresión a la izquierda y tercera impresión a la derecha.
Después de esta cuarta prueba, y con unos niveles de desesperación cada vez más elevados, ya que queremos comenzar la fase de explotación de la impresora para realizar diseños de piezas que necesitemos (algo impracticable con la calidad obtenida hasta el momento), solo nos queda realizar una exhaustiva investigación sobre el tema y atacar el problema desde todos los frentes posibles.

Quinto intento de impresión: rediseñando el modelo

Comenzamos a realizar una busqueda por Internet sobre cómo solucionar los problemas del warping. Después de leer varias páginas, nos dimos cuenta que la mayoría de las opciones ya las habíamos tenido en cuenta. Sin embargo, aún quedaban algunas cosas por probar:
  1. Al parecer, el ABS necesita una cama más caliente que otros materiales como el PLA. En algunos sitios recomiendan hasta 110ºC. Nosotros habíamos trabajado hasta el momento precalentando a 80º.  En la próxima prueba nos decantaríamos por un valor de 90ºC.
  2. Incrementar las alturas de las capas, sin superar nunca el 80% del grosor del nozzle, lo cual tiene además la ventaja de reducir el tiempo de impresión, a costa de perder calidad por "pérdida de resolución".
  3. Reducir la velocidad de impresión.
  4. Modificar la geometría del elemento a imprimir, comenzando a imprimir usando otra perspectiva. 
Nos pusimos manos a la obra, comenzando por el rediseño de la pieza a imprimir, para que esta pudiera generarse desde otra perspectiva. Eliminamos los soportes de la placa con el logotipo "NorbaSky" y les añadimos unas pequeñas cuñas.Por su parte, hicimos el correspondiente hueco dentro del logotipo para que pudieran entrar las citadas cuñas. El resultado serían tres piezas independientes ensamblables, con idéntica apariencia que las del modelo usado en las pruebas anteriores, pero seguramente más fácil de imprimir al tratarse de una superficie mayor. Asimismo, se gastaría un poquito menos filamento al no tener que realizar tantos soportes auxiliares, y por la misma razón, también el proceso de impresión se realizaría más rápido.
El nuevo diseño del logotipo permitirá una mejor impresión 3D usando ABS.
Reestructuración de nuestro modelo de logo con la esperanza de mejorar su impresión 3D.
Seguimos reutilizando prácticamente los mismos parámetros que en la impresión anterior, eliminando en esta ocasión la balsa y sustituyéndola por una superficie de adherencia más fina y pequeña, ya que al aumentar la superficie de contacto de la pieza con la cama, creíamos que ya no era necesaria una extensión tan grande adicional.
Detalle de sección de nuestro nuevo diseño visto desde el programa de corte CURA 3D.
También aumentamos la altura de las capas, de 0,1mm a 0,15mm, lo que implicaba una mínima pérdida de calidad y una reducción del tiempo de impresión, de casi 6 horas a algo más de 3 horas y media. Finalmente, y por cambiar algún parámetro adicional para probar algo nuevo, cambiamos el patrón de relleno de rejilla a zigzag.
Proceso de impresión del logotipo NorbaSky (vista frontal): quinto intento.
Proceso de impresión de logotipo NorbaSky (vista trasera): quinto intento
Con estos nuevos parámetros, y tras una hora y pico de impresión, todo parecía ir perfectamente. La impresión fue avanzando poco a poco y en ningún momento se notó ninguna falta de adherencia, grieta o deformación.
Quinto intento de impresión 3D satisfactorio.
Resultado final de la impresión, antes de eliminar soportes y áreas de adherencia.
El resultado final fue totalmente satisfactorio. Si bien es cierto que la superficie no se notaba tan lisa como en otras ocasiones (quizá por el aumento de la altura de capa), el resultado de las proporciones, esquinas y diversos elementos de la figura fue impecable, salvo por un pequeño detalle: las cuñas creadas en los soportes para insertar las patas en el logotipo nos quedaron más grandes que los agujeros donde debían ir insertadas. Algo que en nuestro diseño CAD era exacto, pero que en el modelo real perdía exactitud, y que si bien se podía arreglar fácilmente con la exposición al calor de un mechero durante breves segundos, no dejaba de ser una pequeña imperfección.
Resultado final de la figura impresa después de colocar soportes.
En conclusión, después de 5 largas pruebas, hemos aprendido que el tema de la impresión 3D no es algo tan trivial como pudiera parecer. Es muy importante cuidar el entorno de trabajo, estudiar los materiales a utilizar, los parámetros de impresión, velocidad, geometría de la figura y un largo etcétera de ajustes que pueden convertir una impresión en una obra de arte o en un verdadero churro.

martes, 4 de diciembre de 2018

EXPO MÓVILES 2018: exposición de termimales del Norba Caesarina

El estudio de las tecnologías de comunicaciones entre distintos dispositivos es crucial para la realización de cualquier tipo de sonda que se aleje de nosotros y de la que posteriormente queramos obtener información. Son muchas las tecnologías de comunicación existentes y durante este curso queremos estudiar varias de ellas: bluetooth, WIFI, GSM (2G), GPRS/EDGE (2.5G), UMTS/CDMA (3G), HSPA (3.5G), WiMAX (4G), APRS,..., muchas de ellas ligadas íntimamente a la comunicación mediante tecnología móvil, otras más orientadas a comunicación entre pequeños dispositivos, equipos informáticos o localización de objetos aéreos.
Desde 1980, cada 10 años se produce un salto tecnológico en las comunicaciones móviles.
Distintas tecnologías de comunicación producidas desde 1980 en la telefonía móvil.
Para introducir a los alumnos en este tipo de tecnología, hemos comenzado a estudiar con ellos los terminales móviles, su evolución y algunas de sus características técnicas. Además, con el fin de conseguir una mayor implicación de los mismos, les hemos invitado a que busquen terminales viejos en sus casas y hemos organizado una exposición con los mismos en la biblioteca del centro, dedicándola principalmente al estudio de la evolución del móvil a lo largo de la historia. En su organización ha trabajado principalmente el Departamento de Tecnología junto a sus alumnos.
En dicha exposición además de mostrar la evolución efectiva de dichos dispositivos se ha estudiado cuáles eran y son las características (software y hardware) que han ido evolucionando o cuáles de ellas han sufrido un cambio mucho más radical con respecto al origen de su puesta en funcionamiento: cámara de fotos, al tamaño o disposición de la pantalla, geolocalización por red/GPS, tamaño y rendimiento de la batería...
Distintos terminales móviles, desde los antiguos modelos analógicos hasta terminales 3G anteriores a Android.
Todos estos aspectos se analizan en un catálogo que señala qué características técnicas tiene cada móvil, además de su año de comercialización y su número SAR (o número de radiación en W por kg). Entre estas características se encuentra por supuesto las Redes de Comunicación (aspecto destacable a la hora de analizar la evolución en la comunicación inalámbrica) y sus frecuencias: desde redes GSM 900Hz con tasas de transferencia de datos de un máximo de 100kbps hasta su sucesora la red UMTS (3G) 1800Hz y 1900Hz, con una mayor resistencia a las interferencias que su predecesora y con la posibilidad de uso simultáneo de conexiones de voz y datos, con velocidades de descarga que pueden alcanzar 337Mbps para los estándares más modernos y siempre en situaciones óptimas. No se han incluido teminales 4G, más modernos, ya que estos son ampliamente conocidos por los alumnos.
Nos ha parecido interesante hacer una mención especial a los móviles Nokia, un referente dentro de este tipo de tecnología, y a su evolución desde los primeros terminales que salieron al mercado hasta los serie N de gamas más altas, antes de que la empresa comenzara a perder importancia en el sector, fagocitada principalmente por la entrada en el mercado de Android y un sinfín de terminales, la mayoría chinos, gobernados por este sistema operativo, cuyas prestaciones no paraban de aumentar casi al mismo ritmo que bajaban sus precios.
Expositor con distintos terminales Nokia anteriores a la serie Lumia de Nokia+Microsoft
A partir de los datos técnicos recopilados de los distintos terminales expuestos, se realizará un estudio de los sistemas de transmisión inalámbrica y las características que la definen: velocidad de transmisión de datos, distancia efectiva, problemas de saturación de red, frecuencias, funcionamiento en movimiento,... También se estudiarán otros tipos de comunicaciones alternativos, con la idea de adquirir conocimientos más globales sobre el tema.
Puedes obtener más detalles sobre esta exposición en el blog del Departamento de Tecnología.
Actualización 19/12/2018
La exposición ha tenido una gran repercusión en el centro, habiendo sido visitada por prácticamente todos los cursos del mismo, y despertando gran interés entre profesores y alumnos.
Alumnos de la asignatura de Geografía e Historia junto a su profesor Alfonso visitando la exposición.

martes, 27 de noviembre de 2018

Creality Ender 3: puesta en marcha de nuestra primera impresora 3D

Acabamos de adquirir nuestra primera impresora 3D. Nos hemos decantado por la Comgrow Creality Ender 3, de la que hemos oído hablar muy bien en distintos foros especializados. Nos ha salido a un precio muy competitivo para lo que estamos acostumbrados a ver, aunque no tanto si lo comparamos con el que se oferta en numerosas páginas chinas, en las podemos encontrarla hasta un 25% más barata.

Proceso de ensamblado.

Nada más recibir el paquete, prodecimos raudos y veloces a su apertura para comprobar que todo estaba correcto. El paquete venía perfectamente organizado con los plásticos y espumas protectoras correspondientes, totalmente asegurado y con todas las piezas correctamente etiquetadas con su nombre o número. Se incluía un A3 a doble cara con todas las instrucciones de montaje, así como todas las herramientas necesarias para realizar el ensamblaje, algo que se agradece bastante. Aunque inicialmente teníamos un poco de miedo, pues nos habían comentado que este tipo de montajes eran complicados, en cuanto nos pusimos manos a la obra nos dimos cuenta de que esta tarea era tan sencilla como la de montar un mueble de Ikea o realizar una construcción con bloques de LEGO. Simplemente hay que ir paso a paso, fijándose bien en cada pieza, tornillo, correa,... e ir realizando el ensamblaje tal y como se indica en la hoja de instrucciones.
Fragmento del manual de instrucciones para el montaje de la impresora 3D.
 
Recreación del montaje de la impresora 3D Comgrow Creality Ender 3.
(Video proporcionado en la microSD incluida en el paquete)

Instalación y calibrado.

Una vez montada la impresora, estábamos ansiosos por probarla. Los pasos lógicos que pasan por la cabeza son los de leer el manual, instalar el software de control, realizar un complejo proceso de calibrado, estudiar el funcionamiento del software de diseño... La Creality Ender 3 incluye una pequeña tarjeta microSD y un adaptador USB para utilizarla a modo de pendrive. En esta tarjeta se pueden encontrar drivers, programas, manuales, documentos con preguntas frecuentes,... así como un pequeño manual de funcionamiento básico y un modelo 3D de ejemplo listo para ser impreso. En el manual se indica que la impresora puede funcionar de forma autónoma, sin necesidad de usar el ordenador, leyendo modelos 3D directamente desde cualquier tarjeta microSD a través de un puerto destinado a tal fin. Así que nos planteamos comenzar a imprimir el modelo de prueba sin realizar ningún tipo de instalación ni conexión al PC.
Encendimos la impresora y el display de la misma nos dio la bienvenida. Rápidamente comenzamos a navegar por las distintas opciones y nos hicimos una idea del funcionamiento general: opciones de movimiento del "cabezal de impresión" o "nozzle", opciones de ajustes de temperatura y opciones de impresión desde la microSD, con posibilidad de pausa. En menos de 5 minutos nos habíamos familiarizado con todas las opciones. Comentar que existen algunas diferencias de organización entre los menús que muestra la máquina y los que aparecen en el manual, seguramente como consecuencia de alguna actualización del firmware posterior a la impresión de las instrucciones. Sin embargo estas diferencias son mínimas y no suponen ningún problema para el uso de la máquina.
Preparados mentalmente para imprimir, metimos el filamento por el tubito habilitado para tal fin (siguiendo las indicaciones básicas del manual) y seleccionamos en el menú de la impresora la opción de imprimir desde la microSD ("print from SD"). El "nozzle" empezó a moverse y comenzó a salir un filamento solido que se retorcía sobre si mismo sin crear ninguna forma. Comenzaban a surgir los primeros problemas:
  • Primer problema: selección de temperatura del cabezal.
    Nos dimos cuenta que entre los distintos elementos incluidos en la caja de la impresora había una pequeña tablita con los distintos materiales soportados por la impresora y las temperaturas a las que deben ser fundidos. Por defecto la impresora arranca a 200ºC, pero estabamos intentando imprimir con ABS HD que se fundía entre 240 y 260ºC. Corregimos la temperatura en el menú correspondiente y reintentamos la impresión.
    Relación de distintos materiales del filamento usado por la impresora 3D y las distintas temperaturas de trabajo a las que debe configurarse la misma.
  • Segundo problema: distancia de la base ("bed").
    En el segundo intento de impresión notamos como el filamento ya salía ligeramente fundido y pegajoso, pero seguía retorciéndose sobre sí mismo y cuando alcanzaba la base llegaba sólido. La base estaba demasiado alejada del cabezal ("nozzle"), a solo un par de milímetros o menos. Habíamos pasado por alto que ésta tenía que estar a una distancia mínima, algo que indicaba claramente en las instrucciones, pero de lo que no nos habíamos percatado. Así que procedimos calibrar la distancia "a ojo", apretando las cuatro rueditas situadas debajo de la base, subiéndola hasta que "casi rozaba con el nozzle".
    Detalle de una de las ruedas de calibrado de la base ("bed") de la impresora 3D.
    Detalle de las dos ruedas frontales de calibrado de la base de la impresora 3D.
  • A la tercera va la vencida.
    Después del calibrado manual, reintentamos nuevamente la impresión. Esta vez comenzó a pegarse el filamento sobre la base, formando un patrón perfectamente definido. Los minutos pasaban lentamente, pero poco a poco la impresión iba tomando forma.
    Primeros momentos de la impresión del modelo proporcionado para pruebas en el kit de instalación de la impresora 3D.

Impresión de la figura de prueba.

Una vez comenzó la impresión de la figura de prueba, la cual inicialmente pensamos que era una rana, todo fue perfectamente, aunque algo lento para nuestra impaciencia. Comenzamos la impresión a las 11a.m. y nos teníamos que marchar a las 13:30h, con lo que la impresora disponía de escasas dos horas y media para acabar el trabajo. Desafortunadamente pecamos de demasiado optimistas. A la hora de marcharnos, se había completado escasamente un 30% de la figura. Eso si, la calidad nos pareció bastante buena. Accedimos a los controles de la máquina y le indicamos que realizase una pausa. A continuación procedimos a apagarla.
Estado de la impresión tras una hora y cuarto de trabajo.
Era viernes y no volveríamos al laboratorio hasta pasado el fin de semana. Sabíamos que la impresora disponía de la posibilidad de reanudar el trabajo en el punto que se realizó la pausa, pero no sabíamos si tras un largo fin de semana la máquina continuaría su trabajo con la misma calidad que lo empezó. Así que tras el fin de semana, a primera hora de la mañana volvimos a conectar el interruptor de encendido, y en el display se nos preguntó si queríamos continuar con la impresión. Obviamente contestamos que sí.
Display de la Creality Ender 3 preguntando si queremos reanudar la impresión.
El trabajo continuó durante cuatro largas horas más sin aparentes problemas. Si que notamos como surgieron algunas pequeñas grietas, principalmente en el punto inicial donde se reanudó la impresión.
Alumnos trabajando en el laboratorio mientras la impresora 3D hace su trabajo.
Pese a las pequeñas imperfecciones presentadas por el perrito (nos dimos cuenta que era un perrito y no una rana cuando observamos que se estaba imprimiendo una pequeña cola en la parte trasera), creemos que el resultado obtenido es bastante aceptable. Habrá que probar distintos materiales y jugar con distintos valores de temperatura hasta conseguir controlar perfectamente el trabajo de esta fantástica máquina de crear objetos.
Producto final. un bonito perrito, obtenido tras la impresión 3D.
Con este perrito ya tenemos una nueva mascota para el laboratorio de tecnología del Norba Caesarina de Cáceres.

jueves, 8 de noviembre de 2018

NORBA STATION 1: captación de energía solar fotovoltaica

Un grupo de alumnos de 4º de ESO están desarrollando un sistema para captar energía solar, almacenarla y posteriormente usarla, el cual debe disponer de un mecanismo que permita orientarse automáticamente para maximizar la obtención de energía. Para la realización del mismo se utilizarán una placa solar policristalina, cuatro fotorresistencias, dos servomotores y una placa arduino de control, así como otros componentes básicos tales como resistencias, cableado, protoboard, pegamento, y materiales reciclados en general. Además, con vistas a probar el rendimiento del sistema, se utilizarán también voltímetros, amperímetros y baterías, entre otros elementos.

Placa solar fotovoltaica
Fotorresistencia
Servomotor
Previa a la creación del sistema, el cual aún no está finalizado, se ha realizado un estudio preliminar de los distintos componentes a utilizar. Para ello se ha empleado, como en otros proyectos, el simulador proporcionado por Tinkercad. Posteriormente se ha dividido el proyecto en tres partes bien diferenciadas:
  1. Sub-sistema motor para el movimiento de la placa solar, el cual consta de dos servomotores que permiten dotar al mismo de dos grados de libertad (giro de 360 grados sobre una superficie horizontal, y giro de unos 170 grados en el plano vertical), y de distintas estructuras conectadas a los mismos capaces de sujetar la placa y moverla de forma eficiente.
    Un primer esbozo de la estructura de este subsistema se ha realizado mediante el software de diseño CAD de Tinkercad.
    Diseño CAD del sistema motor.
    Basándose en ese diseño, posteriormente se ha realizado un prototipo del mismo usando materiales reciclados, el cual aún está en fase de revisión y mejora.
    Alumnos 4º ESO con su primer prototipo del sub-sistema motor.

    Sub-sistema motor del captador de energía solar en detalle.
    Para probar este sub-sistema se ha utilizado una placa Arduino y una serie de interruptores para la realización del movimiento de forma manual, mediante un diseño muy parecido al utilizado para la construcción del primer NORBA JOINT o "Brazo Robot" del proyecto NorbaSky.
    Circuito creado para probar manualmente el movimiento de los dos servomotores.
    Completando el circuito de control manual mediante interruptores y Arduino.

    Sistema motor, aún sin placa solar, moviéndose mediante interruptores y Arduino.

  2. Sistema de localización de luz, el cual consta de dos pares de fotorresistencias colocadas perpendicularmente una de la otra, formando todas ellas un ángulo de 45º con la placa solar. Estos componentes informarán acerca de la luz recibida. Con esta configuración, las cuatro fotorresistencias deberían recibir la misma cantidad de luz cuando la placa solar fotovoltaica se posicionase perpendicularmente a la fuente de luz (situación óptima).
    Para probar este sistema, se ha creado un circuito a partir de las citadas fotoresistencias además de cinco leds formando una cruz. Cuando la luz incida de forma óptima sobre las fotorresistencias (perpendicularmente), solamente el led central se iluminará. En el resto de los casos, se encenderán alguno de los leds restantes, indicando una inclinación mayor de la cuenta en la dirección del led iluminado. Este diseño servirá posteriormente de base para el tratamiento automático del sub-sistema motor.
    Asimismo se ha incluido un interruptor para el calibrado de la luz, a fin de que el sistema pueda aprender cuál es la situación de máxima y mínima luz. Esto mejora el rendimiento global del sistema.
    Sistema de información de inclinación óptima de las cuatro fotorresistencias.

    
    #define HMin A2
    #define HMax A1
    #define VMin A0
    #define VMax A3
    
    #define LedHMin 4
    #define LedHMax 1
    #define LedVMin 5
    #define LedVMax 2
    #define LedCentro 3
    
    #define BotonCalibrado 7
    
    //Determinal los valores máximos y mínimos de luz devueltos
    //por las cuatro fotorresistencias  
    int MinLuz=1024; //Valor inicial que irá disminuyendo en calibrado
    int MaxLuz=0;    //Valor inicial que irá aumentando en calibrado 
     
    //Vectores que permiten acceder a los puertos incluidos en la sección 
    //"#define" de una forma rápida dentro de un bucle "for".
    int foto_res[4]={HMin,HMax,VMin,VMax};
    int led[4]={LedHMin,LedHMax,LedVMin,LedVMax};
    
    
    void setup() {
       int luz;
     
       for (int x=0;x<4;x++){ //Inicia las 4 fotorresistencias y los 4 leds.
           pinMode(foto_res[x], INPUT); 
           pinMode(led[x], OUTPUT); 
           };
     
       pinMode(BotonCalibrado, INPUT);
       pinMode(LedCentro, OUTPUT);
     
       /*
         "while" del proceso de calibrado: busca la luz máxima y mínima.
         Se leen los valores devueltos por las cuatro fotorresistencias 
         una y otra vez, almacenando en MaxLuz el valor máximo encontrado
         y en MinLuz el valor mínimo. Este proceso se repite hasta que se 
         pulse el botón BotonCalibrado.
       */
       while (digitalRead(BotonCalibrado)==LOW) {
           for (int x=0;x<4;x++) { 
               luz=analogRead(foto_res[x]); 
               MinLuz=(luz<MinLuz?luz:MinLuz); 
               MaxLuz=(luz>MaxLuz?luz:MaxLuz);
               }
           }
       }
    
    void loop() {
        int v[4];
     
        //Se leen los valores de las cuatro fotorresistencias y se almacenan
        //en los cuatro valores del vector auxiliar "v" para su posterior
        //procesado.
        for (int x=0;x<4;x++) { 
              v[x]=map(analogRead(foto_res[x]),MinLuz,MaxLuz,0,4); 
              }
     
        digitalWrite(LedHMin, v[0]>v[1]); //Condición verdadera vale HIGH
        digitalWrite(LedHMax, v[1]>v[0]);
        digitalWrite(LedVMin, v[2]>v[3]);
        digitalWrite(LedVMax, v[3]>v[2]);
        digitalWrite(LedCentro, (v[0]==v[1])||(v[2]==v[3]) );
    
        delay(100); 
        }
    
    
    Código de control del Sistema de Información de Orientación Optima.
  3. Sistema de control basado en Arduino, capaz de procesar la información procedente de las cuatro fotorresistencias y actuar en consecuencia sobre los servomotores del sistema motor, con el fin de obtener en todo momento la orientación óptima de la placa solar fotovoltaica para maximizar la producción de energía eléctrica.




martes, 23 de octubre de 2018

NORBA LANDER 1: desplazamiento por ruedas con tracción independiente

Para estudiar el uso de motores convencionales, el curso pasado, con los alumnos de 4º de ESO Juan Barco Gil y Adaya Ruiz Mayoral, comenzamos a desarrollar un vehículo con ruedas cuyo movimiento era controlado electrónicamente mediante interruptores. Hoy lo incluimos dentro del proyecto NorbaSKY como el "NorbaLander 1" de primera generación, que sentará las bases de futuros diseños de otros vehículos. A diferencia de los servomotores, que permiten realizar giros discretos de ángulos concretos, los motores DC con escobilla convencionales se limitan a dar vueltas continuamente. Acompañados de sistemas de reducción de revoluciones, podemos disminuir la velocidad de giro y aumentar la potencia del vehículo, algo imprescindible si queremos usarlos para el desplazamiento del sistema con un pequeño voltaje. La principal ventaja de estos motores es su sencillez, y por tanto también su precio. En contra tenemos su elevado consumo si los comparamos con otro tipo de motores, su calentamiento si se utilizan demasiado tiempo y las corrientes inducidas que pueden generar (recordemos que un motor es también un generador cuando el movimiento se crea de forma externa y se transmite al rotor). Y es precisamente la existencia de posibles corrientes inducidas lo que puede provocar que nuestro circuito quede frito si no aislamos el motor correctamente con optoacopladores o integrados que realicen la función de estos. Puedes probar a montar el siguiente circuito (en una placa real, no en simulador) y a continuación girar el eje del motor a un lado y a otro. Comprobarás el efecto de la corriente inducida. Está guay, ¿no?
Motor conectado a led, capaz de encenderlo mediante corriente inducida.
En particular, este vehículo dispone de dos ruedas motrices controladas por dos motores independientes, una tercera rueda doble articulada no motriz y es capaz de avanzar recto, girar a la izquierda o a la derecha y detenerse, acciones que son controladas mediante interruptores. Para aislar a los motores del resto de la circuitería se usa el integrado L293D que permite controlar dos motores independientes de una forma sencilla, suministrándoles voltajes entre 4,5V a 36V, y pudiendo controlar electrónicamente la velocidad de giro.
Integrado L293D para el control de dos motores.
En el desarrollo del mismo se han empleado casi tres meses, incluyendo el estudio inicial del controlador, conceptos básicos de programación, uso de interruptores, leds, y un largo etcétera de componentes hasta llegar a un diseño cuyo esquema hardware, realizado usando Tinkercad, se muestra a continuación:
Circuito para controlar dos motores DC mediante interruptores y placa Arduino.
Este diseño funciona perfectamente, pero tiene una serie de problemas. El primero es que la potencia suministrada a los motores es mínima (se toma de la propia placa arduino) y el segundo es que los interruptores de control se encuentran en la misma placa de pruebas o "protoboard" que el resto de los componentes electrónicos, que deberían ir en el chasis del vehículo, con lo que para controlarlo habría que acceder a ellos cuando este estuviera en marcha, algo impracticable. Es por ello por lo que para la implementación final se ha utilizado un esquema hardware ligeramente distinto, con batería externa de 9V para alimentar a los motores e interruptores ubicados en una segunda placa de pruebas que actúa como mando a distancia:
Circuito de control de dos motores DC mediante interruptores ubicados en mando a distancia.
Por su parte, el programa de control implementado para la gestión de este circuito es el siguiente:

#define botonIzq 5
#define botonSS  6
#define botonDer 7
#define motorIzqAvanza 11
#define motorIzqAtras  12
#define motorDerAvanza 9
#define motorDerAtras  10

int StarStop=0; //Posibles valores: 0 (apagado) y 1 (en marcha)
void MueveRobot(int direccion, int StarStop);


void setup(){

  for(int cont=9;cont<=12;cont++){pinMode(cont,OUTPUT);}
  for(int cont=5;cont<=7;cont++){pinMode(cont,INPUT);}
  MueveRobot(0,0);
  }

void loop(){

   int Direccion; //Posibles valores: -1 (izq), 0 (recto), 1 (der)
   
   Direccion=0; //Por defecto recto, salvo botón dirección pulsado
   if(digitalRead(botonIzq)){Direccion= -1;}
   if(digitalRead(botonDer)){Direccion=  1;}
   if(digitalRead(botonSS)){
      StarStop=!StarStop;
      while(digitalRead(botonSS)){} //Espera a levantar botón
      }
   MueveRobot(Direccion,StarStop);
   }

void MueveRobot(int direccion,int StarStop){

   digitalWrite(motorIzqAvanza,StarStop&&(direccion >  -1));
   digitalWrite(motorIzqAtras, StarStop&&(direccion == -1));
   digitalWrite(motorDerAvanza,StarStop&&(direccion <  1));
   digitalWrite(motorDerAtras, StarStop&&(direccion == 1));
   }  

Alumnos con versión alfa de Norba Lander 1.

Versión beta de Norba Lander 1.
La primera versión de este prototipo, junto a una memoria asociada al mismo, se envió durante el curso 2017-18 a la "Segunda edición del Certamen de Ciencias" que organiza conjuntamente la Fundación Caja de Extremadura, el Ateneo de Cáceres y MENSA España, obteniendo un tercer premio.