[[archives:netmf43:accueilnetmf|{{ :iconemaison.jpg?nolink&25|Sommaire .NETMF v4.3 }}]] ===== Exemples codés en C# pour la carte Netduino ===== [Mise à jour le 11/1/2019] {{ :netmf43:netmf.png?nolink|}} ==== NETMF 4.3 - C# : Fascicule 1 ==== [[https://webge.fr/doc/wikis/pdf/Netduino_Fascicule_1.zip|{{ :netmf43:fascicule1.jpg?150 |Télécharger}}]] **Présentation** Ce document est un recueil de programmes écris en C#. Ils ciblent les cartes Netduino de la société [[http://www.wildernesslabs.co/|WILDERNESS LABS]] auxquelles sont connectés divers **capteurs, actionneurs et dispositifs de visualisation**. **Table des matières** * Préface * Se repérer dans le document * Exploiter le document * Ce qu'il est préférable d'avoir lu avant de tester les programmes - Avant de commencer - Les matériels - La carte de prototypage Netduino 3 - Les logiciels - Un premier programme en C# étape par étape - Organisation d'une "Fiche Exemple" - Les entrées, sorties numériques - Les entrées analogiques - La communication série - La gestion du temps - Le système de fichiers * Annexes * Glossaire * Bibliographie * Webographie * Distributeur * Index * Table des illustrations ---- {{:archives:netmf43:icone-attention_min.png?nolink|}} Les outils logiciels doivent avoir été installés dans Visual Studio avant de mettre en oeuvre le code ci-dessous. \\ Voir [[netmf43:3_logicielnetmf|"Les outils logiciels pour les cartes à STM32F4's"]] ---- ==== Le code source des exemples du fascicule 1 ==== {{:netmf43:lien.png?nolink|}} **Télécharger** le code de l'exemple. {{:netmf43:github.png?nolink|}} **Accéder** à la page web de la classe sur GitHub. {{:netmf43:nuget.png?nolink|}} La **classe** est incluse dans la bibliothèque [[https://www.nuget.org/packages/WEBGE.Microtoolskit/|Microtoolskit]]. {{:netmf43:appphoto.png?nolink|}} **Photo** du montage. === Les entrées, sorties numérique === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**BlinkingLed**|Sortie numérique (GPIO - General purpose Input Output): faire clignoter la Led de la carte Netduino.|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/BlinkingLed.zip|{{ :netmf43:csharp.png |BlinkingLed.zip}}]] | | | | |**LightSwitch**|Entrée/Sortie numériques (GPIO - General purpose Input Output): commander une Led avec un bouton-poussoir.|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/LightSwitch.zip|{{ :netmf43:csharp.png |LightSwitch.zip}}]]| | | | |**NetduinoClav4Digilent**|Entrée/Sortie numériques : commander une Led avec un clavier [[https://store.digilentinc.com/pmodbtn-4-user-pushbuttons/|Digilent 4BP]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoClav4Digilent.zip|{{ :netmf43:csharp.png |NetduinoClav4Digilent.zip}}]] | | |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Digilent Pmod Button Header.jpg|{{:netmf43:photo.png|Digilent Pmod Button Header.jpg}}]] | |**Netduino_EasyStepperMot**|Sortie numérique : commander un moteur pas à pas avec une carte [[http://webge.github.io/EasyStepperDriver/|EasyStepper Driver Motor V4.4]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/Netduino_EasyStepperMot.zip|{{ :netmf43:csharp.png |Netduino_EasyStepperMot.zip}}]] | [[https://github.com/WebGE/EasyStepperDriver|X]] | X | === Les entrées, sorties numériques - Interruption === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**LightSwitchINT**|Entrée numérique (GPIO - General purpose Input Output) : commander une Led avec un bouton-poussoir.|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/LightSwitchInt.zip|{{ :netmf43:csharp.png |LightSwitchInt.zip}}]] | | | | |**NetduinoAnemometre**|Timer : Mesure de la vitesse du vent avec un [[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwjz0cixgPvbAhUBmhQKHeESAvkQFghHMAI&url=https%3A%2F%2Fwww.sparkfun.com%2Fdatasheets%2FSensors%2FWeather%2FWeather%2520Sensor%2520Assembly..pdf&usg=AOvVaw1YVpeSc1DEtnW73CzB_ALz|kit wheather Sensor Assembly p/n80422]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoAnemometre.zip|{{ :netmf43:csharp.png |NetduinoAnemometre.zip}}]] | | | | === Les entrées, sorties numériques - PWM === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?nolink|}} ^ {{:netmf43:github.png?nolink|}} ^ {{ :netmf43:nuget.png?nolink |}} ^ {{ :netmf43:appphoto.png?nolink |}} ^ | **NetduinoPWM** |PWM1 (Pulse With Modulation ou Modulation de largeur d'impulsion) : \\ Faire varier la luminosité d’une Led.|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoPWM.zip|{{ :netmf43:csharp.png |NetduinoPWM.zip}}]] | | | **Netduino \\ Ardumoto** |PWM2a - (Pulse With Modulation ou Modulation de largeur d'impulsion) : \\ Faire varier la vitesse d’un moteur à Courant Continu interfacé par un [[https://www.sparkfun.com/products/14129|shield Ardumoto]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoArdumoto.zip|{{ :netmf43:csharp.png |NetduinoArdumoto.zip}}]] | | | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Montage Ardumoto Netduino.jpg|{{:netmf43:photo.png|Montage Ardumoto Netduino.jpg}}]] | | **Netduino \\ Ardumoto \\ (Projet Lanceur)** |PWM2b - (Pulse With Modulation ou Modulation de largeur d'impulsion) : \\ Faire varier la vitesse de deux moteurs à Courant Continu interfacés par un [[https://www.sparkfun.com/products/14129|shield Ardumoto]]. Tir de la balle. \\ Mesurer et afficher la fréquence de rotation d'un des deux moteurs.|[[https://webge.fr/doc/wikis/code/Netduino/ProjetsTSI/Lanceur/MoteursMCC.zip|{{ :netmf43:csharp.png |NetduinoArdumoto.zip}}]] | | | [[https://webge.fr/doc/wikis/code/Netduino/ProjetsTSI//img/Montage V_1_2_0_0.jpg|{{:netmf43:photo.png|Montage Ardumoto Netduino.jpg}}]] | | **Netduino Servo** |PWM3 - Régler la position d’un servomoteur de modélisme [[http://mbrochand.chez-alice.fr/ppe_0809/servomoteur.pdf|FUTABA S3003]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoServo.zip|{{ :netmf43:csharp.png |NetduinoServo.zip}}]] | | | **NetduinoESC Brushless** |PWM4 - Régler la fréquence de rotation d'un moteur brushless \\ [[https://www.brack.ch/fr/roxxy-motor-bl-outrunner-c22-547889|ROXXY C22-20-20 1330KV]] avec un régulateur [[http://www.conrad.fr/ce/fr/product/1380502/Regulateur-de-vol-Ultra-Control-12A-Graupner-S3055|GROUPNER S3055]]|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoESCBrushless.zip|{{ :netmf43:csharp.png |NetduinoESCBrushless.zip}}]] | | === Les entrées analogiques === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**NetduinoPot**|AN1 (Conversion Analogique Numérique): Régler la fréquence de clignotement d’une Led avec un potentiomètre.|[[https://webge.fr/c_touteFil/res/II/code/Netduino/Fascicule1/NetduinoPot.zip|{{ :netmf43:csharp.png |NetduinoPot.zip}}]]| | |**MesureAngle**|AN2 : Mesurer une position angulaire avec un potentiomètre.| [[https://webge.fr/c_touteFil/res/II/code/Netduino/Fascicule1/MesureAngle.zip|{{ :netmf43:csharp.png |MesureAngle.zip}}]]| [[https://github.com/WebGE/ELCD162|X]] | X | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/MesureAngle.jpg|{{:netmf43:photo.png|MesureAngle.jpg}}]] | |**NetduinoGHIThermo**|AN3 : Mesurer la température ambiante avec un module [[https://www.lextronic.fr/module/ambjolisearch/jolisearch?search_query=fez+thermom%C3%A8tre|GHI FEZ thermomètre]].| [[https://webge.fr/c_touteFil/res/II/code/Netduino/Fascicule1/NetduinoThermoGHI.zip|{{ :netmf43:csharp.png |NetduinoThermoGHI.zip}}]]| |**NetduinoGirouette**|AN4 : Mesurer la direction du vent avec un kit [[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwjz0cixgPvbAhUBmhQKHeESAvkQFghHMAI&url=https%3A%2F%2Fwww.sparkfun.com%2Fdatasheets%2FSensors%2FWeather%2FWeather%2520Sensor%2520Assembly..pdf&usg=AOvVaw1YVpeSc1DEtnW73CzB_ALz|kit wheather Sensor Assembly p/n80422]]|[[https://webge.fr/c_touteFil/res/II/code/Netduino/Fascicule1/NetduinoGirouette.zip|{{ :netmf43:csharp.png |NetduinoGirouette.zip}}]]| [[https://github.com/WebGE/ELCD162|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Girouette.jpg|{{:netmf43:photo.png|Girouette.jpg}}]] | === La communication série – Asynchrone - UART === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**NetduinoUART**|UART (Universal Asynchronous Receiver-Transmitter) : Transmettre une valeur numérique via une liaison RS232 (module [[https://www.lextronic.fr/radio-bus-divers/20299-module-pmod-rs232.html|Digilent PMODRS232]]).|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoUART.zip|{{ :netmf43:csharp.png |NetduinoUART.zip}}]]| | X | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/montagePmod.jpeg|{{:netmf43:photo.png|montagePmod.jpeg}}]] | |**NetduinoELCD_162**|UART : Utiliser un afficheur Lcd à commande série [[http://webge.github.io/ELCD162/|ELCD-162]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoELCD_162.zip|{{ :netmf43:csharp.png |NetduinoELCD_162.zip}}]]| [[https://github.com/WebGE/ELCD162|X]] | X | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/ELCD162.jpg|{{:netmf43:photo.png|ELCD162.jpg}}]] | |**NetduinoXBee_E**|UART : Transmettre des données avec un module [[https://www.gotronic.fr/cat-xbee-1459.htm|XBee]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoXBEE_E.zip|{{ :netmf43:csharp.png |NetduinoXBEE_E.zip}}]]| | X | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/NetduinoXBEE_E.jpg|{{:netmf43:photo.png|NetduinoXBEE_E.jpg}}]] | |**NetduinoXBee_R**|UART : Recevoir des données avec un module [[https://www.gotronic.fr/cat-xbee-1459.htm|XBee]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoXBEE_R.zip|{{ :netmf43:csharp.png |NetduinoXBEE_R.zip}}]]| [[https://github.com/WebGE/ELCD162|X]] | X | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/NetduinoXBEE_R.jpg|{{:netmf43:photo.png|NetduinoXBEE_R.jpg}}]] | === La communication série - Synchrone - Le bus SPI* === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**NetduinoST7735**|SPI (Serial Peripheral Interface) : Commander un afficheur graphique 1,8" TFT couleur (128x160) à ST7735R. [[https://www.adafruit.com/product/802|ADAFRUIT]]|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoST7735.zip|{{ :tinyclros:csharp.png |NetduinoST7735.zip}}]]|[[https://github.com/WebGE/ST7735|X]] | X | [[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Adafruit_ST7735.jpg|{{:netmf43:photo.png|AdafruitST7735.jpg}}]] | === La communication série – Synchrone – Bus I²C === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**NetduinoPCF8574**|I²C (Inter-Integrated Circuit) : Réalisation d'un chenillard sur huit Leds reliées à un port d’entrées, sorties [[http://webge.github.io/PCF8574/|PCF8574]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoPCF8574.zip|{{ :netmf43:csharp.png |NetduinoPCF8574.zip}}]]| [[https://github.com/WebGE/PCF8574|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Chenillard.jpg|{{:netmf43:photo.png|Chenillard.jpg}}]] | |**NetduinoI²CLCD**|I²C : Commander un afficheur LCD à circuit [[http://webge.github.io/I2CLCD/|PCF2119]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoI2CLCD.zip|{{ :netmf43:csharp.png |NetduinoI2CLCD.zip}}]]| [[https://github.com/WebGE/I2CLCD|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Chenillard.jpg|{{:netmf43:photo.png|Chenillard.jpg}}]] | |**NetduinoSRF08US**|I²C : Mesurer une distance avec un télémètre à ultrasons [[http://webge.github.io/SRF08/|SRF08]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoSRF08US.zip|{{ :netmf43:csharp.png |NetduinoSRF08US.zip}}]]| [[https://github.com/WebGE/SRF08|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/SRF08.jpg|{{:netmf43:photo.png|SRF08.jpg}}]] | |**NetduinoI²CLEDBP**|I²C : Recopier l’état de boutons poussoirs sur les Leds de la carte SSI via des PCF8574 (carte [[https://webge.github.io/IHMSSI/|SSI]]).|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoI2CLEDBP.zip|{{ :netmf43:csharp.png |NetduinoI2CLEDBP.zip}}]]| [[https://github.com/WebGE/IHMSSI|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Chenillard.jpg|{{:netmf43:photo.png|Chenillard.jpg}}]] | |**NetduinoHMC6352**|I²C : Lire la direction donnée par une boussole [[https://github.com/WebGE/HMC6352|HMC6352]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoHMC6352.zip|{{ :netmf43:csharp.png |NetduinoHMC6352.zip}}]]| [[https://github.com/WebGE/HMC6352|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/HMC6352.jpg|{{:netmf43:photo.png|HMC6352.jpg}}]] | |**NetduinoTMP102**|I²C : Mesurer la température ambiante avec un capteur [[http://webge.github.io/TMP102/|TMP102]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoTMP102.zip|{{ :netmf43:csharp.png |NetduinoTMP102.zip}}]]| [[https://github.com/WebGE/TMP102|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/TMP102.jpg|{{:netmf43:photo.png|TMP102.jpg}}]] | |**NetduinoMD25**|I²C : Commander deux motoréducteurs à C.C. équipés d’encodeurs avec une carte [[http://webge.github.io/MD25/|MD25]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoMD25.zip|{{ :netmf43:csharp.png |NetduinoMD25.zip}}]]| [[https://github.com/WebGE/MD25|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/Banc RobSol.jpg|{{:netmf43:photo.png|Banc RobSol.jpg}}]] | |**NetduinoTSL2561**|I²C : Mesurer la luminosité ambiante avec un capteur [[http://webge.github.io/TSL2561/|TSL2561]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoTSL2561.zip|{{ :netmf43:csharp.png |NetduinoTSL2561.zip}}]]| [[https://github.com/WebGE/TSL2561|X]] | X |[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/img/TSL2561.jpg|{{:netmf43:photo.png|TSL2561.jpg}}]] | |**NetduinoMLX90614**|I²C : Mesurer la température d’un objet avec un capteur [[https://webge.github.io/MLX90614/|MLX90614]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoMLX90614.zip|{{ :netmf43:csharp.png |}}]]| [[https://github.com/WebGE/MLX90614|X]] | X | | |**NetduinoMCP3424**|I²C : Acquérir des données issues de capteurs analogique avec un CAN [[https://webge.github.io/MCP342x/|MCP3424]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoMCP3424.zip|{{ :netmf43:csharp.png |}}]]| [[https://github.com/WebGE/MCP342x|X]] | X | | === La communication série – Synchrone – Bus One Wire === ^ Visual Studio 2019 ^ Description ^ {{:netmf43:lien.png?28&nolink|}} ^ {{:netmf43:github.png?28&nolink|}} ^ {{ :netmf43:nuget.png?28&nolink |}} ^ {{ :netmf43:appphoto.png?28&nolink |}} ^ |**NetduinoDS18B20**|OneWire (Bus de communication inter composants sur un fil) : Mesurer la température ambiante avec un capteur [[https://www.gotronic.fr/recherche_0_0_0_0_2_0.htm|DS18B20]].|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoDS18B20.zip|{{ :netmf43:csharp.png |NetduinoDS18B20.zip}}]]| | **La gestion du temps - Timer** ^ Visual Studio 2019 ^ Description ^{{:netmf43:lien.png?30&nolink|}}^{{:netmf43:github.png?30&nolink|}}^ {{ :netmf43:nuget.png?nolink |}} ^ {{ :netmf43:appphoto.png?nolink |}} ^ |**TimerExemple**|Timer - Principe : Générer un signal triangulaire.|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/Timer.zip|{{ :netmf43:csharp.png |Timer.zip}}]]| | |**NetduinoAnemometre**|Timer - Application : Mesurer et afficher la vitesse du vent. Mise en oeuvre d'un kit Weather Sensor Assembly p/n 80422.|[[https://webge.fr/doc/wikis/code/Netduino/Fascicule1/NetduinoAnemometre.zip|{{ :netmf43:csharp.png |NetduinoAnemometre.zip}}]]| | **Télécharger tous les codes source** [[https://webge.fr/doc/wikis/code/Netduino/Code_Tome_1.zip|ici]]. ---- ==== NETMF 4.3 - C# : Fascicule 2 ==== [Mise à jour le 19/2/2016] [[https://webge.fr/doc/wikis/pdf/Netduino_Fascicule_2.zip|{{ :netmf43:fascicule1.jpg?150 |Télécharger}}]] **Présentation** Ce document est le deuxième tome d’un recueil de programmes écrits en C#. Ils illustrent la mise en œuvre d’application **REST** destinées à transformer les cartes Netduino de la société [[http://www.wildernesslabs.co/|WILDERNESS LABS]] en **objets connectés** (réseau local ou internet). Leur configuration en **client** et/ou en s**erveur HTTP** est décrite à travers différents exemples. **Table des matières du tome 2 (Résumé)** - Netduino comme client http sur un réseau local - Exemples d'applications liées à la surveillance à distance - Exemples d'applications liées à la commande à distance - Netduino comme serveur http sur un réseau local - Exemples d'applications liées à la surveillance à distance - Exemples d'applications liées à la commande à distance - Multithreading - L'internet des objets. **Télécharger tous les codes source** [[https://webge.fr/doc/wikis/code/Netduino/Code_Tome_2.zip|ici]].