SlideShare une entreprise Scribd logo
Donnez votre avis !
          Depuis votre smartphone, sur :
           http://notes.mstechdays.fr

De nombreux lots à gagner toutes les heures !!!
           Claviers, souris et jeux Microsoft…
                          http://notes.mstechdays.fr

  Merci de nous aider à améliorer les TechDays
.NET Microframework : du code, de
l'électronique, de la robotique
2013-02-12
Laurent Ellerbach
Audience Marketing Director
Microsoft Central and Eastern Europe
Agenda
• .NET Microframework

• Démo « Hello Led »

• Démo « Mon premier serveur HTTP »

• Démo « Gérer mon arrosage automatique »

• Démo « Piloter un train Lego en infrarouge et
  gérer des servos moteurs »
.NET Micro Framework
 .NET pour les processeurs à bas        .NET Microframework pour
 coûts
 • Directement sur du métal
 • Petite et configurable empreinte
 • ARM7 @ 20-40 Mhz
 • ARM9 @ 200 Mhz
 • ~ 300 Ko de RAM
 • 1 Mo de mémoire Flash/ROM
 Compatibilité .NET
 • Différentes versions
 • Sélections des classes clientes
 • Support spécifique pour l’embarqué
 • Un jeu de classe limité mais très
   riche
NETMF Modèle Open Source
• Open Source collaboratif
• Release History
   –   V. 4.0 (Nov 2009) entièrement Microsoft
   –   V. 4.1 (Juin 2010) petites contributions communautaires
   –   V 4.2 (Eté 2011) > 30% contributions communautaires
   –   Site hébergé sur un domaine non-Microsoft – netmf.com
   –   Partenaires communautaires
         • tinyclr.com, netduino.com
• Portages de Atmel, NXP, Renasas, TI, ST Micro…
Namespaces                                   Partial implementation
                                             Same as .NET Fx
     System.Windows           System.Windows.Controls
        Window              Border              ListView

   System.Windows.Input     Button            RadioButton              System.Data
      Keyboard/GPIO       CheckBox            ScrollViewer
         Mouse              Panel              StackPanel              System.XML

          Stylus            Image               TextBox                  Reader
                            ListBox            UIElement                  Writer
      System.Forms

     System.Drawing                             System
                          Collections         Globalization            Diagnostics
   System.Service.Model
                           Security            Reflection               Runtime
     DPWS Discovery                                                    Remoting
                          Threading                 IO                Serialization
     DPWS Eventing
                          Resources            NET/HTTP               Compiler Svcs
    DPWS Addressing
                                            Managed Drivers
      DPWS Transfer
                          SerialPort        I2C/SPI       A/D           Power Mgmt
     Proxy Discovery
                             USB             GPIO             PWM        Watchdog
Par où commencer?
• 1 board tel que Netduino
   – Prendre la version Netduino Plus avec
     suport réseau et SD pour 50€ environ
• Le SDK
   – Gratuit
• Visual Studio Express (C#)                 Processeur et mémoire
   – Gratuit                                 Atmel 32-bit microcontroller
                                             Vitesse : 48MHz, ARM7
• …et surtout une bonne idée                 Espace de stockage pour le
  pour construire quelque chose              code: 64 KB, sans réseau: 128

  de sympa 
                                             KB
                                             RAM: 28 KB, sans réseau: 60
                                             KB
Mon premier projet
      Hello Led 
Un peu de Hard 
•   Tout ce qu’il y a connaître : U = R x I
•   Utiliser une led sur un output pin (3,3V sur Netduino)
•   1 led = 2 V environ, courant 0,02A
•   R = (3,3 – 2)/0,02 = 65 Ohms
demo
Ben oui, on va la faire clignoter cette led…
Plus de Hard
• Réutilisation d’un capteur
  compte tour sur un vieux
  disque dur d’il y a 15 ans 
• Faire clignoter la led quand le
  capteur de lumière est obturé
                                    2V (red)    Digital IO (yellow)




                                               Ground (black)
Example d’entrée analogique
• Capteur de lumière agit
  comme une résistance
  1M Ω (noir complet) à
  100 Ω (lumière intense)
                              +3.3V
• R = √(1M x 100) = 10K Ω
                              10K      R
• Entrée analogique =         Ω             Entrée
  3.3/(1+R/RL)                              analogiq
                                            ue
• Varie de 0.0323V                     RL
  (lumière intense) à 3.23V
                              Ground
  (noir)
demo
Interruptions, débuggage et analogique
Mon premier serveur Web
Implémenté un serveur Web
•   Partir de l’exemple Web Server

Comment ça fonctionne
• 1 thread par protocole = 1 pour http
• 1 handler pour processer toutes les requêtes (GET et POST)
• 1 fonction pour processer GET
• 1 fonction pour processer POST
• 1 fonction pour retourner un fichier du stockage (par morceau car la taille des
  buffers est limitée)
• 1 fonction d’upload de fichier vers le stockage (par morceau car la taille des
  buffers est limitée)

•   Plein d’autres fonctions pour faire fonctionner le tout
•   Très bon exemple complet qui implémente beaucoup de bonnes pratiques
demo
Emulateur
Simplifier le serveur Web
• Enlever le code lié à https
• Enlever le code lié à POST si GET uniquement utilisé
• Enlever le code lié au transfère de fichier si non utilisé
• Enlever le code lié à la gestion des répertoires et stockage si
  pas besoin d’accès aux fichiers
• Enlever ce genre de choses 

• Ajouter une fonction qui permet de lire les paramètres passer
  en URL
• Ajouter du code pour gérer les pages en GET
• Ajouter du code pour gérer vos propres pages
Finalement, je réécris mon serveur web 
• Ecouter ce qu’il se passe sur un port (80 par défaut) avec des
  Socket
• Lire les données quand il y a quand il y a quelque chose à lire
• Interpréter les headers du protocole HTTP
• Créer une réponse
• Renvoyer le tout
• Le code minimum = 10 lignes 

• Quelques try, catch, événement et 2 trois trucs pour faire joli
• Une trentaine de lignes de code pour un serveur web robuste
demo
Aller, je vous montre les 10 lignes nécessaire au serveur
Web 
Gérer mon arrosage
       automatique
Un boitier propre avec arrivée réseau. Automate
Crouzet
Des électrovannes 24V courant continue
Comment ça marche?
                                     Netduino



                              http
  Client utilisant                         2 Pages pour gérer le
  un simple                                calendrier et la
  navigateur                               programmation
                                           1 Page pour ouvrir/fermer
      Utilisation en                       les arroseurs
      production tout l’été                1 Page pour gérer la
                                          programmation
                                 Timer pour lancer les arrosages
Capteur d’humidité
Données…




   Comment faire pour avoir un signal propre?   1 acquisition par minute
Les 2 options

Hard                              Soft
• Bon capteur = bonne donnée      • Donnée non exacte
• Coût de production plus élevé   • Temps de développement
• Complexité matérielle           • Complexité logicielle, temps de
                                    traitement


                    Quoi choisir ???
Filtre logiciel (1/4)




      Période de 15 points
Filtre logiciel (2/4)




      Période de 60 points
Filtre logiciel (3/4)


                             Vert =
                             arrosage,
                             rouge = pluie




      Période de 60 points
Filtre logiciel (4/4)


                              Vert =
                              arrosage,
                              rouge = pluie




      Période de 600 points
Piloter des éléments
     infrarouge Lego
Pourquoi?
• Remplacer ça…   …par ça
Envoyer des infos en infrarouge
• Les protocoles infrarouge sont compliqués




• Utilisation d’un « hack » avec SPI pour créer l’onde et l’envoyer telle
  quelle
Le hard
Piloter des servo moteur
• Servo moteur se pilotent en envoyant des
  trains d’onde pour atteindre un angle
  spécifique
• Utilisation de PWM pour créer les bons
  trains d’onde
• Multiplexage pour en piloter plein
demo
Piloter mon train Lego
Trucs et astuces
• Try catch partout…
• Les buffers sont limités (1024 in most small ARM)
• System.Threading.Thread.Sleep(100);
• Compromis entre joli code et code efficace: la taille, ça compte
• La sécurité, c’est important, à prendre en compte dès le design
• U=RI
•  if (Microsoft.SPOT.Hardware.SystemInfo.IsEmulator)
             strDefaultDir = "WINFS";
        else
             strDefaultDir = "SD";
• localhost:81 utilisé par l’émulateur pour un serveur web
Resources
•   SDK download: http://netmf.codeplex.com/releases/view/52341
•   .NET Microframework sources: http://netmf.codeplex.com/
•   Visual Studio Express: http://www.microsoft.com/visualstudio/en-
    us/products/2010-editions/express
•   Netduino: http://www.netduino.com/

•   Blogs et liens utiles:
     –   http://blogs.msdn.com/laurelle²
     –   http://www.netmf.com
     –   http://blogs.msdn.com/netmf
     –   http://blogs.msdn.com/netmfteam
     –   http://www.tinyclr.com/
     –   http://nerduino.wordpress.com/
     –   http://www.ghielectronics.com/downloads/FEZ/Beginners%20guide%20to%20NETMF.pdf
     –   http://www.ghielectronics.com/catalog/category/265/
Questions ?

               Laurent Ellerbach
        laurelle@microsoft.com
http://blogs.msdn.com/laurelle
Développeurs                                                         Pros de l’IT
 http://aka.ms/generation-app       Formez-vous en ligne        www.microsoftvirtualacademy.com

    http://aka.ms/evenements-
                 developpeurs     Retrouvez nos évènements      http://aka.ms/itcamps-france


            Les accélérateurs
                                  Faites-vous accompagner
Windows Azure, Windows Phone,
                                  gratuitement
                   Windows 8


                                   Essayer gratuitement nos     http://aka.ms/telechargements
                                                 solutions IT

         La Dev’Team sur MSDN       Retrouver nos experts       L’IT Team sur TechNet
          http://aka.ms/devteam           Microsoft             http://aka.ms/itteam

Contenu connexe

Tendances

Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain GanuchaudLes Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
Alain Ganuchaud
 
La virtualisation dans le Datacenter
La virtualisation dans le DatacenterLa virtualisation dans le Datacenter
La virtualisation dans le Datacenter
Paris, France
 
Virtualisation par logiciels libres
Virtualisation par logiciels libresVirtualisation par logiciels libres
Virtualisation par logiciels libresguest3be047
 
REX Storm Redis
REX Storm RedisREX Storm Redis
REX Storm Redis
Benjamin Houdu
 
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Pierre-jean Texier
 
Puppet slides
Puppet slidesPuppet slides
Puppet slides
Pierre Mavro
 
Neopod: une base de données objet distribuée
Neopod: une base de données objet distribuéeNeopod: une base de données objet distribuée
Neopod: une base de données objet distribuéeParis, France
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
PhilippeBrogi
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Olivier DASINI
 
Etude de la virtualisation
Etude de la virtualisationEtude de la virtualisation
Etude de la virtualisation
Antoine Benkemoun
 
Journées du Logiciel Libre 2011 - Puppet
Journées du Logiciel Libre 2011 - PuppetJournées du Logiciel Libre 2011 - Puppet
Journées du Logiciel Libre 2011 - PuppetAlexandre De Dommelin
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Silicon Comté
 
Etude de la virtualisation : Réseau & Cloisonnement
Etude de la virtualisation : Réseau & CloisonnementEtude de la virtualisation : Réseau & Cloisonnement
Etude de la virtualisation : Réseau & Cloisonnement
Antoine Benkemoun
 
Javaoop
JavaoopJavaoop
Javaoop
javaexpert
 
Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amine
CHERIET Mohammed El Amine
 

Tendances (16)

Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain GanuchaudLes Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
 
La virtualisation dans le Datacenter
La virtualisation dans le DatacenterLa virtualisation dans le Datacenter
La virtualisation dans le Datacenter
 
Virtualisation par logiciels libres
Virtualisation par logiciels libresVirtualisation par logiciels libres
Virtualisation par logiciels libres
 
REX Storm Redis
REX Storm RedisREX Storm Redis
REX Storm Redis
 
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
 
Puppet slides
Puppet slidesPuppet slides
Puppet slides
 
Neopod: une base de données objet distribuée
Neopod: une base de données objet distribuéeNeopod: une base de données objet distribuée
Neopod: une base de données objet distribuée
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
 
Etude de la virtualisation
Etude de la virtualisationEtude de la virtualisation
Etude de la virtualisation
 
Journées du Logiciel Libre 2011 - Puppet
Journées du Logiciel Libre 2011 - PuppetJournées du Logiciel Libre 2011 - Puppet
Journées du Logiciel Libre 2011 - Puppet
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
 
Etude de la virtualisation : Réseau & Cloisonnement
Etude de la virtualisation : Réseau & CloisonnementEtude de la virtualisation : Réseau & Cloisonnement
Etude de la virtualisation : Réseau & Cloisonnement
 
Javaoop
JavaoopJavaoop
Javaoop
 
Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amine
 
Zabbix
ZabbixZabbix
Zabbix
 

Similaire à .NET Microframework: du code, de l’électronique, de la robotique

Net duino et le .net micro framework
Net duino et le .net micro frameworkNet duino et le .net micro framework
Net duino et le .net micro framework
Vincent Hubert
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
Xavier MARIN
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Trésor-Dux LEBANDA
 
L'univers Android
L'univers AndroidL'univers Android
L'univers Android
Chiheb Ouaghlani
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
Stéphane Liétard
 
Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018
Yannick Comte
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
Nic St Lawrence
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - Genève
aOS Community
 
Hacking your Home @bdx.io
Hacking your Home @bdx.ioHacking your Home @bdx.io
Hacking your Home @bdx.io
laurenthuet
 
Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)
Olivier Eeckhoutte
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
codedarmor
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
Alexandru Radovici
 
Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012
Gonéri Le Bouder
 
Eco Conception logicielle : Comment réduire par deux la consommation d’...
Eco Conception logicielle : Comment réduire par deux la consommation d’...Eco Conception logicielle : Comment réduire par deux la consommation d’...
Eco Conception logicielle : Comment réduire par deux la consommation d’...
Microsoft
 

Similaire à .NET Microframework: du code, de l’électronique, de la robotique (20)

_JCVFr
_JCVFr_JCVFr
_JCVFr
 
Net duino et le .net micro framework
Net duino et le .net micro frameworkNet duino et le .net micro framework
Net duino et le .net micro framework
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
 
L'univers Android
L'univers AndroidL'univers Android
L'univers Android
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - Genève
 
Wygday 2008
Wygday 2008Wygday 2008
Wygday 2008
 
Hacking your Home @bdx.io
Hacking your Home @bdx.ioHacking your Home @bdx.io
Hacking your Home @bdx.io
 
Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012Fusioninventory journees-perl-2012
Fusioninventory journees-perl-2012
 
Eco Conception logicielle : Comment réduire par deux la consommation d’...
Eco Conception logicielle : Comment réduire par deux la consommation d’...Eco Conception logicielle : Comment réduire par deux la consommation d’...
Eco Conception logicielle : Comment réduire par deux la consommation d’...
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
Microsoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
Microsoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
Microsoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
Microsoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Microsoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
Microsoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
Microsoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
Microsoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

.NET Microframework: du code, de l’électronique, de la robotique

  • 1. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… http://notes.mstechdays.fr Merci de nous aider à améliorer les TechDays
  • 2. .NET Microframework : du code, de l'électronique, de la robotique 2013-02-12 Laurent Ellerbach Audience Marketing Director Microsoft Central and Eastern Europe
  • 3. Agenda • .NET Microframework • Démo « Hello Led » • Démo « Mon premier serveur HTTP » • Démo « Gérer mon arrosage automatique » • Démo « Piloter un train Lego en infrarouge et gérer des servos moteurs »
  • 4. .NET Micro Framework .NET pour les processeurs à bas .NET Microframework pour coûts • Directement sur du métal • Petite et configurable empreinte • ARM7 @ 20-40 Mhz • ARM9 @ 200 Mhz • ~ 300 Ko de RAM • 1 Mo de mémoire Flash/ROM Compatibilité .NET • Différentes versions • Sélections des classes clientes • Support spécifique pour l’embarqué • Un jeu de classe limité mais très riche
  • 5. NETMF Modèle Open Source • Open Source collaboratif • Release History – V. 4.0 (Nov 2009) entièrement Microsoft – V. 4.1 (Juin 2010) petites contributions communautaires – V 4.2 (Eté 2011) > 30% contributions communautaires – Site hébergé sur un domaine non-Microsoft – netmf.com – Partenaires communautaires • tinyclr.com, netduino.com • Portages de Atmel, NXP, Renasas, TI, ST Micro…
  • 6. Namespaces Partial implementation Same as .NET Fx System.Windows System.Windows.Controls Window Border ListView System.Windows.Input Button RadioButton System.Data Keyboard/GPIO CheckBox ScrollViewer Mouse Panel StackPanel System.XML Stylus Image TextBox Reader ListBox UIElement Writer System.Forms System.Drawing System Collections Globalization Diagnostics System.Service.Model Security Reflection Runtime DPWS Discovery Remoting Threading IO Serialization DPWS Eventing Resources NET/HTTP Compiler Svcs DPWS Addressing Managed Drivers DPWS Transfer SerialPort I2C/SPI A/D Power Mgmt Proxy Discovery USB GPIO PWM Watchdog
  • 7. Par où commencer? • 1 board tel que Netduino – Prendre la version Netduino Plus avec suport réseau et SD pour 50€ environ • Le SDK – Gratuit • Visual Studio Express (C#) Processeur et mémoire – Gratuit Atmel 32-bit microcontroller Vitesse : 48MHz, ARM7 • …et surtout une bonne idée Espace de stockage pour le pour construire quelque chose code: 64 KB, sans réseau: 128 de sympa  KB RAM: 28 KB, sans réseau: 60 KB
  • 8. Mon premier projet Hello Led 
  • 9. Un peu de Hard  • Tout ce qu’il y a connaître : U = R x I • Utiliser une led sur un output pin (3,3V sur Netduino) • 1 led = 2 V environ, courant 0,02A • R = (3,3 – 2)/0,02 = 65 Ohms
  • 10. demo Ben oui, on va la faire clignoter cette led…
  • 11. Plus de Hard • Réutilisation d’un capteur compte tour sur un vieux disque dur d’il y a 15 ans  • Faire clignoter la led quand le capteur de lumière est obturé 2V (red) Digital IO (yellow) Ground (black)
  • 12. Example d’entrée analogique • Capteur de lumière agit comme une résistance 1M Ω (noir complet) à 100 Ω (lumière intense) +3.3V • R = √(1M x 100) = 10K Ω 10K R • Entrée analogique = Ω Entrée 3.3/(1+R/RL) analogiq ue • Varie de 0.0323V RL (lumière intense) à 3.23V Ground (noir)
  • 15. Implémenté un serveur Web • Partir de l’exemple Web Server Comment ça fonctionne • 1 thread par protocole = 1 pour http • 1 handler pour processer toutes les requêtes (GET et POST) • 1 fonction pour processer GET • 1 fonction pour processer POST • 1 fonction pour retourner un fichier du stockage (par morceau car la taille des buffers est limitée) • 1 fonction d’upload de fichier vers le stockage (par morceau car la taille des buffers est limitée) • Plein d’autres fonctions pour faire fonctionner le tout • Très bon exemple complet qui implémente beaucoup de bonnes pratiques
  • 17. Simplifier le serveur Web • Enlever le code lié à https • Enlever le code lié à POST si GET uniquement utilisé • Enlever le code lié au transfère de fichier si non utilisé • Enlever le code lié à la gestion des répertoires et stockage si pas besoin d’accès aux fichiers • Enlever ce genre de choses  • Ajouter une fonction qui permet de lire les paramètres passer en URL • Ajouter du code pour gérer les pages en GET • Ajouter du code pour gérer vos propres pages
  • 18. Finalement, je réécris mon serveur web  • Ecouter ce qu’il se passe sur un port (80 par défaut) avec des Socket • Lire les données quand il y a quand il y a quelque chose à lire • Interpréter les headers du protocole HTTP • Créer une réponse • Renvoyer le tout • Le code minimum = 10 lignes  • Quelques try, catch, événement et 2 trois trucs pour faire joli • Une trentaine de lignes de code pour un serveur web robuste
  • 19. demo Aller, je vous montre les 10 lignes nécessaire au serveur Web 
  • 20. Gérer mon arrosage automatique
  • 21. Un boitier propre avec arrivée réseau. Automate Crouzet
  • 22. Des électrovannes 24V courant continue
  • 23. Comment ça marche? Netduino http Client utilisant 2 Pages pour gérer le un simple calendrier et la navigateur programmation 1 Page pour ouvrir/fermer Utilisation en les arroseurs production tout l’été 1 Page pour gérer la  programmation Timer pour lancer les arrosages
  • 25. Données… Comment faire pour avoir un signal propre? 1 acquisition par minute
  • 26. Les 2 options Hard Soft • Bon capteur = bonne donnée • Donnée non exacte • Coût de production plus élevé • Temps de développement • Complexité matérielle • Complexité logicielle, temps de traitement Quoi choisir ???
  • 27. Filtre logiciel (1/4) Période de 15 points
  • 28. Filtre logiciel (2/4) Période de 60 points
  • 29. Filtre logiciel (3/4) Vert = arrosage, rouge = pluie Période de 60 points
  • 30. Filtre logiciel (4/4) Vert = arrosage, rouge = pluie Période de 600 points
  • 31. Piloter des éléments infrarouge Lego
  • 33. Envoyer des infos en infrarouge • Les protocoles infrarouge sont compliqués • Utilisation d’un « hack » avec SPI pour créer l’onde et l’envoyer telle quelle
  • 35. Piloter des servo moteur • Servo moteur se pilotent en envoyant des trains d’onde pour atteindre un angle spécifique • Utilisation de PWM pour créer les bons trains d’onde • Multiplexage pour en piloter plein
  • 37. Trucs et astuces • Try catch partout… • Les buffers sont limités (1024 in most small ARM) • System.Threading.Thread.Sleep(100); • Compromis entre joli code et code efficace: la taille, ça compte • La sécurité, c’est important, à prendre en compte dès le design • U=RI • if (Microsoft.SPOT.Hardware.SystemInfo.IsEmulator) strDefaultDir = "WINFS"; else strDefaultDir = "SD"; • localhost:81 utilisé par l’émulateur pour un serveur web
  • 38. Resources • SDK download: http://netmf.codeplex.com/releases/view/52341 • .NET Microframework sources: http://netmf.codeplex.com/ • Visual Studio Express: http://www.microsoft.com/visualstudio/en- us/products/2010-editions/express • Netduino: http://www.netduino.com/ • Blogs et liens utiles: – http://blogs.msdn.com/laurelle² – http://www.netmf.com – http://blogs.msdn.com/netmf – http://blogs.msdn.com/netmfteam – http://www.tinyclr.com/ – http://nerduino.wordpress.com/ – http://www.ghielectronics.com/downloads/FEZ/Beginners%20guide%20to%20NETMF.pdf – http://www.ghielectronics.com/catalog/category/265/
  • 39. Questions ? Laurent Ellerbach laurelle@microsoft.com http://blogs.msdn.com/laurelle
  • 40. Développeurs Pros de l’IT http://aka.ms/generation-app Formez-vous en ligne www.microsoftvirtualacademy.com http://aka.ms/evenements- developpeurs Retrouvez nos évènements http://aka.ms/itcamps-france Les accélérateurs Faites-vous accompagner Windows Azure, Windows Phone, gratuitement Windows 8 Essayer gratuitement nos http://aka.ms/telechargements solutions IT La Dev’Team sur MSDN Retrouver nos experts L’IT Team sur TechNet http://aka.ms/devteam Microsoft http://aka.ms/itteam

Notes de l'éditeur

  1. Notation