RyujiAndy Inviato 8 Novembre 2012 Condividi Inviato 8 Novembre 2012 (modificato) Molti si chiederanno se è necessario comprare un nuovo Arduino ogni volta che si realizza un progetto utilizzando la board. Ovvero... "per costruire qualcos'altro... devo prima procurarmi un altro Arduino?" Sarete felici di sapere che non è sempre indispensabile. Infatti il cuore di arduino uno non è altro che l'atmega328p, un microcontrollore ad 8-bit prodotto dalla avr. La casa costruttrice ci fornisce un programmatore ed una IDE anche per i microcontroller della famiglia Atmega, ma diventa difficile programmare direttamente il 328p o qualsiasi altro chip per chi non è del mestiere, è molto più semplice collegare un chip vergine ad un Arduino utilizzato come programmatore, e utilizzare gli strumenti per Arduino al fine di programmarlo... a programmazione terminata potremo scollegare il nostro "Arduino-programmatore" e usare il chip indipendentemente dalla board. Il chip infatti ha già all'interno un oscillatore che genera tramite un quarzo da 8 MHz il clock che gli serve per processare nel tempo i comandi. Su Arduino invece si ha un quarzo da 16Mhz, che permette di velocizzare l'esecuzione dei comandi. Il microcontrollore è una sorta di piccola CPU in sostanza, e utilizzando una frequenza di 16Mhz anzichè quella di 8 prevista dal produttore sul chip è come se lo stessimo "overcloccando". La frequenza massima di clock prevista dal produttore per l'atmega328p è di 20Mhz. Il Bootloader di arduino è una piccola componente software (comandi) che occupano 0.5 Kb e servono soprattutto per caricare i nostri programmi senza l'ausilio di un programmatore (tramite un seriale TTL). Infatti andando a vedere lo schema elettrico di arduino, tra la porta usb e l'atmega328p troviamo un atmega16u2 che viene utilizzato come "convertirore" da usb a porta seriale rs232. La porta seriale è utilizzata per la programmazione del microcontrollore. Sui vecchi Arduino seriali come il Severino (vedi foto) infatti mancava completamente il chip che provvedeva la conversione della porta, in quanto l'USB è stato aggiunto per comodità sulle board più recenti, in modo da permetterne la programmazione anche con i computer portatili. [imgx]http://images.nonsologaming.com/ArduinoSeverino400.jpg[/imgx] Per adattare il microcontrollore a funzionare senza l'ausilio dell'intera board dobbiamo specificare all'IDE quali sono i suoi nuovi parametri di funzionamento: basterà aprire il file boards.txt che troviamo nella cartella del programma di arduino e aggiungere le seguenti righe: ############################################################## atmega328.name=ATmega328 on a breadboard (8 MHz internal clock) atmega328.upload.protocol=stk500 atmega328.upload.maximum_size=32768 atmega328.upload.speed=57600 atmega328.upload.using=arduino:arduinoisp atmega328.bootloader.low_fuses=0xE2 atmega328.bootloader.high_fuses=0xDA atmega328.bootloader.extended_fuses=0x05 atmega328.bootloader.path=arduino:atmega atmega328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex atmega328.bootloader.unlock_bits=0x3F atmega328.bootloader.lock_bits=0x0F atmega328.build.mcu=atmega328p atmega328.build.f_cpu=8000000L atmega328.build.core=arduino:arduino ############################################################## Per programmare il chip senza dover comprare un programmatore possiamo utilizzare direttamente un arduino (montato, con su il suo chip atmega). Basterà seguire il seguente schema: http://images.nonsologaming.com/arduinoisp2.png Io ho provato l'operazione su varie versioni dell'IDE, e la 0022 è quella che mi ha dato meno errori. Una volta aperto l'IDE dobbiamo andare a cercare negli esempi lo sketch ArduinoISP: carichiamolo su Arduino, poi colleghiamo un condensatore da 22uF tra il Reset e GND di Arduino, selezioniamo la board atmega328 che abbiamo creato in precedenza... e potremo andare a caricare sul chip il nostro programma. Al termine dell'operazione non servirà nè il clock esterno nè la board per il funzionamento dell'integrato dopo la programmazione, che ormai funzionerà indipendentemente dalla board. Sarà sufficiente alimentarlo. Modificato 8 Novembre 2012 da RyujiAndy Link al commento Condividi su altri siti Altre opzioni di condivisione...
Melo_Wii Inviato 8 Novembre 2012 Condividi Inviato 8 Novembre 2012 Interessante, da notare il fatto che in alternativa si può programmare il chip direttamente dalla scheda, anche se necessita di un oscillatore esterno e ovviamente deve avere il bootloader per essere programmato dalla scheda (necessario se si utilizza l' arduino come isp). In fine ecco il pinout che può fare sempre comodo http://computerpr0n.com/wp-content/uploads/2012/04/Atmega168PinMap2.png Link al commento Condividi su altri siti Altre opzioni di condivisione...
a_dadda Inviato 9 Novembre 2012 Condividi Inviato 9 Novembre 2012 Io personalmente uso il clock esterno. 2 condensatori da 22pf e un quarzo da 16 Mhz sono abbastanza economici e ti permettono di avere temporizzazioni molto più precise rispetto al clock interno dell'ATMega Link al commento Condividi su altri siti Altre opzioni di condivisione...
RyujiAndy Inviato 9 Novembre 2012 Autore Condividi Inviato 9 Novembre 2012 l'utilità di usare l'atmel senza cristallo esterno, sono soprattutto il risparmio energetico e quindi la possibilità di aumentare il tempo di alimentazione tramite batteria, di norma e regola anche io uso sempre un clock esterno, soprattutto perchè ho la mania di interfacciare i miei proggetti ad internet tramite i modulo RJ45. Link al commento Condividi su altri siti Altre opzioni di condivisione...
logg Inviato 9 Novembre 2012 Condividi Inviato 9 Novembre 2012 scusa ragazzi sono un profano curioso e appassionato di tecnologia..a cosa vi serve questa piattaforma?che tipo di progetti si possono realizzare? Link al commento Condividi su altri siti Altre opzioni di condivisione...
a_dadda Inviato 9 Novembre 2012 Condividi Inviato 9 Novembre 2012 scusa ragazzi sono un profano curioso e appassionato di tecnologia..a cosa vi serve questa piattaforma?che tipo di progetti si possono realizzare? Di tutto ! Io ci ho fatto il mio impianto domotico ! Ma si possono fare un sacco di cose: Ci puoi collegare pulsanti, sensori di temperatura, di luce, servocomandi, motorini elettrici, relè, lettori RFID ... puoi collegarci un pc attraverso la USB, aggiungere un'interfaccia Ethernet ... il limite è solo la fantasia ! Se vuoi approfondire vai sul sito ufficiale: http://www.arduino.cc ... ti si aprirà un mondo ! Link al commento Condividi su altri siti Altre opzioni di condivisione...
tizio45 Inviato 11 Novembre 2012 Condividi Inviato 11 Novembre 2012 si puo fare anche questo https://www.youtube.com/watch?v=u8eCpdFfT5w Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Crea un account o accedi per lasciare un commento
Devi essere un membro per lasciare un commento
Crea un account
Iscriviti per un nuovo account nella nostra community. È facile!
Registra un nuovo accountAccedi
Sei già registrato? Accedi qui.
Accedi Ora