Trinket-ArduinoIDE-Config
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.
Même si Trinket dispose d'un connecteur USB, il n'a pas la capacité d'une liaison de "Console Série". Il n'est pas possible d'utiliser ce connecteur USB pour envoyer et recevoir des information sur la liaison série de/vers l'ordinateur!!! |
Ce code à été ecrit avant OSX Mavericks et il semble que la compatibilité ne soit pas maintenue avec IDE v1.05 - n'utilisez donc pas Mavericks pour programmer vos Trinket! |
La méthode rapide
Si vous ne voulez pas modifier votre installation Arduino IDE existante, vous pouvez simplement télécharger l'IDE modifié par AdaFruit pour Flora/Gemma/Trinket (prêt à l'emploi et testé):
Vous pouvez retrouver tout ces liens de téléchargement directement sur cette page du tutoriel d'AdaFruit.
Assurez-vous de bien extraire le contenu de l'archive, L'environnement de développement ne fonctionnera pas correctement depuis un répertoire compressé. |
Mac OSX
Si vous utilisez Mavericks comme OS Mac, il vous faudra faire modifier la configuration pour autoriser le fonctionnement Arduino IDE
- Ouvrez les préférences systèmes et sélectionnez l'icone "Security and Privacy".
- Selectionnez le volet 'General'
- Clicker sur l'icone Lock (cadenas) et encodez votre login
- Changez le "Allow Apps Downloaded From" (autoriser le téléchargement d'application depuis" : à "Anywhere" (partout)
- Ouvez ensuite l'IDE téléchargé.
- Retournez dans les préférences de sécurité et changer la selection pour revenir à "Mac App Store and identified developers" (Mac App Store et développeurs identifiés)
- Cette procédure ne doit être faite qu'une seul fois. Mavericks se souviendra que cette application peut être exécutée en toute sécurité.
Linux
Lorsque vous installez la version modifiée d'Arduino IDE pour Linux, vous aurez besoin d'ajouter une règle udev pour permettre à l'environnement de développement de fonctionner sans privilège super-utilisateur tout en ayant le droit d'accéder au ports USB.
Si vous utilisez Ubuntu (ou Linux Mint 17), vous pouvez suivre les étapes suivantes pour installer et mettre à jour les règles udev:
wget https://github.com/adafruit/Trinket_Arduino_Linux/raw/master/adafruit-trinket.rules sudo cp adafruit-trinket.rules /etc/udev/rules.d/ sudo reload udev
Si vous n'utilisez pas Ubuntu, vous pourriez avoir besoin de modifier la règle udev pour changer les groupe à autre chose que "dialout". Voyez cette page pour plus d'astuces sur la configuration des règles udev.
NOTE: Lorsque vous utilisez Trinket dans Arduino IDE version Linux, assurez vous d'avoir changé le programmeur sur "USBtinyISP" dans le menu Tools -> Programmer! (Menu Outils -> Programmeur)
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.
Arduino v1.5+ manipule les greffons/add-ons de façon différente. Restez donc sur une version 1.0.x le temps qu'AdaFruit ait identifier l'impact de ces différences entre la version 1.0.x et 1.5.x... Merci !!!! |
Étape 2: Ajouter le support ATtiny85
Téléchargez le fichier suivant en cliquant sur le lien.
- Cliquez ici pour télécharger le support matériel du Trinket (archive Zip)
Vous pouvez également télécharger ce fichier directement depuis le Adafruit Industries.
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".
Le répertoire des croquis est une source de confusion vraiment courante entre les mondes Windows et Mac. Sous Mac, votre répertoire sketchbook n'est pas nommé "sketchbook" mais bien "Arduino" !!!! |
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:
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:
- Vous pouvez télécharger avrdude.conf pour Windows & Linux ici
Ou passer directement par ici sur le site d'AdaFruit Industries - Les utilisateurs Mac devront télécharger cette version et la décompresser
Ou passer directement par ici sur le site d'AdaFruit Industries
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).
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.
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.
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!)
- Téléchargez le nouveau ld pour Windows
Ou passez directement par le site d'AdaFruit insdustries. - Téléchargez le nouveau ld pour Mac
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! Windows & MAC
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.
Si vous utilisez Linux lisez le point complémentaire ci-dessous |
/* 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
Crédit: AdaFruit Industries www.adafruit.com
Ensuite, sélectionnez USBtinyISP dans le sous-menu Outils -> Programmeur (Tools->Programmer)
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)
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.
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
Si vous utilisez Linux vous devez être "root" pour exécuter le programme Arduino et avoir accès au port USB.
A notre connaissance, et malgré nos nombreux efforts, il apparait que la programmation des Trinkets sous Linux n'est pas stable. Nous ne vous recommandons pas les trinkets si vous ne disposez que de système Linux. |
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.
cette section est toujours en cours de validation |
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'.
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.
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.