Fig.6 |
che dà luogo al semplice layout di Fig.7:
Fig.7 |
Quindi gli schemi di Figg. 3, 4 e 5 si semplificano come da Figg. 8, 9 e 10 e saranno quelle adottate da qui in poi.
Fig.8 |
Fig.9 | Fig.10 |
Le modalità di connessione del modulo FTDI FT232RL, dell'adattatore e della scheda proprietaria-base sono mostrate in Fig.11:
Fig.11 |
Tuttavia, per poter programmare il microcontrollore dello schema di Fig.8 con l'Arduino IDE, occorre aver precaricato un piccolo firmware
che gestisca l'inserzione del codice inviato dal compilatore di Arduino IDE: il bootloader.
Esistono in commercio ATMEGA328 che hanno già il bootloader precaricato, ma sono generalmente nettamente più costosi, per cui si suggerisce di
sacrificare un Arduino Uno (magari un clone che costa meno) per realizzare un programmatore di bootloader, sempre pronto all'uso.
Come realizzare un semplice programmatore di bootloader, è descritto nel progetto: Bootloader per ATMega328.
Una volta che il componente ATMega328 ha ricevuto il bootloader, è pronto ad essere facilmente programmato con l'Arduino IDE.
Lo schema di Fig.8 rappresenta il nucleo minimo, al quale collegare tutti gli accessori e/o servomeccanismi disponibili nella piattaforma Arduino e con il quale
utilizzare tutte le librerie su di essa sviluppate.
Un semplice codice per testare il funzionamento della scheda di Fig.11 è descritto qui di seguito:
Nessun codice disponibile |
Una volta caricato il codice con l'Arduino IDE, va immediatamente selezionato in Strumenti/Monitor seriale, la finestra di comunicazione fra PC e microcontrollore (molto utile, particoalermente in fase di debug):
se la scheda è stata montata e programmata regolarmente, invierà un messaggio di inizio test, conterà da 1 a 20 con un intervallo di un secondo e invierà un messaggio di fine test. Il monito seriale deve essere selezionato su baud 9600.
Se sul caricamento si ha un segnale di errore, provare a staccare la connessione USB, uscire dall'Arduino IDE, ricollegarsi con l'USB, rientrare nell'Arduino IDE e rieseguire la programmazione della scheda.
Un altro motivo per cui è conveniente adottare la versione semplificata del connettore J1 è la possibilità, eseguita l'operazione di programmazione, di utilizzare il connettore per collegare degli accessori del microcontrollore; D0 e D1 sono infatti, a tutti gli effetti, dei pin di Ingresso/Uscita e, per alcune applicazioni, può essere utile poter eseguire il Reset del microcontrollore. A scopo esemplificativo, in Fig.12 viene mostrato il layout di un piccolo add-on da inserire nel connettore J1, per dotare il sistema di due spie luminose e di un pulsante di Reset manuale, mentre in Fig.13 il risultato:
Fig.12 | Fig.13 |
Per poter utilizzare il connettore di Reset e segnalazione di Fig.13, occorre alimentare la scheda indipendentemente dalla connessione USB. Per questo motivo lo schema di Fig.8 va modificato com mostrato in Fig.14.
Fig.14 |
che permette di realizzare il layout di Fig.15 ed una versione su scheda millefori mostrata in Fig.16.
Il regolatore può essere il 78L05 (regolatore a 5 Volt) o 78L33 (regolatore a 3.3 Volt), a seconda degli accessori collegati.
(se si collega il modulo di Reset di Fig.13 con le resistenze dei led da 1k Ohm, è meglio che il regolatore sia il 78L33; se si vuole usare il 78L05, meglio utilizzare resistenze da 2.2kOhm).
Fig.15 | Fig.16 |
Per poter utilizzare il modulo di Reset, come collegato in Fig.16, occorre procedere come segue:
Nessun codice disponibile |
Il microcontrollore, nella sequenza iniziale, accende contemporaneamente sia il led rosso, sia led verde, poi accende alternativamente il led rosso e il led verde; premendo il tasto di reset viene rieseguita la sequenza iniziale.
Se le schede proprietarie da realizzare saranno comunque dotate di connettore 28DIP (per esempio per poter eseguire aggiornamenti di software o sostituzione di componenti
difettosi) si può evitare di cablare il connettore J1 di Fig.3, montando un ATMega328 già programmato.
Può anche essere considerato di saldare il componente sulla scheda proprietaria dopo averlo programmato: anche in questo caso il connettore J1 può essere omesso.
In entrambi i casi, occorre costruire un programmatore che è esattamente lo schema di Fig.8 dove al posto dell'ATMega328 va montato un connettore 28DIP.
Il risultato è visibile in Fig.17.
Fig.17 |
Per eseguire una programmazione con la scheda di Fig.17, procedere come segue: