30 Oct 16

Programmation de l’Adafruit Trinket avec l’IDE Arduino

Catégorie : Hack
Étiquettes :

Le Trinket est une petite carte commercialisé par la société Adafruit, et conçu autour d’un microcontroleur ATTiny85. Cette puce embarque 8ko de mémoire flash, et 5 entrées/sorties (y compris des entrées analogiques et sorties analogiques par PWM).

Cependant, cette petite carte n’est pas compatible à 100% avec l’IDE Arduino, et quelques astuces sont nécessaires pour le programmer depuis ce logiciel.

  • Tout d’abord, choisissez comme type de carte : « Adafruit Trinket 8MHz ». Si vous ne le voyez pas dans la liste, il va falloir installer les pilotes correspondant. Je vous renvoie alors à l’annexe en fin de billet.
  • Le Trinket ne dispose pas de connexion port série pour le déboguage. Le moniteur série de l’IDE ne pourra donc envoyer ni recevoir de données du Trinket. D’autre part, certains ports USB 3 ne reconnaissent pas le bootloader du Trinket. Il faut alors utiliser un port USB2 ou bien un hub USB. Vous ne verrez donc pas de port USB associé dans le menu Outils / Port.
  • Choisissez le programmateur USBtinyISP (menu Outils / programmateur)
  • Pour téléverser votre programme dans le Trinket, appuyez d’abord sur le bouton reset du Trinket. La diode rouge se met à osciller doucement. Téléversez le programme. Il est possible que le message d’erreur suivant s’affiche :
avrdude: error: usbtiny_receive: Input/output error (expected 4, got -5)
Ça ne semble pas avoir d’incidence sur le téléversement du programme…

Petit test

Pour vérifier le bon fonctionnement du Trinket, rien de tel que de faire clignoter la LED (quelle originalité !). Comme vous pouvez le voir sur le schéma ci-dessous, la LED interne à la carte se trouve sur la broche 1.

On téléversera donc l’archi-classique Blink en utilisant la broche 1 :

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
  This example code is in the public domain.
  modified 8 May 2014
  by Scott Fitzgerald
 */

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 1 as an output.
  pinMode(1, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for a second
  digitalWrite(1, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);             // wait for a second
}

Et voilà !

installation des pilotes du Trinket

Il vous faut l’IDE Arduino en version 1.6 au minimum.

  • allez dans le menu « Fichiers / Préférences »
  • Dans l’onglet « Paramètres », cliquez sur l’icône qui se trouve à la fin de la ligne « URL de gestionnaire de cartes supplémentaires »
  • Vous pouvez alors ajouter l’URL permettant de télécharger les pilotes du Trinket. Pour obtenir cette URL, cliquez sur le lien en dessous permettant de voir la liste non officielle des URL des cartes reconnues. Cela vous renvoie en fait sur la page https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls. Recherchez la ligne Adafruit, et copiez-collez l’URL correspondante dans le gestionnaire de cartes supplémentaires de l’IDE Arduino (https://adafruit.github.io/arduino-board-index/package_adafruit_index.json)
  • Validez en cliquant sur « Ok » et fermez la boîte de dialogue des préférences.
  • Il faut maintenant installer les pilotes. Allez dans le menu Outils / Type de carte / Gestionnaire de cartes. Cliquez alors sur « Adafruit AVR Boards », puis sur « Installer ». Vous pouvez fermer la boîte de dialogue. Vous devriez maintenant pouvoir choisir la carte « Adafruit Trinket 8MHz » dans le menu Outils / Type de carte.