Come programmare una scheda Digispark

La scheda Digispark è una specie di sorella minore della scheda Arduino. Utilizza un microcontrollore Attiny85 costruito sempre dalla Atmel (ora Microchip) e si può programmare con l’IDE di Arduino ma in maniera leggermente diversa.

Lo schema della scheda è piuttosto semplice ma attenzione perché nello schema pubblicato da Digistump c’è un diodo con polarità invertita:

Installiamo e configuriamo l’IDE di Arduino

La prima cosa è andare alla pagina download del sito di Arduino, scaricare la versione per il proprio ambiente (Linux, Windows o MacOS) e installarla.

Se usiamo Linux potrebbero servire la libusb e la lib32stdc (su Ubuntu lib32stdc++6) e il nostro utente deve essere autorizzato ad utilizzare le porte seriali quindi appartenere al gruppo dialout.

Se usiamo Windows dovremo anche scaricare i driver USB per fargli riconoscere la scheda. Scarichiamo l’archivio a questo indirizzo, decomprimiamolo e installiamo il driver DPInst se il sistema è a 32 bit oppure DPInst64 se è a 64 bit.

A questo punto dobbiamo aggiungere la nostra nuova scheda tra quelle che l’IDE è in grado di gestire. Andiamo in File > Impostazioni e nel campo URL aggiuntive per il Gestore schede inseriamo:

http://digistump.com/package_digistump_index.json

Poi andiamo in Strumenti > Scheda > Gestore schede… e nel campo di ricerca indichiamo “Digistump AVR Boards”. Il pacchetto mostrato è quello da installare.

Come ultimo passo dobbiamo scegliere la nostra scheda in Strumenti > Scheda:

Programmiamo la scheda

A questo punto siamo pronti per caricare il programma sulla scheda, far lampeggiare il led a bordo della scheda:

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(0, OUTPUT); //LED on Model B
pinMode(1, OUTPUT); //LED on Model A or Pro
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(1, HIGH);
delay(1000); // wait for a second
digitalWrite(0, LOW); // turn the LED off by making the voltage LOW
digitalWrite(1, LOW);
delay(1000); // wait for a second
}

La procedura è leggermente diversa da quella classica per Arduino dato che per consentire di utilizzare più pin di ingresso/uscita possibili i progettisti della Digispark hanno disabilitato il pin di reset.

Il pin di reset è quello che permetterebbe di riavviare la scheda e quindi di mettere in esecuzione il bootloader. Si tratta di una parte di codice preinstallata nella memoria della scheda che viene eseguita dal microcontrollore appena si avvia. Tale codice verifica se deve caricare un nuovo programma principale e poi gli passa il controllo.

Il bootloader, di solito, è già precaricato nella scheda dal costruttore per renderla immediatamente usabile.

Normalmente il reset della scheda viene fatto automaticamente ogni volta che dobbiamo caricare un nuovo programma ma dato che per la Digispark non è possibile dovremo pensarci noi nel giusto momento.


Una volta che il programma è pronto può essere caricato.

Scolleghiamo la scheda dalla presa USB e clicchiamo sul pulsante Carica.

Quando ci viene richiesto, colleghiamo la scheda nella presa USB.

Infine viene caricato e messo in esecuzione il nuovo programma.

Per ulteriori dettagli o risoluzione di problemi sulla procedura di caricamento puoi fare riferimento anche a questa pagina mentre per maggiori informazioni sulla scheda a questa.

Bonus

La procedura che abbiamo utilizzato funziona perfettamente anche per le schede Arduino tradizionali, naturalmente dovremo scegliere quella giusta nell’elenco Strumenti > Scheda e non sarà necessario scollegare e ricollegare la scheda al momento della programmazione.

Un commento su “Come programmare una scheda Digispark”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *