Lcd controller; connect 20×4 character LCD to parallel port

I use the Alix-1D motherboard for embedded applications, with Puppy Linux OS and Gambas2 visual Basic IDE. It’s very easy to connect an LCD character display to the parallel port of the motherboard. There is a PIN STRIP connector, named J14, that provides all the signals for the parallel port. In my application I used the Hitachi LM044L display connected to the board in this way:

schematic diagram of display connections

schematic diagram of display connections

  • DB7..DB0 – Data bus, connected to ‘D7..D0’ of LCD
  • /STB – Strobe, connected to ‘E’ of LCD
  • /SCI – Slct-in, connected to ‘WE’ of LCD
  • /AFD – Auto-LF, connected to ‘RS’ of LCD
  • GND – Signal ground, connected to ‘VSS’ of LCD
  • The +5V supply can be taken from pin 4 of connector J15

lcd20x4picThe downloadable file puppy_gambas_lcd.tar.gz contains the whole project folder with sources for Gambas2. This is a minimal working implementation; you have two buttons on the form: the first is for display initialization / clear, the second writes an incrementing character each time you click it, every time moving to next available LCD cursor position.

Clock with binary display / Orologio con display in binario

Binary Clock, built with Microchip PIC16F676 (or PIC16F630).
The hours are displayed with 4 LEDs which are (from left to right) 8,4,2,1; so hours are shown from 1 to 12 (no am and pm).
The minutes are displayed with 5 LEDs that are (from left to right) 40,20,10,5,0; in practice, they show in 5 to 5 way and the exact hour (minute 00) turns ON led 0, because I don’t like to have the minutes row completely OFF.
For viewing the time, press shortly the button. Hours and minutes are shown for 3 seconds, then the LEDs are off.
To adjust the time, press and hold down the button until the top row only turns ON and leds begin a binary counting from 1 to 12.
When you reach the desired time, release the button. After a time of 5 seconds, the display automatically shows the minutes and pressing the button, they advance with the binary counting (5 min steps). When you reach the desired minutes, release the button.
Again, after a time of 5 seconds both the led rows turns ON to show hours and minutes (the seconds are cleared automatically), and everything is shut down. The time has been set. The file binwatch.zip contains the wiring diagram in PDF format and the object file (Hex) to program the micro.

The C source was compiled with CC5X Version 3.2I, Copyright (c) B Knudsen Data,Norway 1992-2005 (free edition). If you want to take a look at C source code, click this link.

The prototype: back and front views

This is the PCB diagram (just small image, but a link to PDF 1:1 scale is provided)

For a full size 1:1 PDF, click this link

Note that the circuit uses conductive vias.

Orologio con display binario, realizzato con Microchip PIC16F676 (oppure PIC16F630).
Le ore vengono visualizzate con 4 led che valgono (da sinistra a destra) 8,4,2,1; vengono mostrate quindi le ore da 1 a 12 (niente am e pm). I minuti sono visualizzati con 5 led che valgono (da sinistra a destra) 40,20,10,5,0 . In pratica i minuti vengono mostrati di 5 in 5 e lo scoccare dell’ora (minuti 00) fa accendere il solo led 0, questo perché mi sembra brutto lasciare del tutto spenta la riga dei minuti. Per ottenere la visualizzazione dell’orario, si preme brevemente il pulsantino. Le cifre vengono mostrate per 3 secondi, quindi i led vengono spenti. Per regolare l’ora si tiene premuto a lungo il pulsante fino a quando si accende solo la riga superiore (ore) e i led cominciano un conteggio binario da 1 a 12. Quando si raggiunge l’ora desiderata, si lascia il pulsante.
Trascorso un tempo di 5 secondi, il display mostra automaticamente i minuti e premendo nuovamente il pulsante, questi avanzano con il conteggio binario (si regola, quindi di 5 min in 5 min). Quando si raggiunge il minuto desiderato, lasciare il pulsante. Dopo un tempo di 5 secondi i led si accendono a mostrare ore e minuti (i secondi vengono azzerati automaticamente) e infine tutto si spegne. L’orario è stato regolato.
Il file binwatch.zip contiene lo schema elettrico ed il file oggetto .hex per programmare il micro.

Il codice sorgente in C è stato compilato con CC5X Version 3.2I, Copyright (c) B Knudsen Data,Norway 1992-2005 (free edition). Se desiderate dare un’occhiata al codice sorgente in C dell’applicazione, cliccate questo link.

binwatch_sch

schematic diagram ; click the image to enlarge. A PDF version is included in the downloadable ZIP file

 

“Fast Reading” teacher’s tool

This program has been developed as a teacher’s tool for “Fast Reading” technique. The purpose is to show on video some random numbers at a specific time. The user can modify the number of digits (tipically 3 to 6), the persistence of the digits on the screen (in 100 mS steps) and the interval from a number to the next (in 100 mS steps).  There is also the possibility to activate (with a checkbox) the sound, that is a metronome tick that is played every time a new number appears on the screen. Here is a screenshot :

fastread_ssI wrote this program with VB6 and tested on WinXP, but I think it will also run on newer Windows versions. The request for such tool comes from my son that is involved in PNL and similar (strange) things 🙂

Disclaimer : this is a demo program and has no warranties, nor support. I’m not responsible for any damage it can create to you and your computer if you try to install it, so use at your own risk…

I agreed with disclaimer terms and want to download the installation file clicking this link.

Update: I tried to install the application under Win7_64 and it worked. When executing the setup.exe you can see a warning like this :

awarningIt’s normal ; close all running applications and click OK.

Roman numerals clock : orologio LCD con numeri romani

Questo circuito che vi propongo, basato su micro ATtiny2313, realizza un orologio LCD con numeri romani.

Il prototipo del circuito, realizzato su una scheda millefori.

Il prototipo del circuito, realizzato su una scheda millefori (segna le 17:20)

Alla prima accensione mostra una schermata lampeggiante con la scritta “Tempera tempus” per ricordare che si deve effettuare la regolazione.

Le fasi della regolazione dell'ora

Il display in fase di richiesta regolazione (prima riga) e nelle fasi di visualizzazione (ultime due righe). La scritta “et” lampeggia con cadenza 1 secondo.

La regolazione si effettua mediante questa procedura :

1) Premere e tenere premuto il pulsante per circa 3 secondi ; sullo schermo appaiono le ore ; rilasciare il pulsante.
2) Premere nuovamente il pulsante e tenerlo premuto ; le ore avanzano da “I” a “XXIV” ; rilasciare il pulsante sull’ora giusta.
3) Attendere circa 3 secondi ; sullo schermo appaiono i minuti.
4) Premere nuovamente il pulsante e tenerlo premuto ; i minuti avanzeranno da “nulla” a “LIX” ; rilasciare il pulsante sui minuti giusti.

Non essendoci una batteria, l’orologio non mantiene l’ora se va via la corrente. Ogni volta che si stacca l’alimentazione, alla riaccensione verrà visualizzato il messaggio che ricorda di effettuare la regolazione. Nella figura sottostante potete vedere lo schema elettrico. Per una visione più dettagliata, scaricate il PDF dal link indicato nella didascalia.

il file PDF può essere scaricato da questo link

Cliccare l’immagine per ingrandirla ; il file PDF può essere scaricato da questo link

Il display LCD che ho utilizzato, purtroppo, necessita di una tensione negativa su Vo per ottenere il massimo contrasto. Ho usato un pin del micro per generare un’onda quadra e il circuito in basso a sinistra nello schema (transistor, condensatori e diodi) per ottenere tale tensione. In caso di display LCD “normali”, cioè in grado di funzionare bene anche con sole tensioni positive, tale circuito diventa inutile e può essere eliminato.

Nel file ef162.zip scaricabile a questo link sono contenuti :
– schematic.pdf , lo schema elettrico del circuito
– roman.hex , il file HEX per la programmazione del micro
– fuses.txt , il file di testo con la configurazione dei fusibili del micro per questa applicazione.

Se desiderate dare un’occhiata al codice sorgente in C dell’applicazione, cliccate questo link.

RxMet1 – ricevitore per sensore esterno Hygro-Thermo a 433 MHz

Questo circuito permette di ricevere i dati trasmessi da un sensore Oregon Scientific modello THGR228NF (visibile nella figura sottostante) in radiofrequenza a 433 MHz.

sensor-THGR228NFIl circuito è stato pubblicato (a mio nome) sulla rivista CQ Elettronica nel numero di Settembre 2007 (consultare la rivista per maggiori dettagli).

Il microcontrollore utilizzato è un Atmel ATtiny2313 ; lo schema è visibile qui sotto:

Per una visione nitida, scaricare il PDF da questo link

Cliccare l’immagine per ingrandirla ; il file PDF può essere scaricato da questo link

Nella prossima immagine si può vedere il prototipo del circuito con i componenti montati :

rxmeteoIl circuito stampato è visibile nell’immagine qui sotto ; ovviamente, per realizzare un circuito mediante fotoincisione, bisogna stampare l’immagine in scala 1:1 e pertanto è opportuno scaricare il file PDF raggiungibile tramite il link nella didascalia dell’immagine.

stampato

Il file PDF in scala 1:1 può essere scaricato da questo link

Infine, nella prossima immagine si può vedere la disposizione dei componenti sul circuito.

montaggio

Il file contenente l’elenco dei materiali, il codice HEX da scrivere sul micro ed i batch files per settare il clock esterno e per effettuare la programmazione dell’ATtiny2313 (tramite il programma freeware SP12), può essere scaricato da questo link. Se desiderate dare un’occhiata al codice sorgente in C dell’applicazione, cliccate questo link.

I dati in uscita dal circuito sono “grezzi”, cioè rappresentano in Ascii l’insieme di bits ricevuti dal sensore, raggruppati in notazione esadecimale. Nella figura sottostante, i dati ricevuti dal sensore sono mostrati nel riquadro a sfondo verde (quello in alto, per i daltonici..) mentre la “traduzione” in temperatura e umidità sono nel riquadro a sfondo blu (quello in basso).

Screenshot del programma su PC per la visualizzazione dei dati

Screenshot del programma su PC per la visualizzazione dei dati

Ho realizzato il programma in VB6 ; chi fosse interessato può scaricare il file d’installazione da questo link. Ricordo che il programma è offerto gratuitamente a scopo di test e non ha alcuna clausola di garanzia e nessuna assunzione di responsabilità da parte mia per eventuali danni o malfunzionamenti.

Il “cuore” di questo programma è una DLL (libreria) scritta da me per decodificare il protocollo di trasmissione del sensore. Chi volesse scrivere un proprio programma per visualizzare i dati forniti dal sensore, potrà usare liberamente tale DLL scaricandola da questo link e inserendola nel proprio programma. Di seguito, un esempio di come utilizzare la DLL in un programma VB6 per decodificare la stringa di dati “grezzi” ricevuti dal sensore in valori leggibili di temperatura e umidità:

// declare the convert function
Private Declare Function RawConvert Lib "meteo.dll" (ByVal text As String) As String

// use the function
//  rxraw contains the full ascii string received from RxMet1
//  rxd contains the decoded Temperature and Hygro
dim rxd as string
dim rxraw as string

    rxd = RawConvert(rxraw)

Nota: questo materiale fu già pubblicato su un mio vecchio sito (ora cancellato) e venne citato da “Hack-a-day” nel settembre del 2007.

One button, two leds using single GPIO on RPi

Once again, a “superused” GPIO… This time, the RPi I/O is used for driving two leds (one blue, one red) and a pushbutton. The schematic is simple, look at the pic below:

tri-schAnd here is the prototype realized on perfboard:

tri-picNote: pictures are taken with leds off, red led on, blue led on.

There is also a new Python script named service2.py :

import RPi.GPIO as GPIO
import time
from subprocess import call

cnt = 0  # reset counter for pushbutton pressed
toggle = 0  # reset toggle flag
GPIO.setmode(GPIO.BCM)  # set GPIO mode
while True:  # main loop
    GPIO.setup(4, GPIO.OUT)  # GPIO.4 set as output
    GPIO.output(4, False)  # GPIO.4 output set at low level (red led ON)
    time.sleep(0.2)  # 200mS pause with red led ON
    if toggle != 0:  # if toggle flag set
        GPIO.output(4, True)  # GPIO.4 output set at high level (blue led ON)
        time.sleep(0.2)  # 200mS pause with blue led ON
    GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_OFF)  # GPIO.4 set as input, no pull-ups (both leds OFF)
    for n in range(0,2):  # exec twice
        time.sleep(0.1)  # wait for 100 mS prior to read pushbutton status
        if GPIO.input(4):  # if GPIO.4 is high (button NOT pressed)
            if cnt >= 4 and cnt <= 6:  # if was pressed for 2-3 sec
                 toggle ^= 1  # invert toggle flag
                 if toggle == 0:  # if changed to 0
                     call("sudo killall x11vnc", shell=True)  # terminate x11vnc server
                 else:  # if changed to 1
                     call("sudo x11vnc", shell=True)  # start x11vnc server
             cnt = 0  # reset counter for pushbutton pressed
         else:  # if GPIO.4 is low (button pressed)
             cnt += 1  # increment counter for pushbutton pressed
     if cnt >= 10:  # if continuously pressed for 5 seconds (cnt increments 2 times in a second)
        GPIO.setup(4, GPIO.OUT)  # GPIO.4 set as output
        GPIO.output(4, False)  # GPIO.4 output set at low level (fix red led ON as signal for user)
        call("sudo poweroff", shell=True)  # terminate and shutdown
        break  
    if toggle != 0:  # if toggle flag set
        time.sleep(0.4)  # (blue blinked for 0.2 Sec) wait the remaining time for 1 Sec main cycle
    else:  
        time.sleep(0.6)  # (blue off) wait the remaining time for 1 Sec main cycle

How it works:

Normally, the red led is lighted for 200 mS, then the button is sampled for pressed state. If the button is pressed for a time between 2 and 3 seconds, then the variable toggle is inverted. When toggle is “1”, after the red led turns off, the blue one turns on for 200 mS. If the button is pressed again for 2-3 Sec, the variable toggle is inverted again and at next cycle the blue led will no more turn on. When the toggle variable changes, there are two actions performed by the script : if toggle is 0 (off) then a call to “killall x11vnc” is performed, while if is 1 (on) a call to “x11vnc” is done. This means that I can control the start or stop of x11vnc server with my pushbutton. If I press the button for a time over 5 seconds, there is a call to the “poweroff” and the board will turn off. Please, note that when the pushbutton is pressed the blue led can’t turn on, while the red one will be forced on (at low current, 1mA).

Here is a video of circuit and program running:

tri-film di robotop

Hope this will be useful for someone… 🙂

Double function GPIO on RPi

I’m using the Raspberry Pi board in some projects. Many of these needs to run 24/7, so the hardware has battery backup in case of power fail. Sometimes, the device controlled by RPi board has to be powered off for maintenance, so it’s also necessary to turn off the control board, but there’s no video, no keyboard, neither mouse attached. The operator must connect all of these to perform a clean shutdown. Ok, that’s unacceptable: I decided to add a blinking led to inform the operator that the board is running and a switch to manually perform the shutdown, without the need for keyboard, mouse and video.
There was a problem: I just had ONE single GPIO free, the GPIO.4 , so I decided to use it for both led driving and pushbutton input. The principle is very simple: change the port direction and use it alternatively for led and for pushbutton. Here is the schematic:

rpi-led-sw-schAnd this is the prototype circuit mounted for testing purposes:

rpi-led-sw-picThe 1K resistor limits the current from GPIO.4 to about 1.5mA (the red led lights well) and the 470 Ohm resistor limits the current from the pin in case of software error (it happens, sometime) that sets the GPIO.4 as output and its value as high (3.3v). In such case, even if you press the pushbutton switch, the GPIO.4 is loaded with max 7mA (3.3V / 470 Ohm) that is acceptable for the output. When you press the button, the led turns ON even if the GPIO is in input mode, but the current that flows in the led is smaller than in case of GPIO is output-low, being the resistor value 1K + 470 Ohm (approx 1mA will flow thru the led). Note that the resistor values are important : you can’t decrease significantly the value of 470 Ohm, ‘cause the current drawn from GPIO in case of “output high” will be out of GPIO current limits and you also can’t increase that value, ‘cause the partition with led and 1K resistor will supply a voltage out of specs when pressing the pushbutton while the port is in input mode. With actual values, the voltage at GPIO pin when in input and with switch closed is about 0.5V that is in range for being read as logical “0”. Voltage over 0.8V may create unstable “0” reads or can be interpreted as “1” (switch open). Similarly, you can’t increase the value of 1K, ‘cause the current that flows in the led (and its brightness) will proportionally decrease. So, the values proposed in the schematic are “well balanced”…

Now, we have a double function pin. Here is the listing of a Python script I realized to make all this principle working : it’s named “service.py”.

import RPi.GPIO as GPIO
import time
from subprocess import call

# reset counter for pushbutton pressed
cnt = 0
# set GPIO mode
GPIO.setmode(GPIO.BCM)
# main loop
while True:
	# GPIO.4 set as output
	GPIO.setup(4, GPIO.OUT)
	# GPIO.4 output set at low level (led ON)
	GPIO.output(4, False)
	# 200mS pause with led ON
	time.sleep(0.2)
	# GPIO.4 set as input with pull-up (led OFF)
	GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_UP)
	# wait for 100 mS prior to read pushbutton status
	time.sleep(0.1)
	if GPIO.input(4):
		# if GPIO.4 is high (button NOT pressed)
		# reset counter for pushbutton pressed
		cnt = 0
	else:
		# if GPIO.4 is low (button pressed)
		# increment counter for pushbutton pressed
		cnt += 1
	# repeat pushbutton read after 100 mS (ensure isn't a spike)
	time.sleep(0.1)
	if GPIO.input(4):
		cnt = 0
	else:
		cnt += 1
	if cnt >= 10:
		# if continuously pressed for 5 seconds (cnt increments 2 times in a second)
		# GPIO.4 set as output
		GPIO.setup(4, GPIO.OUT)
		# GPIO.4 output set at low level (fix led ON as signal for user)
		GPIO.output(4, False)
		# terminate and shutdown
		call("sudo poweroff", shell=True)
		break  
	# if not terminated, wait the remaining time for 1 Sec main cycle
	time.sleep(0.6)

The main loop has 1 Sec total time : led turns ON for 200mS (so the GPIO is used as output and value is 0) then turns off when the port mode changes to input. After a delay of 100mS the pushbutton state is tested (twice) and a counter is incremented if the switch is closed; if the switch opens, the counter is reset to zero. When the counter reaches 10, so the button was continuously pressed for 5 seconds, the led is forced ON putting the GPIO in output mode with value 0. The shutdown command is then sent to the OS and the Raspberry turns off. At end of shutdown the led that was fixed ON will turn off, obviously.

Note: when you push the button, the led will turn ON ‘cause you connect the cathode to gnd via 1K + 470 Ohm resistence, but you still can see the 200mS blinks due to difference of current flowing in the led when the GPIO is in input state and in output state with value = low (gnd).

Hope this will be useful for someone. It was for me 🙂

Calcolatrice Android con messaggio segreto…

Nota 15/02/2015: ho modificato “pesantemente” l’applicazione, risolvendo alcuni problemi grafici (per esempio a causa di un utente che scelga nelle impostazioni di accessibilità un set di caratteri ingranditi) ed altri legati ai calcoli in virgola mobile, che sono sempre un po’ spinosi, a prescindere dal linguaggio con cui si scrive il programma. La matematica, in certe occasioni, sembra non essere una scienza esatta… ma ecco come appare, adesso, il programma, quando viene avviato:

Screenshot_2015-02-15-18-19-17A parte le normali funzioni ed operazioni, ho voluto aggiungere le “Terne Pitagoriche”, eseguite mediante un tasto (quello con il triangolo rettangolo) che permette di calcolare le misure dei cateti a fronte dell’ipotenusa inserita come parametro d’ingresso.  Il valore dell’ipotenusa dovrà avere al massimo due cifre decimali ed i valori risultanti dei cateti avranno, anch’essi, la stessa precisione. Quindi… i risultati proposti dal programma saranno selezionati tra quelli che hanno un risultato con MASSIMO due decimali, senza approssimazioni. Nella figura sottostante, vediamo il risultato dell’operazione a fronte di un valore di ipotenusa (indicata con ” i”) pari a 17:

Screenshot_2015-02-15-18-19-37L’applicazione è disponibile gratuitamente su Google Play Store.

———————————————————————————————————————

Iniziamo l’anno con un regalo: una piccola applicazione per il vostro Smartphone (o Tablet) Android. Si tratta di una semplice calcolatrice, che però nasconde un piccolo segreto. Digitando una speciale sequenza di caratteri, viene mostrato un messaggio segreto. Di sotto vedete un’immagine di come si presenta l’applicazione appena avviata…

L'applicazione appena avviata.

L’applicazione appena avviata.

Ora proviamo a inserire la “sequenza segreta” che per default è composta da 9 caratteri che sono 1 / 1 / 2014 =  (senza cancellazioni : in caso di errore ricominciate da capo). Appena digitata la sequenza, vedremo che il programma reagirà a questa particolare combinazione mostrandoci il messaggio segreto, come si vede nell’immagine sottostante:

Svelato il messaggio segreto: sono gli auguri per un buon 2014...

Svelato il messaggio segreto: sono gli auguri per un buon 2014…

Bene, preso atto degli auguri, possiamo ora personalizzare sia la sequenza di attivazione che il messaggio segreto. Questo sarà utile per creare una “versione privata” e fare un omaggio ad una persona cara, attivando, per esempio, un messaggio di auguri personalizzato con la data di nascita. Altra applicazione utile può essere quella di scrivere una password che vogliamo tenere nascosta, facendola visualizzare solo inserendo una specifica sequenza (una data o un numero che ricordiamo bene) ; possiamo perfino nascondere nel messaggio segreto una formula matematica che non ricordiamo… 🙂 . Naturalmente dobbiamo usare, per la sequenza di attivazione, solo i caratteri che possiamo digitare sulla tastiera della calcolatrice, altrimenti sarà impossibile richiamarla !

Per attivare la modifica della sequenza e del messaggio segreto, dovremo digitare otto volte 8 e poi cliccare, invece dei tasti, direttamente l’area del display. Così facendo avremo la prima fase di modifica, quella che riguarda la sequenza di accesso…

Scegliamo una nuova sequenza di accesso...

Scegliamo una nuova sequenza di accesso…

Possiamo decidere di modificare la sequenza, oppure no (se vogliamo usare la stessa sequenza per un altro tipo di messaggio segreto). In caso di modifica, scriviamo nella casella di testo la nuova sequenza e quindi clicchiamo Modifica. Appena eseguita questa operazione, comparirà la seconda finestra di input, per modificare il messaggio segreto…

Qui possiamo modificare il messaggio segreto...

Qui possiamo modificare il messaggio segreto…

Anche qui, possiamo scegliere se modificare o lasciare inalterato il messaggio segreto. Se avremo modificato o la chiave di accesso, o il messaggio, la nuova configurazione sarà salvata e diventerà subito operativa.

Se clicchiamo la finestra del display, senza che sia stato prima digitato il numero speciale 88888888, si aprirà invece una finestra di dialogo per chiudere l’applicazione. Potremo scegliere se sì o no.

Per il momento è tutto. Spero che questa piccola applicazione vi piaccia e vi faccio i miei migliori auguri per un lieto 2014.

L’applicazione è disponibile gratuitamente su Google Play.

Nota 10/2/2015: ho rimosso l’applicazione da Google Play poiché ho deciso di usare il “market” solo per le App a pagamento. E’ comunque ancora possibile scaricare l’App gratuita da questo link (cliccare “scarica” sulla pagina che si apre).

FreeBasic + FireFly = ambiente di sviluppo visuale Windows gratuito

Ho ricevuto un messaggio tramite il relativo form su una pagina del vecchio sito. Rispondo pubblicamente in quanto la richiesta è interessante… Chi mi scrive ha usato con successo il FreeBasic per convertire vecchi programmi da GW-Basic e altri “dialetti” Basic. Tutti questi programmi, per ora, girano nella solita “finestra DOS” e così mi si chiede se io possa suggerire un modo semplice per scrivere qualcosa che funzioni come una qualsiasi applicazione Windows. Personalmente, utilizzo a questo scopo l’ambiente IDE gratuito chiamato FireFly. Ho aggiunto un link sulla colonna a destra (links utili) per poterne fare il download. L’ambiente di sviluppo si integra perfettamente con FreeBasic e il risultato è ottimo. Le applicazioni scritte sono assolutamente “eleganti” e ricordo che si tratta di eseguibili completi, non serve alcuna “runtime”. Io utilizzo la FIREFLY_FB_350 che è liberamente scaricabile dal sito dell’azienda produttrice. Questa versione per FreeBasic è gratuita, ma ne esistono altre a pagamento (per esempio quella relativa a RealBasic). Il link che ho indicato è (guarda caso) quello della versione libera per FreeBasic. Nel file di download sono presenti anche alcuni esempi, che aiutano a prendere pratica del programma. Comunque, se si ha una certa esperienza di ambienti di sviluppo “visuali”, il tempo di apprendimento è piuttosto basso. Consiglio caldamente questo “partner” di FreeBasic ; l’abbinamento dà luogo ad un formidabile sistema di sviluppo per programmare sotto Windows e …cosa meravigliosa in questi momenti bui… è tutto gratis. Purtroppo il grande pregio di FreeBasic, quello di esistere anche in ambiente Linux, non viene rafforzato da FireFly_FB, dato che quest’ultimo esiste solo su piattaforma Windows, ma penso che ci si possa accontentare 🙂 Esiste un IDE per FreeBasic anche sotto Linux (Glade?), ma al momento non l’ho ancora utilizzato e quindi non sono la persona giusta per dare consigli ! Spero che la mia risposta sia stata utile…

una schermata relativa ad uno dei programmi di esempio

una schermata relativa ad uno dei programmi di esempio (cliccare l’immagine per ingrandire)

Tombolara: la tombola di E.Ficara

Prima di tutto, tanti auguri per Natale e anno nuovo. Poi, un piccolo regalo… Se volete giocare a tombola, ma avete perso il sacchetto con i numeri, oppure solo qualche numero, potrete ugualmente farlo. Ecco qui un semplicissimo “cartellone” da tombola elettronico, che potrete installare sul vostro smartphone Android.

screenshot

Immagine del gioco in funzione (in rosso i numeri usciti)

Appena lanciata l’applicazione, sentirete una voce “elettronica” che dice: “Tombola” (vi consiglio di mettere al massimo il volume della sezione multimediale, cosa che potrete fare accedendo alle impostazioni -> audio). Potrete iniziare il gioco premendo “Estrai” per ogni nuovo numero. Le estrazioni avvengono con assoluta casualità e non c’è il rischio d’imbrogli. Volendo, si potrebbe fare anche con gli imbrogli, ma io non sono la persona giusta. Nel caso in cui qualche giocatore si sia distratto e non abbia sentito il numero, potrete premere “Ripeti” e l’ultimo numero verrà nuovamente pronunciato dalla solita voce sintetica. Faccio notare che l’applicazione è scritta per smartphone in modalità portrait (verticale) e utilizza il motore TTS (Text To Speech) per pronunciare frasi e numeri, quindi è necessario abilitare questa funzione sul proprio dispositivo, possibilmente aggiornando anche il dizionario dei fonemi dopo aver selezionato la propria lingua. E’ poi necessario regolare il volume delle applicazioni multimediali, che in diversi telefoni è settato per default al minimo.

L’applicazione è disponibile gratuitamente su Google Play.