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) :
le stick se présent comme une courte clé USB sans emballage :
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 :
Exemple de montage avec un détecteur d'orientation et un buzzer :
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 ;
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