domenica 30 agosto 2015

PIN out / int ATtiny85

Vediamo rapidamente, tramite questa utilissima immagine, le uscite e gli ingressi della nostra ATtiny85.


Prima di tutto impariamo a leggere questa immagine.

Di necessario dobbiamo tener presente due indicazioni:
  • Pin utilizzabili da Arduino, quelli che useremo nell'IDE
    • Sono quelli nelle nei pallini verdi, rossi e blu.
  • Pin che indicano i piedini fisici del componente
    • Sono quelli all'interno del componente.
Per capire meglio come mai questa differenza sia NECESSARIA, vi riporto questo esempio.

Quando dobbiamo fisicamente collegare la nostra ATtiny85 ad Arduino impostato come ISP, dobbiamo far riferimento ai pin fisici del componente.
Questi sono quelli interni al componente, partono da 1, in alto a sinistra, scendono fino all'4, ricominciando dall'altra parte nel componente (dal basso verso l'alto).

Immaginiamo di collegare un led, i pin fisici 4 e 8 non sono utilizzabili, in quanto sono l'alimentazione.
Rimangono i pin 1,2,3,5,6,7.
Immaginiamo di collegare il led ( con la sua resistenza ) al pin fisico  2.

Quando andremo a definire, nell'Arduino IDE, quale pin è collegato al led, dovremo guardare i numeri al di fuori del componente, quelli colorati.
Il pin fisico 2 (dove c'è il led) è collegato al pin 3 dell'Arduino IDE.

Questo è il primo passo necessario per la corretta lettura di questa utilissima immagine guida.


Un ulteriore esempio degno di nota sono i pin fisici 2,3,7.
Se vogliamo utilizzarli come pin Analogici, dovremo chiamarli con i numeri rossi che iniziano per 'A' .
Mentre se vogliamo utilizzarli come pin Digitali, li chiameremo con i numeri blu.
I piedini PWM sono contrassegnati con il colore verde.

domenica 23 agosto 2015

Collegamento ATtiny85 e Arduino ISP

Guida precedente, libreria necessaria: Arduino IDE e ATtiny85 .

Questa guida vi spiegherà come collegare fisicamente il nostro ISP ( Arduino in questo caso ) con l'ATtiny85.

Per prima cosa è necessario avere:

  • scheda Arduino ONE o Duemilanove
  • ATtiny85 oppure una ATtiny45 ( entrambe a 8 pin )
  • un condensatore da 10uF, non più richiesto.
  • breadboard
  • svariati cavi

  1. Passo zero, caricare sull'Arduino l'esempio "ArduinoISP".
  2. Montare lo schema riportato fisicamente qui sotto:

NOTA: sull'ATtiny c'è un pallino che indica il primo pin, quello è collegato con il cavo giallo al pin 10.

Come indicato nella guida precedente, ricordiamoci d'impostare nell'Arduino IDE:
  • "tools" --> "board" --> "ATtiny"
  • "tools" --> "processor" --> "ATtiny85"
  • "tools" --> "programmer" --> "Arduino as ISP"

giovedì 20 agosto 2015

Arduino IDE e ATtiny85

Come abbiamo già visto in questo articolo possiamo programmare la nostra ATtiny85 utilizzando il nostro Arduino come Programmer (ISP) oppure utilizzando un programmer esterno ( esempio ).

La guida è identica per entrambi i casi.

Per prima cosa, rendiamo il nostro Arduino IDE in grado di "scrivere" sull'ATtiny85.
Git ufficiale del progetto


Nota: per questa procedura serve una versione dell'IDE d'Arduino almeno 1.6.4 o superiore.

Aggiunta boards ATtinyXX:

Apriamo il nostro Arduino IDE ed andiamo in "File" --> "preferences" .

 Qui troviamo un'icona di due finestrelle in basso a destra. Clicchiamoci.

Copiamo ed incolliamo nella casella questa stringa:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Clicchiamo su "ok" e poi di nuovo "ok" per tornare all'IDE d'Arduino.

Ora sotto il menu "tools" --> "board" --> "boards manager"  andiamo a cercare ATtiny .

Installiamo questo pacchetto.

Chiudiamo quest'ultima finestra e tornando in "tools" --> "board" leggeremo ATiny; selezioniamola.
Sempre sotto "tools" --> "processor" selezioniamo ATtiny85.


Ora la guida si dirama:
  • Programmare ATtiny85 tramite Arduino ISP
    • Caricare sull'Arduino l'esempio "ArduinoISP".
    • Nell'Arduino IDE selezioniamo "tools" --> "programmer" --> "Arduino as ISP".
    • Guida al corretto collegamento tra Arduino ISP e ATtiny85.
    • Caricare il programma sull'ATtiny85.
  • Programmare ATtiny85 tramite programmer esterno
    • Seguiamo la guida data dal produttore del nostro programmer esterno.

domenica 16 agosto 2015

Bootloader e Programmer

Come abbiamo visto nella guida precedente stiamo parlando di microcontrollori, che sia quello montato su Arduino o una ATtiny85, entrambi hanno bisogno del Bootloader o Programmer.

Andiamo per ordine, cos'è un Programmer?
Un programmer è un piccolo dispositivo che permette di far comunicare un microcontrollore con il pc.
Pensateci, un oggetto con 8,16,24 pin, come lo collegate fisicamente al computer per programmarlo?
In sostanza vi sto dicendo che per programmare un microcontrollore serve un programmer.
Per rendere meglio l'idea guardiamo questo comune programmer per ATtiny85.
Programmer per ATtiny85
Guardiamo i punti salienti:
La USB ci permette di collegarci al pc, l'ATtiny84 è un microcontrollore che fa da programmer (si nel programmer c'è un microcontrollore per programmare un microcontrollore XD ) ed il Socket dove andremo a mettere la nostra ATtiny85 da programmare.

Ma Arduino? Arduino non ha un programmer?
In effetti Arduino non ha un suo programmer, chi ha studiato e creato Arduino non voleva complicare la vita ai novizi, quindi si sono inventati il Bootloader.

Il bootloader è un software che incorpora due cose:
  • il codice del vostro programma
  • il programmer, per interfacciarsi con il pc
Il trucco sta tutto qui, quello che veniva fatto dal programmer ( il microcontrollore ATtiny84 ) ora viene fatto dal microcontroller d'Arduino. 
In somma, sparisce un microcontrollore per programmare Arduino.
La domanda sorge spontanea, ma perchè devo utilizzare un programmatore? sarà ben più comodo e furbo come fa Arduino?

Arduino ha molta memoria rispetto ad una ATtiny85, 32 KB contro 8 KB della ATtiny, se pensiamo d'incorporare nel codice anche il bootloader sprechiamo troppa memoria!
Ed ecco spiegato il motivo per il quale si usa un programmatore per programmare un'ATtiny.


Quindi devo comprare un programmer per utilizzare l'ATtiny85?

Fortunatamente no, possiamo istruire Arduino come un programmer!

Nella successiva guida vedremo come farlo nei dettagli, per poi crearne una versione più evoluta e comoda.


sabato 15 agosto 2015

Introduzione ATtiny85 Arduino

La prima cosa che dobbiamo chiarire, prima d'addentrarci in come usare la nostra ATtiny85, è: cos'è un ATtiny?
Microcontrollori
AT è l'acronimo del produttore di queste "mini Arduino", appunto ATMEL. Questa enorme e storica casa crea microcontrollori da sempre, compreso quello che troviamo sul nostro Arduino.
ATMEL produce una vastissima gamma di microcontrollori, tra cui troviamo quello montato su Arduino (vedi immagine sotto) e diversi tipi di ATtinyXX. 
In questa guida ci concentreremo sulla ATtiny85.
Se prendete il vostro Arduino, noterete un microcontrollore ATMEL proprio sulla scheda:
Microcontrollore puntato dal cacciavite
Come potete vedere ha molti più pin, piedini, rispetto alla nostra ATtiny85, che ha solo 8 pin, piedini.
Eccola la nostra ATtiny85
Insomma, per rispondere alla domanda cos'è una ATtiny , la risposta più generica è "un altro microcontrollore", in particolare l'ATtiny85 ha la possibilità di caricare il codice Arduino.
Ed ecco perchè così tanto interesse per la versione ATtiny85.


La seconda domanda da porsi è: perchè usarla? 
ho già un Arduino, che fa più cose avendo anche più pin, piedini.

Forse è meglio vedere la soluzione di questa domanda da un'altro punto di vista.
Per tutti i progetti che avete realizzato con un Arduino, quanti pin avete utilizzato? 
Tipicamente dai 3 ai 5 pin, è raro utilizzarne di più. 

Altro punto di vista per rispondere a questa domanda è: quanto ci costa un Arduino?
Una volta creato il nostro progetto l'Arduino è giù utilizzato, e se volessi cominciare un nuovo progetto? 
E' impensabile comprare più Arduino, per diversi progetti, non costa poi così poco...
Per non parlare del fatto che, un Arduino, è veramente sprecata se la si mette in una scatola con solo 3 pin attaccati....
Molto più compatto e versatile d'un Arduino
Ora abbiamo diversi punti di vista per arrivare alla risposta: perchè usarla .
Arduino è un'ottima scheda di progetto, versatile ed utilizzabile per progettare di tutto.
Una volta progettata la nostra idea, basterà prendere una scheda compatibile con il codice Arduino, come la nostra ATtiny85, ed esportare il codice precedentemente provato su Arduino.
A questo punto, avremo un "mini Arduino" da mettere in qualsiasi scatola! 
Vi ricordo che un'ATtiny85 costa circa 3 euro!
Una nota aggiuntiva, più che utile, moltissime librerie per Arduino sono perfettamente compatibili con l'ATtiny85. Più avanti nelle guide lo metteremo meglio alla luce.


Avendo appena riposto alle domande minime per comprendere l'utilizzo e la necessità nello studiare la nostra ATtiny85, i prossimi passi saranno quelli necessari per compilare e far funzionare correttamente la nostra ATtiny85 con l'IDE d'Arduino.

martedì 4 agosto 2015

3Doodler hack

3Doodler hack

Prima di tutto, cos'è la penna 3Doobler? 
Questa penna nata su kickstarter, è una semplice versione "manuale" d'una stampante 3D. 
Per non perdere troppo tempo nella descrizione della penna, non compete a questo post, vi lascio un video autoesplicativo:


Ma guardiamo più da vicino questa penna:

Sul lato di questa penna troviamo 3 forellini, partendo da destra verso sinistra:
  • Pin 0 = GND
  • Pin 1 = Slow
  • Pin 2 = Fast
Collegando con un cavetto questi Pin, a coppie per chiudere il circuito, abbiamo queste combinazioni:
  • GND + Slow = la penna estrude in Slow
  • GND + Fast = la penna estrude in Fast
  • GND + GND = combinazione impossibile, non ci si riesce fisicamente!
  • Fast + Slow o Slow + Fast = nessun effetto, non utilizzata
  • Fast + Slow + GND = modalità Reverse
Quindi, solo le combinazioni verdi hanno senso, le altre no. In totale 4.
La domanda sorge spontanea, Fast, Slow e lo STOP? Basta non chiudere il circuito. Quindi collegare GND a nessun altro Pin.

Questo articolo nasce per poter collegare ad un Arduino, o in generale ad un controllore, che controlli automaticamente, secondo un programma, la nostra penna.

Bene, in sostanza dobbiamo collegare queste coppie per avere le 4 combinazioni essenziali.
Per farlo utilizziamo un transistor. 

Il principio di funzionamento è questo, il circuito è in ON ( immagine a sinistra ) quando Arduino manda un comando HIGH , +5 V.
Questo stato equivale a collegare due Pin, appunto in coppia.
L'opposto è il circuito in OFF ( immagine di destra ), quando Arduino manda un comando LOW, 0 V.

Sfruttando questo principio ho creato questo circuito con due transistor:

Arduino manda un segnale di HIGH o LOW sui Pin 8 e 7 . Mandando l'impulso HIGH si accende il transistor collegato a quel pin, mandano l'impulso LOW si spegne quel transistor al pin collegato.
Non accendendo nessun transistor ho la condizione di STOP.

Il codice ed il circuito relativo lo troverete sul mio GIT a questo indirizzo: