Archivi categoria: Tecnologia

Raspberry Pi stagione 2 puntata 4: Moodle (on the) Box

Il logo di Moodlebox
Il logo di Moodlebox
Ben ritrovati in questa quarta puntata della seconda stagione del nostro viaggio nel mondo della single board più diffusa al mondo.
Oggi ci occuperemo di una versione particolare della piratebox, una distribuzione che prova a coniugare strumenti di didattica digitale con le possibilità create dalla nostra piccola scheda: Moodlebox.

Continua la lettura di Raspberry Pi stagione 2 puntata 4: Moodle (on the) Box

Arduino per tutti parte quarta: si inizia a programmare (finalmente!)

Benritrovati nella rubrica Arduino per tutti che ritorna dopo una parentesi sul Raspberry. D’ora in poi, le due rubriche si alterneranno in modo abbastanza prevedibile al ritmo di un post a settimana (si spera…).
Finalmente, dopo la presentazione della scheda, l’installazione e la configurazione dell’IDE di Arduino, possiamo iniziare a programmare la nostra scheda di prototipazione.
Come inizia qualsiasi libri di programmazione che si rispetti? Ma con l’esempio base: l’”hello world” che tutti abbiamo imparato a conoscere (e temere).
In questo, Arduino e le schede consimili sono differenti, perché, ovviamente, non esiste “hello world”, nel senso che non è compito di una scheda di prototipazione produrre testi su un video. E allora?
L’equivalente nel mondo Arduino del programma hello world è Blink, ovvero l’accensione e lo spegnimento controllati del led della scheda stessa.

Prima di iniziare, diamo un’occhiata alla schermata dell’IDE che abbiamo già visto nella puntata precedente. Appena avviato, l’IDE apre in automatico un nuovo sketch. Appena aperto, lo sketch contiene sostanzialmente pochi elementi.

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

Analizziamoli con calma.
Innanzitutto la dichiarazione “void” seguita da un identificativo (ad esempio setup()), è il nome con cui il linguaggio di programmazione “chiama” le variabili, cioè quegli elementi cui è possibile dare un valore di tipo statico (dato una volta e per sempre) o dinamico (il valore può essere assegnato durante l’esecuzione del codice). Qui ne troviamo due:
setup e loop.
La prima individua le operazioni che devono essere compiute una volta all’avvio del programma, l’altra quelle che devono essere compiute più volte in corso d’opera e più volte.
Il testo inserito dopo // invece è il commento del programmatore. Come si può vedere, ogni variabile ha un suo contenuto che deve essere appunto “contenuto” all’interno di due parentesi graffe {}.
Tutto qui. Come si vede, ci vuole poco.
E ora al nostro blink.
Molte schede Arduino contengono già preinstallato nel bootloader il blink. Tuttavia, sia nel caso non ci sia, sia nel cado ci sia, è bene osservare come sia possibile modificare la temporizzazione della scheda di prototipazione.
Innanzitutto, facciamo in modo che, all’avvio, la scheda si resetti e consenta di attivare il led (LED_BUILTIN, cioè il led preinstallato) e modificarne il comportamento (chiamando il comando OUTPUT). Inseriamo quindi nella void setup() il seguente codice:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

Ora, inizializzato il led, occorre stabilire la variabile loop().
Attiviamo il temporizzazione digitale passandogli, fra parentesi tonda, l’indicatore a cui collegare la temporizzazione e il comando da eseguire, avendo cura di chiudere la parentesi tonda e l’intera stringa con il punto e virgola (;). Ecco il codice relativo:
digitalWrite(LED_BUILTIN, HIGH);
HIGH si riferisce al voltaggio, indica che la corrente viene trasmessa al led che si accende. Similmente, per spegnere il led basterà sostituire, nell’istruzione più sopra, HIGH con LOW e il led, come per magia, si spegnerà. Ora, però, a noi serve fare in modo che il led lampeggi (to blink in inglese) non che si accenda e si spenga immediatamente.
Occorre quindi inserire la stringa che controlla la temporizzazione. Il comando per temporizzare un’azione del componente è delay(). Nella parentesi inseriamo il ritardo dell’operazione, in millisecondi (cioè, se vogliamo ritardare l’operazione di 1 secondo, occorre inserire nella parentesi 1000 e così via).
Dunque il nostro codice per il lampeggiare del led è:
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

Ora il nostro sketch è pronto per l’uso, dobbiamo caricarlo sulla scheda perché si attivi all’avvio.
Fra le scelte rapide, premiamo il primo pulsante e verifichiamo che il nostro sketch funzioni (non si sa mai).
Ora bisogna inviare lo sketch sulla Arduino. Premiamo il pulsante “Carica” (il secondo da sinistra) e l’IDE procederà ad installare lo sketch sulla scheda. Ecco fatto, abbiamo finito.
Alla prossima…

Raspberry Pi stagione 2 puntata 3: qualche ulteriore ritocco…

Ben ritrovati in questa terza puntata della seconda stagione dedicata al Pi famoso non greco. Dopo aver visto come mettere in funzione la nostra PirateBox, qualche piccolo ritocco per renderla più funzionale e sicura.

Continua la lettura di Raspberry Pi stagione 2 puntata 3: qualche ulteriore ritocco…

Raspberry Pi stagione 2 puntata 2: Raspberry PIrateBox parte 2 Costruiamo la nostra PirateBox

Ben ritrovati in questa seconda stagione dedicata alla nostra single board preferita. Dopo aver visto in cosa consista e quali usi potrebbe avere la nostra PirateBox, è il momento di cominciare a costruirla.

Continua la lettura di Raspberry Pi stagione 2 puntata 2: Raspberry PIrateBox parte 2 Costruiamo la nostra PirateBox

Raspberry Pi stagione 2 puntata 1: Raspberry PIrateBox parte 1

Benvenuti a questa seconda stagione dedicata alla nostra single board preferita. Dopo aver visto in cosa consista, quali siano le sue caratteristiche, quali progetti consente di lanciare e averla utilizzata per un server web, è il momento di affrontare un progetto più complesso. In questa prima parte della stagione, i cui post si alterneranno con i post della rubrica dedicata ad Arduino, vedremo un progetto innovativo e abbastanza facile da implementare, riutilizzabile in molti campi: la Pirate Box.

Logo della Piratebox
Logo della Piratebox

Continua la lettura di Raspberry Pi stagione 2 puntata 1: Raspberry PIrateBox parte 1

Arduino per tutti parte terza: IDE o non IDE

Una volta installato, l’IDE si presenta in modo molto spartano, con un’interfaccia semplice, composta da:
1) Menu a tendina,
2) Pulsanti rapidi,
3) l’area di scrittura del codice e
4) l’area dei messaggi, in basso (Fig. 1).

Fig. 1. Pagina iniziale dell'IDE
Fig. 1. Pagina iniziale dell’IDE

Esaminiamo attentamente ciascun settore.
I pulsanti rapidi sono destinati alle azioni più comuni e ripetitive. Da sx verso dx sono, rispettivamente:
verifica,
carica,
nuovo,
apri,
salva,
monitor seriale (controllo delle porte e debug collegamenti, all’estrema destra).
Il menu a tendina contiene le voci:
File,
Modifica,
Sketch,
Strumenti,
Aiuto.

Le voci più interessanti sono sicuramente Sketch e Aiuto.
In Sketch, oltre all’ovvia voce verifica/compila, duplicata nelle scelte rapide, sono interessanti le voci “include libreria”, che consente di includere librerie esterne e quindi ampliare le possibilità di collegamento ed utilizzo della scheda Arduino, e la voce “Esporta sketch compilato”, che consente di trasferire e condividere solo lo sketch, per eventuali correzioni o prove.

Il menu Aiuto è molto variegato. Vi compaiono gli Aiuti relativi al programma, ma anche alle schede di espansione Galileo ed Edison.
Un discorso a parte merita la voce “Strumenti”, che contiene alcune voci fondamentali per il corretto funzionamento dell’IDE. Occorre infatti, prima di lanciare per la prima volta uno sketch, controllare la connessione alla porta seriale (“Monitor seriale”) e indicare con quale delle numerose schede Arduino-like si intende lavorare (Scheda: “Arduino-Genuino”).
Ecco, ora siamo pronti per iniziare a lavorare con la nostra Arduino.
Ops, peccato, il tempo e lo spazio a nostra disposizione sono scaduti.
Beh, alla prossima, gente!

Progetta con Arduino puntata 2: Un’occhiata all’IDE

Puntata veloce di Arduino, legata all’istallazione dell’IDE sul nostro pc.

Cos’è un IDE?

Un IDE (Integrated Development Environment, in italiano Ambiente di Sviluppo Integrato)) è un software che, in fase di programmazione, aiuta i programmatori nello sviluppo del codice sorgente di un programma.
In sostanza è l’ambiente dove possiamo inserire il nostro codice (con alcuni aiuti, come in alcuni l’autocompletamento) e poi possiamo andarlo ad eseguire.
Normalmente è un software che consiste di più componenti come un editor di codice sorgente (molto simile, in effetti, a notepad), un compilatore e/o un interprete (che trasforma il programma in software da scaricare sulla scheda), un tool di building automatico e, di solito, un debugger (che serve per controllare che ilprogetto funzioni ed individuare, eventualmente, gli errori nel codice).

Installate gente, installate…

Prima di lanciarci nella programmazione della nostra scheda, meglio dare prima un’occhiata al software, alle procedure di installazione e all’interfaccia grafica dello stesso. Si inizia con le procedure di installazione.
Il software per programmare il vostro Arduino è disponibile, come si è detto, per tutti i sistemi operativi più comuni, Windows, Mac e Linux. Il processo di installazione è diverso per le tre piattaforme, ma non molto complesso, almeno per Windows e Mac. Per Linux forse occorre faticare un po’ di più, ma lo vedremo in seguito.
In tutti i casi, comunque, occorre preventivamente recarsi sul sito web di Arduino (http://www.arduino.cc) e scaricare la versione dell’IDE per il sistema operativo preferito. La versione utilizzata per questi post è la 1.8 ma non vi sono sostanziali differenze con le versioni precedenti.

Ecco come si presenta la finestra di benvenuto in Windows 7.
Ecco come si presenta la finestra di benvenuto in Windows 7.

In Windows, la procedura da seguire comporta lo scompattamento del file rar in una cartella e il lancio dell’installatore dei drivers, contenuto nella cartella drivers, dpinst-x86.exe o dpinst-amd64.exe a seconda del fatto che il sistema operativo sia a 32 o 64 bit.
Ecco, l’installazione è tutta qui. Gli utenti windows possono saltare al prossimo paragrafo.

Per gli utenti Mac, la procedura non è molto dissimile. Dopo aver scaricato il file rar, basta copiare il file Arduino nella cartella Applicazioni del Mac (o dive preferiamo), cancellare il file rar e il gioco è fatto.
Per Linux, invece, occorre scompattare il file arduino-1.8.0-linux64.tar.xz o arduino-1.8.0-linux32.tar.xz.

Il sito di Arduino
Il sito di Arduino

Dal PC alla scheda

Per permettere all’IDE di Arduino di comunicare con la scheda, il sistema operativo ha bisogno di utilizzare i driver adatti alla scheda utilizzata.
Su Windows, collegare la scheda Arduino al pc tramite il cavo USB e poi attendere che la procedura guidata per l’installazione del nuovo hardware faccia il proprio compito, meglio se si è connessi alla rete internet.
Se si utilizza Windows XP o se non si è connessi alla rete internet si deve specificare la posizione dei driver.
La cartella dei driver si trova nella cartella scaricata e decompressa e poi in:

FTDI USB Drivers

Una volta installato il driver, farę partire la procedura di installazione guidata del nuovo hardware, poi seguire la procedura appena descritta.

Su OS X le ultime schede Arduino possono essere utilizzate senza altri driver. Se si usano schede più vecchie, allora si devono ricercare i driver. Cercarli nel file immagine scaricato e cercare il pacchetto

FTDIUSBSerialDriver (dove è il nuemro della scheda).

aprirlo con doppio click e avviare la procedura di installazione guidata.
Sulla maggior parte delle distribuzioni di Linux i driver sono già installati. Se si riscontrano problemi, ancora una volta, siccome potrebbe variare da distribuzione a distribuzione visitare la pagina ufficiale

Ecco un video riassuntivo per la versione Windows

Progetta con Arduino puntata 1: (Back to the) basics

Iniziamo questa serie di post sul mondo Arduino dall’inizio, ovvero raccontando che cos’è Arduino e cosa rappresenta per il mondo dell’informatica, della robotica e quanto altro.
Arduino è una piattaforma hardware composta da una serie di schede elettroniche dotate di un microcontrollore. È stata ideata e sviluppata da alcuni membri dell’Interaction Design Institute di Ivrea, fondato da Olivetti e Telecom Italia, come strumento per la prototipazione rapida e per scopi hobbistici, didattici e professionali. Il team creativo dietro il progetto Arduino è composto da Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis.
Il nome della scheda deriva da quello del bar di Ivrea frequentato dai fondatori del progetto, nome che richiama a sua volta quello di Arduino d’Ivrea, Re d’Italia nel 1002.

Logo di Arduino
Logo di Arduino

Arduino Hardware

Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, temperatura, umidità e molti altri progetti che utilizzano sensori, attuatori e sistemi di comunicazione con altri dispositivi, ad esempio il Raspberry Pi di cui ci siamo occupati in un’altra serie di post.
La piattaforma fisica si basa su un circuito stampato che integra un microcontrollore con dei pin connessi alle porte I/O, un regolatore di tensione e un’interfaccia USB per permettere la comunicazione con il computer utilizzato per programmare.
Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l’aggiunta di componenti complementari per facilitarne l’incorporazione in altri circuiti. Nelle schede vengono usati i chip della serie megaAVR, più specificatamente i modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.
Molte schede Arduino includono un regolatore lineare di tensione a 5 volt e un oscillatore a cristallo a 16 MHz. Tuttavia alcune implementazioni, come ad esempio la piccola LilyPad, hanno un clock di 8 MHz e non sono dotate del regolatore di tensione.
Su tutte le schede i programmi vengono caricati attraverso una porta seriale RS-232, ma il modo in cui questa funzionalità è implementata nell’hardware varia da versione a versione. Le schede seriali Arduino contengono un semplice circuito inverter che permette la conversione tra il livello della RS-232 e il livello dei segnali TTL. Le versioni attuali di Arduino sono gestite via USB: la versione Uno utilizza un microcontrollore Atmega8U2 programmato come convertitore USB-seriale, mentre le precedenti versioni Diecimila e Duemilanove utilizzano chip adattatori USB-seriale, come gli FT232 di FTDI. Alcune varianti, come la Arduino Mini e la versione non ufficiale Boarduino, usano una scheda o un cavo adattatore USB-seriale staccabile.
Per implementare il comportamento interattivo, Arduino è fornita di funzionalità di input/output (I/O). Tramite le funzionalità di input, la scheda riceve segnali raccolti da sensori esterni. Il comportamento della scheda è gestito dal microcontroller in base ai valori provenienti dai sensori e alle operazioni determinate dal programma in esecuzione in quel momento sulla scheda. L’interazione con l’esterno avviene attraverso attuatori pilotati dal programma, che fornisce le istruzioni per mezzo dei canali di output in dotazione.
La scheda Arduino è dotata di molti dei connettori di input/output per microcontroller in uso su altri circuiti. Tutti i pin di I/O sono collocati sulla parte superiore della scheda mediante connettori femmina da 0,1″. Sono inoltre disponibili commercialmente molte schede applicative plug-in, note come “shields”.
Arduino è utilizzato di solito per lo sviluppo di oggetti interattivi stand-alone, ma può anche interagire, tramite un collegamento e un opportuno codice, con software residenti su computer, come Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider.
L’hardware originale Arduino è interamente realizzato in Italia dalla Smart Projects, mentre cloni
della scheda possono essere realizzati da chiunque in qualsiasi parte del mondo.
Fino a oggi, sono state commercializzate ben 16 versioni dell’hardware Arduino.

Scheda Arduino Uno
Scheda Arduino Uno

Arduino Software

A questo hardware viene affiancato anche un ambiente di sviluppo integrato (IDE) multipiattaforma (o come si direbbe oggi, crossplatform, ovvero disponibile sia per i sistemi Linux, che per quelli Apple e Windows).
L’ambiente di sviluppo integrato (IDE) di Arduino è un’applicazione multipiattaforma scritta in Java, ed è derivata dall’IDE creato per il linguaggio di programmazione Processing e per il software progetto Wiring. È concepita per iniziare alla programmazione neofiti a digiuno dello sviluppo di software.
Per permettere la stesura del codice sorgente, l’IDE include un editore di testo dotato di alcune particolarità, come il syntax highlighting, il controllo delle parentesi e l’indentazione automatica. L’editor è inoltre in grado di compilare e caricare il programma funzionante ed eseguibile sulla scheda con un solo click. I programmi in Arduino vengono chiamati sketch.
Insieme all’IDE sono scaricati vari sketch di esempio, per introdurre l’utente alla programmazione della macchina; i temi sono molto basici: come gestire gli ingressi analogici e digitali, far accendere un LED in modo pulsante e variabile; si possono però anche affrontare problemi più complessi, come la gestione di un display LCD o di una scheda telefonica GSM. Oltre alle librerie già incorporate (più di una decina), l’utente può aggiungerne di nuove con uno strumento di importazione compreso nell’IDE. Per vedere i risultati di uno sketch è attivabile dall’IDE una finestra seriale di monitoring, sulla quale far comparire l’output delle istruzioni Serial.print(parametro) incorporate nello sketch stesso.
Tutto il software a corredo è libero e anche gli schemi circuitali sono distribuiti sotto forma di hardware libero.
Grazie alla base software comune ideata dai creatori del progetto, per la comunità Arduino è stato possibile sviluppare programmi per connettere, a questo hardware, più o meno qualsiasi oggetto elettronico, dal più classico computer, a tutti i tipi di sensori in circolazione, come anche a display ed attuatori.

Bibliografia

Banzi M., 2009, Getting Started with Arduino, Make Books, 1ª ed., 2009
Banzi M., 2011, BetaBook, il manuale di Arduino: Cap. 3 – Un po’ di storia di Arduino, Apogeo
Banzi M., 2012, Arduino La guida ufficiale, Tecniche Nuove
Majocchi S., 2012, Arduino UNO Programmazione avanzata e Librerie di sistema, Vispa Edizioni
Majocchi S., 2016, Primi Passi in Arduino con la scheda Genuino UNO, Edizione gratuita in CC-BY-ND-NC scaricabile da bit.ly/PPcGUbSM, 26 gennaio 2016
Margolis M., 2011, Arduino progetti e soluzioni, Tecniche Nuove.
Schmidt M., 2011, Il manuale di Arduino, Apogeo
Sciamanna L., 2010, Arduino il microprocessore per tutti, Sandit

E per oggi è tutto.
Nella prossima puntata daremo un’occhiata al lato software e alle procedure di installazione del software di programmazione.
Alla prossima

Smart World puntata 2: il tatuaggio che ti salva la vita

La moda dei tatuaggi si è diffusa in tuti gli strati della popolazione, facendo la fortuna soprattutto dei tatuatori. Tuttavia, i tatuaggi tradizionali presentano qualche controindicazione: sono difficili (un tempo impossibili) da togliere, occorre stare attenti alle condizioni igieniche per evitare di contrarre malattie come l’epatite.
Ma questi tatuaggi di cui parleremo oggi non hanno nessuna di queste controindicazioni, e in più sono utili. Pensate: tatuaggi in grado di monitorare vari parametri vitali e magari interagire con il proprio smartphone.


Continua la lettura di Smart World puntata 2: il tatuaggio che ti salva la vita