|
CLAVIER USB pour le mode RTTY
Ce clavier comporte uniquement les touches correspondantes
aux caractères utilisés par les téléscripteurs mécaniques, c'est à dire 30 touches
qui génèrent à la fois les lettres et les chiffres ou caractères.
Le choix étant fait par action sur une des touches. Programmation C'est bien sûr l'IDE Arduino qui est mis à contribution. Dans un premier temps, il faut déterminer le code décimal de chaque touche. Comme vraiment aucun document intéressant n'a été trouvé, il a fallu chercher ces codes expérimentalement. Pour cela, on a construit un petit circuit qui s'enfiche directement sur l'Arduino par ses connecteurs. Cela s'appelle un shield. Il comporte 16 boutons miniatures, chiffre maximum car on ne dispose, sur le Uno, que de 16 entrées de D2 à D13 et de A0 à A5. Les entrées D0 et D1 ne peuvent servir car elles sont liées à la communication et dans notre cas précis, elles perturbent le fonctionnement. C'est largement suffisant car nous verrons que dans la réalisation du clavier alphanumérique, seules 13 entrées sont utilisées, plus une sortie. Nous ne reviendrons pas sur cette recherche de code qui a généré le tableau suivant où sont surlignés en jaune les touches utilisées pour notre clavier. Le firmware de l'Arduino, est prévu pour la communication entre un clavier et lui, mais pas pour simuler un clavier USB classique. Il faut donc remplacer son firmware et cela se fait très facilement grâce à un logiciel fourni par ATMEL et qui se nomme FLIP 347. Il va permettre de charger le firmware "clavier USB" ou de revenir (important !) au firmware Arduino. Ces deux firmwares avec FLIP, une bibliothèque et le croquis sont disponibles ici: clavier_soft.zip Comme nous l'avons
évoqué précédemment, c'est FLIP qui va nous permettre de passer
d'un firmware à l'autre. La procédure est simple, même si elle nécessite
un certain nombre de manipulations mais on va d'abord s'intéresser
à la programmation. Ne sont notées que
les majuscules plus quelques caractères qui n'ont rien à voir avec
l'alphabet Baudot. C'est le logiciel qui va les traiter pour générer
le vrai code et le transmettre en USB. Nous n'irons pas plus loin
dans les explications car le croquis Arduino est commenté et
donne toutes les explications. Installation de FLIP et de son driver: FLIP ayant
été installé dans le répertoire de son choix, il faut maintenant
installer le pilote ATMEL qui se trouve dans le sous-répertoire
\usb. L'opération se déroule de la manière habituelle à partir du
gestionnaire de périphérique. Dans le cas où l'on aurait également une erreur du type: "AtLibUsbDfu.dll not found", il faudra télécharger ce fichier et le copier dans le répertoire où se trouve les dll de Windows Une fois le croquis compilé et chargé dans l'Arduino UNO R3, il faut remplacer le firmware de l'ATmega 16U2 avec FLIP. Après l'avoir lancé et cliqué sur l'icône de gauche (select a target Device), on choisit dans la liste déroulante le chipset ATmega 16U2. L'Arduino étant chargé par le croquis compilé et restant branché en USB, il faut maintenant placer l'Arduino en mode DFU (Device Firmware Update). Opération effectuée par un reset en court-circuitant brièvement les deux broches de connecteur 6 broches mâles se situant vers le poussoir RAZ. On entend alors les sonorités Windows avec un flash de diode LED. IMPORTANT L'Arduino Uno ci-dessus est le modèle original fabriqué en Italie mais beaucoup de clones d'origine chinoise ne comportent pas ce connecteur permettant d'accéder à la broche reset de l'ATMega 16U2 du fait qu'ils n'en possèdent pas (le plus souvent, un CH340). Ils sont inutilisables pour ce projet. Dans FLIP, cliquez sur l'icône USB (Select a Communication Medium) ce qui ouvre la fenêtre USB Port Connexion et cliquez sur OPEN. De grisé, les inscriptions passent en noir et en bas à droite, on voit "USB ON". Cliquez maintenant sur l'icône File (Load HEX File) et choisir le fichier Arduino-keyboard.hex Et cliquez sur RUN (Launch the selected above operations sequentially).
En un temps très bref, le firmware est chargé.
Il faut maintenant débrancher et rebrancher le cordon USB. IMPORTANT: Si vous voulez revenir à l'Arduino d'origine, il faut le remettre en mode DFU (reset par les deux broches) et refaire les opérations précédentes en chargeant cette fois-ci, le fichier Arduino-usbserial-uno.hex Passons maintenant à la partie "hard" Le clavier On a vu que l'Arduino
ne comporte que 18 entrées utilisables dans ce projet et 30 touches
signifie qu'il faut 30 entrées ce qui serait possible avec l'Arduino
Mega et nécessiterait une "filasse" importante. On va
donc grouper les interrupteurs en 3 rangées de 10 touches. Chaque
rangée a une entrée distincte mais une sortie commune, ce que l'on
voit sur le schéma. Et c'est ainsi que de 30, on est passé à 13.
Par exemple, c'est le dispositif utilisé dans les pavés de 12 touches
des digicodes. Par précaution, nous avons fait un test en vrai grandeur avec un mini-clavier enfiché directement sur l'Arduino. Pour le clavier définitif,
nous avons choisi d'utiliser de véritables interrupteurs de touches, disponibles
facilement et qui permettent de les disposer à la demande. Le
choix s'est porté sur la marque AKKO "Ocean Blue" et livré
dans un somptueux coffret de 45 pièces.
Par contre, voulant un clavier rappelant le style "rétro"
des téléscripteurs, les touches sont des pièces en laiton réalisées
au tour. Aux dimensions près, ce sont les mêmes touches que celles
de l'Enigma décrite par ailleurs sur ce site. Voici le schéma et le circuit imprimé réalisé,
une fois
n'est pas coutume, par une société spécialisée (JLCPCB) grâce aux fichiers
Gerber pour le dessin et Excellon pour les perçages.
Pour les nostalgiques, le ruban perforé... |
|
|
|
|