Arxiu mensual: abril de 2018

Pinball B2S, distribució dels components

Estic avançant en el projecte del Pinball B2S, tot i que se m’ha girat feina amb un parell de màquines que estic fent. Estic a punt de pintar de blanc el moble, i abans de pintar he d’acabar de fer algun forat. Però per fer els forats que em falten, he de disposar ja tots els components en la seva posició final.

Així que he agafat l’ordinador sobre el que he estat fent les proves, i l’he desmuntat del tot. És llàstima perquè és un ordinador que vaig aconseguir fa un parell de mesos per un bon preu i que té una caixa molt insonoritzada i una font d’alimentació molt bona. Com es veu en la foto, a part del ventilador de la font d’alimentació, té tres ventiladors més i un dissipador de la CPU molt gran. És una bona màquina amb una placa ASUS P5Q-E i un Intel Core 2 Quad Q9550 a 2.83GHz. Té 4GB de RAM, en alguna taula que he jugat crec que seria millor tenir 8GB de RAM, però de moment ho deixaré així. Vaig agafar aquest ordinador perquè portava la gràfica NVidia GeForce 240, que encara que no és molt potent ja l’havia provat en una altra màquina amb molt bon resultat.

Així doncs he desmuntat la placa, la font, la gràfica, el disc dur, un connector USB, tots els cables, … i ho he disposat tot sobre la base del pinball. Al principi volia fer un calaix per la part de darrere de manera que es pugués accedir a tots els components de l’ordinador sense haver de desmuntar la pantalla. Però com es veu, al darrera disposaré de la font d’alimentació i tres ventiladors. Espero no haver d’accedir mai a l’ordinador, però si fos el cas, el que s’haurà de fer és treure el vidre i la pantalla del playfield, tampoc serà tanta feina.

En la foto no estan tots els components. Falta un IPAC, tots els botons i cables, i tota l’electrònica de la TV. Però no és problema, veig que tinc lloc suficient, i a més algun component no cal que estigui en la base, sinó que es pot fixar en el lateral.

Tenia ganes de fer el plunger analògic, però de moment prefereixo acabar la màquina i més endavant ja miraré de ficar-lo. Ara veig que hagués pogut fer l’altura del moble 2 o 3 cm menys alt, però tant se val, el que importa és que les proporcions entre la pantalla del backglass, el moble principal, i les potes, sigui la correcta. De fet, em quedarà un pinball petitó: és un mini virtual pinball. Tenia ganes de fer-ne un de petitó abans de ficar-me en un pinball de dimensions reals. Com que no es podrà jugar dret, suposo que el millor serà jugar-lo assegut des d’una cadira. Ja veurem.

El projecte a la wiki:

Curs d’Intel.ligència Artificial CSMM.101x finalitzat

Finalment ja he acabat el curs d’Intel·ligència Artificial. Aquestes últimes hores he fet l’examen final, tipus test. Quant tingui una mica de temps m’agradaria repassar algun concepte i tornar-me a mirar el projecte del Sudoku i els algorismes que allà hem utilitzat. I de cara aquest estiu rellegir el llibre Computational Beauty of Nature, on hi havia algun capítol sobre xarxes neuronals.

M’ha interessat sobretot la part del Machine Learning, i de cara el curs vinent m’agradaria fer algun curs en aquest àmbit. Temps al temps.

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.

Curs d’Intel.ligència Artificial a edx.org

Estic fent el curs ColumbiaX: CSMM.101x d’Intel·ligència Artificial de edx.org. De fet. ja l’estic acabant. Ja estem a la última setmana, i per sort meva, l’últim projecte ja el tinc entregat i m’ha portat menys feina del que em pensava, sense especials contratemps. Ara només em falta fer l’examen final que serà el 23 d’abril, Sant Jordi.

Els projectes que s’han realitzat, tots ells amb Python, són:

  • Projecte 1: Search Algorythms. BFS, DFS,… Es va resoldre el 8-puzzle
  • Projecte 2: Adversarial Search and Games. S’ha resolt el joc del 2048, que de fet jo hi havia jugat bastant. Aquest projecte em va costar bastant, i efectivament vaig arribar a 2048 en una ocasió, combinant diferents heurístiques.
  • Projecte 3: Machine Learning. Hi havia tres problemes diferents: I. Perceptron Learning Algorithm; II. Linear Regression; III. Classification
  • Projecte 4: Constraint Satisfaction Problems. Aquí vam resoldre el joc del sudoku amb els algorismes del AC-3 i del backtracking.
  • Projecte 5: NLP, Natural Language Processing. Un projecte molt interessant. Hi havia un train data de 25000 comentaris de pel·lícules, valorades del 0 al 10. I després també hi havia un test data de 25000 comentaris que s’havien de valorar després d’entrenar el sistema.

El resum de les setmanes ha sigut el següent:

  • Week 1: Introduction to AI
  • Week 2: Intelligent Agents and Uniformed Search
  • Week 3: Heuristic Search
  • Week 4: Adversarial Search and Games
  • Week 5: Machine Learning I
  • Week 6: Machine Learning II
  • Week 7: Machine Learning III
  • Week 8: CSP
  • Week 9: Reinforcement Learning
  • Week 10: Logical Agents
  • Week 11: AI Applications: NLP

Per sort ja s’està acabant perquè m’ha agafat més temps del que tenia i del que volia dedicar-li. Però realment ha sigut interessant i exigent, i m’he hagut de posar les piles amb el Python. Realment el tema de les estructures de dades, i les diferents llibreries que s’han utilitzat amb Python, són molt potents.

Intentaré seguir llegint coses sobre Intel·ligència Artificial (IA) i Machine Learning (ML).

NOTA: encara no tinc acabat el projecte de la màquina de dards, i de fet me n’adono que el problema d’esbrinar on ha tocat el dard i quina puntuació té, a part d’un problema de CV (Computer Vision), també és un problema de ML (Machine Learning).

Llibre d’equacions diferencials. Capítol “La ciència de l’enamorament”

Vaig amb la idea d’escriure alguns articles sobre equacions diferencials, que podrien desembocar en un llibre. M’agradaria donar un to amè, centrant-me en aspectes pràctics, per demostrar que les equacions diferencials es poden aplicar a molts àmbits diferents. El títol podria ser alguna cosa com ara: Equacions diferencials per tot arreu: de com el càlcul infinitesimal resol problemes en tots els camps del coneixement

De fet he pensat un guió per al llibre, seria alguna cosa com ara:

Fı́sica

  • Problemes clàssics: la molla i el pèndol
  • Dinàmica de coets. Equació de Tsiolkovski
  • Isòtops radioactius

Biologıia

  • Ecologia de poblacions
  • Teorıia de l’evolució
  • Hàbits d’alimentació en poblacions animals

Sociologia

  • La ciència de l’amor
  • Sistemes de votació, dinàmica de partits polı́tics

Economia

  • Evolució dels preus
  • Crisi financera

Matemàtiques

  • Equació de la corda pesant: la catenària
  • La braquistòcrona i la tautòcrona

Medicina

  • Dinàmica dels tumors
  • Modelitzar el càncer: competència i selecció natural

Electrònica

  • Càrrega del condensador. Oscil·ladors LC, RLC
  • Unió PN, difusió de portadors

Quı́mica

  • Dinàmica de les reaccions quı́miques
  • Intercanvi de calor

Fluids

  • Llei de Torricelli
  • Mecànica de fluids. Coeficient de resistència

Sistemes complexos

  • Caos
  • Fractals

He estat treballant en varis capítol. Per exemple, en La ciència de l’enamorament s’analitza un cas de com una parella tenen un comportament diferent davant de l’enamorament, que es pot modelitzar amb una equació diferencial. I com a resultat de resoldre el problema, el resultat podria ser (en funció de les condicions inicials i del valor dels paràmetres), un estira-i-arronsa cíclic en la manera com senten l’atracció mútua.

En qualsevol cas el problema no és original (com els altres que es presenten en el guió que són, de fet, problemes bastant clàssics), però sí que se li vol donar un to personal, i a més es vol donar tot el codi python i la generació de les gràfiques que es presentaran en els articles.

Pots descarregar aquest capítol en el següent enllaç: