Elektor Electronics 2018 03 04
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
d’atteindre 8 MHz. Autre conséquence,<br />
seul un des deux UART matériels est<br />
disponible puisque PD2 (RXD1) et PD3<br />
(TXD1) servent à la commande partielle<br />
du LCD en lieu et place des lignes SPI<br />
PB6 (MISO) et PB7 (SCK). Pour les données<br />
série de niveau TTL, un UART logiciel<br />
utilisant certaines des broches du bus<br />
SPI est requis. Si ce n’était déjà évident,<br />
notre testeur ne se chargera que d’un<br />
seul protocole à la fois.<br />
L’ergonomie avant tout<br />
Comme l’utilité du testeur repose en<br />
grande partie sur son ergonomie, nous<br />
avons soigné son interface utilisateur.<br />
L’objectif était de rendre son maniement<br />
aussi aisé et commode que possible malgré<br />
l’espace limité sur l’affcheur et l’impossibilité<br />
d’y affcher des graphiques<br />
en couleurs. Tous les paramètres sont<br />
accessibles par pression et rotation du<br />
codeur rotatif, les sous-menus n’étant par<br />
ailleurs pas nombreux. Le menu principal<br />
en est paradoxalement quelque peu<br />
cryptique, mais, comme nous allons le<br />
voir, facile à maîtriser (fig. 2).<br />
Une rotation du codeur place le curseur<br />
sur le paramètre suivant. Une pression<br />
sur son poussoir modifie la valeur<br />
du paramètre en cours ou, lorsque les<br />
valeurs de ce paramètre couvrent un<br />
large intervalle (p. ex. le débit série),<br />
fait passer le menu en mode édition.<br />
Un système de menu adapté<br />
Le système de menu de l’interface utilisateur<br />
a été créé avec la bibliothèque<br />
Arduino à code source ouvert Liquid-<br />
Menu [2], qui dépend elle-même de la<br />
bibliothèque LiquidCrystal (disponible<br />
sur toute installation Arduino standard).<br />
Elle nécessite la norme C++11 (ou plus<br />
récente), ce qui implique d’avoir une<br />
version elle aussi récente de la chaîne<br />
d’outils Arduino (AVR-GCC). Pour en être<br />
sûr, installez le paquet Platino [3] le plus<br />
récent. Nous avons complété et modifié<br />
la bibliothèque (et corrigé quelques<br />
bogues), donc veillez à utiliser le lien<br />
de téléchargement [4] pour que tout<br />
fonctionne.<br />
LiquidMenu fournit un système de menu<br />
construit, ce ne sera pas une surprise, à<br />
partir d’un ou plusieurs menus. Un menu<br />
consiste en un ou plusieurs écrans, et un<br />
écran comporte une ou plusieurs entrées.<br />
Entrées de menu<br />
Une entrée peut être placée n’importe où<br />
sur l’affcheur et peut être liée à un maxi-<br />
mum de cinq variables (par défaut, mais<br />
c’est configurable). Les variables peuvent<br />
être de tout type (allant des valeurs à virgule<br />
flottante aux chaînes de texte) et sont<br />
automatiquement converties en texte<br />
lisible lorsqu’elles sont affchées. Chaque<br />
entrée peut aussi être liée à un maximum<br />
de huit fonctions (là encore ce nombre<br />
est configurable), toutes pouvant activer<br />
certaines choses ou modifier des variables<br />
associées. Les entrées qui ne sont liées<br />
à aucune fonction ne peuvent obtenir le<br />
focus et sont donc de simples objets texte.<br />
Notez que dans la bibliothèque les<br />
entrées de menu sont appelées des<br />
« lignes de menu » (LiquidLine), ce qui<br />
prête à confusion puisqu’elles n’ont aucun<br />
rapport avec les lignes de l’affcheur.<br />
Écrans<br />
Les entrées de menu, jusqu’à 12 par<br />
défaut, sont combinées en écrans<br />
(LiquidScreen). Une entrée peut être<br />
membre de plusieurs écrans ; c’est le<br />
cas de l’entrée Back (