Archives de l’auteur : Steeve

Arduino : programmer avec Visual Studio
***

 

Mise à jour le 28/03/2016

REDOHM INFORMATIQUE_01

Vous avez l’habitude d’utiliser l’environnement de développement Arduino ? Vous trouvez celui-ci un peu limité en termes de fonctionnalités ? Nous vous proposons de faire un petit tour avec Visual Studio.

Quels avantages à utiliser Visual Studio ?

  • Tout d’abord, vous aurez l’auto complétion, ce petit outil qui vous suggère les mots au fur et à mesure que l’on tape. Certains estiment que c’est surfait, d’autres y trouvent un gain de productivité (quelques lettres et un appui sur la touche Tab pour valider le mot proposé, hop, c’est fait, et il n’y a pas de faute de frappe ni de casse).
  • Vérification live de votre code. Si vous avez fait une faute de frappe, oublié un « ; » ou autre chose, vous le verrez de suite, ce sera souligné en rouge. Plus besoin d’attendre le moment de la compilation pour se rendre compte qu’il y a des erreurs partout.
  • Le mode debug : Visual Studio permet d’effectuer du pas à pas très facilement dans le programme.
  • La gestion des fichiers du projet. C’est le premier gros défaut de l’IDE (environnement de développement) Arduino : Si vous voulez ajouter des fichiers, tout concentrer sous forme de projet, vous ne pouvez pas tout voir en mode arborescence (à moins de jongler entre l’explorateur windows et l’IDE Arduino). Visual Studio vous propose une vue « Solution Explorer » dans laquelle vous pouvez voir tous vos fichiers.

Retour au menu :

 

Comment installer tout ça ?

  • Tout d’abord, vous devez installer l’IDE Arduino si ce n’est pas déjà fait (sinon, profitez-en pour vérifier si votre version est bien à jour) en suivant ce lien
  • Ensuite, il vous faudra télécharger Visual Studio Community Edition en suivant ce lien

Une fois le téléchargement de Visual Studio terminé, lancez-le, il vous proposera de choisir vos options.

Installation Visual Studio Community Edition

Installation Visual Studio Community Edition

A ce moment ci, si vous pensez qu’un jour vous testerez le développement d’application windows (windows, windows phone, windows IoT…), je vous conseille d’anticiper, de choisir l’option « Personnalisé ».

Dans l’écran qui suit, cochez « Outils de développement d’applications Windows Universelles »

options Visual Studio Community Edition

options Visual Studio Community Edition

Validez l’installation (cela prend un petit moment).

 

 

Lors du premier lancement de Visual Studio, il vous demandera de vous identifier pour valider la licence communautaire. Utilisez un compte Microsoft Standard (si vous avez une adresse hotmail, msn, live ou outlook.com vous pouvez vous en servir, cela n’engage strictement rien).

Retour au menu :

Installation du plugin Visual Studio pour Arduino

La possibilité de programmer de l’Arduino au travers de Visual Studio réside dans l’utilisation d’un plugin à installer. Pour se faire, lancez Visual Studio, allez dans le menu Outils puis sur Extensions et mises à jour,

Dans la fenêtre qui suit, partie de gauche, cliquez sur « En ligne » puis « Galerie Visual Studio ». Puis en haut à droite dans la zone de recherche, tapez Arduino.

Installation plugin Arduino

Installation plugin Arduino

Lorsque vous voyez apparaître « Arduino IDE for Visual Studio », sélectionnez le puis cliquez sur « Installer ». A la fin de l’installation, il vous demandera de redémarrer Visual Studio pour terminer l’opération.

Ce plugin vous demandera de configurer les chemins vers l’environnement Arduino (l’original). Il faut alors lui indiquer où se trouve l’installation de celui ci qui, par défaut se situe à l’endroit indiqué dans la capture ci dessous.

paramétrage Visual Micro

paramétrage Visual Micro

Retour au menu :

Ouverture d’un projet Arduino

Vous pouvez maintenant vérifier que cela fonctionne en ouvrant un projet Arduino (fichier *.ino). Lorsque vous l’ouvrirez, le plugin vous demandera confirmation si vous voulez bien ouvrir ce fichier, il suffit de répondre oui.

7

Retour au menu :

Si celui ci vous parle ensuite de fin de lignes non cohérentes, vous pouvez y répondre Oui (Visual Studio et l’IDE Arduino n’utilisent pas forcément les mêmes sauts de lignes pour passer à la ligne, d’où ce message permettant de normaliser tout ça).

Paramétrage de votre carte Arduino

La partie supérieure de visual studio présente tout le paramétrage de la carte sur laquelle on travaille

paramétrage Arduino

paramétrage Arduino

De gauche à droite :

  • Choix de la version de l’environnement Arduino (actuellement 1.6.8)
  • Choix de la carte Arduino utilisée (pour ma part une Mega 2560)
  • Choix du port Com sur lequel est branchée la carte (COM3)
  • L’icone juste à droite du port COM permet d’afficher le moniteur Série (permettant de lire et écrire des valeurs vers l’Arduino)
  • La liste « Add library » permet d’importer des librairies externes
  • La liste « Add code » permet d’ajouter des fichiers à votre projet (en l’occurence, créer le fichier .ino servant de base à votre programme, ajouter des fichiers cpp et h pour étendre celui-ci…)
  • Enfin, vous avez deux boutons en bout de ligne. Le premier sert à compiler le projet (pour vérifier qu’il n’y ait pas de faute) et le second sert à compiler et envoyer le programme dans la carte connectée.

Retour au menu :

La vue Solution Explorer

L’explorateur de solutions permet de voir l’ensemble de vos fichiers appartenant à votre projet. Cela permet de tout centraliser, et de tout voir en un seul coup d’œil. Au delà des fichiers, il permet également de se rendre directement dans le code d’une fonction spécifique.

Explorateur de solution

Explorateur de solution

Comme vous pouvez le constater dans la capture ci dessus, juste en dessous du nom du fichier ino, on peut voir les deux fonctions « loop » et « setup ». Vous pouvez facilement imaginer que dans un gros fichiers avec beaucoup de fonctions, cela puisse être plutôt utile.

Et après ?

Vous pouvez continuer à explorer les possibilités de ce plugin au travers du menu « Visual Micro » de Visual Studio. Il propose quelques options supplémentaires.

Vous pouvez aussi faire un tout sur leur site et voir ce que propose de plus la version Pro en suivant ce lien

Retour au menu

Piloter un arduino à distance depuis un PC

.

Mise à jour le 31/05/2017 : Dans cet article, nous allons voir comment envoyer des ordres depuis un pc vers un arduino au travers de la communication RF de deux xbee.

.

Schéma de principe pour le module Xbee

schema principe com sans fil

Dans ce schéma, on peut distinguer deux parties :
L’émetteur : il est constitué d’un PC, d’un arduino et d’un shield xbee.
Le récepteur : il est constitué d’un arduino et d’un shield xbee voir description . Il est également relié à une les et un bouton poussoir par le biais d’un shield Grove méga (mais vous pouvez adapter avec votre matériel sans problème).

Dans notre article, nous allons voir comment allumer une LED à distance mais aussi comment recevoir une information provenant du récepteur au travers d’un bouton poussoir.

Partie récepteur

Il faut donc préparer l’arduino pour qu’une led et un bouton poussoir y soient connectés. Il faut également solidariser le tout avec un shield xbee. Dans notre exemple nous avons placé la LED sur le pin D12 et le bouton sur le pin D2. Nous avons également branché le module xbee sur le port série hardware n°1 (par le biais d’un câblage et non en enfichant le shield sur l’arduino, cela permet de libérer le port COM de base qui sert également à la programmation de l’arduino et évite ainsi de devoir bouger les jumpers sans arrêt).

Au niveau programmation, nous allons coder une partie qui va permettre d’effectuer deux actions :

1) On va lire les données provenant du shield xbee pour voir si nous avons reçu un ordre et transmettre cet ordre à la LED (allumer ou éteindre)
2) On va envoyer l’état du bouton, si celui ci a changé, au PC.

 Partie émetteur – Arduino

La partie émetteur est la plus basique au niveau branchements : Nous avons juste branché un shield xbee par le biais de câbles (comme pour le récepteur) sur le port Série hardware n°1 et nous avons relié l’arduino au port USB.

Le programme de la partie émetteur est très simple, c’est une sorte de routeur. Il va recevoir les ordres du pc qu’il transmet au récepteur et il reçoit des ordres du récepteur qu’il transmet au pc. On utilise donc deux canaux série : le canal série Arduino/PC et le canal série Arduino/xbee.

Partie émetteur – PC

La partie émetteur PC est assez similaire à la partie récepteur : il va lire les ordres reçus (état du bouton poussoir) et envoyer des ordres (allumer ou éteindre la led).

Dans notre exemple, nous utilisons un bouton nommé « LED » pour allumer ou éteindre la LED. Si on reste appuyé sur le bouton, la LED reste allumée. Si on relâche, elle s’éteint.
En revanche, tant qu’on reste appuyé sur le bouton poussoir, la case à cocher reste cochée, si on relâche le bouton poussoir, la case à cocher se décoche.

 Téléchargements

Télécharger => Émetteur PC

.

Télécharger => Émetteur – Arduino

.

Télécharger => Récepteur Arduino

.

 

 

 

Retour au menu

Récupérer les coordonnées GPS de l’arduino sur une application PC (Visual Studio)

Mise à jour le 22/09/2017.Lorsque vous utilisez un Arduino, vous avez peut être besoin de récupérer des informations depuis celui ci sur votre PC.

 

Prérequis

Vous devez avoir Visual Studio installé sur votre PC. Si vous souhaitez reproduire notre article chez vous, il vous faudra également un arduino avec un système grove GPS afin de récupérer les trames GPGGA de celui ci.

Côté Arduino

Il faudra réaliser un montage très simple : reliez le 5v et gnd du module GPS à votre Arduino. Reliez ensuite la broche TX du GPS au pin D2 et la broche RX du GPS au pin D3 de l’arduino

Envoyez ensuite le programme Arduino suivant qui permettra de récupérer les trames GPGGA du GPS et qui les route vers le port série relié au PC

Côté PC : Création du projet Visual Studio

Lancez visual studio puis créez un nouveau projet Windows Forms Application. Vous verrez apparaître alors une fenêtre qui est la fenêtre de votre application.

Visual Studio Serial Port

Dans la boite à outils (toolbox), sélectionnez le composant SerialPort puis glissez-le  sur votre fenêtre. Vous le verrez apparaître en bas de l’écran.

Insérez également deux boutons (un pour Connecter, un pour déconnecter), un numericUpDown (pour préciser le port COM) et un textbox (qui affichera les données de l’arduino) dont l’option multiline est active.

En double cliquant sur un bouton, vous entrez dans le code de son événement de clic. C’est ici que l’on doit coder ce qui doit se produire quand on clique sur le bouton.

Voici le code permettant de se connecter ou déconnecter du port com de l’arduino :

Dans la connexion, on indique quel est le port à utiliser sous la forme d’une chaîne de caractères (Exemple : COM8) puis on ouvre la communication. Dans le bouton déconnecter, on ferme la connexion série.

Afin de récupérer les données envoyées depuis l’arduino vers le PC, on va s’abonner à un événement du port série.

SerialPort1_Receiving est l’événement qui indique que le port Série virtuel du PC a reçu des données. A chaque fois qu’il se déclenche, on va lire ces données puis les envoyer à la suite du texte déjà présent dans le textbox. Etant donné que la récupération sur le port série se passe sur un autre thread (processus) que celui de l’application, on ne peut pas directement mettre à jour l’interface graphique (afficher le texte) depuis l’évenement du port série sous peine d’avoir une erreur à l’exécution. On va donc passer depuis un délégué qui va se charger de transmettre l’information et mettre à jour l’interface graphique (partie avec le Delegate et méthode SetText).

Maintenant, nous allons récupérer indépendamment la latitude et la longitude et les afficher à l’écran.

Comme la communication série récupère les données par bribes, on doit donc recomposer les trames GPGGA pour pouvoir les traiter une à une. La fonction remplirTrame se charge de récupérer les données et reformer une trame GPGGA complète. Dès que la trame est complète, on va la traiter à l’aide de la fonction AfficherLatitudeLongitude pour découper la trame, récupérer les informations puis les convertir en affichage réutilisable.

separateur-redohm-001

Le code source en téléchargement

Code source complet du programme

.

Code source à télécharger

.

separateur-redohm-001

Pour utiliser l’application, réaliser le montage Arduino/GPS puis envoyer le programme de notre article sur le module GPS Grove. Connectez l’arduino au pc, lancez le programme GPS Localiser puis choisissez le port com correspondant à l’arduino. Cliquez sur connecter et attendez que les trames GPGGA apparaissent. Vous aurez alors la latitude et la longitude dès que le GPS aura accroché les satellites.

Réalisé par Steeve / Hervé

Retour au menu