Go Down

Topic: Giocando con l'Attiny85 (Read 50263 times) previous topic - next topic

leo72

Gioblu li aveva ad un prezzo molto conveniente: al momento non sono disponibili, chissà se gli arrivano a breve.

DevonMiles

Oppure da RS:
http://it.rs-online.com/web/p/microcontrollori/6962339/

leo72


MatteoG

Grazie 1000, continuo a seguirvi da dietro le quinte... XD
Ciao, Matteo.

MatteoG

Stavo leggendo la guida di LEONARDOMILIANI.com e non mi è chiara una cosa:
all'inizio si parla di aggiustare i fuse:

Quote
Per far ciò è necessario usare un programmatore ISP esterno: io ho utilizzato con
successo l'USBtinyISP di Adafruit ma qualsiasi altro programmatore supportato da
avrdure va più che bene.


Questa programmazione iniziale la posso fare in qualche modo usando arduino uno? Tipo usando il connettore ISP e/o componenti vari? O serve per forza un programmatore esterno?
Vorrei arrivare a delegare all' ATtiny85 il compito di gestire il display 16x2 che ho, riducendo i pin dell'arduino uno impegnati a quelli necessari per la sola trasmissione seriale. :smiley-eek-blue:
Ciao, Matteo.

leo72

La guida l'ho scritta io.
Quell'affermazione si riferisce al voler impostare il micro ad 8 MHz. Di fabbrica arrivano a 1 MHz, se questa frequenza è sufficiente per i tuoi progetti non devi toccare nulla.

Detto questo, preciso anche con un "aggiornamento" che l'operazione si può fare anche con un Arduino usato come programmatore ISP con lo sketch ArduinoISP.

Arriviamo ora al tuo display. Se è un display parallelo, difficilmente riuscirai a gestirlo con l'Attiny85 perché un display compatibile HD44780 necessita di almeno 6 fili, a cui devi sommare 2 fili per la connessione I2C. Arrivi quindi ad 8.
Ma con l'Attiny85 non ce la fai: hai 8 pin, da cui devi togliere i 2 pin dell'alimentazione, il pin di reset, i 2 pin per l'I2C ed arrivi ad avere solo 3 pin liberi.
Io per gestire un LCD ho usato un Attiny84: ha 14 piedini, di cui 11 disponibili come I/O.

MatteoG

Grazie, mi sta insegnando molto la tua guida. XD

Quindi, a prescindere dall'uso, posso usare l'Uno per portare l'ATtiny85 ad 8 MHz, seguendo le istruzioni della guida. Giusto?

Per il display in effetti è come dici tu un parallelo, preso da robotitaly per giocarci su. Allora serve l'84, la mia domanda è: vale lo stesso quanto scritto sull'85 per i MHz o essendo diverso cambiano anche i parametri?  Oppure lo uso com'è e lo programmo tramite Arduino Uno ?

Chiarito cosa serve,  il prossimo passo è capire come programmarlo per la gestione del display, che vorrei mostrasse (per adesso) i valori letti dai sensori ultrasuoni e IR del mio robottino arduino.
Ma questo sarà appunto il prossimo passo (sono autodidatta...  :smiley-red:).
Ciao, Matteo.

leo72


Grazie, mi sta insegnando molto la tua guida. XD

Qui trovi la versione aggiornata:
http://www.gioblu.com/tutorials/programmazione/214
Ci sono anche le novità su come usare l'Arduino come programmatore per i fuse.

Quote

Quindi, a prescindere dall'uso, posso usare l'Uno per portare l'ATtiny85 ad 8 MHz, seguendo le istruzioni della guida. Giusto?



Quote

Per il display in effetti è come dici tu un parallelo, preso da robotitaly per giocarci su. Allora serve l'84, la mia domanda è: vale lo stesso quanto scritto sull'85 per i MHz o essendo diverso cambiano anche i parametri?  Oppure lo uso com'è e lo programmo tramite Arduino Uno ?

Valgono le stesse, identiche cose. Devi solo cambiare il tipo di micro nei parametri di avrdude, da "-p t85" a "-p t84".

Quote

Chiarito cosa serve,  il prossimo passo è capire come programmarlo per la gestione del display, che vorrei mostrasse (per adesso) i valori letti dai sensori ultrasuoni e IR del mio robottino arduino.
Ma questo sarà appunto il prossimo passo (sono autodidatta...  :smiley-red:).

Ma l'Attiny84 lo usi solo per pilotare il display LCD con dati provenienti da un altro micro tramite I2C oppure legge il sensore via I2C in autonomia?
Non ho capito questo punto. Se è il primo caso, devi farti un protocollo di trasmissione fra il "master" che spedisce i dati e l'Attiny84 "slave" che riceve i dati e li visualizza, nel secondo caso invece sei avvantaggiato.

MatteoG

Quote
Ma l'Attiny84 lo usi solo per pilotare il display LCD con dati provenienti da un altro micro tramite I2C oppure legge il sensore via I2C in autonomia?
Non ho capito questo punto. Se è il primo caso, devi farti un protocollo di trasmissione fra il "master" che spedisce i dati e l'Attiny84 "slave" che riceve i dati e li visualizza, nel secondo caso invece sei avvantaggiato.


L'idea era (primaditutto limitata non conoscendo le varie possibilità) quella di vedere le letture senza dover essere collegato al pc. Adesso che mi hai messo la pulce nell'orecchio...
Può il tiny occuparsi (cosa che fa l'arduino uno adesso) tramite la libreria ultrasonic di rilevare la distanza e mandarla all'arduino uno per i calcoli vari e al display per la visualizzazione?
Può in alternativa gestire il compound eye e relativi movimenti dei servi?
Può in alternativa gestire tramite l' LM239D i motori dc?

Dico in alternativa perchè non so quantificare la potenza di calcolo/velocità che ho a disposizione, se facesse tutto meglio...
Mi rendo conto che ad ogni domanda cambia l'architettura del progettino ma è tutto in continua evoluzione, anzi se avete altri suggerimenti o link ben vengano.
Al momento il robottino con la sua LIPO è autonomo e funziona "benino" (vedi video anche se mal fatto  http://arduino.cc/forum/index.php/topic,76264.0.html). Adesso cerco di imparare sviluppandolo / migliorandolo / ottimizzandolo etc...
Ciao, Matteo.

alexdb


Quote
Ma l'Attiny84 lo usi solo per pilotare il display LCD con dati provenienti da un altro micro tramite I2C oppure legge il sensore via I2C in autonomia?
Non ho capito questo punto. Se è il primo caso, devi farti un protocollo di trasmissione fra il "master" che spedisce i dati e l'Attiny84 "slave" che riceve i dati e li visualizza, nel secondo caso invece sei avvantaggiato.


L'idea era (primaditutto limitata non conoscendo le varie possibilità) quella di vedere le letture senza dover essere collegato al pc. Adesso che mi hai messo la pulce nell'orecchio...
Può il tiny occuparsi (cosa che fa l'arduino uno adesso) tramite la libreria ultrasonic di rilevare la distanza e mandarla all'arduino uno per i calcoli vari e al display per la visualizzazione?
Può in alternativa gestire il compound eye e relativi movimenti dei servi?
Può in alternativa gestire tramite l' LM239D i motori dc?

Dico in alternativa perchè non so quantificare la potenza di calcolo/velocità che ho a disposizione, se facesse tutto meglio...
Mi rendo conto che ad ogni domanda cambia l'architettura del progettino ma è tutto in continua evoluzione, anzi se avete altri suggerimenti o link ben vengano.
Al momento il robottino con la sua LIPO è autonomo e funziona "benino" (vedi video anche se mal fatto  http://arduino.cc/forum/index.php/topic,76264.0.html). Adesso cerco di imparare sviluppandolo / migliorandolo / ottimizzandolo etc...


ma a questo punto se devi fare tutte quelle cose usa un atmega328 in standalone! in pratica è il microcontrollore dell'arduino che una volta finito il progetto lo usi da solo e risparmi l'arduino...

MatteoG

Si si è vero che c'è anche questa possibilità però non mi bastano i pin con 1 328 solo...
Ciao, Matteo.

leo72

Prima devi capire se la libreria è compatibile con il Tiny84.
Devi cioè verificare che non usi pin inesistenti sul Tiny, interrupt/timer non presenti, che riesca a starci nella memoria ma, soprattutto, che funzioni.


MatteoG

No, prima devo capire ancora come funziona una libreria e come si modifica... :(
Così sto facendo il passo più lungo della mia gamba, mi mancano troppe nozioni ancora per continuare.
Ciao, Matteo.

MatteoG

@Leo72
ho trovato gli ATtiny 84 e 85 in 2 versioni: a 10 MHz o 20 MHz. Credo di capire che per andare a 20 ( o 10) ho bisogno di componenti aggiuntivi (quarzo etc) , ma li posso usare anche così senza niente (magari a velocità ridotta)?  Oppure devo prendere solo i max 10 MHz come da guida? :~
Ciao, Matteo.

leo72

Prendi quelli da 20 MHz. Anche questi possono andare a 1 o 8 MHz senza componenti aggiuntivi. Se poi hai bisogno di maggior potenza, basta aggiungere un quarzo esterno.

Go Up