Ya hace días que no escribía en el blog, i es que este trimestre ha sido muy frenético y cansado con el cambio de piso. Por si no era poco, el día antes del traslado tenía comprometido llevar unas máquinas a la fiesta social de la aseguradora ARAG.

Se lo van pasaron en grande con tres máquinas bartop y un pinball que les llevé en la furgoneta. Después, por la noche, a recogerlo todo, cuando los más marchosos todavía estaban en la discoteca.

  • http://wiki.joanillo.org/index.php/Ràdio_enllaç_Morse

He estado haciendo dos pinballs en paralelo, de las mismas dimensiones, y con plunger analógico. El primero basado en el tema de Los Vengadores de Marvel; y el segundo basado en Jacks Open, tema que ya había hecho. Al contrario de la primera versión donde utilicé pintura y máscaras para pintar con spray, esta vez se me ha complicado mucho esta técnica y finalmente he encargado los vinilos, mucho mejor.

En un anterior artículo ya explicamos la construcción del tirador de muelle analógico. Ahora hemos querido acabarlo de explicar y hacer un pequeño video.

A continuación se detalla las conexiones de los botones, el potenciómetro (A0) y el acelerómetro (SDA, SCL) en el Arduino Pro Mini:

    Arduino Pro Micro
    (plunger, acceleròmetre, i 6 botons)

			*	*
			*	* GND
			*	*
			*	* VCC
		    SDA	*	*
 		    SCL	*	*
	  4: Left. BUT0	*	*
         5: Right. BUT1	*	* A0 (Pot)
          6: Exit. BUT2	*	*
         7: Start. BUT3	*	*
          8: Coin. BUT4	*	*
         9: Enter. BUT5	*	*

Finalmente, hay que cargar el firmware en el Arduino, que incorpora la librería Joystick. El acelerómetro, que detecta la fuerza lateral ejercida sobre el mueble, a partir de un umbral de fuerza simula el disparo de un botón joystick. Todas las acciones de los botones del joystick HDI se aocian a presiones del teclado gracias al software JoyToKey, que corre en background. La asociación de teclas es la típica de Visual Pinball (el emulador). Por ejemplo, COIN está asociado a la tecla 5, y la función Tilt/nudge dispara las teclas Z/X.

Tenía miedo que un potenciómetro deslizante se deteriorase con el tiempo, y hubiese preferido utilizar algún sensor no mecánico. Tengo que decir, pero, que de momento, el funcionamiento es muy estable.

He construido dos máquinas en paralelo, una basada en el tema del Jacks Open, y la otra basada en el tema de Avengers. En una de les máquinas el funcionament no va muy fino, y he de ver todavía cuál es la causa: el ordenador, la RAM, la tarjeta de video o el plunger.

Finalmente he finalizado el pinball de Avengers. He estado haciendo dos pinballs en paralelo, de las mismas dimensiones, y con plunger analógico.

He tardado bastante tiempo en repasar las 200 mesas para adaptarlas al plunger y tilt analógicos. Publicamos este artículo publicando la solución final de la construcción del tirador de muelle, basado en Arduino.

Estoy haciendo un par de pinballs, y esta vez sí que quiero incluir un plunger analógico. Esto es bastante trabajo, pues significa construir un tirador de muelle fiable, y configurar/repasar las 200 mesas con las que trabajo. Además del tirador analógico también incluiré la función de TILT, es decir, cuando dé un golpe lateral al mueble quiero cambiar la trayectoria lateral de la bola, y así evitar que la bola caiga en el sumidero.

Utilizaré un Arduino Pro Micro, que me hará de joystick/gamepad a través del puerto USB. Para que el sistema operativo lo reconozca como HID (Human Interface Device), el firmware del Arduino debe incluir la librería joystick. El Arduino tiene entradas digitales/analógicas y salidas digitales para conectar los sensores y los botones necesarios. De hecho, utilizando el Arduino ya no hará falta el I-PAC que se utiliza en este tipo de proyectos.

En la foto se puede ver el segundo prototipo de plunger analógico, que ya es funcional. Como sensor utilizaré finalmente un potenciómetro lineal deslizante. De momento el muelle que utilizo es un poco fuerte. Estoy buscando otro que sea más flojo, pero que me asegure el retorno del potenciómetro a su posición inicial. Ya sé que utilizar un potenciómetro (elemento mecánico) no es la mejor solución, pero de momento me está funcionando sin problemas. Otras opciones a considerar como sensores son un rotary encoder (que también es mecánico), y dos soluciones que no son mecánicas (larga vida) pero que son más difíciles y caras y que he viso por Internet: utilizar un CCD linear sensor array (TAOS TSL 1410R); y utilizar un sensor de distancia LVDT (es caro, pero unos se lo puede construir).

Como conclusión, le daré una oportunidad al potenciómetro lineal deslizante, y su valor se leerá en una entrada analógica del Arduino.

Para la función tilt necesito un acelerómetro. Usaré el MPU-6050 GY-521, que es un acelerómetro de tres ejes y giroscopio (sólo necesito leer la aceleración en un eje). Usa el bus I2C para conectarse al Arduino (entradas digitales). Además, el resto de botones (en principio 4 botones frontales y los dos botones laterales de los flippers) también utilizarán entradas digitales del Arduino.

Lo que lleva más trabajo es repasar las 200 mesas y modificarlas para que el plunger analógico funcione correctamente. Hay diversas maneras de implementar el tirador, unas mesas más fáciles que otras. Como siempre, muchas gracias a la comunidad de Visual Pinball y a la gente que ha importado todas las mesas para el uso y disfrute de todos.

Ahora ya estoy a punto de acabar, y cuando tenga finalmente el mueble montado y el plunger analógico colocado en un posición final se tendrán que hacer las pruebas definitivas y la versión final del firmware. Ahora ya falta poquito. Cuando lo tenga todo acabado haré un pequeño video.

Si a alguien le interesa mi solución final, que em contacte y lo hablamos.

Referencias:

Con este post abro una serie de escritos y comentarios a lecturas con los que quiero homenajear, desde ahora hasta julio del 2019, el 50 aniversario de la misión Apollo XI y la llegada del hombre a la Luna. Comencemos por un clásico, una lectura que creo interesante para afrontar esta efeméride.

En 1865 Julio Verne publicó De la Tierra a la Luna. En este libro. el presidente del Gun-Club, el señor Barbicane, propone enviar un proyectil a la Luna. Y para resolver dudas, se pone en contacto con el Observatorio de Cambridge (Massachussets), y les plantea una serie de preguntas. La primera: Est-il possible d’envoyer un projectile dans la Lune?.

En el capítulol IV tenemos la respuesta de Cambridge:

Oui, il est possible d’envoyer un projectile dans la Lune, si l’on parvient à animer ce projectile d’une vitesse initiale de douze mille yards par seconde.

Vamos a repasar de donde sale este valor.

Para calcular la velocidad de escape, la velocidad que hemos de imprimir al coete será aquélla que venza todo el campo gravitatorio de la Tierra, que irá disminuyendo a medida que el proyectil vaya subiendo. La energía gravitatoria o potencial que hemos de vencer es la diferencia entre la energía potencial en la superficie de la Tierra, menos la energía potencial fuera del campo gravitatorio (en el infinito) que valdrá 0. Y esta energía potencial que hemos de superar tiene que ser igual que la energía cinética que tenemos que imprimir (conservación de la energía). Ver la imagen con las fórmulas.

Por tanto, la velocidad de escape no depende de la masa del proyectil, y tampoco depende de la dirección de lanzamiento, como hemos visto haciendo un razonamiento puramente energético.

La velocidad de escape de la Tierra es pues ve = sqrt(2 x 9,81 x 6371000) = 11180 m/s = 11,2Km/s = 40320 Km/h. Y como una yarda son 1 yd = 0.9144 m, ve = 12226 yd/s, que es precisamente la velocidad que se comenta en el libro.

Me ha parecido que este sencillo cálculo es una buena manera de empezar este homenaje a los hombres que pisaron la luna el 20 de julio de 1968, y a los científicos e ingenieros que lo hicieron posible.

Enlaces:

Participo en la edición de este año del World Data Viz Challenge 2018 Barcelona-Kobe. Entre el catálogo de datos abiertos que publica el Ayuntamiento de Barcelona, he escogido los datos de paro en el periodo 2011-2018. Mi aplicación de visualización la puedes ver en http://aturbcn.joanillo.org/. Se presentan los datos desglosados por barrios y por distritos, y se puede ver la evolución del paro a través de los años, o a través de los meses.

He utilizado la API de Open Street Map, que es una novedad para mi pues siempre había utilizado la API de Google Maps. Los datos originales estaban en formato xls, y se han introducido a una base de datos MySQL para poder explotar los datos directamente con SQL.

La idea de participar vino porque, de hecho, en el instituto queremos participar en otra convocatoria: Repte Barcelona Dades Obertes, segona edició 2019 (http://opendata-ajuntament.barcelona.cat/ca/repte-barcelona-dades-obertes). Hay que ver cómo, dentro de la asignatura de Javascript (Ciclo Formativo de Desarrollo de Aplicaciones Web), podemos hacer alguna visualización para presentarla en esta convocatoria.

Referencias:

Page 1 of 1712345»...Last »