arduino driver elettronico
se vogliamo cominciare ad avvicinarci al mondo
dell'elettronica, sicuramente il primo passo sarà
quello di iniziare con una piattaforma hardware
come arduino, per la sua semplicità di apprensione
essendo nato da un ingegnere italiano come
progetto scolastico..
Arduino è una piattaforma hardware low-cost
programmabile, con cui è possibile creare
circuiti "quasi" di ogni tipo per molte applicazioni,
soprattutto in ambito di robotica ed automazione.
Si basa su un Microcontrollore della ATMEL,
l'ATMega168/328: per esempio l'Arduino Uno
monta un ATMega328.
Nasce a Ivrea, nel 2005,
da un'idea di un professore universitario, un
Ingegnere Elettronico, Massimo Banzi, che decise
di creare una piattaforma per i propri studenti,
così da facilitarli nello studio dell'Interaction Design.
Fu un completo successo, a tal punto da spingere
l'ingegnere a rendere questa piattaforma, Open Source
(in realtà è Open Hardware) cioè è possibile trovare
sul sito ufficiale www.arduino.cc, i circuiti, i
componenti e addirittura le istruzioni per realizzarla
da soli. se invece lo volete acquistare lo trovate qui su
amazon.
Ciò che dovrebbe interessare in realtà sono
gli schemi circuitali: essendo Open, e quindi visionabili
da tutti, possono essere continuamente migliorati
dalla comunità e grazie ad essi sono state sviluppate
un numero incredibile di librerie software che
rendono davvero semplice l'interfaccia con periferiche
di qualsiasi tipo. Fu un gruppo di studenti della facoltà
di Ingegneria Informatica a scrivergli la libreria, l'IDE
(libreria portabile su ogni sistema operativo) e le prime
API; grazie a questi pre-ingegneri, Arduino tutt'oggi
programma in modo fluido, semplice e molto intuitivo.
In Internet, addirittura, si possono trovare librerie già
scritte in base al nostro bisogno. Per esempio se
vogliamo fare qualche applicazione e ci serve qualche
funzione in particolare o qualche supporto per sensori
possiamo ricorrere, appunto, alla navigazione in Internet.
C'è da aggiungere un particolare molto importante,
ogni programma che si scrive su Arduino sarà
naturalmente avviato a loop() finché non si toglie
l'alimentazione dal dispositivo. Quando lo colleghiamo
ad una fonte di alimentazione (ad esempio la USB del
PC o anche una comunissima Batteria da 9V) si accende
e avvia il programma caricato dall'IDE a loop infinito.
Questo continua fino a quando non lo si uccide a meno
che non togliamo la batteria o stacchiamo il cavo.
Questo framework è studiato per artisti, designers,
hobbiesti e chiunque sia interessato a creare oggetti
interattivi. La scheda Arduino è in grado di interagire
con l'ambiente in cui si trova ricevendo informazioni
da una grande varietà di sensori. Ma non si parla solo
di sensori, Arduino può comandare luci, LED, motori
e altri attuatori.
Il linguaggio di programmazione è
basato su Wiring (un ambiente di programmazione
Open-Source pensato per una facile applicazione per
semplificare la programmazione in C e C++) e
sull'interfaccia Processing. I progetti basati su arduino
possono essere indipendenti oppure essere interfacciati
con altri software come Processing, MaxMSP, Flash e altri.
Il design (EAGLE) e la schematica (CAD), sono liberi,
scaricabili e possono essere modificati a piacimento.
Il Team Arduino è composto da Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino e David Mellis.
Spiegazione dei Pin:
I Pin sono connettori femmina, che hanno molteplici utilizzi,
che vanno rispettate per evitare il rischio di un corto circuito
che puo' arrivare anche al rischio di incendio e/o
danneggiamento del computer a cui è collegato Arduino.
• AREF - Questo pin regola il voltaggio di massima risoluzione degli input analogici
• GND - massa
• PWM - I pin a disposizione con questa funzionalità sono 6. Il PWM, o pulse
width modulation permette di creare un'onda di corrente regolabile.
Questa è molto utile per comandare svariati sistemi elettronici.
L'esempio piu' stupido è comandare i servomotori da modellismo.
• TX - RX - porta seriale
• RESET - Questo è un PIN digitale. Se la lettura di questo PIN=HIGH
il controller si resetta
• PIN uscita corrente a 3.3V
• PIN uscita corrente a 5V
• Vin - PIN input corrente per alimentazione controller
• Analog in - PIN input analogici. Possono percepire molto
precisamente una corrente DC tra 0 e 5V, resistuendo un
valore da 0 a 1023.
• Digital - PIN digitali programmabili per essere input o output,
percepiscono se è presente o no corrente restituendo LOW se
non c'è corrente e HIGH se c'è corrente, oppure possono essere
programmati per generare corrente in output di massimo 40mA.
Spiegazione dell'Atmega328:
Atmega328 è la sigla di questo microcontrollore. All'interno di
questo componente viene salvato il programma scritto dall'utente
e tutta la configurazione di base che permette ad Arduino un
funzionamento corretto. Quando acquisterete arduino riceverete
uno di questi microcontrollori con solamente il Bootloader
all'interno dell'ATMega. Questo "file" è una configurazione di base
che permette l'utilizzo del software dedicato.
Questo setting puo' essere modificato per utilizzare un software
differente e per modificare la posizione e configurazione dei PIN.
Caratteristiche della scheda Arduino
• Clock Speed 16 MHz
• EEPROM 512 bytes (ATmega168) o 1 KB (ATmega328)
• SRAM 1 KB (ATmega168) o 2 KB (ATmega328)
• Memoria flash 16 KB (ATmega168) o 32 KB (ATmega328) di cui 2kb usati dal bootloader
• Corrente DC per il PIN 3.3v 50 mA
• Corrente DC I/O per PIN 40 mA
• PIN input analogici 6
• PIN I/O digitali 14 (di cui 6 PWM output)
• Limiti voltaggio alimentazione 6-20V
• Voltaggio alimentazione 7-12V
• Voltaggio operativo 5V
bootloader: è un pezzo di codice scritto sul chip della scheda Arduino.
Permette di verificare se viene inviato un codice, lo sketch, tramite la
porta seriale. Quindi se c'è un codice, lo legge e lo scrive nella memoria.
Piedinatura del Microcontrollore
ATMega168
6