Giocando con l'Attiny85

ratto93: Oggi ho finalmente terminato il regolatore di carica per pannelli solari e programmando il Tiny con i Tiny cores dopo la modifica scritta da leo funziona tutto perfettamente,

Sono contento per te :D

Programmando il chippettino con il Luigino 328 di Astrobeed ho con gioia scoperto che non serve mettere ne condensatori ne altro per impedire l'auto reset, Astro è per via dell'aggiunta del PIC onboard che non si autoresetta ?

Come ti ha detto Astro, la Luigino ha quella interessantissima funzione, che puoi attivare/disattivare come vuoi. Una figata! ;)

Si si ricordo che astro ci aveva spiegato come funzionava , domenica 23 ma non avevo capito che faceva lo stesso con ISP è davvero moolto comoda come cosa :)

Infatto ora monto gli strip ed un ponte per attivarla e disattivarla senza problemi :)

Sì, difatti io li ho messi tutti e 3, compresi un jumperino per lo Smart-reset sempre montato sopra :wink:

Scusate la domanda banale, dove ordinate Attiny85? Non lo trovo. O sbaglio nome per cercarlo? (ho usato Attiny85). Vorrei iniziare a giocarci anche io XD

http://www.ebay.it/sch/i.html?_nkw=attiny+85&_sacat=0&LH_PrefLoc=2&_odkw=attiny85&_osacat=0&_trksid=p3286.c0.m270.l1313

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

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

Da RS sono un po' cari.

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

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

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. :fearful:

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.

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... :blush:).

MatteoG: 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.

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 ?

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

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... :blush:).

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.

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...

MatteoG:

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...

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

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.

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.

@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? :~

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.