Arxiu de la categoria: Joan Quintana

OpenStreetMaps a rutesgps.joanillo.org

He actualitzat la web de rutesgps.joanillo.org. Ho tenia amb la API de Google Maps i feia temps que no funcionava degut a que la API KEY havia caducat.

A l’assignatura de Javascript, a l’institut, el curs passat ja no vam fer Google Maps, i només la API de OpenStreetMaps (OSM). Els mapes potser no són tan xulos, però son plenament funcionals, i amb el temps anirà millorant gràcies a la col·laboració de la comunitat.

A més, he començat a editar i col·laborar els mapes de OSM, hi ha molta feina per a la comunitat. Aquests dies m’ha vingut per aqui perquè m’he comprat un GPS de ciclisme, el Bryton Rider 450, que m’està donant molt bons resultats. El dissabte passat vam anar a fer una ruta pel massis del Garraf, des de Garraf fins a Begues, i tornada.

Conclusió: adéu Google Maps, endavant OSM!

OpenStreetMaps a rutesgps.joanillo.org

He actualitzat la web de rutesgps.joanillo.org. Ho tenia amb la API de Google Maps i feia temps que no funcionava degut a que la API KEY havia caducat.

A l’assignatura de Javascript, a l’institut, el curs passat ja no vam fer Google Maps, i només la API de OpenStreetMaps (OSM). Els mapes potser no són tan xulos, però son plenament funcionals, i amb el temps anirà millorant gràcies a la col·laboració de la comunitat.

A més, he començat a editar i col·laborar els mapes de OSM, hi ha molta feina per a la comunitat. Aquests dies m’ha vingut per aqui perquè m’he comprat un GPS de ciclisme, el Bryton Rider 450, que m’està donant molt bons resultats. El dissabte passat vam anar a fer una ruta pel massis del Garraf, des de Garraf fins a Begues, i tornada.

Conclusió: adéu Google Maps, endavant OSM!

Diari d’aprenentatge. Curs de Realitat Virtual

Des de fa 10 anys, justament ara, estic utilitzant el bloc joanillo.org, i ficant-hi continguts de forma continuada (i relaxada). Ara que he començat el curs de Realitat Virtual que organitza el Departament d’Ensenyament, faré servir aquest bloc com a eina per ficar-hi continguts i reflexions. Ho faré sota la Categoria Curs Realitat Virtual, I l’enllaç permanent d’aquesta categoria serà: http://www.joanillo.org/?cat=52.

Nota: La imatge l’he treta de https://los40es00.epimg.net/

Experiment del pèndol per trobar la constant de gravitació g

Aquest estiu vaig estar fent proves per captar la senyal d’un sensor LDR a l’ordinador, amb un programa C++ que llegia pel port sèries les dades que enviava l’Arduino. I es va comprovar com la lluminositat al capvespre disminueix com una sigmoide (1).

Aquestes eren les primeres proves per l’experiment que volia fer i documentar, que és la troballa de la constant g a partir de l’experiment del pèndol. Resumint, mesurem el periode del pèndol per diferents longituds, i podem trobar la constant g=9.81 m/s2. Sabem que el periode del pèndol no depèn de la massa, sinó només de la longitud de la corda i de la constant g òbviament.

En la foto podem veure l’esquema de l’experiment. Tenim un pèndol; un fotodetector amb Arduino capaç de detectar el pas del pèndol; enviem pel port sèrie a l’ordinador les dades; un programa C++/SDL llegeix les dades del port sèrie; processem les dades amb Python i trobem la recta de regressió; calculem g i l’error corresponent. Tot això és el que desenvoluparem en el proper post.

A part de l’experiment de trobar la constant g, la idea és fer una sèrie d’experiments que segueixin el mateix esquema. Si tenim diversos experiments preparats, es podria fer més endavant una proposta didàctica per a Secundària.

Experiments d’estiu: model matemàtic de com decau la llum solar quan es fa fosc al capvespre

M’està rondant el cap fer una sèrie d’experiments captant dades amb sensors i processant les dades a l’ordinador. Espero parlar-ne aviat, hi ha bastantes idees xul·les que es poden desenvolupar. Aquí va una petita mostra. I una de les tècniques claus per fer tot això que vull fer és enviar pel protocol sèrie les dades del sensor (arduino) a un programa C++ que s’està executant a l’ordinador.

En la foto es pot veure com es recull les dades del sensor a l’ordinador. Les dades es van gravant en un fitxer, i es poden processar a posteriori. En aquest cas tinc un sensor LDR que capta la llum solar, i es tracta de veure com decau la il·luminació a mida que es fa fosc. Quin comportament tindrà? L’estat inicial és assimptòtic (il·luminació plena), i l’estat final també (foscor). Què passa pel mig? Sabem que a la natura no li agraden els canvis bruscos. Hem d’unir les dues rectes amb una corba. Això ens dóna una corba sigmoide, en la qual hi hauria un punt d’inflexió de canvi màxim en el decreixement de la il·luminació? Serà cert aquest comportament, aquest model matemàtic? Anem a comprovar-ho.

Un cop tenim el fitxer amb les dades, les processarem amb les llibreries científiques numpy i scipy de Python. Com podem veure en el codi, es proposa una línia de màxim ajustament de tipus sigmoide. I efectivament obtenim una bona solució i un bon ajustament com es pot veure en la gràfica. En aquest cas, l’equació obtinguda és:

y =987.24 * (1 / 1 + exp(-0.07*(x-393.87))) +-8.02

No hem de fer massa cas a les dades de l’eix de les X, són tan sols punts. Senzillament tenir en compte que la distància entre punts són 30 segons.

Aquesta és una senzilla i bona demostració d’estiu (un divertimento) de què la natura es descriu amb funcions matemàtiques. Les mates són una bona eina per descriure el comportament de la naturalesa. I que els fenòmens exponencials són inherents a la Física.

Aquest últim any he estat estudiant mètodes numèrics i les llibreries científiques de Python, i realment hi veig un munt de possibilitats, que vull anar explorant aquest curs que començarà d’aquí poc.

# -*- coding: utf-8 -*-
#cel·la LDR que ha gravat com decau la llum al capvespre.
#La funció que s’ajusta a les dades és una sigmoide

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

def sigmoid(x, a, b, c, d):
y = c / (1 + np.exp(-b*(x-a))) + d
return y

y = np.loadtxt(‘../dades/LDR_capvespre.txt’)
x = np.linspace(1,len(y),len(y))
#print (x)
#print (len(x))

popt, pcov = curve_fit(sigmoid, x, y, p0=[350, 0.001,1000, 2]) #és necessari ficar uns bons paràmetres inicials

print popt
print (‘y =c * (1 / 1 + exp(-b*(x-a))) +d ‘)
print (‘y =’ + ‘%.2f’%popt[2] + ‘ * (1 / 1 + exp(‘ + ‘%.2f’%popt[1] + ‘*(x-‘ + ‘%.2f’%popt[0] + ‘))) +’ + ‘%.2f’%popt[3] )

plt.figure()
plt.plot(x, y, ‘k’, label=”Original Noised Data”)
plt.plot(x, sigmoid(x, *popt), ‘r-‘, label=”Fitted Curve”)

plt.legend()
plt.show()

# Resultat:
#y =c * (1 / 1 + exp(-b*(x-a))) +d
#y =987.24 * (1 / 1 + exp(-0.07*(x-393.87))) +-8.02

Magic Mirror amb la Raspberry Pi (Smart Mirror)

Aquest és un projecte divertit i senzill per fer amb la Raspberry Pi, molt adient ara per l’estiu. He estat configurant la Raspberry Pi i els diferents mòduls del projecte MagicMirror, i ja puc mostrar el video de com quedarà tot plegat. De totes maneres, el projecte l’hauré d’acabar més endavant quan decidim on podem col·locar el mirall i les dimensions que tindrà, doncs veig que comprar el 2-way mirror és la part més delicada, i un mirall ben gros se’n va del pressupost.

Un dels objectius per realitzar aquest projecte és que últimament m’estic conscienciant molt de com de malament parlem la nostra llengua (el català) i de com s’ha empobrit en general. Per tal de recuperar les expressions més genuïnes (defugint el calc del castellà allà on sigui possible), hi ha tot un moviment de conscienciació. Jo vull aportar el meu granet de sorra fent aquest mirall màgic que ens donarà una lliçó de bon català cada cop que ens mirem al mirall, per exemple quan ens rentem les dents.

Un dels mòduls per defecte de MagicMirror és la sindicació de continguts per tenir els titulars de les notícies del dia. Per exemple, el meu mirall està suscrit al diari ARA. Doncs bé, he adaptat aquest mòdul per crear el meu mòdul propi de MagicMirror (el_catala_com_cal). Ha estat bastant fàcil. Només cal crear i editar un fitxer XML amb les lliçons de català que vull visualitzar. De moment és això: un fitxer estàtic que hauré d’editar cada cop que vulgui afegir contingut.

Aprenent LaTeX: el Tirant lo Blanc

Seria el mes de febrer o març que em vaig posar a remenar i estudiar el LaTeX. El motiu principal era l’edició d’equacions i la notació científica, que és allà on el LaTeX hi fa una diferència gran. Al darrera hi ha la idea de fer uns articles (i/o llibre) sobre aspectes curiosos i quotidians relacionats amb les equacions diferencials i mètodes numèrics amb Python.

Lluny d’aquest objectiu científic, per tal d’aprendre LaTeX em vaig posar a editar el Tirant lo Blanc (hagués pogut triar una novel·la més curta!). Han passat uns mesos i al final he tingut temps d’acabar la meva edició del Tirant lo Blanc, que tinc el goig de presentar en primícia mundial.

Com que el text és molt llarg (el pdf té quasi bé 1000 pàgines), s’ha utilitzat diverses tècniques de programació i substitució automàtica de text per tal de generar ràpidament el LaTex a partir dels textos originals (en format txt o html). Això vol dir que, amb els coneixements adquirits, la generació d’un pdf d’un text o novel·la històrica la podria fer de manera bastant ràpida.

  • Edició del Tirant amb LaTeX (pdf): Tirant lo Blanc
  • El text original provinent de cervantesvirtual.com: enllaç
  • El Tirant lo Blanc a la Viquipèdia: enllaç

Festa Arcade a ARAG

Ara fa dies que no escrivia en el bloc, i és que aquest trimestre ha estat molt frenètic i cansat amb tot el canvi de pis. Per si no era poc, el dia abans del trasllat tenia emparaulat portar unes màquines per la festa social de l’asseguradora ARAG.

S’ho van passar d’allò més bé amb tres màquines bartop i un pinball que els vaig portar amb la furgoneta. Després, a la nit, a recollir-ho tot, quan els més marxosos encara estaven a la discoteca.

Mini Virtual Pinball basat en Jack’s Open

He estat fent dos pinballs en paral·lel, amb les mateixes dimensions, i amb plunger analògic. El primer basat en el tema d’Avengers de Marvel; i el segon basat en Jacks Open, tema que ja havia fet. Al contrari de la primera vegada, on vaig fer servir pintura i màscares per pintar amb spray, aquesta vegada se m’ha complicat molt aquesta tècnica i finalment he encarregat els vinils, molt millor.