jeudi 7 décembre 2017

Affichage d'une mesure analogique dans GUI Composer

Voici donc le deuxième volet d'une série d'articles concernant GUI Composer, un outil en ligne permettant de créer une interface graphique sur un ordinateur afin d'interagir avec le MSP430 Launchpad (ou d'autres cartes de développement de Texas Instruments).


Cette fois, nous allons afficher à l'écran une jauge qui indiquera la valeur d'un signal analogique reçu par une entrée du Launchpad.  J'ai utilisé mon Launchpad MSP430G2553; il n'est pas impossible que certaines modifications soient nécessaires si vous utilisez un autre modèle.

Le circuit

La façon la plus simple de produire un signal analogique variable est probablement d'utiliser un potentiomètre.  Bien entendu, vous pouvez également utiliser un diviseur de tension comportant une photorésistance, une thermistance, etc.

J'ai donc branché un potentiomètre à la broche P1.3 du Launchpad.



Le sketch

Notre Launchpad utilise la liaison série par USB pour envoyer un message json (javascript) indiquant le signal reçu sur son entrée P1.3.  Il s'agit d'un sketch Energia.  La fonction "map" est utilisée pour que le signal varie entre 0 et 100 plutôt qu'entre 0 et 1023 (cette étape est évidemment optionnelle: tout dépend de ce que vous désirez afficher à l'écran).





Construction de l'interface

Je vais supposer que vous avez déjà utilisé GUI Composer auparavant, et que vous avez donc déjà installé le Cloud Agent (si ce n'est pas le cas, vous pouvez vous référer au précédent article de cette série).

Une fois dans GUI Composer, nous créons un nouveau projet ("CREATE A NEW PROJECT").



Il s'agira d'un projet de type "Dashboard".  Vous choisissez également un titre pour votre projet, puis vous cliquez le bouton "NEXT".


À l'écran suivant, vous cliquez sur le petit bouton "+" en haut à gauche, afin de sélectionner le mode de communication entre l'ordinateur et le Launchpad: sélectionnons "USB-UART".



Dans les options, vous devez choisir votre modèle de Launchpad à la rubrique "Device" (le MSP430G2553, en ce qui me concerne).  Vérifiez que le protocole est bien à "json" et que le "COM Port" correspond bien à votre Launchpad.


À cette étape, c'est une bonne idée de vérifier que la communication avec la carte s'effectue correctement: cliquez sur l'onglet "Console", puis sur le bouton "Connect".  Les messages json émis par la carte devraient défiler à l'écran.


On peut maintenant cliquer sur le bouton "OK".

Au moyen du bouton qui a la forme d'un signe "+" dans un cercle rouge, on fait apparaître le "New Tile Wizard", et un crée un "Meter" de type "Multipurpose".



Le champ "title-text" vous permet de choisir le nom de votre afficheur.  "min-value" et "max-value" devraient correspondre aux valeurs extrêmes pouvant être reçues.  Mais le réglage le plus important consiste à lier la jauge à au paramètre "POT" que lui envoie le Launchpad.  Pour ce faire, vous cliquez sur le bouton "Properties" situé à droite du champ "Value"...


...et d'écrire ou sélectionner "POT" dans le champ de droite­.


On peut maintenant cliquer sur le bouton "CLOSE" pour confirmer les changements apportés aux paramètre de notre jauge.

Utilisation

Il ne reste plus qu'à tester notre interface, en cliquant sur le bouton "RUN" (en forme de triangle, en haut à gauche).



Pendant que vous tournez le bouton du potentiomètre, la jauge indique de façon visuelle
et numérique la position du potentiomètre.



Autres options d'affichage

Si vous préférez, il est également possible d'utiliser le type "Analog gauge" plutôt que "Multipurpose".



Une autre option consiste à présenter les mesures sous forme de graphique.  Sur cet aspect, j'avoue que GUI Composer me déçoit un peu...  Deux modèles de graphique sont disponibles:  "XYZ Graph" que je n'ai pas encore réussi à faire fonctionner, et "Sliding Temperature Graph" qui, lui fonctionne très bien (le sketch Energia et les réglages sont les mêmes que pour le "Multipurpose Meter").  Seul inconvénient:  les concepteurs de GUI Composer ne semblent pas avoir prévu la possibilité qu'on souhaite mettre en graphique autre chose qu'une température:  l'utilisateur doit donc obligatoirement choisir une unité de mesure parmi 3 choix:  °F, °C et K!


Dans un prochain article, nous verrons comment contrôler des sorties du Launchpad en cliquant sur des boutons à l'écran de l'ordinateur.

Yves Pelletier   (Twitter, Facebook)

lundi 4 décembre 2017

Ajouter une interface graphique au MSP430 Launchpad grâce à GUI Composer

GUI Composer est un outil en ligne gratuit offert par Texas Instruments.  Il permet d'ajouter une interface graphique à votre MSP430 (ou toute autre carte de développement offerte par TI).  Grâce à cet outil, vous pouvez donc interagir avec votre Launchpad à partir d'un ordinateur:  contrôler l'état de ses sorties, afficher à l'écran l'état de ses entrées (numérique ou analogiques), etc.

Dans ce premier article, nous allons voir comment afficher à l'écran l'état d'une entrée numérique:  une LED virtuelle s'allumera à l'écran de l'ordinateur lorsque nous appuierons sur le bouton poussoir intégré au Launchpad. Dans des articles subséquents, nous apprendrons comment afficher à l'écran l'état d'une entrée analogique, et comment contrôler l'état d'une sortie du Launchpad en cliquant sur des boutons à l'écran de l'ordinateur.

J'ai effectué mes tests sur le traditionnel Launchpad MSP430G2553.

Sketch Energia

Commençons par graver le sketch ci-dessous dans le microcontrôleur de notre Launchpad.  Pour ce faire, vous pouvez utiliser l'IDE Energia ou encore Code Composer Studio Cloud (car cet outil supporte très bien les sketches Energia).

Notre sketch n'a rien de bien compliqué:  si nous appuyons sur le bouton intégré à la carte, le Launchpad émet le message {"LED":1}.  Lorsqu'on relâche le bouton, il émet le message {"LED":0} (il s'agit de messages "json":  javaScript).






Installation du Cloud Agent

S'il s'agit de votre première utilisation d'un outil en ligne de Texas Instruments, rendez-vous d'abord sur leur page TI Cloud Tools afin d'installer le TI Cloud Agent, qui permettra la communication par USB entre votre carte Launchpad et votre navigateur web.  Cliquez sur le bouton rouge "TI CLOUD AGENT" dans le volet "Install Cloud Agent".


Il faut installer deux éléments:  une extension pour votre navigateur web, et une application qui doit être installée localement sur votre ordinateur.


Une fois l'installation terminée, le volet devrait afficher "Device Detected" si votre Launchpad est branché dans un port USB de l'ordinateur.






Mise au point de l'interface graphique

Maintenant que votre navigateur web est en mesure de communiquer avec votre Launchpad, dirigeons-nous vers GUI Composer.  Créons un nouveau projet en cliquant sur "CREATE A NEW PROJECT".


Pour "Project Template", nous sélectionnons "Dashboard".  Vous choisissez également un titre pour votre projet, puis vous cliquez le bouton "NEXT".


À l'écran suivant, vous cliquez sur le petit bouton "+" en haut à gauche, afin de sélectionner le mode de communication entre l'ordinateur et le Launchpad.  J'ai choisi "USB-UART".



Dans les options, vous devez choisir votre modèle de Launchpad à la rubrique "Device" (dans mon cas, c'était le MSP430G2553).  Le protocole doit rester à "json".  Le "COM Port" devrait se régler automatiquement (en supposant bien sûr que votre Launchpad est branché à l'ordinateur), mais il n'est pas impossible que vous deviez le modifier manuellement (surtout si plusieurs cartes sont branchées au même ordinateur).


Pour vérifier que la communication s'effectue correctement, cliquez sur l'onglet "Console", puis sur le bouton "Connect".  Le message {"LED":1} devrait apparaître lorsque vous appuyez sur le bouton du Launchpad (le bouton relié à P1_3, et non le bouton reset!).

(Si la connexion ne fonctionne pas, il serait pertinent de chercher la solution au problème avant d'aller plus loin.)


Vous pouvez maintenant cliquer sur le bouton "OK" pour faire disparaître la fenêtre du "New Project Wizard" (si vous voulez y revenir, vous pourrez utiliser le menu "Project - Properties").

En cliquant sur le bouton "+" rouge situé en bas à droite de la fenêtre, nous ajoutons un élément d'interface.  Dans "Component Type", choisissez "Status Display".  Dans "Status Display Type", choisissez "LED", puis cliquez sur "CREATE".


Dans les propriétés, le seul réglage vraiment important est celui de "value":  vous cliquez sur le bouton situé à droite de la rubrique "value".


La case à cocher est alors remplacée par un menu déroulant comportant le nom de votre carte choisi un peu plus tôt, et un champ vide dans lequel vous devez écrire le nom de la variable associée à notre LED virtuelle:  "LED".  Vous cliquez sur "CLOSE" pour escamoter ce dialogue.



Utilisation

Notre interface graphique est prête à être utilisée:  cliquez sur le bouton "run" en haut à gauche de la fenêtre.



Un tableau de board (Dashboard) apparaît dans un nouvel onglet de votre navigateur.  (Vous pouvez mettre l'URL de cet onglet en favoris si vous désirez y accéder directement à l'avenir).

Tout comme la LED intégrée au Launchpad, la LED virtuelle représentée à l'écran de l'ordinateur devrait s'allumer pendant que vous appuyez sur le bouton poussoir du Launchpad, et s'éteindre quand vous le relâchez.



Nous verrons bientôt comment affichez à l'écran une mesure prise par une entrée analogique du Launchpad, et comment contrôler l'état des sorties numériques en cliquant un bouton à l'écran.

Yves Pelletier   (Twitter, Facebook)

vendredi 1 décembre 2017

Programmer un STM32F103 (blue pill) avec l'IDE Arduino



IMPORTANT:


Plusieurs éléments de cet article sont devenus désuets. Vous devriez plutôt vous référer à cet article plus récent: Programmation d'une carte STM32 avec l'IDE Arduino.

On trouve facilement les "blue pills" pour moins de deux euros, sous la désignation "STM32F103C8T6 Minimum System Development Board" (à ce prix, vous devrez souder vous-mêmes les deux rangées de connecteurs).  Ces petites cartes, munies d'un  STM32, peuvent être programmées au moyen de l'IDE Arduino.  Voici une petite marche à suivre sous Windows 7.

Tout d'abord, si votre objectif est de programmer la carte au moyen de l'IDE Arduino, assurez-vous d'acheter un module comportant un STM32F103.  On peut trouver pour encore moins cher des modules comportant un STM32F030, mais ces derniers ne sont pas supportés par le projet STM32Duino.



Programmateur ST-Link V2

Malgré la présence d'un connecteur micro-USB, on ne peut pas programmer la carte en la branchant directement dans le port USB d'un ordinateur, à moins d'y avoir préalablement gravé un bootloader.  Je me suis donc procuré un programmateur STLink V2, qui prend la forme d'un petit dongle USB (il m'a coûté environ 2 euros).



Le ST-Link V2 se branche aux 4 connecteurs situés à l'extrémité de la carte.


Si vous préférez utiliser un adaptateur USB-série plutôt que STLink V2, vous trouverez des informations utiles dans cet autre article.

Préparation de l'IDE Arduino

1) Vous vous assurez d'abord d'avoir une version récente de l'IDE Arduino.  Pour ma part, j'ai fait mes tests avec la version 1.8.1.

2) Vous ouvrez le gestionnaire de carte en passant par le menu Outils - Type de carte - Gestionnaire de carte.


3) Une fois dans le gestionnaire de carte, vous installez "Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino" (ça va prendre quelques minutes).  Ces fichiers sont prévus pour l'Arduino Due qui, tout comme le STM32F103, est de type ARM Cortex-M3.



4) Vous téléchargez ce fichier, et vous le décompressez pour obtenir un dossier intitulé "Arduino_STM32".  Vous vous rendez ensuite dans votre dossier "Arduino" (celui qui contient le dossier "librairies") et, à moins qu'il n'existe déjà, vous créez un dossier "hardware" dans lequel vous placez le dossier "Arduino_STM32".


5) Vous fermez l'IDE Arduino, et vous l'ouvrez à nouveau.

6) Tadam!  Dans "Type de carte", vous disposez maintenant d'une liste de cartes de type STM32.  Le type qui convient à notre blue pill est "Generic STM32F103C series".



7) Les réglages par défaut sont tous appropriés, sauf "Upload method", que j'ai réglé à "STLink".


8)  Lorsque vous insérez le dongle STLink dans un port USB de l'ordinateur, un pilote de périphérique est installé (de plus, la LED située sur la carte se met à clignoter).


On peut ensuite ouvrir l'exemple "blink" et changer le numéro pour PC13 (qui est la broche reliée à la LED intégrée sur la carte).  Puisque la LED sur la carte clignote déjà, c'est une bonne idée de modifier la fréquence de clignotement, afin de voir une différence...

(Le téléchargement du sketch devrait fonctionner, malgré le fait que l'article "Port" du menu "Outils" demeure grisé.)

Installation des pilotes

Sous Windows, si vous désirez utiliser le port USB de la Blue Pill (pour utiliser le moniteur série, par exemple, ou si vous avez l'intention d'installer le bootloader afin de programmer la Blue Pill par son port USB), vous devrez également installer des pilotes. Pour ce faire, vous ouvrez le dossier "Arduino_STM32" que nous avons installé dans le dossier "hardware" à l'étape 4.  En suivant le chemin d'accès "Arduino_STM32/drivers/win", vous démarrez le script d'installation "install_drivers.bat".



Yves Pelletier   (Twitter, Facebook)