08.05.2018 Views

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 (

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!