Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
archives:netmf43:4b_netmfpandapap [2021/08/10 14:58] – [2. Premier programme : Blink] phil | archives:netmf43:4b_netmfpandapap [2024/07/28 10:32] (Version actuelle) – phil | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | [[archives: | ||
+ | |||
+ | ===== [ARCHIVES] Premiers programmes en C# " | ||
+ | |||
+ | [Mise à jour le : 16/7/2018] | ||
+ | {{ : | ||
+ | ==== 1. Préambule ==== | ||
+ | |||
+ | Pour mener à bien ce tutoriel vous devez disposer d’une carte < | ||
+ | |||
+ | Le cours sur les fondamentaux du langage C#, accessible sur < | ||
+ | |||
+ | On trouvera également des tutoriels en anglais sur le site de la société < | ||
+ | |||
+ | ==== 2. Premier programme : Blink ==== | ||
+ | |||
+ | ---- | ||
+ | |||
+ | **Cahier des charges du programme 1** | ||
+ | |||
+ | Faire clignoter la LED1 de la carte Panda 3 ! | ||
+ | |||
+ | ---- | ||
+ | === Etape 1 : Créer un projet === | ||
+ | * Ouvrez l’**IDE Visual Studio** en cliquant sur l’icône suivante : {{: | ||
+ | * Dans la boîte de dialogue " | ||
+ | {{ : | ||
+ | * Donnez le nom " | ||
+ | {{ : | ||
+ | |||
+ | * **Cliquez** sur Program.cs dans la fenêtre **Explorateur de solution** | ||
+ | |||
+ | __Remarque__: | ||
+ | |||
+ | L’IDE est alors configuré comme sur la copie d’écran ci-dessous (ou un équivalent selon sa version) : | ||
+ | {{ : | ||
+ | |||
+ | __Remarque__: | ||
+ | |||
+ | Le projet **// | ||
+ | |||
+ | * Définissez la **version du framework** en sélectionnant **Projet -> Propriétés de Blink -> Framework cible** comme dans la copie d' | ||
+ | {{ : | ||
+ | |||
+ | === Etape 2 : Editer le code source du programme === | ||
+ | **1. Déclaration des " | ||
+ | |||
+ | Une partie du code a été renseigné par Visual Studio. C’est le cas de la liste des espaces de noms installés par défaut et de la structure minimum du corps de programme (**repère 2 de la copie d' | ||
+ | |||
+ | Pour le moment seuls les espaces de nom suivants sont présents : | ||
+ | {{ : | ||
+ | |||
+ | Modifiez cette liste pour qu' | ||
+ | {{ : | ||
+ | |||
+ | Visual Studio souligne **using GHI.pins** en rouge spécifiant qu’il y a un problème. Cela est dû au fait qu’il ne trouve pas la bibliothèque correspondant à ce nouvel espace de noms. **Une autre manipulation est nécessaire** ! | ||
+ | |||
+ | Dépliez le répertoire " | ||
+ | {{ : | ||
+ | |||
+ | Pour ajouter la nouvelle bibliothèque: | ||
+ | |||
+ | ** 2. Partie déclarative du programme : construction d'un objet virtuel " | ||
+ | |||
+ | Entrez la ligne ci-dessous à la place du commentaire : //write your code here// | ||
+ | |||
+ | <code csharp led.cs> var Led = new OutputPort(Pins.ONBOARD_LED, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | __Remarque__ : Vous pouvez constater l’effet de l’**autocompletion (intellisense)** au fur et à mesure de la construction de la ligne. Les propositions faites par le logiciel sont une aide précieuse lors de l’écriture du code. | ||
+ | |||
+ | Il n’est pas nécessaire d’écrire complètement un mot : un **appui sur la touche tabulation** {{: | ||
+ | |||
+ | ---- | ||
+ | {{ : | ||
+ | |||
+ | **3. Partie exécutive du programme (le corps du programme) : placée dans une boucle infinie** | ||
+ | |||
+ | Ecrivez le mot // | ||
+ | {{ : | ||
+ | |||
+ | Appuyez **deux fois** sur la touche de tabulation {{: | ||
+ | |||
+ | Complétez la structure // | ||
+ | {{ : | ||
+ | |||
+ | === Etape 3 : Générer la solution === | ||
+ | Dans l' | ||
+ | |||
+ | === Etape 4 : Transférer le programme et l' | ||
+ | |||
+ | **1. Affichage de la fenêtre de sortie** | ||
+ | Cette fenêtre donne des informations lors de l’exécution d’un programme. Elle est utile lors de sa mise au point ou pour remplacer un périphérique d’affichage. | ||
+ | |||
+ | Dans l’éditeur, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | **2. Transfert et exécution du programme dans la carte** | ||
+ | |||
+ | Vérifiez que l’éditeur est en mode {{: | ||
+ | |||
+ | ---- | ||
+ | **La LED de la carte doit clignoter !** | ||
+ | ---- | ||
+ | {{ : | ||
+ | |||
+ | === Etape 5 : Tester le programme en mode pas à pas === | ||
+ | |||
+ | Pour mettre un programme "**au point**" | ||
+ | {{ : | ||
+ | |||
+ | Pour bien comprendre les possibilités du débogueur, vous allez faire fonctionner le programme en **mode pas à pas.** | ||
+ | |||
+ | Cliquez sur l' | ||
+ | {{ : | ||
+ | |||
+ | Placez un __**point d’arrêt**__ (rond rouge) en cliquant à gauche du mot // | ||
+ | {{ : | ||
+ | |||
+ | Relancez le programme (touche F5 ou {{: | ||
+ | |||
+ | **Résultat attendu dans la fenêtre de sortie et comportement de la LED correspondant !** | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | ==== 3. Deuxième programme : " | ||
+ | |||
+ | ---- | ||
+ | **Cahier des charges du programme 2** | ||
+ | |||
+ | Afficher la position angulaire d'un axe sur un lcd. | ||
+ | |||
+ | ---- | ||
+ | **Matériels** | ||
+ | * Carte Panda 3 et shield [[http:// | ||
+ | * Potentiomètre | ||
+ | * Afficheur LCD 2 lignes de 16 caractères et module [[http:// | ||
+ | |||
+ | ---- | ||
+ | ** Montage à réaliser ** | ||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Etape 1 : Créer le projet " | ||
+ | Reprenezla démarche vue dans le programme 1. Nommez le projet // | ||
+ | |||
+ | === Etape 2 : Editer le code du fichier Program.cs === | ||
+ | |||
+ | |||
+ | **1. Sélection des " | ||
+ | |||
+ | **a. Modifiez** la liste des bibliothèques du projet comme ci-dessous : | ||
+ | {{ : | ||
+ | |||
+ | __Remarque__ : La bibliothèque **MicroToolskit** est à télécharger sur Nuget.org en suivant la procédure suivante. | ||
+ | - clic droit sur "// | ||
+ | - Sélectionnez "// | ||
+ | - Dans "// | ||
+ | - | ||
+ | - Positionnez la fenêtre sur // | ||
+ | |||
+ | La bibliothèque apparaît comme sur la copie d' | ||
+ | {{ : | ||
+ | |||
+ | **b. Modifiez** la liste des espaces de noms (on conserve seulement ceux qui sont utiles au projet !) | ||
+ | <code csharp using.cs> | ||
+ | using System; | ||
+ | using System.Threading; | ||
+ | using Microsoft.SPOT.Hardware; | ||
+ | using GHI.Pins; | ||
+ | |||
+ | using Microtoolskit.Hardware.Displays; | ||
+ | </ | ||
+ | |||
+ | __Remarque__ : le contenu de la bibliothèque MicroToolsKit est accessible en effectuant un clic droit sur son nom dans "// | ||
+ | |||
+ | **2a. Partie déclarative du programme** | ||
+ | |||
+ | Complétez le fichier " | ||
+ | |||
+ | |||
+ | a. Déclaration des constantes | ||
+ | |||
+ | <code csharp const.cs> | ||
+ | public static void Main() | ||
+ | { | ||
+ | // Constantes | ||
+ | const UInt16 delay = 500; // En ms | ||
+ | </ | ||
+ | |||
+ | b. Déclaration des variables | ||
+ | <code csharp var.cs> | ||
+ | // A la suite du code précédent, | ||
+ | // Variables | ||
+ | var N = 0; | ||
+ | var Angle = 0; | ||
+ | </ | ||
+ | |||
+ | c. Configuration des entrées, sorties | ||
+ | <code csharp es.cs> | ||
+ | // A la suite du code précédent, | ||
+ | // Configuration des E/S | ||
+ | // http:// | ||
+ | | ||
+ | // http:// | ||
+ | | ||
+ | </ | ||
+ | |||
+ | d. Initialisation de l' | ||
+ | |||
+ | <code csharp init.cs> | ||
+ | // A la suite du code précédent, | ||
+ | // Initialisation | ||
+ | Lcd.Init(); Lcd.ClearScreen(); | ||
+ | </ | ||
+ | |||
+ | **2b. Partie exécutive du programme** | ||
+ | <code csharp while.cs> | ||
+ | // A la suite du code précédent, | ||
+ | while (true) | ||
+ | { | ||
+ | N = Potentiometre.ReadRaw(); | ||
+ | Angle = (270 * N ) / 4096; | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === Etape 3 : Générer la solution === | ||
+ | Reprenez la démarche vue dans le programme 1. | ||
+ | |||
+ | |||
+ | === Etape 4 : Transférer le programme et l' | ||
+ | Reprenez la démarche vue dans le programme 1. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | **Exercice** | ||
+ | |||
+ | Modifiez le programme pour qu'une LED simulant une alarme (à rajouter sur la carte) s' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | **Sources des exemples** | ||
+ | Les sources des exemples (compilées avec Visual Studio Community 2015) sont téléchargeables [[https:// | ||
+ | |||
+ | ---- | ||