venerdì 8 luglio 2011

[Tutorial Arduino] Basi #2 - Accendere e spegnere un LED

Ciao a tutti e bentornati all'appuntamento con i tutorial su Arduino! Per chi si è perso le puntate precedenti eccovi i link:



Nell'ultimo tutorial abbiamo visto una brevissima introduzione alla struttura di uno sketch! Questo perché oggi cominceremo a scrivere il nostro primo sketch che ci permetterà di accendere e spegnere un LED! :-)

Obiettivo
Mostrare come scrivere e caricare uno sketch sulla tua scheda Arduino, mostrando anche un pò di interazione con quest'ultima spegnendo e accendendo un LED.

Hardware necessario
  • Scheda Arduino
  • LED (Nota che molte delle nuove schede Arduino montano già un LED integrato collegato al pin digitale 13. E' possibile utilizzare anche solo quello senza dover collegare quindi un LED esterno.)

Circuito
Per costruire il circuito, collega prima una resistenza da 220 ohm o simile al pin 13. Collega poi la gamba lunga del LED (la gamba positiva, chiamata anodo) alla resistenza. Infine collega la gamba corta del LED (la gamba negativa, chiamata catodo) a terra (GND). Il circuito è completo, ora collega tramite un cavo usb la tua scheda Arduino al tuo computer, fai partire l'editor di Arduino ed inserisci il codice che trovi qui sotto. Nota che puoi trovare il codice anche nel menù in alto dell'editor cliccando su File->Examples->Basic->Blink, io però ti consiglio di scrivere manualmente il codice così da renderti conto meglio di quello che sta accadendo! ;-)

Circuito LED

Schema
Qui di seguito viene riportato lo schema circuitale.
Schema circuitale

Codice
Nel programma, la prima cosa da fare è inzializzare il pin 13 in modalità OUTPUT attraverso la seguente riga di codice:

pinMode(13, OUTPUT);

Nel loop principale poi, si accende il led con la riga:

digitalWrite(13, HIGH);

Quest'ultimo comando fornisce 5 volt al pin 13. Questo crea una differenza di potenziale sul LED che si accende. Dopodiché lo spegniamo con la riga:

digitalWrite(13, LOW);

Questa riporta il pin 13 a 0 volt, spegnendo il LED. Tra l'istante di accensione e di spegnimento, ci deve essere un certo tempo tale che una persona possa vedere i cambiamenti. Qui entra in gioco il comando delay() che dice alla tua scheda Arduino di non fare nulla per 1000 millisecondi, altrimenti detti 1 secondo. Quando usi il comando delay() , tutto si ferma per il periodo di tempo indicato come argomento. Una volta che hai compreso come funziona questo esempio, prova a dare un occhio al tutorial su come Accendere un LED senza delay() per capire come creare un delay senza fermare tutto il resto.

Una volta che hai compreso questo esempio dai un occhio al tutorial sulla Lettura digitale seriale per capire come leggere lo stato di un pulsante collegato alla tua scheda Arduino.


/*
  Blink
  Accende e spegne un LED un secondo alla volta ripetutamente.

  Questo codice di esempio è di dominio pubblico.
 */


void setup() {              
  // inizializzo il pin digitale come output.
  // Nota: il pin 13 ha collegato di default un LED integrato sulla maggior parte delle schede Arduino.
  pinMode(13, OUTPUT);    
}

void loop() {
  digitalWrite(13, HIGH);   // accende il LED
  delay(1000);              // aspetta un secondo
  digitalWrite(13, LOW);    // spegne il LED
  delay(1000);              // aspetta un secondo
}




Per ulteriori informazioni consulta:

Conclusioni
In questo tutorial abbiamo visto quanto sia semplice programmare la nostra scheda Arduino. E' ovviamente un esempio molto semplice ma che permette di acquisire le prime basi! ;-)
Vi dò quindi appuntamento al prossimo tutorial ragazzi/e! 

Alla prossima! :-)


Nota: Il tutorial è solo una traduzione. L'originale è reperibile al seguente indirizzo web: http://arduino.cc/en/Tutorial/Blink


Continua a leggere...

[Tutorial Arduino] Basi #1 - Introduzione agli sketch

Ciao a tutti! Come avevo già accennato qui nei prossimi post ho intenzione di pubblicare i tutorial di Arduino tradotti in italiano. Per chi fosse interessato la pagina originale a cui mi riferirò sarà questa. Prima di poter cominciare a mettere le mani sul vostro Arduino però sarà meglio avere una piccola infarinatura della struttura di uno sketch cioè il programmino che andremo a caricare sulla nostra scheda. Quindi rimbocchiamoci le maniche e partiamo in questo viaggio nel fantastico mondo di Arduino! :-)


Obiettivo
Fornire le basi della struttura di uno sketch: i metodi setup() e loop().

Hardware necessario


  • Scheda Arduino


Circuito
In questo esempio sarà necessaria solo la tua scheda Arduino



Codice
La funzione setup() è chiamata quando uno sketch viene avviato. Utilizzala per inizializzare variabili, modalità di funzionamento dei pin, librerie, etc. La funzione setup() verrà eseguita una volta sola, dopo ogni accensione o reset della scheda Arduino.

Dopo la funzione setup(), la funzione loop() fa esattamente quello che il suo nome suggerisce, cioè cicla continuamente, permettendo al tuo programma di modificarsi e di rispondere ad eventuali avvenimenti. Il codice nella sezione loop() del tuo sketch è quindi usato per controllare attivamente la tua scheda Arduino.

Quello che il codice riportato qui sotto farà è esattamente nulla! E' utile però copiare e incollare la sua struttura per usarla come punto di partenza di un qualsiasi tuo sketch. Il codice mostra inoltre come inserire dei commenti.

Qualsiasi riga che inizi con due slash (//) verrà ignorata dal compilatore, quindi puoi scrivere tutto quello che vuoi. Commentare il codice può essere molto utile nello spiegare, sia a te stesso che agli altri, come il tuo programma funziona.

void setup() {
  //qui va il codice di setup, che verrà eseguito una sola volta
}

void loop() {
  //qui va il codice principale del tuo sketch, che verrà eseguito ciclicamente
}


Per scaricare il codice clicca QUI

Per ulteriori informazioni consulta:
Conclusioni
Siamo già giunti alla fine del primo tutorial. Per ora siamo rimasti molto sul teorico però è molto importante prendere subito confidenza con la struttura base di uno sketch perché la ritroveremo sempre. Ad ogni modo dalla prossima volta cominceremo a sporcarci le mani, appuntamento dunque al tutorial #2, cioè come accendere un led!

Alla prossima :-)

Continua a leggere...

giovedì 7 luglio 2011

Arduino - L'elettronica Open Source

Ciao a tutti! E' un pò che non scrivo un post sul blog, quindi ho deciso di tornare parlando di uno degli argomenti più interessanti in cui mi sono imbattuto ultimamente e cioè, ladies and gentlemen un bell'applauso per: Mr. Arduino!

Di cosa sto parlando? Di elettronica. Arduino infatti è una piattaforma elettronica open source programmabile basata su di un hardware/software molto flessibile.
Come dicono i suoi creatori: "E' diretta ad artisti, progettisti, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi" 


Arduino si riassume essenzialmente in due componenti principali:

  • Una scheda, come quella in figura, composta da un microcontrollore programmabile che ci permette di utilizzare i vari ingressi/uscite presenti sulla scheda per le più svariate applicazioni.
Arduino Uno

  • L'ambiente di sviluppo, cioè l'editor di testo che ci permette di scrivere, compilare e caricare sulla nostra scheda i programmini che faranno fare al microcontrollore di cui parlavo prima quello che vogliamo.
L'ambiente di sviluppo per Arduino

La cosa bella di questo progetto è la mentalità open source e la sua accessibilità! Tutti gli schemi delle schede infatti sono resi pubblici, assieme al codice dell'ambiente di sviluppo e per cominciare a lavorarci basta collegare tramite un cavo usb la scheda al vostro computer e siete già pronti a caricare il vostro programma! Non è fantastico?  :-)
Questa comunque voleva essere soltanto una brevissima presentazione di ciò che sarà l'argomento principale dei miei prossimi post! Quello che farò successivamente sarà infatti proporre tutti i tutorial presenti sul sito ufficiale, in lingua italiana e proporvi alcune delle mie implementazioni. Di seguito vi posto un elenco di siti mooolto interessanti per quanto riguarda l'elettronica e arduino, vale davvero la pena darvi un occhio! ;-)
Per ora vi saluto e vi dò appuntamento al primo tutorial su come utlizzare arduino dove si parlerà dell'hello world dell'elettronica programmabile: accendere un LED!! :-)
Alla prossima!

Siti interessanti:
Arduino - Sito ufficiale di Arduino
Tutorial Arduino - I tutorial che prossimamente pubblicherò in italiano
Elettronica Open Source - Un sito interessantissimo sull'elettronica che contiene anche una sezione dedicata ad Arduino


Continua a leggere...

sabato 11 giugno 2011

Un tester Http

Wow, sono passati veramente troppi cicli di clock dal mio ultimo (e primo :P ) post! Rieccomi con qualche news! Direttamente dal mondo dell'università di Pavma, più precisamente dal corso di Telematica A tenuto dal professore Alessandro Lazzari, ecco un semplice tester Http. Il tutto è un progetto sviluppato da me per il suddetto corso e ho deciso di caricarlo sul blog per quegli studenti che chissà come, durante la loro navigazione web, si sono spiaggiati su queste pagine! Il link a fine post!!!


Prima di descrivervi brevemente le funzionalità del tester, mi sa che conviene fare un piccolo accenno ai protocolli di rete, come l'HTTP, e al loro funzionamento!

Che cos'è un protocollo di rete?
Detto in parole povere, un protocollo di rete non è altro che un insieme di regole e convenzioni che permettono, a due o più dispositivi collegati ad una stessa rete, di dialogare.
Ci avete capito qualcosa? No? Allora continuate a leggere! :)
 Il concetto di per sé è piuttosto semplice. Basti pensare alla vita di tutti i giorni! Se anche noi, parlando con le altre persone non usassimo un certo protocollo come la lingua italiana, non riusciremmo a capirci! Infatti se per esempio andiamo dal fruttivendolo con l'intenzione di comprare un chilo di pere, sappiamo bene di dover formulare la richiesta circa così: "Salve, potrei avere un chilo di pere? Grazie!" Se invece non conoscessimo bene la lingua italiana (il protocollo) e le sue regole/convenzioni nulla ci vieterebbe di formulare una richiesta del genere: "Pere Salve, avere potrei chilo un?" e molto probabilmente il povero fruttivendolo non ci capirebbe un fico secco!
Il concetto di capirsi è quindi ciò che sta alla base di un protocollo di comunicazione, così come sta alla base di quelli di rete. Per tornare a termini un pochino più informatici delle pere, prendiamo per esempio il caso in cui si vuole visualizzare una certa pagina web.
I passi che si fanno di solito sono:

  1. Aprire il browser
  2. Scrivere l'indirizzo web della pagina che vogliamo visualizzare nella barra degli indirizzi
  3. Dare conferma
  4. La pagina viene scaricata e visualizzata
Il punto 3 è esattamente dove uno dei più usati protocolli di rete, l'HTTP, entra in gioco. 
L'HTTP è appunto quell'insieme di regole e convenzioni che un browser deve conoscere se vuole essere in grado di scaricare un intera pagina web. Ci sono tanti altri protocollo di rete, come per esempio:
  • SMTP (Simple Mail Transfer Protocol): serve ad inviare email
  • POP3 (Post Office Protocol): serve a scaricare le email
  • FTP (File Transfer Protocol): serve a trasferire file da un computer all'altro ad esempio
e molti altri...
Quello che per ovvie ragioni analizzerò più in dettaglio è l'HTTP

Che cos'è l'HTTP?
Come ho detto prima, l'HTTP (Hypertext Transfer Protocol) è un protocollo di rete. Più specificamente questo protocollo si occupa di fornire i mezzi per il trasferimento di ipertesti e informazioni attraverso il web. Se un client, per esempio un browser, vuole dialogare con un server web DEVE conoscere l'HTTP! Ma come fanno client e server a dialogare? Attraverso dei messaggi di richiesta da parte del primo e di risposta del secondo. Questi messaggi devono essere costruiti in un certo modo, con determinate informazioni che non sto ad elencare altrimenti scrivo un libro più che un post :P
 Se volete approfondire senza andare troppo nei dettagli c'è la sempre ottima wikipedia oppure se volete sapere tutto ma proprio tutto sull'http c'è il sito del w3 :)

Il Tester Http
Dopo questa mini introduzione ai protocolli di rete e all'http eccoci arrivati al piccolo progetto che ho sviluppato! In definitiva questo programma, scritto in Java, permette di costruire messaggi di richiesta da inviare poi ad un server http per poterne esaminare la risposta! Il funzionamento è molto semplice ed intuitivo (se si conosce l'http un pochino più in dettaglio ovviamente ;) ).
 L'interfaccia grafica si presenta così
Se si prova a formulare e inviare una richiesta http come per esempio quella contenuta nella prossima immagine

Si ottiene una risposta dal server che viene visualizzata nel seguente modo



Tutto qui! Metto qui di seguito il pacchetto contenente codice e .jar eseguibile per chi fosse interessato!
  Pacchetto Tester Http

Alla prossima!

Continua a leggere...

domenica 23 gennaio 2011

Mariol.toString(Day.0)

Ciao! Oggi parte, forse, il mio blog. Una sorta di valvola di sfogo tech. Un aggregato di cose che riguardano la mia vita in salsa anche chipposa e informatica...Questo primo post è più un test che altro, sono ancora in fase di debug!

Alla prossima!


Continua a leggere...