Differenze tra le versioni di "OttoBot"

Da raspibo.
Jump to navigation Jump to search
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

8bot.jpg

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]

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 [2]