Cours:ClefUSB
Le but de ce projet est de réaliser ce que les anglo-saxons nomment USB EasyLoggeret que nous traduisons par clé de connexion USB. L'idée est de pouvoir stocker un certain nombre d'identifiants et de mots de passe et de pouvoir les utiliser. En soi le problème est relativement simple, sauf si l'on désire gérer correctement le changement des mots de passe dans la clé.
Présentation de la platine utilisée
Platine Leonardo
La platine Leonardo est architecturée autour d'un processeur ATMega32U4, le U signifiant USB. Cette version de processeur permet de gérer deux protocoles USB clients en même temps, nous voulons dire par la même prise USB. Nous verrons dans le projet de cette section (et dans l'exemple keyboardSerial de la rubrique USB) qu'il est possible d'utiliser ensemble la liaison série et un clavier USB par le même fil USB.
En fonctionnement normal de la platine Leonardo, la liaison série est utilisée pour la programmation à l'aide d'un bootloader à travers l'USB. Les connaisseurs d'autres platines Arduino (comme la UNO et bien d'autres) diront qu'à première vue, il n'y a rien de nouveau ! Sauf qu'ici le processeur se débrouille seul alors que dans les premières versions de la platine UNO il y avait un FTDI2232 qui transformait l'USB en RS232. Les nouvelles versions de cette platine ont abandonné le FTDI au profit d'un processeur ATMega8u2 ou ATMega16u2... et tout cela en plus du processeur ATMega328 que l'on cherche à programmer. La Leonardo ne comporte que le processeur à programmer et rien d'autre, ni FTDI ni autre processeur.
Nous allons examiner les performances de la Leonardo par rapport à cette liaison USB. Pour ce faire, nous allons simuler une clé USB destinée à entrer un identifiant et un mot de passe automatiquement.