Il blog di Nicola Amatucci

La mia finestra sul mondo…

Arduino (1) – Per prima cosa, la programmazione

lascia un commento »

Descrivo brevemente i passi per installare il software su Windows:

  1. Scarichiamo l’archivio aggiornato da Google Code
  2. Scompattiamo l’archivio in una cartella a piacere (ad esempio sul Desktop)
  3. Colleghiamo attraverso il cavo USB la scheda al PC
  4. Nella cartella estratta ci saranno i driver relativi (nella cartella “driver”)*
  5. Una volta installati i driver tutto è pronto

Il primo test di funzionamento da fare, è collegare un led** al pin 13 dal lato delle uscite digiatali (dove c’è la porta USB) e al GND (ovvero Ground): il pin 13 è dotato di un’opportuna resistenza, tale da non far “distruggere” il nostro led. Il programma caricato “in frabbrica” nel microcontrollore, varierà da alta a bassa e viceversa l’uscita del pin, in modo da far accendere e spegnere il led, ovvero da farlo lampeggiare.

Un programma per Arduino o Sketch, viene scritto in un linguaggio molto simile al C (semplificato) e nella sua forma più semplice, è costituito da due funzioni obbligatorie:

  • void setup()“: serve a configurare la piattaforma, ovvero a dire al microcontrollore “di che tipo sono i pin”: di ingresso, di uscita, analogici, digitali…
  • void loop()“: costituisce il ciclo principale del programma, ovvero il codice eseguito dal microcontrollore e che mi specifica il comportamento

Come per il C il corpo della funzione deve essere racchiuso tra parentesi graffe, al cui interno le istruzioni devono essere delimitate da punto e virgola. I costrutti sono quelli del C, inoltre si hanno a disposizione funzioni apposite:

  • pinMode() : setta un pin in ingresso o in uscita
  • digitalWrite() : setta l’uscita digitale di un pin alta o bassa (high/low)
  • digitalRead() : legge lo stato di un pin (alto/basso)
  • analogRead() : legge da un ingresso “analogico”***
  • analogWrite() : scrive un valore “analogico”*** su un pin
  • delay() : sospende l’elaborazione per il tempo specificato
  • millis() : ottiene l’istante di esecuzione corrente

inoltre ci sono molte librerie disponibili sul sito e liberamente utilizzabili, anche per i più svariati dispositivi (display, tastiere, mouse, …).

Come si immagina, si possono scrivere funzioni (o librerie di funzioni) di supporto ed eventuali variabili globali possono essere dichiarate all’esterno di tutti i blocchi relativi alle funzioni.

Quello che manca adesso è un bell’esempio; per non cominciare subito con la parte elettronica, proviamo a ripetere il test, scrivendo noi il programma.

programma_1

A questo punto dobbiamo selezionare dal menu “Tools” la board (nel mio caso “Arduino DuemilaNove con ATMega 328″) e la porta COM* a cui è collegato dallo stesso menù. Possiamo verificare la correttezza del nostro codice, premendo il tasto “Verify” (quello con l’icona play). Infine possiamo premere il tasto “Upload To I/O Board” (penultimo a destra) oppure richiamare il comando dal menù “File”.

NOTE:

* Arduino non è collegata al pc con una connessione USB vera e propria, ma attraverso la più semplice porta COM; è come se avessimo un adattatore usb-seriale che ci collega ad Arduino.

** Il led, come si può notare, è già collegato sulla scheda al pin 13, vicino a quelli di trasmissione (TX) e ricezione (RX) ed è etichettato con la lettera L. Non c’è dunque un vero e proprio bisogno di montare un led per esegure questo test.

*** “Analogico” in realtà quello che si ha è un segnale analogico digitalizzato su ‘n’ livelli, ovvero su un certo numero di bit.

Written by Nicola

9 Aprile 2009 a 18:27

Lascia un commento