Ago 262021
 

Guardami negli occhi e dimmi la verità. Non ti senti una carogna quando usi un intero Arduino Uno per poi sfruttare due o tre pin della scheda ed il resto lo lasci vuoto? Se anche tu cercavi una soluzione per tutti quei piccoli progetti per i quali un Arduino Uno o un Nano sono eccessivi ci sono delle soluzioni alternative. Oggi vi parlo appunto della Digispark ATTINY85 USB. La ditta produttrice non la scrivo a caso, in quanto esistono cloni cinesi che all’apparenza sono del tutto identici ma che in realtà differiscono in uno dei pin che per farvela corta non risulta disponibile (pin5)  se non effettuando delle modifiche software un po’ incasinate.

La foto la potete vedere qui sopra. Si tratta di un circuito che ricorda un po’ quelle chiavette USB senza custodia, solo che presenta alcuni pin di ingresso e di uscita. Ovviamente il microcontrollore a bordo non sarà il classico ATMEGA 328p che troviamo in Arduino UNO, ma il forse meno noto fratellino minore AT-TINY85. Si tratta di un piccolo microcontrollore 8bit con 8K di memoria Flash (di cui 2 sottratti dal bootloader), 6 pin di I/O di cui 2 collegati all’USB ed uno non realmente utilizzabile nei cloni cinesi, ha l’ADC su 4pin (ingressi analogici), il PWM su 3 pin. La si può trovare sugli store cinesi a circa 2 euro al pezzo. Ha un regolatore di tensione integrato che permette di alimentare il tutto non solo dall’USB del pc o di un alimentatore per telefoni, ma anche con il pin dedicato dall’esterno con tensioni 5-12V: il datasheet riporta fino 35V ma non fidatevi perchè ci sono sicuramente cloni cinesi con regolatori di diverse specifiche tecniche.

Nella scheda non c’è un convertitore USB-Seriale come sulle restanti schede Arduino, e ciò fa si che il funzionamento sia leggermente differente. Infatti se la inserite nella porta USB non verrà rilevata dall’IDE di Arduino. Infatti, una volta completati i passi che vi descriverò a breve, dovrete compilare come sempre lo sketch, e solo dopo il termine della compilazione dovrete collegare la schedina, avete infatti circa 60 secondi di tempo per collegarla e permettere che venga trasferito il programma sulla scheda. Ma facciamo un passo indietro. 

Come abbiamo già visto con altre schede non supportate in maniera nativa dall’ide di arduino, dobbiamo andare ad aggiungere manualmente l’indirizzo dove andare a pescare le schede. Nulla di complesso, andate su File – > Impostazioni e dove c’è lo spazio “URL aggiuntive per il gestore schede” dovete scrivere http://digistump.com/package_digistump_index.json. Se per caso c’è già qualcosa di scritto, ad esempio perché avete già installato i moduli ESP, non fate altro che separare ciò che già c’è scritto con una virgola. 

Quindi se ad esempio avete i moduli esp installati, la stringa complessiva diventerà: 

https://dl.espressif.com/dl/package_esp32_index.json,https://arduino.esp8266.com/stable/package_esp8266com_index.json,http://digistump.com/package_digistump_index.json

Una volta fatto questo passo date l’OK e andate “Strumenti”, sulla scheda selezionata e “Gestore schede” e cercate “Digistump AVR Board” ed installate. Ci siamo quasi. L’ultimo passo è legato proprio al fatto che non essendoci il convertitore USB-Seriale sulla scheda, dobbiamo utilizzare un driver specifico che comunica direttamente con il bootloader. Anche in questo caso non dovete far altro che installare i drivers che trovate questo link.

Riassumendo i passi da fare sono: 

  1. Installa i drivers
  2. Aggiungi l’url JSON (http://digistump.com/package_digistump_index.json)
  3. Installa le board (Digistump AVR Board)

Ora potete tranquillamente cominciare a compilare i classici esempi, la board da selezionare è la “Digispark (default 16.5mhz)”. Ma prima diamo uno sguardo un po’ più da vicino ai vari pin. 

pin digitale  Pin analogico SPI pin USB I2C
5 0
4 2 USB –
3 3 USB +
2 1 SCK SCL
1 MISO
0 Aref MOSI SDA

Come vedete pur con risorse limitate, le possibilità di utilizzo sono molto ampie e devo ancora dirvi una caratteristica molto importante. Infatti, installando alcune librerie, è possibile gestire la scheda come fosse una tastiera, un mouse o un joystick. Ora vi chiederete cosa ve ne potreste fare. 

Non avendo un convertitore seriale USB il monitor seriale non funziona e quindi ve lo scordate per il debug. Però se emulate una tastiera, vi basterà aprire un software di scrittura, anche un banale NotePad, e la scheda comincerà a scrivere il debug in quella finestra. Io ho usato questa tecnica per fare il debug visto che un progetto che ho realizzato non funzionava a dovere, per poi scoprire che avevo un clone cinese e quindi non potevo usare il pin 5. Ovviamente non è l’unica soluzione, esiste anche una seriale software o altri stratagemmi. Ma è possibile usare questa funzione per fare delle automazioni, tipo modifiche di files di sistema, chiavi di registro, etc, etc. Cosa ne pensate di una tastiera dedicata al video editing? Le possibilità sono tante. 

Io ho realizzato un progettino quasi banale, dovevo semplicemente leggere un sensore LDR per valutare la luminosità ambientale, leggere un ingresso digitale su cui è collegato un sensore PIR ad infrarossi, e quando necessario eccitare un relè che a sua volta accende un faro led. 

Nulla di particolarmente complesso ma mi permette di creare un faretto con sensore ad infrarossi con pochi componenti. Poi cambiando lo sketch posso modificare le soglie di intervento, di successiva inibizione, le tempistiche di gestione del faretto, etc. Ma la mia vera intenzione è in realtà differente. Integrerò infatti questo sistema con una videocamera “fai da te” costruita con il modulo visto in un precedente articolo. In questo modo la gestione del faretto è indipendente dalla videocamera e gli fa solo da trigger per registrare cosa sta accadendo. Inoltre anche se il modulo videocamera si blocca, il faretto continua comunque a funzionare in maniera indipendente. 

Certamente si possono percorrere anche strade differenti, ma se pensate che questo modulino costa solo 2€ ed è davvero molto piccolo, possiamo pensare di utilizzarlo in molti progetti in cui non è richiesta potenza elaborativa e ci bastano pochi pin per la gestione di tutto il circuito. 

Qui di seguito il video correlato.