Arxiu mensual: agost de 2014

Màquina de marcianitos. Projecte Pimame/PiPlay (Arcade bartop cabinet)

Un dels records de la meva infància eren les màquines de marcianitos que hi havia en els bars. De quan en quan aconseguíem 25 pessetes i podíem jugar a una partida. Aleshores, quan tenia 12 anys, no sabia ni què eren els jocs Arcade… per nosaltres eren les màquines de marcianitos, i prou. Amb el temps, evidentment, els jocs es van anar sofisticant en tots els nivells: gràfics, so,… Paral·lelament, a casa jugàvem al Spectrum, carregant els jocs des de les cintes de cassette. I alehores va arribar l’era del PC domèstic que ho va canviar tot.

Per als que som de la meva generació (40 i pico), les màquines Arcade dels bars representen tot un món de records i vivències associats a un món en què l’electrònica de consum ho estava canviant tot (rellotges digitals, cotxes teledirigits,…).

Han passat molts anys, el món dels videojocs ha evolucionat moltíssim, és una indústria tan potent com el cinema. Cada vegada la gent veu menys televisió i va menys al cine (cosa impensable fa temps), i la societat en què vivim es caracteritza per una gran varietat de dispositius connectats a Internet, amb una gran i diversa oferta d’oci.

Una sèrie de gent a l’entorn del projecte MAME (Multi Arcade Machine Emulator,) ha emulat les ROMs originals d’aquelles màquines Arcade a diverses plataformes, concretament al PC. Una ROM és el xip on estava el software (firmware) que feia córrer la màquina Arcade. Aquest software en codi màquina es pot traduir a línies de codi en altres plataformes i llenguatges de programació. Això és el que fan els emuladors. Per tant, ara tothom pot jugar als jocs dels anys ’70, ’80 i ’90 al seu PC. I així ho vaig fer fa uns tres anys des de la meva màquina Linux, quan vaig descobrir el projecte MAME i ja vaig pensar aleshores a construir una màquina Arcade.

En aquests tres anys també han passat moltes coses, i concretament l’eclosió del hardware lliure representats per dos projectes paradigmàtics com Arduino i la Raspberry Pi (entre d’altres). I el bo del cas és que el projecte MAME s’ha portat i optimitzat a la plataforma de la Raspberry Pi, amb totes les avantatges que això suposa de cara construir-se un moble Arcade (pressupost, espai, consum,…). Aquesta feina s’ha fet gràcies a Shea Silverman i al projecte PiMAME, que ara s’anomena PiPlay.

Així doncs aquest curs passat em vaig posar les mans a l’obra i per l’estiu ja tenia a punt el meu moble bartop amb més de 1000 jocs classificats per categories (plataforma, galeria, shooter, puzzle, fighting, …) i jugabilitat (preferits, molt bons, bons, dolents). El projecte és molt variat, que inclou entre d’altres:

  • construcció del moble (tallar, pulir, pintar,…)
  • configuració de la Raspberry Pi i de MAME
  • programació d’un front-end propi (veure enllaç per a més detalls)
  • interfície joystick-USB (veure enllaç per a més detalls). Tot i que funciona correctament aquesta solució, s’ha d’explorar la possibilitat de configurar el joystick i els 6 botons només amb els pins GPIO de la RPi. El resultat seria més senzill i ràpid d’implementar.
  • font d’alimentació 12V-5V
  • metacril·lat, adhesius
  • matriu de LEDs per a la markee
  • pantalla plana, conversor HDMI-VGA
  • amplificador de so. La sortida de so en la Raspberry Pi no és massa bona, i això es nota a l’hora d’amplificar el so. En aquest aspecte falten més proves a veure si hi ha possibilitat d’obtenir un so més net.

Després de moltes hores de feina, calculo que el pressupost és d’uns 250 euros. La bona notícia és que hi ha marge per automatitzar/millorar tot el procés, per exemple utilitzant una màquina CNC per tallar les fustes, o construir mobles bartop de 3 en 3, en vistes a una possible comercialització.

Aquí pots veure el video del moble acabat.

Per a més informació:

Script per automatitzar la creació d’anaglifs 3D

Crec que no havia fet cap post en aquest blog sobre la meva col·lecció fotogràfica d’insectes. Aquesta col·lecció està disponible online a http://arthropoda.joanillo.org. Fa més de dos anys i mig que està pública a la xarxa, i en aquests moments consta d’unes 2000 fotos d’uns 350 insectes identificats (és a dir, quasi res). Entre les diferents opcions que hi ha a la pàgina web hi ha la possibilitat de visualitzar alguns exemplars amb 3 dimensions (3D), mitjançant dos dels mètodes comuns: ulls creuats amb parells estereogràfics, i anaglifs.

Cryptocephalus aureolusEl mètode dels ulls creuats és dels més populars perquè no requreix de cap mena d’ulleres ni estris. Consisteix en ficar una al costat de l’altres dues fotos que formen un parell estereogràfic. A l’esquerra posem la foto que es correspon a l’ull dret; i a la dreta la foto que es correspon a l’ull esquerre. La tècnica consisteix en visualitzar la pantalla a mig metre aproximadament, mirar al punt mig de les dues fotos, enfocar a un punt com si estigués darrera de la pantalla, i deixar que les dues imatges s’ajuntin soles. Aleshores, de forma màgica, apareix la foto amb tota la seva profunditat. Si és la primera vegada que ho proves pot ser una mica difícil, però val la pena provar-ho. Intenta-ho amb el parell estereogràfic que es mostra, que es correspon a un escarabat de la família Chrysomelidae, concretament un Cryptocephalus aureolus.

Cryptocephalus aureolusUn altre mètode popular de visualitzar imatges 3D són els anaglifs, en els que s’han d’utilitzar les ulleres cyan-vermell (o verd-vermell). Consisteix en separar les dues imatges en les seves capes RGB, i eliminar per a la imatge esquerra la capa vermella; i per a la imatge dreta la capa cyan. Això es pot fer de forma manual amb els programes més populars d’edició de fotos com ara Gimp o Photoshop. Finalment tornar a ajuntar les imatges en una de sola, i visualitzar-la amb unes ulleres de colors. La visualització 3D en aquest cas és molt fàcil, només cal posar-se les ulleres. L’inconvenient és que el resultat final ha perdut qualitat cromàtica.

En aquest post el que fem és presentar i explicar el script que s’utilitza per automatitzar la creació dels anaglifs, tal com s’utilitza a arthropoda.joanillo.org. Has de tenir present que aquest script està pensat per a sistemes Linux i està programat en bash script. No puc donar suport a d’altres sistemes operatius, però la idea és plenament traslladable. L’eina principal que s’utilitza és la utilitat convert que es troba dins el paquet imagemagick. convert és una utilitat en línia de comanda per manipular imatges, i que et permet accedir a les capes RGB. Per instal·lar aquesta utilitat:

$ sudo apt-get install imagemagick

Si volem extreure la capa vermella d’una foto farem:

/usr/bin/convert left_pic.jpg -separate -channel r left_pic_separate_R.JPG

i si volem combinar dues fotos farem:

/usr/bin/convert pic1.jpg pic2.jpg -combine pic_combine.jpg

Amb tot això ja podem posar tot el script, que de fet és molt curtet:

#!/bin/bash
#two arguments: left pic and right pic
# ./anaglyph_creation.sh 130609_091940.JPG 130609_091944.JPG

pics_or=./;
pics_anaglyphs=./anaglyph/;
pics_temp=./temp/;

echo $1;
echo $2;

basename=`basename "$1"`;
file_without_ext=${basename:0:13}
file_anaglyph=${file_without_ext}_ana.JPG

#anaglyph creation 
#1.Separate red channel for the left pic, and cyan for the right pic:
/usr/bin/convert $pics_or$1 -separate -channel r ${pics_temp}separate_R.JPG
/usr/bin/convert $pics_or$2 -separate -delete -3 ${pics_temp}separate_GB_%d.JPG #elimina el vermell
#2. Combine modified left and right pics in a new one:
/usr/bin/convert ${pics_temp}separate_R.JPG ${pics_temp}separate_GB_0.JPG ${pics_temp}separate_GB_1.JPG -set colorspace RGB -combine $pics_anaglyphs$file_anaglyph

rm pics_temp/*

Enllaços:
-Parells estereogràfics: http://arthropoda.joanillo.org/stereo.php
-Anaglifs: http://arthropoda.joanillo.org/anagliphs.php
-wikipedia: http://en.wikipedia.org/wiki/Anaglyph_3D