Trinket-ArduinoIDE-Config

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Mise En Place d'Arduino IDE

Si vous utilisez un Trinket, vous aurez le plaisir de constater parce qu'il est programmable avec Arduino IDE. Notez que le Trinket n'est pas entièrement compatible avec Arduino: il utilise un microcontrolleur différent (plus petit) que le Uno, Mega, Leonardo ou Due. Cependant, il est suffisamment puissant pour que de nombreux programmes et librairies qui fonctionnent très bien. Certaines ne nécessitant qu'un changement de numérotation de broche.

La méthode rapide

Si vous ne voulez pas modifier votre installation existante d'Arduino IDE, vous pouvez simplement télécharger notre environnement prêt à l'emploi et testé pour Flora/Gemma/Trinket v1.05:

Le méthode manuelle

Étape 1: Installer Arduino IDE

Le support de Trinket n'est pas disponible en natif dans Arduino IDE. Mais heureusement, cela ne prend que quelques minute pour l'ajouter et vous n'aurez à le faire qu'une fois! Ce tutoriel est basé sur l'IDE v1.0.5 (qui vient de sortir au moment de l'écriture de cet article). Vous pouvez essayer les versions plus récentes mais la v1.0.5 est au moins assurée de fonctionner.

Ajouter le support de Trinket ne doit affecter aucun des autres systèmes supportés et doit nous permettre de continuer d'utiliser Arduino IDE avec ceux précédemment supportés.

Étape 2: Ajouter le support ATtiny85

Téléchargez le fichier suivant en cliquant sur le lien.

Décompressez l'archive et déplacez le répertoire hardware contenu dans le fichier .zip dans votre répertoire sketchbook d'Arduino. Le répertoire sketchbook est le répertoire où Arduino IDE place vos croquis/sketchs. Ce répertoire est automatiquement créé par l'IDE durant son processus d'installation. Si c'est la première fois que vous utilisez l'IDE Arduino, il est probablement vide!

Sur les machines Linux: le répertoire est nommé "Sketchbook" et est typiquement placé dans dans "/home/[nom_d_utilisateur]"

Sur les machines Windows et Macintosh: le nom par défaut du répertoire est "Arduino" et il se situe dans votre répertoire "Documents".

Maintenant, vous pouvez démarrer (ou redémarrer l'IDE) et tester le menu Outils->Cartes (Tools->Board). Vous devriez y voir trois nouvelles entrées pour Trinket et Gemma:

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Très bien, nous avons à moitié terminé!

Maintenant, nous allons mettre à jour le fichier de configuration avrdude.

Étape 3: Mise-à-jour d'avrdude.conf

La seconde étape est la mise-à-jour du chargeur de programme dans l'AVR pour l'aider à être un petit peu plus patient avec le bootloader ATtiny85 disponible sur le Trinket. Nous mettrons à jour la description du cycle d'effacement de la puce afin qu'il soit plus long et éviter ainsi les dépassements de temps (timeouts) et autres erreurs.

Les utilisateurs Windows et Linux peuvent télécharger le nouveau fichier avrdude.conf en cliquant l'un des liens suivants:

Maintenant, nous allons rechercher le fichier original avrdude.conf. Si vous utilisez un Mac, cliquez-droit sur l'icône de l'application Arduino et sélectionnez “Montrer le contenu du Package” naviguez alors au travers des dossiers et contenu Java.

Avec Windows, vous devez trouver le répertoire d'installation. Il est parfois sur le bureau ou parfois dans C:\Program Files si vous avez utilisé le programme d'installation Arduino.

Avec Linux, il doit être où vous avez décompressé le répertoire.

Maintenant, recherchez le répertoire hardware\tools\avr\etc où vous localiserez le fichier avrdude.conf. Vous pouvez aussi utiliser votre outil de recherche système (finder ou équivalent).

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com


Renommer l'ancien avrdude.conf en avrdude.bak puis copier le nouveau fichier avrdude.conf dans le même répertoire.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Assurez-vous de renommer l'ancien fichier avant de le remplacer par le nouveau. De cette façon: (1) vous garder une copie de sauvegarde et (2) vous avez la certitude d'avoir remplacé l'ancien fichier conf!

Étape 4: Mise-a-jour du Linker 'ld'

Il y a un bug (coquille/bogue) dans le 'linker' utilisé par Arduino. Ce bug vous empêche de créer des croquis/sketchs de plus de 4K pour un Attiny85.

C'est frustrant de ne pouvoir élaborer de programmes plus conséquents, nous vous suggérons donc de le remplacer le linker. cette tâche est similaire au remplacement du fichier avrdude.conf.

A cette fin, naviguez dans le répertoire Arduino ou App à la recherche du sous-répertoire hardware\tools\avr\bin. Vous y trouverez une grand nombre de fichiers commençant par avr-xxx.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Téléchargez le fichier ld correspondant à votre système d'exploitation pour remplacez celui d'Arduino avec cette nouvelle version (Patch correctif pour GCC, remerciements à TCWorld!)

Redémarrez maintenant Arduino IDE.

Vous avez terminé cette mise-à-jour! Il est temps de faire dire "hello, world" à notre nouveau Trinket avec l'aide du petit croquis Blink.

Test avec Blink!

Vous allez vous exercer au téléversement du programme Blink.

Ce programme fait clignoter la LED rouge de la platine, cette LED rouge est connectée à la broche #1.

Créez un nouveau programme et copiez-collez le code ci-dessous dans votre fichier, enregistrez-le sous le nom de trinketblink ou nom de votre choix.


/*
     Blink pour Trinket

     Allume la LED #1 pendant une seconde, puis l'éteindre une autre seconde, de façon répétée.
     Cet exemple de code est dans le domaine public.

Pour charger votre Gemma ou Trinket:
     1) Sélectionner la carte correcte dans le menu Outils->Carte
     2) Sélectionner USBtinyISP dans Outil->Programmeur
     3) Connecter Gemma/Trinket, s'assurer que la LED verte est allumée
     4) Pour windows, installez les pilotes USBtiny
     5) Presser le bouton du Gemma/Trinket - vérifiez que vous voyez
     la LED rouge clignoter. Cela signifie qu'il est prêt à recevoir des données
     6) Cliquez le bouton de téléversement (dans Arduino IDE) dans les 10 secondes
*/

int led = 1; // La LED à faire clignoté. Broche digitale #1 - branchée sur la LED rouge
 
// la routine d'initialisation. Exécutée une fois au démarrage
void setup() {
     // Déclarer la broche comme sortie
     pinMode(led, OUTPUT);
}

// la routine de la boucle est exécutée encore et encore. A l'infini.
void loop() {
     digitalWrite(led, HIGH);
     delay(1000);
     digitalWrite(led, LOW);
     delay(1000);
}

Sélectionnez la carte Trinket 8MHz dans le menu Outils->Carte

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Ensuite, sélectionnez USBtinyISP dans le sous-menu Outils -> Programmeur (Tools->Programmer)

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

continuons

Branchez le Trinket, assurez-vous que la LED verte d'alimentation s'allume (power) et que la LED rouge clignote. Pressez le bouton "Reset" si la LED rouge ne clignote pas/plus, pour passer le Trinket en mode bootloader.

Cliquez sur le bouton de téléversement (ou choisissez par le menu Fichier -> Téléverser)

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Si tout fonctionne correctement, vous devriez voir le message "Téléversement terminé" (ou "Done Uploading" pour les version US) et aucun message en rouge.

Bien évidemment, après le téléversement, la LED rouge du trinket doit clignoter avec une période d'une seconde.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Test avec Blink! pour les Linuxiens

Chez MCHobby, nous mettons un point d'honneur pour utiliser notre matériel sous Linux. Nous disposons d'un Linux Mint pour faire nos développement... et l'utilisation de Arduino-IDE + USBTiny n'est pas des plus simples.

Pour reprendre la note disponible dans dans la documentation d'AdaFruit

Linux: Sudo et carte Trinket

Si vous utilisez sudo pour démarrer votre Arduino IDE, vous constaterez vite que la carte Trinket n'apparait plus dans la liste des cartes.

C'est normal, votre répertoire home pour l'utilisateur root (avec sudo) est "/root". Quand vous n'êtes pas root (sans sudo), votre répertoire home est situé dans "/home/votre_login_utilisateur". Normal donc qu'en sudo Arduino IDE ne retrouve pas la configuration des cartes Trinket qui se trouve dans "/home/votre_login_utilisateur/sketchbook/".

Pour contourner le problème:

  • Passer en root, mode interactif (sudo -i)
  • Trouver le répertoire sketchbook (dans /root/sketchbook) et le renommer sketchbook.old
  • Créer un lien symbolique vers le répertoire sketchbook de votre utilisateur habituel.
    ln -s sketchbook /home/votre_login_utilisateur/sketchbook/

Maintenant, la carte trinket doit également être visible lorsque vous démarrez arduino IDE en sudo.

Linux: Upload en Sudo

Si vous n'êtes pas en sudo, vous recevrez le message:

avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted

C'est pour cela qu'il faut passer en sudo... pour permettre a avr_dude d'accéder librement au port USB.

Linux: Et si cela ne fonctionne pas?

La documentation d'AdaFruit relative à UsbTiny propose d'ajouter une règle udev pour UsbTiny.

Nous avons également essayé d'ajouter les règles dans /etc/udev/rules.d sur base des informations suivantes:

Après quelques lectures, nous découvrons que sur Mint 64 bits, ce n'est pas dans /etc/udev/rules.d/ mais dans /lib/udev/rules.d/!

Linux: Arduino + AvrDude manuel

Si comme nous, cela ne fonctionne toujours pas, une dernière option qui semble fonctionner dans notre cas.

Elle consiste:

  • Passer Arduino IDE en mode Verbose (barvard) pour récupérer le nom du fichier .hex
  • Utiliser Arduino IDE compiler le programme et obtenir le .hex (et les erreurs de téléversement mais ce n'est pas important)
  • Et faire l'upload directement à l'aide d'AvrDude.

Voici donc un petit programme à téléverser:

/*
     LONG Blink pour Trinket

     Allume la LED #1 pendant une seconde, puis l'éteindre une autre seconde, de façon répétée.
     Cet exemple de code est dans le domaine public.

Pour charger votre Gemma ou Trinket:
     1) Sélectionner la carte correcte dans le menu Outils->Carte
     2) Sélectionner USBtinyISP dans Outil->Programmeur
     3) Connecter Gemma/Trinket, s'assurer que la LED verte est allumée
     4) Pour windows, installez les pilotes USBtiny
     5) Presser le bouton du Gemma/Trinket - vérifiez que vous voyez
     la LED rouge clignoter. Cela signifie qu'il est prêt à recevoir des données
     6) Cliquez le bouton de téléversement (dans Arduino IDE) dans les 10 secondes
*/

int led = 1; // La LED à faire clignoté. Broche digitale #1 - branchée sur la LED rouge
 
// la routine d'initialisation. Exécutée une fois au démarrage
void setup() {
     // Déclarer la broche comme sortie
     pinMode(led, OUTPUT);
}

// la routine de la boucle est exécutée encore et encore. A l'infini.
void loop() {
     digitalWrite(led, HIGH);
     delay(5000);
     digitalWrite(led, LOW);
     delay(5000);
}

Sélectionnez la carte Trinket 8Mhz via le menu Outils -> Carte -> Trinket 8Mhz.

Sélectionnez USBTinyISP comme programmeur via le menu Outils -> Programmeur -> USBTinyISP.

Lancer la compilation et le téléversement... vous aurez certes l'erreur avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted mais aussi des messages tels que:

/home/dominique/Bureau/arduino-1.0.5/hardware/tools/avr/bin/avr-objcopy -O ihex -R .eeprom /tmp/build5697481972630626828.tmp/TrinketBlink.cpp.elf /tmp/build5697481972630626828.tmp/TrinketBlink.cpp.hex 
Taille binaire du croquis : 832 octets (d'un max de 5.310 octets)

Où l'on retrouve le fichier hex (et son répertoire de stockage). Ne reste plus qu'a se rendre dans ce répertoire tel qu'il est indiqué dans le log:

cd /tmp/build5697481972630626828.tmp

Pour ensuite lancer le téléversement avec AvrDude juste après avoir pressé le bouton Reset:

sudo avrdude -c usbtiny -p attiny85 -D -U flash:w:TrinketBlink.cpp.hex

Et si cela ne fonctionne pas

avrdude

Si vous obtenez un message d'erreur tel que avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)

Cela signifie que le bootloader n'est pas activé.

Assurez-vous de bien presser le bouton Reset du Trinket pour activer le bootloader avant de cliquer sur le bouton 'Upload'.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Messages d'erreur

Si vous obtenez beaucoup de texte rouge, messages d'erreurs et autres avertissements comme: Erreur de vérification ("Verification Failed" en anglais).

Contrôlez la mise-à-jour du fichier avrdude.conf - si vous n'avez pas mis-à-jour la description de l'Attiny85 dans le fichier de configuration remplacez-le, l'IDE ne sait pas qu'il doit être patient avec le bootloader Trinket... ce qui génèrera de nombreuses erreurs de téléchargement.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com


Source: Introducing Trinket réalisé par Ladyada pour AdaFruit Industries. Crédit AdaFruit Industries

Réalisé avec l'aide de Mr Carette J. à qui nous remettons tous nos remerciements.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.