Differenze tra le versioni di "OttoBot"
Riga 39: | Riga 39: | ||
La porta SPI va così collegata, MISO con MISO, MOSI con MOSI, SCK con SCK e reset con reset. Il datasheet lo trovate qui [http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf] | La porta SPI va così collegata, MISO con MISO, MOSI con MOSI, SCK con SCK e reset con reset. Il datasheet lo trovate qui [http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf] | ||
+ | |||
+ | [[File:Atmega8 arduinopinout.png]] | ||
+ | I pin che vedete sono quelli come da IDE di Arduino. Se lo programmate con altri sistemi (come Eclipse) i riferimenti possono essere diversi. | ||
+ | Se il vostro ATmega8 è settato per avere un risuonatore esterno, dovrete metterlo in modo che stia con un pin XTAL1 e l'altro su XTAL2. Entrambi XTAL1 e XTAL2 vanno poi collegati a terra con un condensatore da 22 picofarad. Ne avrete bisogno se volete raggiungere frequenze superiori agli 8 Mhz o se avete bisogno di maggiore stabilità (il risuonatore interno non è molto preciso). Per contro, il risuonatore interno non ha bisogno di collegare nulla. Per approfondire guardate questa guida [http://kskpages.weebly.com/clock-settings.html] |
Versione delle 23:52, 12 ott 2015
OttoBot è il risultato di un tentativo di usare un ATmega8 al posto di una board Arduino.
Le specifiche tecniche
L'ATmega8, prodotto da Atmel, è piuttosto modesto.
- Ha 8KB di memoria flash. Se usate il bootloader di Arduino allora ve ne rimarranno solo 7.
- Il clock è massimo 16Mhz usando un risuonatore esterno. Quello interno va a 8Mhz (ma vi risparmiate un bel po' di circuiteria). Per usare il risuonatore interno occorre cambiare un fuse.
- 23 pin programmabili.
- 2 interrupt.
- Porte SPI, I²C e seriale (ma non è possibile usare seriali software, presenti nella libreria di Arduino).
- Costa una bazzecola.
Per essere acceso ha bisogno da 2,7 a 5,5 Volt. Il prezzo oscilla attorno all'euro.
Prima versione
Come potete vedere, la dimensione è proprio mini. Si comanda tramite bluetooth. Ruote e chassis sono stampate 3d.
Modificare l'ATmega8 affinché sembri un Arduino
Per ottenere questo occorre fare tre cose:
- Trovare un programmatore (potete usare la porta parallela oppure acquistarne uno, ma anche un normalissimo Arduino può essere usato come programmatore)
- Settare i fuses
- Caricare il bootloader
- Aggiungere l'ATmega8 nel file boards.txt di Arduino
Una volta fatti questi passi, potrete usare l'IDE come per qualsiasi altra board.
Di guide su come usare i programmatori ne trovate a bizzeffe su internet, noi ci concentreremo sull'utilizzo di Arduino come ISP, che è la procedura che ho usato io.
Arduino as ISP
Negli sketch di esempio nella IDE di Arduino c'è "Arduino as ISP" (In-System Programmer). Caricatelo su un Arduino di vostra scelta con l'accortezza di controllare i pin da usare: sui Mega sono diversi. Dovrete usare la porta SPI e in genere avete: 10 reset, 11 MOSI, 12 MISO e 13 clock (SCK). Sui Mega le porte sono rispettivamente 53, 51, 50 e 52. Trovate tutto nei commenti dello sketch. Altri pin, opzionali, sono il 9 (heartbeat, mostra se il programma sta girando), 8 (error, si accende se c'è un problema), 7 (programming, si accende durante le comunicazioni).
La porta SPI va così collegata, MISO con MISO, MOSI con MOSI, SCK con SCK e reset con reset. Il datasheet lo trovate qui [1]
I pin che vedete sono quelli come da IDE di Arduino. Se lo programmate con altri sistemi (come Eclipse) i riferimenti possono essere diversi.
Se il vostro ATmega8 è settato per avere un risuonatore esterno, dovrete metterlo in modo che stia con un pin XTAL1 e l'altro su XTAL2. Entrambi XTAL1 e XTAL2 vanno poi collegati a terra con un condensatore da 22 picofarad. Ne avrete bisogno se volete raggiungere frequenze superiori agli 8 Mhz o se avete bisogno di maggiore stabilità (il risuonatore interno non è molto preciso). Per contro, il risuonatore interno non ha bisogno di collegare nulla. Per approfondire guardate questa guida [2]