Spread your meteo sensor data over the internet

I published on the Italian Magazine for Electronics “CQ Elettronica” (issue N.485 September 2007) an article about my project based on Atmel ATtiny2313 microcontroller that converts the RF data stream (OOK modulation at 433 MHz) received from Oregon Scientific meteo sensor model THGR228NF (look at this link for more details).  This device was also revised by Hack-a-day in September 2007.

Recently, I created an Android App to display the received data on a tablet or a smartphone, using an USB-Serial interface to connect the receiver to the device. You can find the App on my page on Google Play Store and more informations at this link.

After the first version, I created a new one that uses a PIR sensor (Passive InfraRed) to swap the screen from a flip-clock to the meteo data screen when a person passes near the box. This is the prototype:

App in funzione su tablet 800x480 scala=1

Prototype running on 800 x 480 display 6.5″ Phablet

Well, after that I had the idea to publish my webcam on the Internet, superimposing over the picture (taken every 20 minutes) the meteo data received from the Oregon Scientific meteo sensor. This will enhance the picture with useful meteo data. Here is an example of what you can see clicking my webcam link :


click to reload actual view

As you can see, at the bottom of the image there are two information lines. Such lines are created by a PHP script that I stored on the server. The first line is the date and time of the picture, while the second is the date and time of the meteo informations (sent every 10 minutes), together with the temperature and humidity at the specific time.

The picture sent by the webcam hasn’t any information, being the camera a very simple device (look below how simple is..)

very home made webcam (click to enlarge)

very home made webcam (click to enlarge)

The bridge from the meteo receiver to the second line of picture is a new App written for an old 7″ tablet, running Android 2.2. This App does what the previous did, but every 10 minutes sends an HTTP GET request to a specific PHP script that I saved on the server. This GET request is formatted with a simple crypting and contains the temperature and humidity read from the sensor. The PHP script on the server receives the meteo data and creates a file with such infos. When the user clicks the link of my webcam, the PHP script loads the picture received from the webcam and the meteo data received from the tablet and creates on-the-fly the image you receive on your browser. Obviously, the tablet running the App connects to the Internet thru the home modem / router that acts as a WiFi hotspot.

I haven’t published this App on Google Play ‘cause I decided to use, as communication port, the internal ttyS0 of the tablet. Such communication port was present in almost all the first models of tablets, but was used by the system for the “console” service. I modified the init.rc file of my rooted tablet (running Uberoid image) in order to disable the console service on that port, so I connected my RX-Met1 receiver directly to ttyS0 without any USB-Serial interface. This approach is too “specialistic” and therefore isn’t idoneous to the Play Store distribution. I just added a small video to show how I arranged the old tablet in a box with the receiver and the PIR sensor… (Dailymotion video)

MeteoRx22 di robotop

This way of sending sensor data over the Internet can be easily achieved with new low-cost modules, like ESP8266 that gives you the power of WiFi at very low price, with extreme easy of use.

IP Query – utility di rete per Android

L'icona dell'applicazione

L’icona dell’applicazione

Sempre più spesso gli smartphone vengono usati per connessioni Internet, non solo per la navigazione del Web o per la messaggistica istantanea, ma anche per il controllo a distanza di apparecchi collegati in rete. Ho così deciso di scrivere una piccola App che svolge due compiti : verificare se è possibile connettersi ad una certa “porta” su uno specifico IP e se si riceve risposta ad un “ping” inviato verso un IP. Nello screenshot sottostante si vede che la porta 80 (http) dell’IP (il modem / router di casa) è raggiungibile.

Screenshot dell'App a seguito del comando Test

Screenshot dell’App a seguito del comando Test

In alto, sullo schermo, si nota l’IP locale dello smartphone, che essendo collegato in WiFI ha avuto dal server DHCP l’IP . La porta 80 è raggiungibile perché il modem / router ha un’interfaccia di programmazione attraverso un browser web, quindi via HTTP.

Il comando di Ping invia un pacchetto ICMP e verifica che l’IP impostato sia raggiungibile. Alcuni server bloccano il servizio di risposta al ping per ragioni di sicurezza, ma nella maggior parte dei casi è possibile vedere se un IP è attivo ed operante.

Sia il comando Test che il Ping inviano una singola richiesta. Se si riceve come risposta un “no”, è opportuno eseguire di nuovo la prova per tre o quattro volte, per essere sicuri.

L’applicazione è disponibile gratuitamente su Google Play Store.

Terne Pitagoriche

pitagoraIl signore nell’immagine, che giustamente pensa di essere “troppo” forte, è Pitagora. Avendo una mente incline alla matematica, arrivò a calcolare che il quadrato costruito sull’ipotenusa è pari alla somma dei quadrati costruiti sui cateti (nel caso di un triangolo rettangolo, ovviamente). So che i Babilonesi arrivarono alla stessa conclusione diverso tempo prima, usando un metodo quasi “grafico”, e noi ringraziamo tutte queste menti brillanti e applichiamo la regola lasciataci in dono per fare i nostri calcoli.

Normalmente conosciamo i due cateti e dobbiamo trovare l’ipotenusa, oppure conosciamo l’ipotenusa e un cateto e dobbiamo trovare l’altro, ma recentemento ho aggiunto alla mia calcolatrice Android (scaricabile da Google Play Store, vedi link)  un tasto che compie un’azione diversa: possiamo inserire un valore per l’ipotenusa e la calcolatrice ci restituirà tutti i possibili valori dei cateti. Questa funzione è particolarmente utile a chi prepara gli esercizi per gli studenti, infatti con un semplice click si possono creare le cosiddette “Terne Pitagoriche”.

Prima di scrivere l’applicazione per Android, ho provato l’algoritmo sul PC, usando il solito FreeBasic. Ecco la schermata relativa ai risultati avendo dato in ingresso un valore di ipotenusa pari a 17.00 :


cliccare l’immagine per ingrandire

La precisione dei numeri è compresa nella regione delle due cifre decimali ; questo vuol dire che sia l’ipotenusa, sia i cateti sono numeri “precisi”, cioè sono terne esatte con al massimo due cifre decimali. Naturalmente, anche se nella schermata si vede A= 2.60 e B= 16.80, vale anche la soluzione A= 16.80 e B= 2.60 ; le simmetrie non vengono stampate dal programma per non dare un’inutile ripetizione.

Chi volesse provare il programma sul proprio PC, potrà scaricare l’eseguibile zippato a questo link ; per decomprimerlo occorre fornire la password che è: eficara . Per verificare che il file scaricato sia l’originale e non sia stato manipolato da biechi individui, potete controllare l’hash MD5 che deve essere: B09D351E99FB13C4E45993F0D56A12C9 .

Nota: ho inserito questa funzione anche nella mia calcolatrice Android (gratuita).

SeaMonkey Browser – modify the UserAgent string

ATTENTION, please ! Playing with browser’s preferences may DAMAGE or ERASE your browser’s and email accounts and data ! So, it’s MANDATORY to create a backup of the user’s profile before starting the activity !

I need for a sort of “filter” to make “private” some PHP scripts on my website. I just want that such scripts will work only when accessed by my PC’s browser. My public IP changes very often (it’s dynamic) so can’t be used as a proof of a request coming from my PC. An easy way can be to add a personalized message to the usual UserAgent string of my browser. I use “SeaMonkey” ‘cause is very fast and “light” and also integrates the email client ; looking at the configuration options I didn’t found how to modify the UserAgent string, but googling for an answer I found that there is a preference that can be set to override the default one. The problem is that I don’t want just to override the “normal” UserAgent, but I just want to “append” my own string. So I created a very small PHP script just to know what’s my actual UserAgent. I called this script “UAget.php” ; it’s very simple, look at the picture below (note that clicking on the pictures loads 1:1 scale view)

The PHP script UAget.php

The PHP script UAget.php

I saved that script to an executable folder of my website (that can handle PHP scripts, obviously). Now, starting SeaMonkey and giving the URL of my script I had this result :

UAmod-pic1That’s my actual UserAgent. Well, I copied the whole string to the clipboard (ctrl-C) for future use.

UAmod-pic2At this point, I can try to add my personalized string to the UserAgent. For adding a new preference to the SeaMonkey’s configuration, you have to type “about:config” in the URL bar. You will receive an alert like this:

UAmod-pic3Don’t care about this, just click the button “I’ll be careful, etc” and go on…

UAmod-pic4Now you can see a list of option keys. Just click in empty space the right mouse key and on the descending menu choose: New, then: string and click for confirmation. You will be asked about the name of new preference:

UAmod-pic5The name will be: “general.useragent.override”, so write it down and click OK. Now a new box opens, requesting the string related to the new preference:

UAmod-pic6At this point, we paste (ctrl-V) the contents of the clipboard, that’s the original UserAgent string, and then append our personal string, in this example: ” Pippo/9.1.2015″, clicking OK to confirm. Look, our new “key” is part of the preferences list.

UAmod-pic7Ok, now we close the browser, then open it again and again we write the URL that points to our “UAget.php” script and this is the result:

UAmod-pic8Well done… our browser’s UserAgent, now, has an additional field: ” Pippo/9.1.2015″. This can be used in our PHP scripts to determine if the script itself will answer to requests or not, by means of parameter $_SERVER[‘HTTP_USER_AGENT’] used as filter. If the parameter contains our personalized string, then the script has been accessed by our browser (or by any other device that has ” Pippo/9.1.2015″ as part of the UserAgent).

Riciclare un vecchio tablet in flip-clock

Iniziai nel 2011 ad utilizzare dei tablet “cinesi” come economiche periferiche di I/O per i miei circuiti elettronici. Costruire “da zero” un dispositivo equivalente, cioè un display touch-screen 7″ a colori, con dispositivo audio, interfaccia USB Host, connessioni LAN e Wi-Fi, lettore di microSD, batteria ricaricabile al Litio di considerevole capacità e con un processore che “gira” a 800MHz o più, mi costerebbe almeno 150-200 Euro, anche se acquistassi i materiali per quantità non indifferenti (un centinaio di pezzi). Ricordo di aver comprato, negli anni passati, diversi modelli di tablet 7″ a meno di 70 Euro l’uno ed oggi costano anche molto meno ! Quindi, l’utilizzo di un tablet come periferica di I/O è sempre un “buon affare”. Ora, però, ho alcuni vecchi tablet da 7″ con touch-screen resistivo che non hanno più “mercato”, cioè sono superati come prestazioni per poterli utilizzare in nuove applicazioni e difficilmente “rivendibili” anche a metà del costo perché nei vari shop on-line si trovano modelli nuovi a prezzi “stracciati”. Allora… cosa farne ? Ecco la mia soluzione: un Flip-Clock, cioè un orologio “da parete” con le cifre che “flippano”, cioè cambiano come nei modelli meccanici dei vecchi tempi. Per chiarire il concetto, ecco lo “screenshot” dell’applicazione che gira su un tablet.

L'applicazione in funzione su tablet con schermo 800x480 scala:1

L’applicazione in funzione su tablet con schermo 800×480 scala:1

L’applicazione è stata testata su un vecchio tablet Android 2.2 con dimensioni di schermo 800×480 scala:1 e anche su un recente Phablet 6.5″ (Phone Tablet, quello usato per catturare lo screenshot visibile in figura) con Android 4.2 e comunque con display 800×480 scala:1. L’applicazione rimane sempre “accesa”, bloccando il normale autospegnimento del dispositivo. Se si desidera spegnere il telefono / tablet, si deve uscire dall’applicazione e quindi effettuare il normale spegnimento.
Nota 24 Mar 2015: Ho modificato l’App in modo che si adatti a diversi tipi di schermo. Ho anche aggiunto il cambio di modalità di visualizzazione da ore:min a min:sec e viceversa quando si tocca lo schermo. In modalità ore:min si ha anche il lampeggio ogni secondo di un “led”..

Tutto qui. L’applicazione è disponibile gratuitamente sulla mia pagina di Google Play .

Firmware e App per Meteo RX con Passive Infrared Sensor

Ho aggiunto al ricevitore per il sensore Oregon Scientific modello THGR228NF, che lavora in RF a 433 MHz (vedi link_1 e link_2), una parte di firmware per interfacciare un rivelatore PIR (Passive InfraRed) di tipo HC-SR501 o simile.

Sensore di movimento Passive Infrared

Sensore di movimento Passive Infrared

Lo scopo di questa aggiunta è di passare al tablet (o smartphone) collegato, l’informazione relativa alla presenza di una persona. Il circuito, tramite la connessione seriale, informa l’applicazione che c’è un movimento e così lo schermo passa da bassa ad alta luminosità (e viceversa). Sulle specifiche del componente si legge che l’uscita può avere livello 0V (non attivo) oppure 3.3V (attivo) ; il livello di 3.3V sarebbe un po’ basso come “logic high” per essere collegato direttamente al pin di input di un microcontrollore alimentato a 5V, ma usando la pull-up interna del micro e considerando lo schema interno del sensore (la linea di out ha una piccola resistenza in serie), si ottiene un livello accettabile.

Il ricevitore collegato al sensore PIR e di fianco il sensore Thermo-Hygro THGR228NF

Il ricevitore collegato al sensore PIR e di fianco il sensore Thermo-Hygro THGR228NF

Il nuovo firmware per il micro ATtiny2313 della Atmel è disponibile per il download ; il file zippato rxmet-ir.zip contiene il file .hex che si dovrà trasferire nel microcontrollore. La password per decomprimere questo file è eficara. La configurazione dei “fusibili” per il micro ATtiny2313 è la seguente:

High fuses: 11001001 (0xC9) Low fuses: 11011101 (0xDD)

Lo schema elettrico è stato modificato come in figura sotto ; non ho rifatto il circuito stampato, perché tutte le aggiunte sono state apportate semplicemente saldando dei fili alle nuove periferiche collegate (l’interfaccia USB-TTL e il sensore PIR).

Lo schema del circuito modificato

Lo schema del circuito modificato

Una volta programmato il micro, si potrà fare un test usando il terminale seriale di Windows (Hyperterm) o un qualsiasi altro terminale settato per 19200,N,8,1 come nella figura sottostante:

Il terminale seriale mostra messaggi ricevuti dal meteoRX

Il terminale seriale mostra messaggi ricevuti dal meteo-RX

Notate i messaggi IRsens=1 e IRsens=0 : questi vengono trasmessi, rispettivamente, quando il sensore PIR si attiva per un movimento “umano” e quando si disattiva. L’applicazione aumenta al massimo la luminosità del display nel primo caso, mentre la diminuisce nel secondo. In funzione della versione di Android e del dispositivo su cui si fa girare l’applicazione, si potrà avere un comportamento diverso ; la riduzione a zero, infatti, non ha un comportamento univoco. Sugli apparecchi che ho potuto provare, il display rimane comunque acceso con bassa luminosità, ma dalla “letteratura tecnica” sull’argomento, si deduce che in qualche caso lo schermo possa spegnersi del tutto. Modifica 23 Dic 2014: ho testato il funzionamento del comando di luminosità su un vecchio tablet Android 2.2 ed effettivamente, con la luminosità a zero, lo schermo si spegne del tutto e in più l’applicazione viene chiusa, cosa che assolutamente non è auspicabile. Per tagliare la testa al toro, ho modificato il programma in modo che la luminosità non vada più a zero, ma ad un valore appena superiore. L’effetto di “dimming”, visivamente, è identico, ma il tablet rimane acceso e l’applicazione attiva. In ogni caso, questa particolare applicazione, che fa uso di una interfaccia USB-TTL, non può essere installata su un dispositivo Android V2.2 , perché la gestione delle periferiche USB è completamente diversa ; nelle vecchie versioni di Android, infatti, se il chip montato sulla periferica USB è riconosciuto dal sistema, come nel caso del PL2303 Prolific o del CP2102 Silabs, nell’elenco delle periferiche (sulla directory /dev) appare la ttyUSB5, che può quindi essere utilizzata come porta seriale. Sul mio vecchio tablet (aperto, smontato e pesantemente modificato) ho utilizzato, per la comunicazione con il MeteoRX, addirittura la porta ttyS0 (la seriale standard), modificando l’avvio di Linux per disattivare il servizio “Console” normalmente attivo proprio su tale porta. Non pubblico su Google Play anche questa versione dell’applicazione, perché richiede la modifica del firmware del tablet per poter funzionare.

Nella foto sottostante vedete l’applicazione che gira su un tablet da 6.5″ con risoluzione 800×480, scala=1 :

App in funzione su tablet 800x480 scala=1

App in funzione su tablet 800 x 480 scala=1

Nella prossima foto, invece, c’è l’applicazione in funzione su uno smartphone con schermo da 4.3″ con risoluzione 1280×720 scala=2 :

App in funzione su smartphone 1280x720 scala=2

App in funzione su smartphone 1280 x 720 scala=2

L’applicazione è disponibile gratuitamente per il download sulla mia pagina di Google Play, mentre il circuito deve essere autocostruito perché non è disponibile in commercio. Buon divertimento… e auguri di buon Natale e felice anno nuovo 🙂

Meteo RX riscritto su tablet Android

Ho modificato il circuito del ricevitore Meteo per sensore Oregon Scientific (vedi articolo). Nello schema sottostante si possono vedere le modifiche che consistono in due tagli (dove ci sono le X rosse) e in una resistenza aggiunta. In questa versione, il circuito viene alimentato direttamente dall’interfaccia USB-TTL, attraverso il pin Vcc (oppure 5.0V) che trasferisce direttamente la tensione di 5V dal sistema ospite; la resistenza aggiunta serve a fare da partitore, in quanto l’uscita seriale del micro è tra 0 e 5V mentre il convertitore USB a cui deve essere collegato lavora a 3.3V (tramite un regolatore interno) ; alcuni integrati sono in grado di tollerare un input a 5V anche se lavorano a 3.3V, ma per stare tranquilli ed avere un circuito “per usi generali” ho preferito aggiungere questo componente.

Schema modificato. Cliccare per ingrandire

Schema modificato. Cliccare per ingrandire

Dopo aver modificato il circuito e collegato l’interfaccia USB-TTL, ho scritto una applicazione “elementare” per un tablet Android low-cost. Per semplificare il lavoro, ho usato la versione del micro che invia i dati relativi alla temperatura ed umidità in “plain text”, eseguendo la decodifica del protocollo del sensore direttamente “on-chip”. Per questa ragione il software sul tablet è estremamente semplice, in quanto si limita a “splittare” la stringa di dati ricevuta dal microcontrollore nelle due finestre relative rispettivamente alla temperatura e all’umidità. Il prossimo passo sarà l’invio di queste informazioni al server web e poi la realizzazione di uno script PHP che le inserirà nella foto che viene inviata dalla mia webcam. In questo modo avrò a disposizione sia un bel display per leggere la temperatura, sia una webcam più ricca di informazioni. Nella foto sottostante potete ammirare l’insieme di tablet, ricevitore e convertitore USB-TTL in funzione.


Usare lo smartphone come telecomando TV

Qualche tempo fa ho proposto in queste pagine un circuitino basato su un convertitore USB-RS232 da collegare ad un tablet Android per realizzare un telecomando a raggi infrarossi. In quell’occasione il convertitore USB veniva “visto” da Android come una porta seriale ttyUSB5, ma si trattava di una vecchia versione del sistema operativo (la 2.6 se ricordo bene). Nelle nuove versioni, le periferiche USB sono gestite in modo del tutto diverso e così la vecchia applicazione che avevo scritto un paio d’anni fa non funziona sui nuovi dispositivi. A questo punto, ho pensato di riscriverla perché possa funzionare sui nuovi smartphone (o tablets) basati su Android 4.0 e successivi. Nella foto sottostante potete vedere il mio smartphone con la periferica collegata e il programma in funzione.

IRemoteUSB-pic1A parte la gestione dell’interfaccia USB, il principio di funzionamento è lo stesso. Si sfrutta la porta seriale per inviare dati formattati in un modo particolare. Utilizzando la velocità di 115200 BPS, una lunghezza di 7 bits ed 1 stop bit, infatti, si ha la possibilità di generare dei “bursts” di 38.4 KHz che vengono ricevuti molto bene dal sensore IR contenuto nel TV. Nel disegno qui sotto si vede come questo sia possibile:

serial7bitIn questo esempio vediamo la trasmissione seriale di due caratteri di valore 0x5B (hex) ; se però guardiamo la forma d’onda da un punto di vista differente, scorgiamo un burst di 6 impulsi con una frequenza di 38.4 KHz ! Ogni bit, a 115200 BPS, dura infatti 8.68 uS ; noi usiamo 3 bits per definire un periodo della nostra onda rettangolare e così la durata totale è di 26.04 uS che corrisponde appunto alla frequenza di 38.4 KHz. Grazie a questa “fortunata coincidenza”, possiamo usare la porta seriale per emettere una serie di caratteri che formano bursts e pause rispettando il protocollo di trasmissione di un telecomando a raggi infrarossi. La mia applicazione per Android utilizza il protocollo SONY e funziona perfettamente con un televisore di modello “Bravia”. Si possono realizzare senza problemi anche altri protocolli, quali il NEC o il Philips (RC5) ; il programma sarà diverso, ma il principio resta lo stesso.

Ovviamente, non basta usare lo smartphone e scaricare l’applicazione, si deve avere una interfaccia USB-TTL e in più si deve costruire un piccolo circuitino. La figura seguente mostra lo schema elettrico ed il prototipo.

IRemoteUSB-schEsistono moltissimi modelli di interfaccia USB-TTL, io ho comprato quella mostrata in figura presso un “noto negozio on-line” ed ho speso (compresa la spedizione dalla Cina) meno di due Euro. Il circuitino con il transistor serve a dare un po’ di potenza al LED infrarosso ; con questa interfaccia e “mirando” bene verso il sensore del TV, ho raggiunto una distanza utile di oltre tre metri.

L’applicazione per Android è molto semplice: ha solo sei tasti che servono per le funzioni “classiche”, che sono il cambio di canale (CH+ e CH-), la modifica del volume (VOL+, VOL- e MUTE) e l’accensione / spegnimento del TV (POWER).

Screenshot_2014-11-27-13-46-43Se si lancia l’applicazione SENZA aver collegato l’interfaccia USB, si riceve una schermata di errore.

Screenshot_2014-11-27-13-26-26Se invece si lancia l’applicazione con l’interfaccia collegata, viene richiesta l’autorizzazione all’uso di tale periferica da parte del programma.

Screenshot_2014-11-27-13-46-30L’applicazione è disponibile gratuitamente su Google Play , mentre il circuito lo dovete costruire voi… 😉 Buon divertimento.

All Stars – rompicapo per Android

Una domenica con meteo tipicamente autunnale ; nebbiolina e grigio ovunque… giornata ideale per programmare un rompicapo per smartphone Android. La prima versione di questo programma la realizzai per Windows nel 2002, ispirandomi al un gioco brevettato dalla Tiger nel 1999 che si chiamava Lights-out. L’originale era una scatoletta di plastica con 25 bottoni di gomma semitrasparente disposti a matrice 5×5, con sotto altrettanti leds. Premendo un pulsante, si cambiava lo stato del led sottostante e di quelli a nord, sud, est e ovest, se esistenti. La versione per PC l’avevo chiamata Flip-Flop ed i pulsanti avevano come simboli lo zero per lo stato di spento e l’ uno per quello di acceso. Si partiva sempre da una condizione casuale. In questa versione per Android, invece, ho utilizzato dei “bottoni” circolari che sono senza alcun segno (spento) o con una stella al centro (acceso). Per questo ho chiamato il gioco “All Stars”, perché lo scopo è di arrivare, cliccando i bottoni, ad una condizione in cui tutte le stelle siano accese.

 Nella figura sottostante si vede il gioco appena avviato…

allstars-empty…mentre in quella seguente si vede il gioco risolto. Partendo dalla condizione base (tutto spento) bastano 15 click per arrivare alla condizione di “All Stars”.

allstarts-fullNaturalmente, se si preme il pulsante MIX le cose si fanno più complicate. Questo pulsante, infatti, provoca 100 mosse casuali a partire dalla condizione corrente, cioè preme “a casaccio” per cento volte uno dei 25 pulsanti, creando una nuova situazione di gioco.

L’applicazione è disponibile gratuitamente su Google Play .

19/11/2014 – Un amico ha installato il gioco e mi ha detto: “Ma… sei sicuro che funzioni ?”. Ho così deciso di aggiungere qui una delle possibili soluzioni, quella che parte dalla condizione iniziale del gioco (con tutte le stelline spente). Con 15 clicks è possibile arrivare al risultato di “all stars”. Nella figura sottostante potete vedere dove cliccare ; per comodità andate dall’uno al quindici, ma potete anche seguire un ordine diverso…


Semplice rompicapo

In occasione della festa di tutti i Santi ho deciso di scrivere questa piccola applicazione. Per meglio dire, l’ho tradotta dalle versioni che avevo scritto in precedenza per smartphone WM6 e per PC (sotto Linux), in modo da poterla far “girare” su uno smartphone (o un tablet) Android. Si tratta del ben noto rompicapo che si giocava da bambini con un quadrato di plastica provvisto di 15 tessere mobili. Si facevano un po’ di mosse a casaccio per mettere le tessere in disordine (o si chiedeva ad un amico di “mischiare”) e poi si iniziava a risolvere il gioco, tentando di rimettere tutto a posto. Alcuni si stufavano e smontavano le tesserine con un piccolo giravite per poi rimontarle nell’ordine giusto. Beh, non usate quest’ultimo sistema sul vostro smartphone ! Potreste rovinare lo schermo 🙂

Nella figura sottostante potete vedere quello che appare sullo schermo una volta lanciata l’applicazione :

Screenshot_2014-11-01-12-17-49Premendo il tasto “MIX” verranno eseguite automaticamente delle mosse casuali e ci troveremo davanti ad una situazione come quella sottostante :

Screenshot_2014-11-01-12-17-26Ora dovremo cercare di rimettere tutto a posto, toccando le tessere che sono “mobili”, cioè quelle che hanno un lato adiacente allo spazio vuoto. Nel caso della figura mostrata, come prima mossa potremo spostare solo le tessere numerate: 2, 15, 7 e 1 . La tessera mossa occuperà lo spazio libero e ne lascerà uno nuovo al proprio posto.

L’applicazione per Android è disponibile, gratuitamente, su Google Play .