Arxiu de la categoria: Joanillo Productions

Pistons pneumàtics i vàlvules per al whack-a-mole

He fet les primeres proves per la part pneumàtica del whack-a-mole. A vegades comprar a Aliexpress és realment complicat. Volia uns pistons pneumàtics d’una sola acció amb retorn de molla, i he rebut uns pistons de doble acció. El títol del producte i les fotos del producte no concordaven. Crec que al final aquests pistons de doble acció m’aniran bé, tot i que al final necessitaré el doble de solenoides (2 solenoides per pistó, tal com es veu en el video).

El compressor que utilitzo és el més senzill que he trobat. M’ha costat 10e de segona mà, i és bastant sorollós, però faré un bon amortiment del so. Un compressor de més potència i amb calderí seria ideal, però el preu s’incrementaria molt.

Així doncs, el material que es necessita per fer aquesta prova és: compressor, pistó pneumàtic, dos solenoides (vàlvules pneumàtiques), 2 ràcors per als pistons, 4 ràcors per als solenoides, una T, i tubo de 6mm. El següent pas serà la part electrònica: un arduino i els relés per controlar tots els solenoides.

Enllaços:

Recreativa whack-a-mole: introducció

La nova recreativa que farem és un whack-a-mole (tot i que encara tinc d’altres projectes per acabar…). És un projecte de pneumàtica, i tenia ganes de fer-ne un, tot i que treballar amb aire comprimit, pistons i solenoides és sensiblement més car que treballar només amb electrònica.

I què és un whack-a-mole? És un joc arcade, que ve dels Estats Units però aquí també es pot veure a les fires, en què uns talps surten dels forats de la taula, i s’han de colpejar amb una massa per tal de què es tornin a amagar. Com més talps, més punts. El joc es complica perquè surten varis talps alhora i la velocitat es va incrementant.

D’aquí ve l’expressió anglesa This is like playing whack-a-mole. Precisament to whack vol dir colpejar, i mole és un talp. I l’expressió descriu la situació on et sorgeixen de cop i volta moltes coses a les quals has de fer cas, i a mida que les vas fent et sorgeixen més coses, i no dones abast. Igual que en el joc, que has d’anar donant cops de massa intentant donar cops de massa als talps. A Espanya es va traduir per guacamole, que sona igual però que no té res a veure amb el sentit original del mot. Per exemple el joc de guacamole de la marca MB (veure video de la publicitat).

Així doncs, he començat a reunir el material: pistons, vàlvules pneumàtiques, compressor barato, ràcors, tubs, arduino, i una tira de NeoPixels per fer el display, que potser això serà allò més interessant doncs vull dos displays de tres dígits ben grossos i ben xul·los.

Aquest ha de ser un projecte diferent i divertit.lo. El que és una incògnita és si el pressupost final compensarà tot plegat.

Enllaços:

Construïnt el moble del Virtual Pinball

Mans a l’obra! Ja tinc les 200 taules configurades, tinc les dues pantalles, l’ordinador, botons, IPAC. He de pensar quin moneder fico, i m’agradaria ficar un plunger analògic. Però el cas és que ja puc començar a construir el moble.

De fet, aquest és un mini virtual pinball. És mini perquè les pantalles que utilitzo són de 24inch per al playfield, i de 17 inch per al backglass. Com que és la primera màquina que construeixo d’aquest tipus, la penso com una prova. La idea és ficar-li unes potes, però no tinc clar encara com fer-ho. Es poden comprar potes per Internet, però vull contenir al màxim el pressupost d’aquest projecte. Una altra possibilitat seria no ficar potes, i que reposi sobre una taula.

La primera vegada que construeixes una màquina és un aprenentatge sobre la marxa de les coses amb què ens podem trobar. S’ha de prendre moltes decisions: mides, posicionament dels components, materials,… És un procés de presa de decisions. Per tant, ens ho hem de prendre com un prototipus, i en el trajecte adquirim un know-how que ens servirà per a futures màquines (esperem que n’hi hagi més).

Per als vinils d’aquesta màquina encara no he pres cap decisió, segurament es basarà amb la taula Jacs to Open. Segurament no serà vinils, sinó que la pintaré amb plantilles, una tècnica que no he probat. Altres possibilitats de disseny que m’han agradat mentre probava les taules: Free Fall, Fast Draw, Harlem Globetrotters, Jumping Jack, King Rock, Star Trek.

200 taules de pinball B2S configurades i testejades

He aparcat un temps el projecte de la màquina de dards per dos motius. El primer que estic fent un curs de edx.org d’Intel·ligència Artificial. I després perquè tinc ganes d’acabar un virtual pinball de dues pantalles.

Ja tinc configurades 200 taules de pinball en mode B2S (Backglass to Screen). Això significa que tenim dues pantalles: el playfield (la pantalla principal); i la pantalla que fa de backglass, on hi ha el score i altres efectes visuals. He hagut de transformar totes les taules FS (FullScreen) que tenia a B2S, sempre que hagi estat possible. I he buscat d’altres taules xul·les per arribar a les 200.

La foto que he escollit per il·lustrar el post és la taula Centigrade 37, una taula Gottlieb de 1980 molt xul·la que he descobert.

D’altra banda ja estic construint el moble (ho ensenyaré en els propers posts), i em queda decidir quina taula escolliré per a les arts. També he de resoldre altres aspectes tècnics com el plunger analògic.

darts-machine v0.0.12. Avançant en el projecte

Espero que la versió 0.0.12 sigui la última abans de barrejar tot el codi amb la detecció i calibració dels dards, que utilitza dos càmeres web i la llibreria OpenCV.

La principal novetat de les darreres versions és que ara es pot rectificar una entrada dels dards. Malauradament, ara tinc clar que no es pot aconseguir una fiabilitat del 100% en la detecció dels dards, o sigui que més val pensar en la lògica que ens permetrà rectificar la puntuació dels dards. A més d’anular el punt i restablir l’estat anterior, es proposa els punts més propers, que són els més probables. Per exemple, si hem detectat D20 i és un error, els punts més probables són MISS, 20, D1 i D5.

He ficat colors en la consola, com es veu a la foto, doncs la idea és que en la màquina es podrà jugar en aquesta interfície de consola. Només falta barrejar el subsistema de detecció. Així doncs, la part gràfica, basada en SDL (ja he fet proves de la migració a SDL), i la interface dels botons que necessitaré, ho deixaré pel final de tot.

Els jocs implementats són el 301 (i les seves variants), Cricket, Count-Up, Halve It i Round the Clock. El codi està pensat per tal de què sigui fàcil afegir nous jocs de dard en el cas de què sigui necessari. Es pot jugar de 1 a 4 jugadors. El codi de moment no preveu jugar per equips, és una millora que es deixa per més endavant si fos necessari.

El projecte es troba al GitHub:

Detecció dels dards: Primeres proves

Ja tinc el prototipus del moble, i ja puc començar a fer proves per a detectar els dards. Com es veu al video, la detecció és molt bona. Si ens fixem en la configuració, la webcam està en el mateix pla XY que la diana. Això crec que té avantatges en la detecció del dard; i desavantatges: necessitaré 2 webcams, i possiblement 3 webcams per posicionar amb fiabilitat el dard en la diana.

Utilitzem la llibreria OpenCV sobre C++, i el flux bàsic consisteix en fer una captura de la webcam; llençar el dard; i fer una altra captura. Aleshores es fa la diferència de les imatges; es converteix a binari; s’aplica una màscara per eliminar bona part del dard. En aquest moment hem de veure la part de baix del dard, i ben clarament la punta. Tenim un número limitat de punts blancs. Amb aquests punts calculem el moment, que seria el centre de gravetat dels punts. I fent un bucle sobre tots els punts puc detectar el punt més inferior, que seria la punta del dard. Finalment, per eliminar possibles errors, calculo la distància entre la punta i el moment, que ha de ser un valor petit.

Encara queda molta feina per fer. D’una banda, s’ha de traduir la detecció del dard als possibles sectors on està el dard. Després afegir una altra webcam. I si afegeixo una tercera webcam, segurament necessitaré algun USB Hub. L’objectiu és utilitzar una sola Raspberry Pi 3 en tot el projecte.

Prototipus de diana de dards II

Fa uns dies vaig construir el primer prototipus de moble, i ja vam fer unes quantes proves per detectar els dards. He tret bastantes conclusions del primer prototipus, i he arribat a la conclusió de què s’ha de fer un nou moble, amb unes noves dimensions.

La primera consideració és la distància de la webcam a la diana. Amb la webcam amb què estic fent les proves (Creative Live! Cam Sync HD), la distància de la webcam al centre de la diana ha de ser com a mínim de 46 cm. Un altre tema important és que el pla de la càmera ha de coincidir exactament amb el pla XY de la diana (aquesta és la manera com jo abordo la posició de les càmeres, evidentment necessitaré dues càmeres, o potser tres). La il·luminació ha de ser uniforme, i sobretot, la construcció ha de ser sòlida. La clau està en què quan faig la sostracció entre una captura i la següent (en la què s’ha llençat un dard), la diferència entre les imatges ha de ser realment la detecció del nou dard (no ha d’haver-hi cap mena de soroll).

Ja he estat fent proves amb el nou prototipus, i val a dir que els resultats han estat molt bons (faré un post i un video properament), o sigui que puc afrontar amb optimisme la part més crítica del projecte.

Com es veu en la imatge, la idea que tinc del moble és integrar una pantalla de 15 polzades just a a sota de la diana, i ficar-hi també els tres o quatre botons que necessitaré per interactuar amb el software. La part del software la tinc bastant avançada, però ara m’he de centrar més en la detecció dels dards.

Un altre tema que he de fer els propers dies és convertir la posició del dard a la puntuació de la diana. No cal dir que amb una sola càmera (en el mateix pla XY que la diana) això és impossible, es necessitaran dues càmeres mínim.

Llaç groc: llibertat presos polítics

Finalment hem penjat el llaç groc des del nostre balcó fins al balcó del senyor Jaume, al bell mig del carrer Milà i Fontanals de Barcelona. Avui, 30 de gener de 2018, dia que no s’ha pogut celebrar el ple del parlament perquè el nostre president Puigdemont no pot venir a defensar la seva candidatura a la presidència de la Generalitat.

Cada dia recordem que hi ha presos polítics: Oriol Junqeras, Quim Forn, Jordi Sánchez i Jordi Cuixart, i gent que està a l’exili i que no pot tornar amb garanties. Delictes? El que és delicte és continuar sent súbdits del Regne d’Espanya. Algú dirà que no hi ha majoria per proclamar la idependència… doncs fem un referèndum.

Prototipus de diana de dards amb bona il.luminació

A veure si dono una empenta al projecte de la diana electrònica. He avançat bastant en el software. Vaig fer proves en el seu dia amb la llibreria OpenCV, i ara és el moment d’atacar la part crítica del problema, que és la detecció fiable dels darts.

Com que el problema és bastant crític, el primer serà tenir la diana amb unes condicions de llum ben controlades, amb il·luminació uniforme i sense ombres. Per fer-ho, he fet una estructura de fusta amb tira de LEDs pels costats, com es veu a la foto. El següent pas serà aconseguir unes webcams decents. De moment les proves les he fet amb una webcam molt senzilla amb resolució de 480px. Estic esperant una webcam de 720px, que a part d’una millor resolució espero que tingui una millor qualitat. Finalment també disposo d’una RaspiCam NoIR (la càmera d’infrarrojos pròpia de la Raspberry Pi). Aquesta sí que té una bona resolució i qualitat, el problema és que no és USB, i per tant en una Raspberry Pi només hi pot haver una càmera RaspiCam.

La meva idea inicial és utilitzar una sola Raspberry Pi 3, amb dues webcams USB connectades. Es tracta d’anar fent proves i anar controlant totes les variables i causístiques que es puguin donar. Per sort, en tot aquest procés no estic sol, sinó que hi ha més gent engrescada en la construcció d’una diana eletrònica amb dards de punta de ferro. Concretament el projecte https://github.com/hanneshoettinger/opencv-steel-darts i la discussió que es genera en el grup de Facebook de https://www.facebook.com/groups/281778298914107/. Feia anys que no entrava al Facebook, ja veig que les properes setmanes seré un assidu.

Ja aniré explicant les meves aventures i avenços.

Tauleta Pinball, nova màquina

Per Nadal vaig acabar aquesta taula de pinball, en el format de taula de cafè. Ja és la segona que he fet seguint aquest esquema, montant una TV de 32”. En aquest cas he incorporat algunes millores: la disposició dels botons i la implementació del nudge.

En el procés de construcció m’han vingut ganes de construir una màquina de pinball amb dos monitors (la configuració típica de playfield i backlight), o sigui que estic reunint les peces i ja estic pensant en el disseny. Serà un dels projectes per aquest trimestre.