Logiciels > Freewares > UsbHidTest - V1.1.0.0

Dernière mise à jour : 02/02/2014

Présentation

Le logiciel UsbHidTest (USB HID Test) permet de lire des valeurs depuis un périphérique HID ou d'écrire des valeurs vers ce même périphérique.

usbhidtest_main_001 

Avec ce logiciel, il est possible :
Mais attention, cela ne s'applique pas à n'importe quel périphérique, et heureusement !

Avertissements

Ce logiciel pour PC a été spécialement développé pour tester la liaison USB avec les périphériques HID que je décris dans mon livre PIC et MikroPascal, périphériques construits autour de PIC 18F2550 et 18F4550 (schémas ci-après). Il m'a aussi servi pour tester mon logiciel séquenceur ProgSeq auquel j'ai ajouté des commandes USB pour piloter l'interface USB 003 à 32 sorties. Les fonctions de télécommande (envoi vers PIC) et de monitoring (réception données venant du PIC) du logiciel UsbHidTest peuvent être utilisées avec n'importe quel périphérique HID, à condition que les paramètres principaux de ce dernier correspondent à ceux attendus par le logiciel (VID = $1234, PID = $0001, et chaîne de caractère "sonelec" dans ProductName). 

Descriptif général

Le logiciel affiche en temps réel les données émises par les périphériques HID que j'ai développés et dont les schémas suivent. Aucun descriptif ici puisque tout sera détaillé sera dans le livre.

Périphérique avec PIC 18F2550
Il s'agit d'un montage d'initiation, très simple à réaliser, idéal pour débuter dans le monde des "commandes simples" via liaison USB. 

pic_mp_usb_hid_001_18f2550

Il permet de lire une tension (valeur analogique) et l'état d'un interrupteur, et de transmettre le tout au PC. En sens inverse, une commande envoyée depuis le PC permet d'allumer ou d'éteindre une LED (par extension, commander un relais). Notez que pour cet exemple, le PIC 18F2550 est largement sous-exploité.

pic_mp_usb_hid_001_18f2550_proto_001a pic_mp_usb_hid_001_18f2550_proto_001d

Périphérique avec PIC 18F4550
Ce montage est un poil plus élaboré que le précédent, mais pas tant que ça en fin de compte.

pic_mp_usb_hid_001_18f4550

Ici, point de lecture de valeur analogique, mais transmission au PC de l'état de 7 interrupteurs distincts : six interrupteurs sur le port A (lignes RA0 à RA5) et un interrupteur sur le port C (ligne RC7). L'état des six premiers interrupteurs (câblés sur le port A) est transmis via les six premiers octets parmi les 64 autorisés ici (octets #0 à #5). L'état du septième interrupteur (câblé sur le port C) est transmis dans le dernier octet de la trame (octet #63).

usbhidtest_data_001a

Bien entendu, les huit bits d'un seul octet auraient suffit pour véhiculer l'état de l'ensemble des commandes logiques (tant PIC vers PC que PC vers PIC), l'idée ici est de montrer le principe de base et surtout de valider le transfert de 64 informations de type byte (octet).  En complément, activation de 8 sorties indépendantes du PIC via des commandes envoyées depuis le PC. Une fois les bases acquises avec ce montage, il sera possible et même assez aisé d'en étendre les possibilités pour gérer plusieurs dizaines d'entrées / sorties (via des expandeurs de port SPI ou I2C de simples registres à décalage) ou pour transmettre des valeurs "analogiques" (tensions, courant, température, pression, etc).

Utilisation du logiciel

Difficile de faire plus simple. Dès son lancement, le logiciel recherche les périphériques USB attachés au PC. Si un des périphériques correspond à un de ceux attendus, le logiciel le signale et les boutons de commande deviennent opérationnels. Dans le cas inverse, le logiciel se contente d'énumérer et d'afficher la liste des périphériques HID détectés. Si un périphérique USB (HID) est retiré ou ajouté alors que le logiciel est déjà démarré, il relance une recherche dans la nouvelle liste et met à jour son interface utilisateur. Dans le sens PC vers PIC, il est possible d'envoyer des commandes au bit près, grâce aux champs d'édition situés sous les boutons de commande. Pour activer les huit bits de chaque octet transmis, laisser la valeur $FF proposée par défaut (remarque : la nouvelle valeur est transmise uniquement lors de l'activation du bouton correspondant, c'est voulu mais ça peut bien sûr être modifié pour un envoi automatique et systématique).

Telechargement

Voir Avertissements donnés à la page Freewares.
UsbHidTest V1.1.1.0 (02/02/2014)
A_Lire.txt - Historique de vie du logiciel

Installation du logiciel

Aucun logiciel d'installation n'est fourni avec cette distribution. Il vous suffit d'extraire les fichiers de l'archive zip à l'aide d'un logiciel supportant le format Zip (WinZip ou WinRar par exemple), et de les mettre dans un répertoire de votre choix. Vous êtes ainsi assuré qu'aucun fichier ne va s'installer ailleurs que là où vous le souhaitez (répertoires Windows ou Windows System), simplifiant ainsi le processus de désinstallation éventuel, puisqu'il vous suffit de supprimer purement et simplement le répertoire en question.

Historique

02/02/2014
- Ajout code source du logiciel UsbHid. Attention, la recompilation de ce code source impose l'installation préalable de composants tiers dans Delphi (composant TJvHidDeviceController inclus dans la librairie JCL/JVCL, d'autres composants tiers sont utilisés mais peuvent être remplacés par des composants standard de Delphi).
03/03/2013
- Suppression des doublons dans la liste des périphériques détectés. Certains drivers se déclarent sous un grand nombre d'items identiques, cas par exemple des souris et claviers sans fil "unifiés" de Logitech.
20/01/2013
- Ajout possibilité de spécifier la valeur de chaque bit pour les huit premiers octets (1 à 8) et pour le dernier (64), dans le sens de transmission PC vers PIC.
13/01/2013
- Première mise à disposition.