Installation dans l’IDE Arduino
La première étape consiste à déclarer dans les préférences les ressources de ces microcontrôleurs afin de les voir apparaitre dans le gestionnaire de cartes :
Ouvrir les préférences :
- Figure 4 : Préférences de l’IDE Arduino
Editez le champ "URL de gestionnaire de cartes supplémentaires".
Ajoutez l’URL suivante : "http://digistump.com/package_digist..."
Et ajouter aussi cette URL : "http://drazzy.com/package_drazzy.co..."
- Figure 5 : ajouter les URL des ressources pour les cartes Digispark.
Cliquez sur OK sur cette fenêtre et sur OK pour enregistrer les préférences.
Maintenant allez dans le gestionnaire de cartes et sélectionnez "Digistump AVR Boards" qui correspond à la première URL ci-dessus.
- Figure 6 : installation des cartes "Digistump".
Puis cliquez sur "Installer"
Pendant que vous y êtes, toujours dans le gestionnaire de cartes, sélectionnez "ATTinyCore" qui correspond à la 2ème URL ci-dessus et installez.
- Figure 7 : Installation des cartes "ATTinyCore".
Pourquoi ces deux environnements ? Parce qu’ils diffèrent sur plusieurs points : Le premier (Digistump) offre plus d’exemples et de bibliothèques que le second (ATTinyCore).
- Figure 8 : liste d’exemples Digistump et ATTinyCore
Par exemple, DigiStump permet d’exploiter le mode de communication HID (Human Interface Device) présent sur le port USB : il n’est pas possible, avec ces cartes, de communiquer avec un Serial.print
, mais avec un DigiKeyboard.print
. C’est une manière étrange de "sortir" des textes dans une fenêtre texte (NodePad ou Textedit) [5] pendant l’exécution du programme, au lieu de la fenêtre "moniteur" de l’IDE.
A l’opposé, ATTinyCore ne se limite pas aux cartes Digispark et permet de programmer toutes sortes de composants ATtiny en utilisant les méthodes décrites dans les articles Le microcontrôleur ATtiny45 (10).
Attention, cet article ne décrit rien d’autre que la prise en main des ces cartes ATtiny dans l’IDE Arduino. A vous d’en explorer les possibilités par vous-même.
Maintenant toutes les ressources nécessaires pour programmer vos ATtiny Digispark Pro sont installées dans votre IDE... Sauf pour le système Windows dans lequel il faut aussi installer un pilote (ou "driver") pour la communication par le port USB pendant le téléversement, qui est très spécial à ces cartes Digispark ! Pour les utilisateurs de MacOS (et peut-être Linux), il n’y a rien à installer de plus.
Voici comment faire pour Windows :
Installation du pilote Windows
IL faut d’abord récupérer le programme d’installation de ce driver :
On télécharge : DigistumpArduino-master.zip
On extrait micronucleus-2.0a4-win.zip de tools dans le répertoire enregistré sur le disque dur.
C :\Users\xxx\Downloads\DigistumpArduino-master.zip\DigistumpArduino-master\tools\micronucleus-2.0a4-win.zip\
- Figure 9 : à la recherche du pilote Windows !
Dans lequel on trouve DPinst64.exe pour les systèmes X64, DPinst.exe pour les systèmes X32. Il faut lancer cet utilitaire directement (et non via le .bat) ce qui permet d’installer le pilote émulateur de port COM pour l’opération de téléversement seulement (sans lui, le téléversement échoue !).
Pour Windows 10, le pilote n’apparait que dans les périphériques cachés du gestionnaire de périphériques en tant que "libusb-win32 devices". On ne voit pas le port de l’ATtiny dans le sous-menu "port" de l’IDE, ni dans n’importe quel émulateur de terminal. Ceci est normal et cela condamne définitivement l’utilisation des instructions Serial.print
dans les sketchs (ce qui est précisé plus haut), mais une communication entre la carte Digispark et un moniteur est toutefois possible en utilisant la bibliothèque SoftSerial et un adaptateur externe USB-série, ou le bus I2C avec un Arduino connecté et programmé pour cela, mais n’est pas le sujet de cet article.
Nous allons utiliser maintenant ces ressources pour programmer notre ATtiny avec la connexion USB de notre ordinateur. Il y a deux cas possibles :
Programmation avec Digistump
Pour programmer un Digispark Pro ATtiny 85, sélectionnez "Digispark (Default - 16,5Mhz)" dans le menu "type de carte"
- Figure 10 : choix de la carte Digispark (Default - 16,5MHz)
Entrez votre premier programme de test dans le menu Exemple :
- Figure 11 : ouverture de l’exemple "Start"
ou copiez-coller le sketch suivant :
// 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(250); // wait for a second
digitalWrite(0, LOW); // turn the LED off by making the voltage LOW
digitalWrite(1, LOW);
delay(250); // wait for a second
}
A ce stade vous pouvez vérifier que la compilation du programme se passe bien sans erreur, mais ne branchez pas la carte Digispark pour le moment.
Maintenant cliquez sur le bouton "Téléverser" et observez que le texte suivant s’affiche en bas de l’écran, sous le texte du programme à la fin de la compilation :
Maintenant branchez le câble USB relié au Digispark à votre ordinateur et observez l’affichage du texte suivant sous le précédent :
Vous devez voir clignoter la led ’BUILTIN" de la carte.
Programmation avec ATTinyCore
Cette fois-ci sélectionnons l’ATtiny85 dans la liste des microcontrôleurs de l’ATTinyCore :
- Figure 12 : choix de l’ATTiny85 Pro dans l’ATTinyCore
Puis nous pouvons vérifier et téléverser le programme "Start" précédent de la même manière. Mais cette fois il n’est pas nécessaire de brancher la carte après le lancement du téléversement. Si la carte est déjà branchée, ce dernier s’effectue automatiquement, sauf sous Windows qui refuse la connexion USB du Digispark : on a une alternance détection / erreur toutes les secondes environ : il faut brancher la carte quand l’invitation est affichée :
> Please plug in the device ...
Quelles différences entre les 2 types de ressources Digistump et ATTinyCore ?
D’abord, on remarque que la taille du code est plus petite (692 octets au lieu de 718) qu’avec Digistump.
Avec les ressources "Digistump" le type de carte est peu renseigné et il est nécessaire de choisir le carte Digispark (Default- à 16,5 MHz car la ligne "Pro" à 16Mhz ne marche pas.
- Figure 13 : type de carte Digispark/Digistump
Avec les ressources "ATTinyCore", le type de carte est beaucoup mieux renseigné et il n’y a plus d’ambigüité sur le type Défault, Pro ou non :
- Figure14 : type de carte ATTinyCore
De plus, ces ressources couvrent toutes sortes de modèles ATtiny et de méthodes de programmation. Nous allons donc conserver cet ATTinyCore dans la suite de cet article, en particulier pour le Digispark ATtiny167 qui apparait bien dans la liste.
N’oublions pas les spécificités de l’environnement Digistump décrites plus haut qui peuvent permettre des projets spécifiques (à découvrir par vous-même).
Dans les deux cas, on remarque l’absence du nom de Port et ceci est important à savoir : la communication par le port USB n’est pas un Serial Port comme dans le cas des autres Arduino, mais un port spécial simulé par le micronucleus embarqué dans la puce pour les besoins du bootloader. Cela signifie qu’on ne peut pas faire communiquer les cartes Digispark avec le moniteur de l’IDE. Mais il existe d’autres moyens de communication qui sont consultables dans les documentations Digispark
Rappel : si on veut programmer des puces ATtiny sans ce support Digispark, on se rendra directement sur la série d’articles sur les ATtiny Le microcontrôleur ATtiny45 (10).
Une très belle réalisation d’une carte de programmation est également décrit sur le forum, ici :
Réalisation de carte pour compléter le shield ATtiny