Archivo de la etiqueta: Software

Etiquetas braille en Tinkercad

El uso de la impresión 3D para generar elementos accesibles para las personas con discapacidad visual ha sido un tema habitual en este blog en los últimos años. Se han hecho tutoriales de herramientas, se han compartido recursos y objetos de aprendizaje, pero también, se han presentado algunas implementaciones en el aula de proyectos basados en ApS para mejorar la inclusión en el entorno escolar.

Uno de los denominadores comunes de estas implementaciones era el uso de Tinkercad como herramienta de diseño, gracias a su sencillez, versatilidad y al hecho de que es multiplataforma (se ejecuta desde el navegador) y es de acceso gratuito, lo que habilita al alumnado a poder seguir utilizándolo en otros contextos, académicos o no.

El otro es Touchsee.me, una herramienta para la generación de etiquetas braille online que resulta fundamental para dotar a los objetos generados de información táctil. De nuevo, se trata de una herramienta accesible desde el navegador en la que, simplemente seleccionando el idioma y escribiendo un texto, se genera el archivo STL listo-para-imprimir con el texto en braille.

Escribir, descargar e imprimir

Una vez descargado, la etiqueta STL se puede llevar al laminador para imprimir. Mi recomendación es hacer la impresión en vertical, ya que los puntos quedan más suaves (y, por tanto, agradables al tacto) que se se imprime tumbada.

En 9 minutos tenemos la etiqueta braille impresa

Ahora bien, el problema llega cuando intentamos integrar esa etiqueta en algún diseño más complejo. Por ejemplo, imaginemos que queremos hacer una placa que combine un texto en altorrelieve con el braille, como el de la imagen.

Cartel accesible de aula

El diseño es trivial en Tinkercad: basta con crear la superfície, añadir el texto (en sans) e importar la etiqueta generada con Touchsee.me.

Sin embargo, cuando importamos la etiqueta, nos encontramos con el siguiente resultado:

Resultado de importar una etiqueta de Touchsee.me a Tinkercad

Parece que en el proceso de importación algo no funciona; la manera en la que touchsee.me genera el STL parece no gustar a Tinkercad y el resultando es una etiqueta braille que, en el mejor de los casos, resultará confusa de leer de forma táctil. Y esto presenta un grave problema para el objetivo del proyecto en uno de los elementos más importantes.

Pero no desesperemos, como siempre hay vías alternativas. Veamos algunas:

Solución #1

Una primera aproximación a la solución del problema, seria la de imprimir la eqtiqueta por un lado y, en Tinkercad, simplemente dejarlo todo preparado para agregarla al diseño tras la impresión. Esto es, haríamos un hueco para encajar la etiqueta una vez impresas ambas piezas.

Diseño de placa con hueco para la etiqueta braille

Posteriormente, pegamos en el hueco la etiqueta:

Manualidades

Esta, aunque resuelve el problema, tiene algunos inconvenientes. Como que el diseño es más complejo, ya que la etiqueta ha de encajar perfectamente. Si nos quedamos cortos, habrá que arriesgarse a lijar la etiqueta, si nos pasamos, sobrará hueco, dificultando la lectura. Además, la etiqueta braille se puede caer o soltar con el tiempo.

Solución #2

Una segunda solución pasa por tratar de corregir los defectos en la pieza generada por Touchsee.me que provocan la mala importación en Tinkercad.

Lo que haremos será reparar la etiqueta braille con un programa de diseño 3D, llamado Meshlab. Meshlab es gratuito, de código abierto y está disponible para todas las plataformas:

https://www.meshlab.net/#download

Instalamos Meshlab, e importamos el STL con el braille.

Una etiqueta de Touchsee.me abierta con Meshlab

Comprobamos como en Meshlab el STL se ve bien, pero aún así hay que corregirlo.

Seleccionamos Filters > Cleaning and repairing > Snap Missmatched borders

Esta opción repara bordes que estén ligeramente desplazados y que pueden causar una mala importación en Tinkercad, creando nuevos vértices.

Snap Mismatched Borders

Dejamos las opciones por defecto y le damos varias veces a Apply, para que cree nuevos vértices que puedan dar a Tinkercad más información para reconstruir correctamente el STL.

Podemos guiarnos por el mensaje que aparece en el cuadro inferior derecho (Cuando veamos que el filtro ya no hace nada, que aparece 0).

El log nos dice lo que hace el filtro en cada paso

Cerramos el diálogo, y exportamos el STL.

Ahora, abrimos el STL corregido con Tinkercad, veremos como el resultado ha mejorado considerablemente:

Importación perfecta!

Este método no es 100% efectivo pero, en algunos casos como el del ejemplo, he conseguido una importación casi perfecta.

Solución #3

Finalmente, lo que podemos hacer es usar otra herramienta para generar el STL con el braille. Lo cierto es que Touchsee.me es la más completa de todas las que he encontrado, pero tiene este pequeño inconveniente de la importación a Tinkercad.

Una alternativa que es completamente compatible con Tinkercad es una herramienta llamada «Text to 3d printable Braille» y a la que podemos acceder desde el siguiente enlace:

http://v01pe.github.io/Text2Braille3d/

El funcionamiento no es tan intuitivo como el de Touchsee.me y además está en alemán. Pero, como veremos, tampoco resulta complicado hacerse con su funcionamiento:

Text to 3d printable Braille

El diseño de la aplicación tiene dos partes, la parte superior con una previsualización de la etiqueta a generar y la parte inferior, con los parámetros que se pueden modificar.

Para generar la etiqueta hay que escribir en Text lo que queremos codificar (obvio)

Las opciones que nos da son las siguientes:

  • Großbuchstaben zulassen: Permitir mayúsculas. Si lo activamos, codificará las mayúsculas (recomendado)
  • Kontraktionen: Aplica contracciones para simplicar la longitud. Yo lo desactivo.
  • Direkte Konvertierung: Conversión directa. Desactivado por defecto.

Si pulsamos en Details einstellen veremos las opciones avanzadas. Entre otras cosas, podemos modificar el tamaño de la placa (Form-Größe), la altura del punto (Punkt-Höhe), el diámetro del punto (Punkt-Durchmesser), el grosor de la placa (Platten-Stärke) y la distancia entre las filas (Rand):

Además, podemos deshabilitar la muesca de referencia (Referenz Eck), aunque no lo recomiendo ya que nos ayudará a identificar el sentido de la lectura de la etiqueta, lo que será muy práctico a la hora de posicionarla en Tinkercad.

Es eso, o tener algunas nociones para interpretar el braille.

Lo que si os recomiendo deshabilitar la generación de soportes (Stützen generieren) ya que si no se pretende imprimir en vertical la etiqueta, como es nuestro caso, no son de utilidad.

Soportes

Una vez configurado todo, hay que darle al botón que hay en la parte inferior:

Pulsar primero aquí

Eso cargará nuestro diseño en la vista previa. Una vez hayamos generado el modelo presionando el botón anterior, ya podemos darle a generar el STL para su descarga. Si no lo hacemos en ese orden, nos descargaremos el diseño precargado no el que nosotros queremos.

Cuando le demos a Generate STL el botón se convertirá en el enlace de descarga del STL

El STL descargado se puede importar al Tinkercad sin problemas:

Resultado de la importación en Tinkercad

De este modo, ya podemos usar el braille en nuestros diseños con Tinkercad.

Unir, exportar e imprimir.

Postprocesado básico tras el escaneado 3D

En anteriores entradas, he compartido procedimientos y técnicas para escanear objetos en 3D utilizando fotogrametría a partir de imágenes o vídeos. La sencillez del proceso – que incluso puede ser realizado con la cámara de un teléfono móvil – y los llamativos resultados que produce – incluso en equipos poco potentes – hacen que sea una interesante opción para introducir estas técnicas en el aula para tratar contenidos de forma inclusiva, de acuerdo al planteamiento del proyecto Erasmus+ AMUSING.

Pero, por sorprendentes que sean los resultados, si los miramos de cerca con el visor 3D, podremos apreciar pequeñas imperfecciones que ha cometido el programa de escaneado en 3D al componer el volumen a partir de las imágenes. Estas imperfecciones suelen estar disimuladas por la textura, por lo que pasan desapercibidas en un visor 3D, sin embargo, si nuestro objetivo es imprimir la pieza, estas imperfecciones o ruido 3D, puede trasladarse al objeto y, por tanto al tacto.

Por ejemplo, veamos la siguiente escultura de un rostro escaneada por fotogrametria:

Si nos acercamos al rostro:

Aparentemente, el modelo parece bastante fidedigno con el original, por lo menos en el visor. Sin embargo, si cambiamos las opciones de iluminación activando el shading, veremos que, en realidad, la textura nos está engañando. En la siguiente imagen se aprecia como, en realidad el programa de escaneado ha tenido problemas para reconstruir la parte interior del rostro, al tener menos fotografías que capturasen correctamente esa zona.

Esas imperfecciones se trasladarían al modelo impreso, alejando la experiencia táctil del modelo original.

Como ya se ha comentado en este blog, el objetivo del proyecto Erasmus+ AMUSING es crear réplicas de objetos de museos para poder ser manipuladas y así, entre otras ventajas, poder ser explicadas a las personas con discapacidad visual. Así, que es necesario eliminar en la medida de lo posible esas imperfecciones que puedan despistar sobre la verdadera forma del objeto replicado.

En esta entrada, explicaré algunas técnicas sencillas que se pueden emplear para optimizar el objeto de cara a su impresión.

Autodesk Meshmixer

El programa que se empleará para procesar el modelo es el Autdesk Meshmixer. El programa es gratuito y se puede obtener desde su web:

https://www.meshmixer.com/

Está disponible para Windows y Mac OSX, si bien, la versión de Windows puede ejecutarse bajo GNU/Linux con Wine con los drivers Vulkan.

Una vez instalado, lo ponemos en marcha y cargamos el archivo OBJ que queramos tratar.

Corrección de errores

Un primer paso necesario, incluso si no se pretende imprimir la pieza, es corregir todos los errores que se puedan haber producido al tejer la malla durante el proceso de fotogrametría. Esto es, triángulos mal cerrados, o cosas que se pueden ver en la anterior captura, zonas sueltas o la apertura del modelo por la parte en la que no hay información.

Para resolver todos estos problemas de forma sencilla, seleccionamos la opción Analysis y después en Inspector.

Esto nos marcará todos los errores detectados en rosa (zonas desconectadas ), azul (zonas no cerradas) y rojo (triángulos imposibles) y nos dará la opción de corregirlos: Auto repair all.

Al pulsar esta opción, vemos como ha desaparecido la zona suelta y se ha cerrado el modelo.

Eliminar zonas no deseadas

Una función muy importante que nos permite hacer el programa es poder descartar zonas del modelo. Esto es útil porque es habitual que los programas de fotogrametria modelen más de lo que nos interesa.

Por ejemplo, en nuestro modelo, se pueden apreciar zonas de la pared en la que se encontraba la placa con la escultura:

Una forma de deshacerse de esas partes es usando un corte por plano, que determinará qué parte se queda en el modelo y cuál se descarta.. Para ello, vamos a Edit > Pane Cut

Tenemos que posicionar el plano usando las flechas de colores, que nos permiten mover y rotar el plano. Lo que está en gris es lo que queda fuera y lo que mantiene la textura es lo que quedará tras hacer el corte.

Tras posicionar el plano para que deje fuera la pared, le damos a Accept para que haga el corte.

El resultado se cierra automáticamente, por lo que no hace falta que volvamos a lanzar el inspector.

Posicionar el modelo

Otro aspecto interesante de cara a la impresión es rotar y escalar el modelo para facilitar su posicionamiento en el programa de segmentación de la impresora 3D.

Para ello, Meshmixer nos permite poner en pantalla la base de impresión (View > Show Printer Bed) y transformar el modelo (Edit > Transform):

De nuevo, usamos las flechas para rotar y posicionar. Si queremos redimensionar de manera uniforme, hay que apretar sobre el cuadro blanco que hay en el centro y mover el ratón sin soltar.

Una vez posicionado, le damos a Accept para que se apliquen los cambios de la transformación.

Suavizar superficies

Finalmente, vamos a tratar el objeto para suavizar las imperfecciones. Para ello, seleccionamos Sculpt, opción que nos permite modificar el aspecto del modelo. Como lo único que queremos es suavizar la superfície, seleccionaremos la brocha Shrik Smooth.

Ahora, sobre el modelo, iremos repasando las zonas que queramos suavizar. En cierta manera, es como maquillar al modelo. Podemos cambiar la fuerza y tamaño de la brocha desde las opciones.

Para apreciar el efecto de lo que estamos haciendo, podemos activar para que se vea la malla (View > Show Wireframe). Veremos como, a medida que aplicamos la brocha, la malla se modifica. En este caso, lo que hace es regenerar la zona eliminando los posibles bultos.

Como se puede apreciar en el ejemplo, al aplicar la brocha estamos añadiendo nuevos triángulos, haciendo más complejo el modelo. Puedo reducir este efecto ampliando el tamaño de la brocha (o disminuyendo las dimensiones del modelo para que el tamaño de la brocha sea más grande).

Otra cosa que puedo hacer, una vez haya terminado es simplicar la malla en esa zona usando el pincel AdaptativeReduce o Reduce, que simplifica los triángulos de la zona tratada.

El resultado complementa el suavizado anterior:

Exportar el modelo

Una vez modificado el modelo, lo podemos exportar desde File > Export.

Hay que tener cuidado con el uso de esta herramienta, ya que estamos modificando el resultado del escaneado, Un exceso en el suavizado o la reducción de triángulos puede deformar el objeto escaneado, alejándolo del modelo original. Mi recomendación es ir poco a poco y no suavizar más de lo estrictamente necesario para que desaparezcan picos o irregularidades muy evidentes.

Por ello, es preferible exportar el modelo modificado con otro nombre y no sobreescribir el original, por si tenemos que volver a partir del original en un momento, sobretodo teniendo en cuenta el tiempo que requiere procesar un modelo por fotogrametría.

El resultado es el que se ve a continuación. Las irregularidades han desparecido, dejando la mejilla izquierda sin irregularidades (aunque es cierto que aún podríamos suavizarla un poco más).

Conclusiones

En la entrada hemos visto como realizar algunos ajustes básicos de postprocesado con Meshmixer de una pieza escaneada en 3D para eliminar algunos de los defectos que se puedan derivar del proceso de fotogrametria. Cabe destacar que Meshmixer tiene una gran variedad de herramientas para tratar figuras en 3D, lo que lo convierte en una herramienta indispensable para el escaneado 3D. Además, es gratuita y multiplataforma.

5 ideas para solucionar el error 0x80070057 en Windows Movie Maker

En la actualidad, prácticamente todo el mundo tiene acceso a un dispositivo capaz de grabar vídeo, por ello la edición de vídeo se ha convertido en algo a lo que antes o después todo usuario se ha de enfrentar. Una buena idea para dar los primeros pasos en la edición de vídeo es usar Windows Live Movie Maker: es sencillo e intuitivo, gratuito (si tienes Windows) y, en la mayoría de los casos, ya viene instalado.

Si embargo, no todo son ventajas con el Movie Maker, y la presencia de algunos bugs hacen que, en ocasiones, el uso del programa se convierta en un verdadero infierno. Especialmente, cuando después de semanas trabajando en un proyecto con gran variedad de fuentes de vídeo y/o audio, verificando cada pequeño detalle en la previsualización (que va perfecta) le damos a generar el vídeo definitivo y nos devuelve un error 0x80070057.

Después de una semana de trabajo, llega el momento de generar...

Después de una semana de trabajo, llega el momento de generar…

Las causas del error pueden ser diversas y, en algunos casos, tiene solución. A continuación, se enumeran una serie de cosas que se pueden probar para tratar de solucionar el error, ordenadas de menos laboriosas a más:

Idea #1: Eliminar títulos vacíos

Parece ser que una de las causas que provocan ese error es la presencia en el proyecto de un título sin texto. Así que un primer paso sería revisar todos los títulos del proyecto y eliminar aquellos que estén vacíos.

Idea #2: Formatos no aceptados

Otra de las causas puede ser que alguno de los vídeos utilizados tiene un formato que no le gusta al Movie Maker. Una buena idea para localizar ese (o esos) supuesto vídeo es eliminar del proyecto aquellos vídeos que tengan un formato diferente, o que se hayan capturado con un dispositivo diferente  y probar la generación. En caso de localizar con este método el vídeo que da problemas, bastaría utilizar un programa para cambiar el formato del vídeo (o vídeos) a otro aceptado por Movie Maker y volver a incluirlo en el proyecto.

Idea #3: Trocear el proyecto

Si ninguno de los métodos expuestos anteriormente funciona, otra cosa que se puede hacer es trocear el proyecto en proyectos más pequeños. Para ello, hacer copias del archivo del proyecto y en cada copia eliminar una parte del proyecto. Por ejemplo, hacer dos copias del proyecto, proyecto1 y proyecto2. En proyecto1 eliminamos todos los vídeos desde la mitad del proyecto hasta el final y en proyecto2 eliminamos los vídeos desde el principio a la mitad. Generamos los proyectos por separado y los vídeos resultantes los unimos en un nuevo proyecto.

También se pueden hacer divisiones más pequeñas, aunque será más trabajo. Siguiendo este método también se pueden localizar casos como los indicados en los puntos anteriores, ya que si el error al generar se produce por culpa de un título o un fragmento de vídeo, siempre habrá un trozo del proyecto que dará error al generar. Sin embargo, al ser el trozo un proyecto más pequeño, será más fácil de localizar y corregir el error.

Idea #4. Capturar la pantalla

Normalmente, para este tipo de error, la previsualización funciona correctamente. Por ello, si no hay manera de solucionarlo o, por lo que sea, hay prisa en generar el vídeo, se puede optar por una solución urgente: utilizar un programa de captura de pantalla para capturar el área de previsualización del Movie Maker y generar un vídeo. En este enlace se pueden encontrar algunos programas para hacer eso.

Idea #5: Cambiar de programa

Y como última opción, siempre se puede empezar de cero con otro programa de edición. Hoy por hoy existen muchas alternativas al Movie Maker, algunas también gratuitas. En este enlace se comentan algunas de ellas.

 

 

La leyenda del Bug Informático

By Courtesy of the Naval Surface Warfare Center, Dahlgren, VA., 1988. [Public domain], via Wikimedia Commons

El primer «bug» informático del que se tiene registro fotográfico

Es bien sabido que, en informática, se denomina «bug» (del inglés, «bicho») a los errores internos que provocan un funcionamiento incorrecto del software. De ahí, se deriva el término debug, como el conjunto de acciones destinadas a la localización y corrección de errores informáticos.

Cuenta la leyenda, que en 1947, los creadores de Mark II informaron del primer caso de error en un ordenador causado por un bug. El Mark II, construido en 1944, sufrió un fallo en un relé electromagnético. Cuando se investigaron las causas que propiciaron el error, se encontró una polilla que, por lo visto, era la que provocó que el relé quedase abierto. Así, la persona que localizó este peculiar «bug», lo pegó con cinta adhesiva sobre la bitácora (algo así como un log analógico) y se refirió a él como causa del problema.

La historia es cierta, pero no es el origen del término bug tal y como lo conocemos. De hecho, históricamente se ha utilizado esta terminología para referirse al mal funcionamiento de una tecnología. En concreto se usa bastante en comunicaciones a través de un medios guiados (línea telefónica o de telégrafo). Es más que probable que ese uso haya sido adoptado por los primeros creadores de computadores, y de ahí, haya pasado a los programadores.

Sin embargo, la historia del bug del Mark II ha perdurado hasta nuestros días, como una anécdota simpática. Y, por que no, como el primer «bug» real del que se tiene constancia.

Project cartoon

Project cartoon

El proyecto informático

El cómic ya tiene tiempo, pero todavía hoy supone una mirada simpática a la visión del proyecto informático que tienen los diferentes agentes que intervienen en él.

 

Comentarios en programación

Comentarios en el código

– ¿Publicas tu código en Facebook?
– Por supuesto. ¿No me dijiste que mi código necesitaba más comentarios?

En el día a día de todo programador, uno tiene que enfrentar-se a código desarrollado por terceros. Esto, en ocasiones, puede ser tan apasionante como entrar en la mente de otra persona… o al menos, intentarlo. Afortunadamente, están los comentarios, esas anotaciones que describen y complementan el código para ayudar a su compresnsión, incluso para su propio autor. Si se siguen una serie de buenas prácticas para la documentación del código, el enfrentarse a un código ajeno (o a algo hecho por nosotros hace mucho tiempo) resulta mucho menos frustante.

Pero, a veces, los propios comentarios pueden inducir a la confusión. Ya sea de forma accidental (si se han escrito rápido, sin pensar en quien los puede leer en el futuro) o de forma motivada (un programador con mala baba, o simplemente un cachondo). En cualquier caso, al encontrar este tipo de comentarios, en ocasiones, es dificil no dejar escapar una sonrisa (aunque sea por no llorar).

Por ejemplo:

//When I wrote this, only God and I understood what I was doing
//Now, God only knows

En el siguiente enlace han hecho un divertido recopilatorio de comentarios encontrados en el código. Algunos son para troncharse (en inglés):