PicoDuino un super-petit AtTiny85-Arduino compatible USB plug
par , le vendredi 2 septembre 2016 à 22:35

Catégorie : Général
Mots clés : Arduino

Picoduino est un stick USB ulta-compact compatible Arduino.


Présentation

Dérivé du projet DigiSpark, Picoduino est un stick USB ulta-compact qui permet de développer un projet Arduino à base de AtTiny85.

Pour rappel l'AtTiny85 possède 8Ko de mémoire flash (1.7Ko occupé par le bootloader) et 512 octets de RAM. 5 E/S (ou 6 si l'on accepte de perdre la broche de reset et la possibilité de reflasher le bootloader).

Livré dans un emballage minimaliste (mais tout à fait suffisant) :

PicdoDuino packaging

le stick se présent comme une courte clé USB sans emballage :

PicdoDuino front PicdoDuino back

avec les caractéristiques suivantes :

  • alimenté par le port USB ou une source externe (mais attention à ne pas connecter les 2 en même temps !).
  • interface USB pour la programmation et les échanges de données.
  • 6 broches E/S mais seul 3 son disponibles de base (2 utilisées par l'USB, 1 pour le reset (que l'on peut reconvertir en broche E/S)).
  • 8 Ko de mémoire flash.
  • 512 octets de RAM.
  • I2C et SPI (USI en fait mais transformable par logiciel).
  • PWM hardware sur 3 broches
  • ADC sur 4 broches

En version "full", il y a déjà quelques composants sur le stick :

  • une led RGB (qui clignote pendant le chargement d'un nouveau streck Arduino)
  • un bouton reset, transformable en bouton utilisateur (soudure à déplacer)
  • une led de mise sous tension
  • une broche 5V amplifiée par un transistor jusque 100mA

Utilisation

Le sommet du stick comprend les connecteurs pour les Pin du micro-contrôleur. Un système de header mâle (fourni avec la carte) permet de connecter plus facilement les capteurs ou moteur que l'on veut. J'ai aussi réalisé une version femelle du header :

PicdoDuino headers PicdoDuino headers inserted

Exemple de montage avec un détecteur d'orientation et un buzzer :

PicdoDuino tile

Programmation

Le stick se programme simplement depuis l'IDE Arduino et à travers le connecteur USB. Il suffit d'installer le support de la carte DigiSpark dans l'IDE. C'est le bootloader Micronucleus, déjà flashé, qui permet de programmer le micro-contrôleur sans programmateur.

La force de cette micro-carte Arduino est sa facilité de programmation avec suffisamment de librairies compactes disponible dès le départ. Il suffit de brancher le stick sur un port USB du PC pour le programmer et l'utiliser. Il est aussi possible de communiquer depuis l'OS avec une librairies simple ou par émulation série.

Pour info, PicoDuino ne contient pas de convertisseur série/USB comme sur une carte Arduino 'standard'. La communication USB est entièrement gérée par 'logiciel'.

Il est aussi possible de programmer le micro-contrôleur en mode brut, sans profiter du bootloader, à l'aide d'un programeur. Ce n'est réellement intéressant que pour changer le bootloader et/ou transformer la broche reset en E/S); exemple avec le Tiny AVR Programmer de SprakFun ;

PicdoDuino flashing bootloader

Il existe plusieurs bootloader pour ces cartes de types DigiSpark ou AtTiny USB. Le plus connu, Micronucleus, existe en version 1.x et 2.x (re-écriture complète, plus compact). Il est normalement possible de mettre à jour le bootloader par l'USB mais ça n'a pas marcher dans mon cas. Donc programmation par le Tiny AVR Programmer :

  • relier les broches 5v, ground et 0,1,2,5 du programmeur sur le PicoDuino.
  • télécharger le projet Micronucleus et aller dans le dossier firmware.
  • lancer le makefile avec le paramètre 'flash'.
  • si vous souhaitez convertir la broche reset (5) en entrée sortie, et après test du bootloader, relancer le makefile avec le paramètre 'disablereset'.

Flashage du bootloader :

root@pcantoine:~antoine/micronucleus-master/firmware# make CONFIG=t85_default PROGRAMMER="-c usbtiny" flash

pour le paramètre PROGRAMMER il faut voir avec avrdude -c what.

et pour convertir la broche reset en E/S :

root@pcantoine:~antoine/micronucleus-master/firmware# make CONFIG=t85_default PROGRAMMER="-c usbtiny" disablereset

Attention, dans le cas du 'disablereset' il n'est pas facile de revenir en arrière. Il faut appliquer une tension de 12v au micro-contrôleur avec un circuit particulier pour 're-fuser' lAtTiny85.

A bientôt

Ecrire à l'auteur