Arduino ABC: Piedinatura

Nasce a Ivrea nel 2005, nonostante la sua potenza, sta nel palmo di una mano, è semplice da usare, efficiente ed è in grado di interagire con il mondo esterno, il suo nome è Arduino.

Il progetto viene ideato da Massimo Banzi; in quel periodo insegnava all’Interaction Design Institute di Ivrea, e i suoi studenti spesso si lamentavano di non riuscire a trovare un microcontrollere potente ma economico per gestire i propri progetti. Banzi discusse il problema con David Cuartielles, un ingegnere spagnolo ed i due decisero di creare la propria scheda.

Arduino è una piattaforma open-source basata su una semplice scheda I/0 ed un intuitivo ambiente di sviluppo multipiattaforma, che sfrutta la libreria Wiring, per semplificare la scrittura di programmi in C e C++ da far girare sulla scheda.

Perchè scegliere Arduino?

[*] opensource, le informazioni sul progetto sono disponibili a tutti, chiunque può auto-costruirsi un clone di arduino scaricando gli schemi elettrici (arduino-uno-schematic.pdf) e le componenti necessarie per creare la propria scheda.
[*] costo, la scheda costa poco più di 20€, è venduta in versione pre-assemblata
[*] semplicità ed efficienza, grazie all’intuitivo ambiente di sviluppo (scaricabile liberamente) basato su libreria Wiring, chiunque sappia le basi del linguaggio C e C++ è in grado di programmarla; ciò nonostante è possibile farne un uso più complesso interfacciandola con potenti software come matlab simulink e labview. Inoltre la programmazione della scheda avviene via USB.

Andiamo a dare un’occhiata più da vicino alla scheda;esistono diverse versioni del progetto, la più comune è raffigurata nel seguente disegno.

(1) PORTA USB Viene usata per collegare la scheda al Pc, fornirle l’alimentazione, e comunicare con essa

(2) ALIMENTATORE Utilizzato quando non si vuole alimentare l’Arduino per mezzo dell’usb, ma con un alimentatore esterno. E’ possibile ricorrere anche una pila da 9V , oppure in alternativa collegare delle pile tra i pin Vin e Gnd

(3) JUMPER ALIMENTAZIONE Nelle versioni precedenti alla duemilanove, occorre cambiare manualmente il tipo di alimentazione per mezzo di un jumper, nelle successive ciò avviene automaticamente

(4) PIN DIGITALI Nella scheda ve ne sono 13, in base a come vengono settati nello sketch, possono essere usati sia come input che come output; tra essi, ci sono alcuni specializzati in diverse funzioni:

[*] COMUNICAZIONE SERIALE: 0 (RX) 1 (TX) Utilizzati per ricevere (RX) e trasmettere (TX) dati seriali da circuiti TTL; essi sono collegati ai corrispondeti pin del FTDI USB-to-TTL chip
[*] INTERRUPT ESTERNI 2 e 3 Questi pin possono essere configurati in modo tale che venga generato un interrupt quando il dispositivo collegato ad essi cambia stato logico, passa dallo stato alto al basso e viceversa
[*] PWM 3, 5, 6, 9, 10, e 11.
[*] SPI (Serial Peripheral Interface)  E’ un protocollo seriale sincrono utilizzato dai microcontrollori per la comunicazione con uno o più dispositivi periferici o tra due controllori. Lo scambio di dati avviene per mezzo di 4 linee: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) ed è gestita per mezzo della libreria SPI
[*] LED Vi è un led integrato nella scheda collegato al digi
[*] AREF. (Analog Reference)
[*] Ddp di riferimento per i pin analagici (solo 0-5V)tal pin 13. Quando il pin è alto il led si accende, viceversa si spegne quando lo si imposta sullo stato basso.

(5) PIN ANALOGICI Sono supportati 6 input analogici, da A0 a A5, ciascuno dei quali ha una risoluzione di 10 bits. Sono in grado di misurare una ddp di 5 volts dal riferimento a massa, tuttavia è possibile cambiare il limite superiore di tale intervallo per mezzo dell’AREF pin, richiamando dall’IDE la funzione analogReference().

Anche per i pin analogici ve ne sono 2 specializzati in una funzione: I2C (Inter Integrated Circuit) è un protocollo di comunicazione seriale semplice e a basso costo utilizzato per la comunicazione di circuiti integrati. Sono richieste due linee di comunicazione analogpin4(SDA) e analogpin5 (SCL). Vi è una apposita libreria per la gestione di questo protocollo

(6) POWER PINS

[*] RESET, per resettare la scheda, basta portare a livello basso questo pin
[*] 3V3, 5V da essi vi sono tensioni di uscita rispettivamente di 3.3V e 5V, utili per alimentare dispositivi esterni
[*] GND, pin di ground
[*] VIN, può essere utilizzato per alimentare la scheda oppure, se ciò avviene tramite jack o usb, è possibile ricevere alimentazione da questo pin.

(7) RESET SWITCH Usato per resettare un programma dalla scheda, facendolo ripartire dall’inizio

(8) ICSP Il microcontrollore installato sulla scheda dispone del bootloader, che permette di caricarci un programma senza dover utilizzare un programmatore hardware esterno.Tuttavia è possibilie bypassare il bootloader programmando il microcontrollore direttamente da questi pin; il vantaggio? In questo modo è possibile utilizzare l’intera memoria flash. Il microcontrollore installato sulla scheda dispone del bootloader, che permette di caricarci un programma senza dover utilizzare un programmatore hardware esterno.Tuttavia è possibilie bypassare il bootloader programmando il microcontrollore direttamente da questi pin; il vantaggio? In questo modo è possibile utilizzare l’intera memoria flash.

(9) AVR-ATMEGA E’ il cuore della scheda ovvero il microcotrollore prodotto dall’Atmel montato sull’arduino UNO, di seguito vengono riportate le caratteristiche:

Tensione di lavoro 5V
Voltaggio in ingresso(raccomandato) 7-12V
Voltaggio in ingresso(limiti) 6-20V
Pins I/O Digitali 14 (di cui 6 di PWM)
Pins di ingresso Analogici 6
Corrente DC per i pins di I/O 40mA
Corrente DC per il pin 3.3V 50mA
Memoria Flash 32KB di cui 0.5 usata dal bootloader
SRAM 2KB
EEPROM 1KB
Frequenza Clock 16MH

Per concludere il documentario dell’Arduino. Enjoy!

Riferimenti Arduino

Francesco Celiberti
Ciao a tutti,

mi chiamo Francesco, sono laureato in Ing. Informatica e dell'Automazione. Sono attualmente coinvolto in un progetto di ricerca Europeo, MOTORIST. www.motorist-ptw.eu
Tags:
By Francesco Celiberti | maggio 22nd, 2011 | SHOW COMMENTS (2)

2 Responses

  1. Arduino ABC: primi passi di programmazione con Arduino. | Automazione Open Source says

    […] Questo articolo riprende la serie di articoli riguardanti Arduino e le sue basi. La parte precedente ha trattato la sua nascita, piedinatura e le sue principali caratteristiche. L’articolo si può trovare qui […]

  2. Lab: fotoresistenza e relè | Automazione Open Source says

    […] Piattaforma hardware, per saperne di più Arduino ABC […]