Comment créer une application Windows 10 Arduino (pour les débutants absolus)

Comment créer une application Windows 10 Arduino (pour les débutants absolus) / DIY

Microsoft se lance à fond dans Windows 10, réalisant enfin le rêve d'avoir des applications multi-plateformes. Combiné au support officiel pour Arduino, vous disposez d'un nouvel outil puissant: la possibilité de créer facilement des applications Windows universelles disposant d'une connexion matérielle au monde réel..

Voici comment commencer, même si vous n'avez jamais programmé d'application Windows.

Avant de lire, consultez la démo de ce que nous allons faire.

Je dois noter que je n’ai pas utilisé Visual Studio, ni même touché C #, il ya environ 10 ans. J'en viens à la perspective d'une nouvelle installation de Visual Studio et après avoir oublié tout ce que je sais.

Si vous êtes déjà assez familiarisé avec la programmation d'applications Windows ou si vous cherchez un moyen simple de commencer à programmer avec Windows sans ces éléments Arduino, essayez le guide de Ryan pour créer une application Visual Basic simple. Comment créer votre propre application simple VBA Comment créer votre propre application simple avec VBA Pour ceux d'entre vous qui aimeraient vraiment pouvoir écrire votre propre application, mais qui n'ont jamais tapé une seule ligne de code auparavant, je vais vous expliquer comment … Lire la suite . Les débutants en programmation absolue voudront peut-être consulter ma programmation. 101 - Principes de base de la programmation informatique 101 - Variables et DataTypes Principes de base de la programmation informatique 101 - Variables et Types de données Ayant introduit et parlé un peu de la programmation orientée objet avant et d'où vient son nom, I Bien qu'il soit temps de passer aux bases absolues de la programmation d’une manière non spécifique au langage. This… Read More (and Part 2: Principes de base absolus de la programmation pour débutants (Partie 2) Principes de base absolus de la programmation pour débutants (Partie 2) Dans la partie 2 de notre guide de programmation pour débutants absolus, je couvrirai les bases des fonctions , renvoyez des valeurs, des boucles et des conditions. Assurez-vous de lire la partie 1 avant de vous attaquer au sujet suivant, où….

Vous devriez être familiarisé avec certains projets Arduino pour débutants. 15 Grands projets Arduino pour les débutants 15 Grands Projets Arduino pour les débutants Intéressé par Arduino mais vous ne savez pas par où commencer? Voici quelques-uns de nos meilleurs projets Arduino pour les débutants! En savoir plus (et peut-être même lire notre Guide Arduino. Démarrer avec Arduino: Guide du débutant Démarrer avec Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique à code source ouvert reposant sur un matériel et un logiciel souples et faciles à utiliser. artistes, concepteurs, amateurs et tous ceux qui sont intéressés par la création d’objets ou d’environnements interactifs. En savoir plus), mais c’est probablement la première fois que vous essayez de créer un logiciel informatique permettant d’interagir avec lui..

Téléchargements

Premièrement: vous devez rejoindre le programme Windows Insider pour obtenir la dernière édition de prévisualisation de Visual Studio 2015, et la dernière version de Aperçu de Windows 10. Faites cela maintenant - c'est gratuit. Windows 10 est un aperçu du développeur et ne doit pas être installé comme système d'exploitation principal. C'est buggy comme l'enfer.

  • Rejoignez le programme Windows Insider et téléchargez Windows 10 Technical Preview
  • Obtenir l'aperçu de Visual Studio 2015 Community Edition [N'est plus disponible].

Visual Studio est le propre environnement de développement de Microsoft que nous utiliserons pour créer une application Windows C #.

Pourquoi c#? Avec de fortes similitudes avec Java, c'est un langage de programmation relativement facile à utiliser pour les débutants, mais suffisamment puissant pour pouvoir créer des applications époustouflantes (même des jeux: C # est le langage de script Unity par excellence). gratuitement notre eBook, Guide du débutant pour la programmation d'un jeu avec Unity Programmation d'un jeu avec Unity: Un guide pour débutant Programmation d'un jeu avec Unity: Un guide pour débutant Dans le paysage en évolution du développement de jeux indépendants, Unity est apparu comme une sorte de facto standard: son faible coût, sa facilité d’utilisation et son large éventail de fonctionnalités le rendent idéal pour le développement rapide de jeux. En savoir plus).

Si ce n'est déjà fait, téléchargez le Arduino IDE depuis le site officiel Arduino.cc, et installez le firmata standard sur le plateau. Vous le trouverez sous Exemples -> Firmata -> Firmata standard. Cela le transforme en un “stupide” périphérique série, qui fera tout ce que notre application lui indique - il n'y aura pas de logique d'application sur la carte elle-même, mais uniquement une interface entre notre application et les capteurs ou périphériques de sortie connectés à l'Arduino.

En ce qui concerne le câblage, vous pouvez coller une DEL directement sur les broches 13 et GND comme indiqué ci-dessous ou utiliser la DEL intégrée. Vous aurez également besoin d'une résistance variable (j'ai utilisé un potentiomètre linéaire 10k) pour entrer en A0 (avec les pieds appropriés sur GND et + 5v aussi, évidemment).

Enfin, téléchargez le package de câblage à distance à partir de GitHub [N’est plus disponible]. C’est la couche à ajouter qui permettra à notre application Windows de communiquer avec l’Arduino..

Créer une application

Allez-y et ouvrez Visual Studio. Si c'est la première fois que vous l'exécutez, vous aurez la possibilité de vous connecter. Ignorez-le si vous le souhaitez. Choisir Visual C # comme option de développement et continuer; Dans tous les cas, il faut quelques minutes pour préparer Visual Studio à sa première utilisation..

Créer un nouveau projet en utilisant le modèle Visual C # -> Application vide (Windows universel). J'ai appelé le mien “Test Arduino”, mais ce n'est pas grave.

À ce stade, j'ai rencontré une erreur concernant le fait de devoir basculer Windows 10 en mode développeur si je voulais exécuter l'application. Allez-y, faites ceci. Cependant, si vous trouvez que votre version de Windows 10 se bloque sur ce paramètre, il s'agit d'un bogue connu et vous devez utiliser l'éditeur de stratégie de groupe pour activer le mode développeur..

Ensuite, faites un clic droit n'importe où dans le Explorateur de solution (c'est la chose à droite) et sélectionnez Ajouter -> Projet existant.

Naviguez jusqu'à l'emplacement où vous avez téléchargé les fichiers de câblage à distance à partir de Github. S'il a été décompressé, il devrait s'agir d'un dossier appelé cablage a distance. À l'intérieur, vous trouverez Microsoft.Maker.win10; et à l'intérieur de cela, vous trouverez 3 autres dossiers. A tour de rôle, ajoutez chacun en naviguant dans ces trois dossiers et en recherchant le fichier de projet..

Si vous recevez des erreurs sur “Fichier XAML 8.2 introuvable”, vous avez la mauvaise version de Visual Studio ou les outils de développement ne sont pas encore installés. Retournez au début de cet article et assurez-vous d'avoir téléchargé et installé les deux fichiers Visual Studio liés..

Ces 3 projets que vous venez d'ajouter ne sont que différentes couches de l'interface Arduino. Dans l'explorateur de solutions, si vous cliquez avec le bouton droit de la souris et sélectionnez Les dépendances -> Construire des dépendances, vous pouvez voir quelles couches dépendent de (En série ne dépend de rien; Firmata dépend de la série; Câblage à distance dépend des deux). La seule modification à apporter ici consiste à sélectionner votre projet dans la liste déroulante et à cocher chaque case pour indiquer que votre projet dépend de tous ces autres projets..

Une dernière étape: à partir de l’explorateur de solutions, faites un clic droit sur la Références élément de votre projet et sélectionnez Ajouter une référence. De gauche à droite, naviguez jusqu'à Windows universel, puis cochez la case à côté de Package d'exécution Microsoft Visual C ++ AppLocal. Ne fermez pas encore le dialogue.

Ensuite, accédez à Projets (également dans la même boîte de dialogue, dans la liste de gauche), et cochez la case en regard de chacun des trois Microsoft.Maker projets.

C'était plus difficile que cela ne devrait être, mais vous n'avez qu'à le faire une fois; maintenant, nous pouvons nous amuser avec la programmation - je vous promets que ça ne fait pas peur.

La programmation

Si vous ne parvenez pas à suivre, le code complet est disponible sur Pastebin. Cependant, je suggère fortement de lire les notes ci-dessous afin de pouvoir expliquer en quoi consiste le code..

Premièrement, nous devons ajouter un peu de code indiquant qu'un port USB est nécessaire pour communiquer avec l'Arduino. Trouvez le Package.appxmanifest fichier de l'explorateur de solutions et double-cliquez dessus pour le modifier. Nous devons coller du code ici - techniquement, nous serons “insertion d'un noeud enfant” parce que c'est un fichier XML, mais il suffit de remplacer l'ensemble section avec le code ci-dessous donc ça ressemble à ça:

Le code exact variera si vous utilisez Bluetooth ou si vous ciblez Win8.1 au lieu de 10, mais ce qui suit concerne une connexion USB Windows 10.

       

Aller au Construire menu -> Reconstruire la solution, et assurez-vous de ne pas avoir d'erreurs.

Depuis l’explorateur de solutions, développez le MainPage.xaml nœud. En double-cliquant sur cela chargera le concepteur de formulaire auquel nous reviendrons plus tard, mais pour le moment, ouvrez MainPage.xaml.cs, qui contient la logique principale derrière notre application.

Ajouter deux lignes dans la première section, pour indiquer que nous serons “en utilisant” les bits Arduino.

using Microsoft.Maker.serial; using Microsoft.Maker.RemoteWiring;

J'ai aussi ajouté une ligne pour dire que nous utiliserons Diagnostique du systeme; ce qui nous permet d'utiliser le Debug.WriteLine () fonction pour envoyer des messages de débogage à l'IDE.

Tout d’abord, définissons quelques variables que nous utiliserons tout au long. Ajoutez ces lignes juste avant la page principale publique () déclaration de fonction.

Connexion UsbSerial; RemoteDevice arduino; UInt16 lastvalue;

Ensuite, passez à la fonction MainPage () - elle s’appelle le constructeur. C’est une fonction appelée immédiatement lorsque notre application est créée. Nous l’utilisons donc pour tout configurer..

Tout d'abord, ajoutez une ligne pour établir la connexion série USB à un périphérique USB spécifique (l'Arduino).

connection = new UsbSerial ("VID_2341", "PID_0043");

Notez que les identifiants USB d’un Arduino Uno standard sont déjà codés dans le bloc, mais vous pouvez le vérifier à partir de Gestionnaire de périphériques -> Ports (COM et LPT) -> Arduino Uno -> Détails onglet -> Identificateurs matériels.

Ajoutez ensuite les lignes suivantes juste après.

arduino = new RemoteDevice (connexion); connection.ConnectionEstablished + = OnConnectionEstablished; connection.begin (57600, SerialConfig.SERIAL_8N1);

Quelques choses se passent ici. Premièrement, nous créons un objet RemoteDevice - rappelez-vous, c'est la couche qui nous donne un tas de commandes Arduino - et lui donnons le nom de variable “Arduino”. La ligne suivante est associée à l’événement ConnectionEstablished, pour indiquer “une fois la connexion USB établie, exécutez la fonction OnConnectionEstablish ().”.

La finale indique simplement à la connexion de commencer déjà, à une vitesse de 57600 bauds, en utilisant le modèle de bits 8N1.

Vous devez également créer cette fonction OnConnectionEstablished () maintenant, alors déplacez-vous en dehors de la fonction MainPage () et créez simplement une fonction vide comme suit.

void privé OnConnectionEstablished () // LOGIC ICI

Revenez au concepteur de formulaire que j'ai mentionné plus tôt (si vous avez oublié comment: double-cliquez sur MainPage.xaml depuis l'explorateur de solutions). Créez deux boutons. Pour ce faire, ouvrez l'onglet Boîte à outils que vous trouverez épinglé verticalement sur le côté gauche de l'écran. Faites glisser deux boutons sur la page, puis étiquetez-en un Sur et une De.

Sélectionnez le premier bouton, puis nommez-le dans la zone Propriétés. “OnButton”. Cliquez sur la petite icône en forme d’éclair - c’est la liste des événements et actions qui spécifiait ce qui se passait lors de l’interaction des éléments de formulaire. Type “OnButtonClick” dans le Cliquez sur champ.

Lorsque vous appuyez sur Entrée, le code est automatiquement créé pour cet événement de bouton et le mode Code standard est chargé. Revenez au concepteur de formulaire pour le moment et procédez de la même manière pour le bouton Désactivé, “Hors bouton”, et “OffButtonClick”. Pendant que vous y êtes, allez-y et nommez la fenêtre principale derrière “Page” - nous l'utiliserons plus tard. Vous devriez maintenant avoir quelque chose qui ressemble à la capture d'écran ci-dessous:

Revenez un instant au concepteur, puis encore une fois pour chacun des boutons, réglez le paramètre est autorisé propriété à Faux. Vous pouvez le faire en tapant la propriété directement dans la vue Code XAML ou vous pouvez trouver cette case à cocher dans la boîte de dialogue Propriétés (cliquez sur la clé si vous êtes toujours dans la vue Actions). Commun catégorie de propriétés.

Ce n'est pas essentiel, mais il est bon de désactiver les boutons jusqu'à ce que nous soyons sûrs que l'Arduino soit branché et connecté..

Pour les réactiver, ajoutez ce qui suit à la fonction OnConnectionEstablished (). Ne vous inquiétez pas trop de la signification exacte du code pour le moment, mais simplement de la manière dont vous êtes censé gérer les mises à jour de formulaires dans les applications Windows modernes pour garantir de bonnes performances. Une fois que nous sommes connectés à l’Arduino, nous définissons la Est autorisé propriété des boutons à true.

void privé OnConnectionEstablished () // active les boutons on off var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler (() => OnButton.IsEnabled = true; OffButton.IsEnabled = true;)); arduino.pinMode (14, PinMode.ANALOG); arduino.AnalogPinUpdatedEvent + = MyAnalogPinUpdateCallback; Debug.WriteLine (arduino.analogRead (14)); 

Vous verrez également une instruction pinMode () plus familière, pour dire que nous avons une entrée analogique sur la broche 14 (il y a 13 broches numériques, donc A0 commence à compter à partir de 14). Nous avons ensuite une autre déclaration d'événement - lorsque la valeur de la broche analogique est mise à jour, appelez la fonction MyAnalogPinUpdateCallback.

Enfin, nous devons éditer les événements de clic de bouton et décider de ce qui se passe lorsque l'entrée analogique change. Commençons par les boutons. Nous pouvons interagir avec Arduino en utilisant des noms de fonction similaires à ceux du code Arduino standard, comme suit:

arduino.digitalWrite (13, PinState.HIGH);

Collez cela pour l'événement onButton, et ceci pour offButton:

arduino.digitalWrite (13, PinState.LOW);

Simple. L’entrée analogique de l’Arduino est un peu plus compliquée, mais voici ce que j’ai trouvé.

public void MyAnalogPinUpdateCallback (NIP d'octet, valeur UInt16) if (valeur-dernière valeur> 5 || dernière valeur-valeur> 5) 
Debug.WriteLine ("Pin A" + pin + "est maintenant" + valeur); var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler (() => byte num = Convert.ToByte (valeur / 4); Page.Background = new SolidColorBrush ( Windows.UI.Color.FromArgb (255, num, num, Convert.ToByte (255 -num)));));  lastvalue = value; 

Notez que je stocke la valeur précédente que nous avons reçue de la broche dans une variable appelée lastValue; Cela nous permet de vérifier le degré de modification de la valeur et de ne réagir que si la différence est significative (une sorte de lissage du signal). Si le nombre de valeurs varie de plus de 5 dans un sens ou dans l’autre (0-1024 correspond à la plage complète des valeurs), nous réagissons en modifiant la valeur de la couleur de fond RVB de l’élément Page..

Comme nous n’avons qu’un seul numéro sur lequel travailler, et que je suis pressé, j’ai truqué les choses avec les 3 chiffres nécessaires pour rendre R, G et B. Vous pouvez probablement trouver quelque chose de beaucoup plus joli..

Fini

C'est tout - lancez le code et vous devriez voir quelque chose de similaire à la capture d'écran ci-dessus. Les boutons allumer et éteindre la LED, et la résistance variable va changer le fond. Si vous avez eu des problèmes, n'oubliez pas que le code complet est ici.

Maintenant que vous pouvez écrire vos propres applications Windows 10 qui interagissent avec Arduino, que ferez-vous? Peut-être un contrôleur domotique Guide domotique avec Raspberry Pi et Arduino Guide domotique avec Raspberry Pi et Arduino Le marché de la domotique est inondé de systèmes grand public coûteux, incompatibles entre eux et coûteux à installer. Si vous avez un Raspberry Pi et un Arduino, vous pouvez obtenir la même chose à… Read More? Faites-moi savoir dans les commentaires.

Explorez plus sur: Arduino, Programmation.