Introduzione
Il BASIC è un linguaggio di programmazione ad alto livello che ha oltre 50 anni.
Perchè allora parlare di BASIC nel 2017? Perchè è stato il primo linguaggio di programmazione che molti hanno incontrato, essendo preimpostato su tutti i primi home computer. Quindi, chi si è approcciato a quei gioielli negli anni tra il 1975 e il 1995, ha sicuramente dovuto imparare una qualche versione di BASIC, se voleva prendere pieno possesso del computer. Era addirittura insegnato in qualche scuola generalista.
I più giovani avranno sorriso a leggere queste frasi, o queste date, in cui magari non erano nemmeno ancora nati. Ma questo articolo riguarda anche loro. Infatti il BASIC può essere lo strumento per condividere una passione, o le conoscenze informatiche, tra genitori e figli, e avere una infarinatura di BASIC aiuta a comprendere concetti come variabili, cicli, array, routine che sono comuni a tutti i linguaggi di programmazione. Inoltre il fatto di essere interpretato e interattivo, la sintassi semplice e simile a quella dei linguaggi più moderni come Python e Lua, rende l’apprendimento di questi ultimi, molto più semplice.
Non ultimo, può essere un modo per riesumare una vecchia passione o vecchi lavori giovanili.
Dialetti
Da sempre, il linguaggio BASIC è stato implementato in una incredibile quantintà di versioni, chiamati anche “dialetti” BASIC. La sinstassi di base è la stessa, ma ci possono essere piccole differenze tra un dialetto e l’altro. Tra i più famosi, anche per essere gratuito e leggerissimo (parliamo di una occupazione di memoria tra 1,7 e 3 Kb!), cito Tiny BASIC, che pareva essere il candidato ideale per una inclusione di serie in Raspbian, ma che ora è diventato difficile da reperire in rete. Gambas è un’altro BASIC che è possibile usare su Raspberry Pi, in stile Visual Basic. Ma oggi, andiamo a trattare un altro dialetto…
RTB BASIC
Return To Basics, cioè ritorna alle basi, alle origini. RTB è un moderno linguaggio di programmazione ispirato al BASIC. I numeri di riga non sono obbligatori, ha funzioni che semplificano il disegno grafico e altre cose interessanti, come ad esempio il supporto al GPIO.
Installazione
Dal Terminale o via SSH, digita:
1 2 3 |
cd /tmp wget http://unicorn.drogon.net/rtb-2.20-1.deb sudo dpkg -i rtb-2.20-1.deb |
Probabilmente riscontrerai dei problemi con le dipendenze, che non risulteranno soddisfatte.
Risolvile con
1 |
sudo apt-get -f install |
Infine, potrai installare dei programmi di esempio:
1 2 3 4 5 6 |
cd mkdir -p rtb cd rtb wget -O- http://project-downloads.drogon.net/rtb/demos.tgz | tar xfBz - cd demos ls |
queste righe scaricano gli esempi, li scompattano in una cartella chiamata “demo” e poi li elencano.
lanciare RTB BASIC
Ora puoi lanciare RTB semplicemente con il comando
1 |
rtb |
Oppure con dei parametri (ad esempio -f per il pieno schermo, -x e -y per specificare le dimensioni della finestra, o -g per impostare il gpio in numerazione BCM).
RTB ha integrati dei comandi load e dir (o ls) che, rispettivamente, caricano un programma, o eseguono la lista della cartella.
Usa run per lanciare un programma, e il tasto ESC per interromperlo.
exit termna l’interprete Basic e ritorna al terminale.
SSH
Attenzione, se esegui RTB via SSH, usa un client che supporti il forward di X11, in modo che la finestra di RTB venga riportata sul dispositivo da cui vi collegate. Per fare questo (e anche tutto il resto) è consigliatissimo MobaXterm. Via SSH , RTB sarà molto lento, in quanto non godrà dell’accelerazione grafica che le librerie SDL gli offrono, invece, in locale.
Supporto GPIO
La cosa interessante, è che RTB BASIC supporta il GPIO del Raspberry Pi. Per usarlo non serve essere root.
Attenzione, però, che il sistema di numerazione dei pin utilizzato di default, è quello di WiringPi, visualizzabile qui
Per fare in modo che impieghi la più utilizzata numerazione BCM, come scritto poco sopra, ricordiamoci di lanciarlo con l’opzione -g
1 |
rtb -g |
Ecco un esempio di programma che fa lampeggiare un LED, collegato con l’anodo (il piedino positivo) al pin 7, e il catodo (il piedino negativo) a massa.
1 2 3 4 5 6 7 8 9 10 11 12 |
// esempio tratto da blink.rtb di // Gordon Henderson, projects@drogon.net // raspberryitaly.com // PinMode (7, 1) // Imposta il pin 7 come Output CYCLE DigitalWrite (7, 1) // Metti a 1 il pin 7 WAIT (0.5) // attendi 0.5 secondi DigitalWrite (7, 0) // metti a 0 il pin 7 WAIT (0.5) // attendi 0.5 secondi REPEAT END |
Scrivilo in un file di testo con estensione .rtb (esempio mioprogramma.rtb) e poi lancialo con
1 |
rtb mioprogramma.rtb |
RTB non ha ancora un editor interno.
Se stai lavorando in SSH, crea un file di testo, poi ricordati che MobaXterm ha integrata la possibilità di copiare file nel dispositivo remoto semplicemente trascinando il file nell’ albero delle cartelle e file sulla sinistra, il cosidetto “SSH-Browser”, sempre lì, è possibile fare doppio click su un file di testo per aprire un editor interno con evidenziazione del testo, per modificare in un secondo tempo il tuo codice.
Documentazione
Bene, non ci resta che consultare la documentazione e gli esempi e effettuare i primi esperimenti con questa implementazione del BASIC.
Qui il manuale di riferimento del linguaggio
Buona programmazione a tutti!
Se vuoi restare aggiornato seguici sui nostri social: Facebook , Twitter, YouTube, Google+, Telegram