Archivo de la etiqueta: Software

Proyecto ARTcade

Una de las cosas más enriquecedoras del trabajo por proyectos es, además de que sean interdisciplinares, que sean interetapas. De ese modo, no solo se crean sinergias entre los contenidos de diferentes disciplinas educativas, sino que también se estrechan los lazos de colaboración entre alumnado de diversas etapas y edades.

Al hacer las cosas de este modo, el proyecto se estructura en varias fases y, en cada una de ellas, participa el alumnado de una etapa diferente. Cada fase termina con un producto terminado que se pasa al siguiente grupo de alumnos, que interviene para obtener un nuevo producto que, de nuevo, pasará a l siguiente grupo de alumnos. Cada grupo aporta al producto un desarrollo de acuerdo al perfil académico (o profesional, en el caso de Formación Profesional) que estén cursando. De este modo el proceso se puede alargar, pero el producto final tiene un grado de elaboración mucho más complejo e interesante.

En la entrada de hoy, voy a compartir un proyecto en el que he colaborado recientemente en el que han trabajado de manera interdisciplinar e interetapa alumnado de la ESO, Bachillerato y Formación Profesional. Se trata de la elaboración de una máquina recreativa estilo «Arcade» 100% artesana.

Pero, empecemos por el principio, ¿qué es esto de una máquina arcade?

Las (míticas) máquinas recreativas

El término «arcade» tiene su origen en la palabra inglesa, que se refiere a una galería o pasaje cubierto con arcos, a menudo lleno de tiendas y lugares de entretenimiento. Como un centro comercial. A lo largo del tiempo, estas galerías se convirtieron en lugares populares donde la gente podía encontrar todo tipo de actividades de ocio y entretenimiento, incluyendo las primeras máquinas recreativas.

En el contexto de los videojuegos, «arcade» comenzó a asociarse con estas máquinas de videojuegos a las que se podía jugar introduciendo monedas. Debido a esta asociación, el término «arcade» empezó a utilizarse para referirse a las máquinas de videojuegos en sí mismas, y eventualmente, a los lugares dedicados exclusivamente a estas máquinas.

Aunque esta última acepción no se adoptaría en España, siendo más habitual el uso del término «Salón recreativo» para referirse a esos negocios que proliferaron a principios de los 90 y en los que se podrían encontrar muchos de estos «arcades», al nada despreciable precio de 25 pesetas por partida (unos 20 céntimos al cambio). Estos locales fueron lugares de iniciación al mundo de los videojuegos antes de que las consolas domésticas y los ordenadores personales les robasen el protagonismo en lo que al consumo de videojuegos se refiere.

A nivel técnico, estas máquinas recreativas solían estar formadas por una pantalla de tubo, mando de palanca y botonera (para dos, cuatro, o incluso más jugadores) y una placa base que incluía un juego precargado en una memoria de solo lectura (ROM). Todo ello iba encastrado dentro de una cabina decorada con la temática del videojuego. Algunas de esas cabinas eran verdaderas obras de arte.

Pero no me quiero enrollar mucho más con esto. Si te interesa el mundillo de los arcades vintage originales, no puedes dejar de visitar el Museo Arcade Vintage de IBI.

El Museo Arcade de Ibi te permite viajar al pasado

Emulando un mundo

No, la cosa no va de reconstruir una máquina arcade vintage auténtica, como hacen en Ibi (eso sería genial también), sino que el enfoque es algo diferente.

En los últimos años se ha puesto muy de moda la construcción de recreaciones de estas máquinas que, utilizando componentes económicos (Raspberry Pi) o reciclados, y distribuciones preparadas para la emulación, pueden hacer las delicias de los nostálgicos a un precio asequible. De hecho, hay quien se dedica a esto profesionalmente.

En este caso, no se construye la placa del juego original, sino una placa genérica que ejecuta un sistema operativo con unos programas capaces de emular la circuitería de las máquinas arcade. Esos programas se llaman emuladores y los podemos encontrar para, prácticamente, cualquier máquina clásica.

Estos emuladores permiten reproducir (emular) los juegos de etas máquinas en ordenadores modernos de una manera bastante fidedigna.

Además, existen en la actualidad distribuciones GNU/Linux que ya llevan preinstalados todos los emuladores imaginables y que, además, incorporan una interfaz gráfica amigable para navegar con un joystick a través de todos los sistemas.

Es en este contexto donde arranca nuestro proyecto, pues lo que se pretende es construir una máquina recreativa completamente funcional de forma artesanal con el alumnado.

ART de ARTesano

El primer paso, por tanto, era construir el mueble en el que se iban a ubicar los elementos. En este caso, participa el Departamento de Tecnología que, con el alumnado de 4ªESO, trabaja en el corte y encolado de las diferentes piezas.

En este caso, cabe diferenciar entre os tipos más habituales de muebles:

  • Cabina Clásica (Upright Cabinet): Estas son las máquinas arcade más tradicionales y reconocibles. Suelen tener una altura de alrededor de 1.70 a 2 metros y una base de aproximadamente 60-80 cm de ancho y 60-80 cm de profundidad.
  • Mini Arcade: Son versiones más pequeñas y compactas de las cabinas clásicas. Su altura puede variar, pero típicamente son menos de un metro de alto.
  • Bartop Arcade: Diseñadas para colocarse sobre una mesa o una barra. También existe la versión de pared, menos profunda.

Para la primera versión, se optó por el bartop, al ser más ligero y compacto (el espacio que ocupan las cosas suele ser crítico en los centros educativos).

Por tanto, en esta fase lo que se necesitaba era lo siguiente:

  • Planos de un bartop (obtenidos de internet)
  • Planchas de madera (se hizo con madera conglomerada que se tenía)
  • Un monitor LED viejo (el único requisito era que se encendiese solo al recibir electricidad, para no tener que dar acceso al botón)
  • Unos altavoces (se tenían en el almacén de tecnología)
  • Y se adquirieron dos juegos de palanca y botones de arcade.

Con esto, el alumnado se puso manos a la obra y en un par de semanas, ya tenía terminada su parte: un mueble de bartop de madera conglomerada con pantalla, altavoces y mandos.

Construyendo el mueble alderredor de la pantalla

Pese a que existen diseños descargables de internet para máquinas de corte láser, la preparación y ensamblado de las piezas se hizo de manera artesanal, cortando, midiendo, clavando y encolando. De ese modo, se han puesto en valor las diferentes destrezas necesarias para construir un mueble con una finalidad específica, de acuerdo a unos requisitos marcados por las piezas que en él se han de encajar.

Ya tenemos el primer producto intermedio terminado. Pasemos a la siguiente fase.

Producto intermedio #1
Detalle de la botonera

ART de ARTístico

Además de los propios juegos, una de las cosas que más admiración genera en el mundillo retro son los diseños de las cabina. Y ese era el siguiente paso. En este caso, el proyecto pasa a manos del profesorado del Departamento de Artes del centro, y a la asignatura optativa de Dibujo Artístico de 1º de Bachillerato.

En este caso, pese a estar la opción del diseño vectorial y posterior impresión digital de vinilos, que es el método más habitual en la personalización de réplicas de recreativas, y que entraba en el currículum de la asignatura, se optó por el dibujo libre, pues se pensó que sería una experiencia mucho más enriquecedora si se trata de trasladar de forma manual a una superficie determinada un diseño previo.

Una vez involucrados en el proyecto, se le propone al alumnado que elabore diferentes diseños para decorar los dos lados del bartop. Se les pide un diseño que tenga que ver con la temática (videjuegos antiguos) i en el que aparezca el nombre del centro. El resultado es abrumador, por cantidad y calidad pero, lamentablemente, solo se pueden hacer dos, por lo que el alumnado vota sus candidatos y son los que pasan a la fase de producción.

Así que todo el grupo se pone manos a la obra para trasladar los diseños seleccionados a los laterales del mueble.

Un lienzo excepcional
Pixel art

El resultado, es una obra de arte en formato de sobremesa.

Y con este nuevo producto intermedio finalizado, pasamos a la siguiente fase.

Producto intermedio #2

ART como en libeRTAd

Bueno vale, es un poco rebuscado, pero creo que también es interesante subrayar el componente de software libre que sustenta el proyecto. Os cuento:

Cuando el proyecto llega al Departamento de Informática, es el alumnado de 2º de FP Básica de Informática el que aplica los conocimientos adquiridos a lo largo del título para darle vida a la máquina. Y siguiendo con el símil, como si de un monstruo de Frankenstein se tratase, seleccionan piezas de desguace de ordenadores antiguos y/o estropeados para construir un ordenador dentro de la cabina.

Para ello, reciclan:

  • Una placa base
  • Un procesador
  • Un módulo de memoria RAM
  • Un disco duro
  • Una fuente de alimentación

Uno de los requisitos del proyecto era que al darle el botón de encendido se pusiera todo en marcha, que no fuese necesario ir encendiendo cada parte por separado (pantalla, altavoces, ordenador), Así que, como la pantalla ya está preparada para que se encienda sola, lo que se hace es alimentar los altavoces a través de los USB de la placa base y se configura la placa base, desde el menú de la BIOS, para que se encienda automáticamente cuando la fuente de alimentación se conecte.

Detalle de las conexiones

Así que pantalla y fuente de alimentación (encendida) se enchufan a una regleta con botón en el interior de la caja. Al encender la regleta, se pone en marcha todo automáticamente.

El siguiente paso es instalar un sistema operativo y aquí es donde entra el software libre (al menos parcialmente, ya que muchos emuladores no lo son), pues se instala una distribución de GNU/Linux orientada a la emulación llamada Batocera. Esta distribución contiene lo básico para poner en marcha un sistema de emulación con todos los emuladores imaginables.

El alumnado conecta las palancas y botones a los USB y los configura para que sean utilizables desde los diferentes emuladores.

Producto intermedio #3

Con esto, ya tenemos una máquina recreativa, elaborada de forma artística y artesanal y completamente funcional gracias al software libre.

¿La probamos?

El problema con los juegos

El paso final es cargar juegos en Batocera y probarlos. El problema es que prácticamente todos los juegos de máquinas recreativas o consolas antiguas están sujetos a restricciones de propiedad intelectual y copyright, y claro, no se pueden utilizar alegremente sin el permiso de sus creadores o de las compañías que, en la actualidad, posean esos derechos.

Por suerte, en la web de MAME (Multi Arcade Machine Emulator), un conocido emulador de máquinas recreativas clásicas, nos permiten descargar algunos juegos para los que los autores sí han dado permiso para su uso de forma no comercial. ¡Menos mal!

Tras echar un vistazo al listado, comprobamos que aunque ninguno es especialmente conocido, sirven para la prueba. Se elige un llamado Roby Roto, sobre un minero que ha de rescatar a sus compañeros atrapados. Es una especie de PacMan mezclado con el Boulder Dash.

Así que, para hacer la puesta de largo, durante la jornada de puertas abiertas del centro, se prepara el juego en la máquina (Batocera tiene una opción para forzar el arranque automático de un juego determinado) y se elabora un cartel explicativo del juego, para acompañar a la máquina:

Puede que no podamos jugar a juegos clásiscos como Pac-man, Space Invadres o Pang!, pero existen una gran cantidad de juegos que todavía hoy los entusiastas siguen sacando para los diferentes sistemas clásicos, algunos de ellos ya están incluidos en la instalación de Batocera, otros más se pueden encontrar en este enlace o en este otro.

Pero, ¿y si el alumnado del centro también elaborase los juegos?

ART como en scRATch

De nuevo, el título de la sección pillado con pinzas, pero me sirve para ilustrar este último giro del proyecto que permite cerrar completamente el círculo. Porque al fin y al cabo, SCRATCH es un entorno de iniciación a la programación que está presente en el currículum de la optativa de Tecnologia y digitalización de 2º de la ESO. ¿Y que acaban haciendo el alumnado de 2º de la ESO con SCRATH? Pues, efectivamente, un juego.

Así que si consiguiésemos que esos juegos pudiesen ser ejecutados por nuestra recreativa, tendríamos un potente elemento motivador para fomentar la creatividad y el ingenio a la hora de diseñar un juego con SCRATCH por parte del alumnado. Al fin y al cabo, sus compañeros y compañeras lo van a poder jugar en una máquina recreativa.

Y aquí es donde, de nuevo en el dominio del Departamento de Informática, el proyecto llega a manos del alumnado de 1º del Grado Medio de Sistemas Microinformáticos y Redes, para hacer las configuraciones necesarias para que esto sea posible.

Lo cierto es que Batocera no tiene emulación de SCRATCH, pero con unos pocos conocimientos de GNU/Linux (como los que tiene el alumnado de SMR), se puede conseguir ejecutar los juegos elaborados por el alumnado en esta plataforma como si de un juego más se tratase, y de manera offline.

Para ello, lo primero que hay que hacer es entender un poco la estructura de directorios de Batocera. En el sistema operativo se dedica una carpeta para contener los juegos (roms) de cada máquina emulada. Por ejemplo, la rom de Robby Roto de MAME, se guardaria en la ruta /userdata/roms/mame. Al hacerlo, el sistema detectará la rom de Robby Roto y la listará en el menú de MAME para que la podamos lanzar.

Además de todas las carpetas para todos los sistemas, existe una carpeta llamada ports en la que se almacenan aquellos juegos que no sean emulados, sino que sean nativos del propio sistema GNU/Linux. Así, además de emular, Batocera permite ejecutar juegos de Linux.

El contenido de esta carpeta ports no es la rom de un juego, sino el script de arranque del mismo (un archivo con extensión .sh que contiene las instrucciones que pondríamos en un terminal Linux para ejecutar el juego). Por tanto, en el menú ports de Batocera, aparecerá una entrada por cada archivo .sh que pongamos en la carpeta /userdata/roms/ports y al seleccionarlo, se ejecutarán los contenidos de dicho fichero.

Hasta ahora seguimos sin tener un método nativo para ejecutar un juego SCRATCH. Los juegos SCRATCH, normalmente, se juegan en línea y se puede acceder a ellos desde el repositorio online de la plataforma. Además, existe una herramienta para poder editar y jugar a los juegos de forma offline, pero, lamentablemente no está disponible para Linux. Parece que estamos en un callejón sin salida.

Internet al rescate

De nuevo, Internet al rescate. Buscando un poco podemos localizar una página que permite descargar los juegos SCRATCH en formato HTML, como si fuera una página web completamente autocontenida, lo que nos permite ejecutarlos en cualquier navegador, incluso de manera offline. Se trata del TurboWarp packager:

https://packager.turbowarp.org/

Basta con poner la URL del juego o proyecto SCRATCH a descargar en el formulario y seguir los pasos.

En el paso siguiente, seleccionamos algunas opciones y personalizar el comportamiento que tendrá el juego al ejecutarlo desde el archivo descargado. Como se quiere ejecutar como si de un juego de recreativa se tratase, recomiendo marcar las siguientes opciones:

  • Empezar proyecto automáticamente en vez de mostrar una bandera verde grande
  • Sin puntero del ratón
  • Soporte para mandos/controles USB o Bluetooth

Ni que decir tiene que, puesto que el modo de juego será con palanca de mando y botones, será necesario que el alumnado diseñe juegos que usen esta interfaz, en lugar de ratón u otros controles que no no estarán disponibles en nuestra recreativa.

Seleccionamos como modo de exportación HTML y pulsamos empacar.

Con esto ya tenemos el juego en cuestión en un archivo autocontenido que podemos ejecutar en cualquier navegador, incluso de manera offline. Ahora solo nos falta que ese navegador esté disponible en Batocera y que se pueda lanzar como si se tratase de un juego más.

Instalando software de Linux en Batocera

Aunque en principio , no hay ningún navegador web instalado en Batocera (normal, no tiene mucho sentido en un entorno para emular videojuegos), hay forma de hacerlo. En concreto, se puede instalar fácilmente el Firefox. Para ello, usaremos el instalador de paquetes Flatpak que hay disponible en el navegador de archivos (se accede con F1 desde el menú principal). En la sección Applications, seleccionamos Flatpak config.

El instalador de flatpak nos permite instalar aplicaciones nativas de Linux

Flatpak es un sistema para la distribución de aplicaciones que permite la instalación y gestión de software de manera independiente a la distro de Linux usada. Los paquetes Flatpak incluyen todas las dependencias necesarias para su ejecución, lo que evita problemas y los hace independientes del resto de aplicaciones del sistema, aunque a costa de ocupar más espacio en disco.

Evidentemente en este punto de la instalación, necesitamos dos cosas:

  • Que la máquina tenga conectado un teclado y un ratón (a la hora de constuirla, es conveniente dejar un par de puertos USB accesible para estas gestiones)
  • Que la máquina esté conectada a Internet (sólo para instalar Firefox)

Desde la aplicacion Flatpak config, buscamos e instalamos Firefox.

Firefox instalado

Una vez instalado, Firefox aparecerá como un juego más en la sección Ports.

Con la ayuda de un USB copiamos el archivo descargado de Turbo Warp (archivo HTML) a la carpeta /userdata/roms/ports. para simplificar, hemos renombrado el archivo a scratch.html.

Todo preparado para lanzar nuestro juego desde el navegador integrado.

Se recomienda encarecidamente diseñar el chasis para que tenga un acceso sencillo para enchufar y desenchufar USB

Pero si hacemos la prueba de abrir el navegador y tratar de seleccionar la página html local, descubriremos que una tarea tan aparentemente sencilla, esconde una dificultad: al instalar Firefox desde Flatpak éste no tiene acceso, por motivos de seguridad, a los archivos locales.

Las aplicaciones Flatpak se ejecutan en un entorno aislado (sandbox), lo que mejora la seguridad, pero este aislamiento limita el acceso de la aplicación al sistema operativo y a otros archivos.

No pasa nada, esto tiene solución, pero hay que explorar algunas opciones un poco más avanzadas.

Para empezar, vamos a permitir al paquete Flatpak del Firefox acceder al sistema de archivos local. Para ello, entraremos al terminal desde la aplicación xterm:

Batocera, por supuesto, tiene CLI

Y escribimos lo siguiente:

flatpak override org.mozilla.firefox --filesystem=host

Con este comando, configuramos el paquete para acceder a ficheros locales, con lo que ya podríamos abrir el archivo HTML que hemos copiado.

Pinceladas finales

Los detalles son importantes. Y el hecho de que la máquina ejecute automáticamente el juego de Scratch de forma automática al encender puede conseguir un efecto más realista.

Para ello, crearemos un archivo .sh en la carpeta /userdata/roms/ports con un comando que lance el Firefox directamente con nuestro juego scratch y en modo kiosko (pantalla completa, sin barra de navegación y que, por tanto, no se pueda cambiar de página). El contenido del archivo será un lanzador como este:

#!/bin/bash
flatpak run org.mozilla.firefox /userdata/roms/ports/scratch.html --kiosk

Ahora ya podemos abrir directamente nuestro juego desde el menú Ports de la interfaz de navegación entre los emuladores de Batocera:

Recuerda que para que detecte nuevos juegos hay que seleccionar la opción desde el menú principal (GAME SETTINGS > UPDATE GAME LIST)

Pero si lanzamos el juego, detectaremos que no funciona con el joystick y los botones, sino con el teclado. Para poder usar los mandos de la recreativa, tendremos que hacer una configuración específica para el juego. Dejando el botón de selección apretado sobre el juego, aparece el menú contextual.

Esta opción es la que buscamos

La opción «EDIT PAADTOKEY PROFILE» nos permite mepear el joystick y la botonera de nuestro arcade a las teclas del teclado y botones del ratón que queramos.

Simplemente, hay que seleccionar a qué tecla o botón del ratón corresponde cada botón de nuestra máquina

También puede ser interesante mapear el movimiento del ratón a la seunda palanca, por si hay que apretar algún botón con el ratón.

Por si acaso, la palanca de la derecha moverá el ratón

Le damos a salvar y ya lo tendríamos. Batocera crea un fichero de configuración, por lo que no es necesario hacer esta configuración más veces.

Eso sí, te recomiendo que siempre que copies un juego SCRATCH lo renombres a scratch.html y sobrescribas el anterior, de ese modo no tendrás que repetir esta configuración cada vez.

Cuando ya esté todo funcionando correctamente, seleccionamos desde el menú contextual del juego (dejar presionado el botón de selección sobre el juego) y en ADVANCED GAME OPTIONS activamos la última opción:

Que es esta

Conclusiones

Al final del camino se ha construido máquina recreativa completamente funcional en un chasis único, construido artesanalmente, artísticamente decorado y técnicamente configurado por el alumnado del centro. Además, cabe la posibilidad de que los juegos disponibles también sean elaborados por el mismo alumnado, cerrando así completamente el círculo.

El proceso ha sido largo y complejo, ya que ha involucrado a alumnado de diversas etapas y a profesorado de diversos departamentos didácticos o familias profesionales. Pero ahí está la magia de los proyectos interdisciplinares y, como podéis ver, los resultados pueden ser espectaculares.

La principal dificultad ha radicado en la temporalización, ya que cuesta cuadrar la realización del proyecto con el momento adecuado de los contenidos en todos los grupos. Esto ha dado pie a que la construcción se haya dilatado durante todo un curso académico. Por tanto, la máquina se presentó «en sociedad» en la jornada de puertas abiertas del centro del curso siguiente. La investigación sobre la ejecución de SCRATCH se realizó a finales del curso siguiente.

Con todo, el alumnado ha podido desarrollar competencias técnicas y artísticas mientras participaba en esta iniciativa, de una manera emocionante y motivadora. Y ahora el centro dispone de una máquina recreativa para jugar a juegos de producción propia o de dominio público. Y es que lo retro nunca pasa de moda. Y ahora quizá lo tengamos que celebrar con una visita extraescolar al Museo del Arcade de Ibi.

Producto finalizado

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):