Donnez votre avis !          Depuis votre smartphone, sur :           http://notes.mstechdays.frDe nombreux lots à gagner ...
.NET Microframework : du code, delélectronique, de la robotique2013-02-12Laurent EllerbachAudience Marketing DirectorMicro...
Agenda• .NET Microframework• Démo « Hello Led »• Démo « Mon premier serveur HTTP »• Démo « Gérer mon arrosage automatique ...
.NET Micro Framework .NET pour les processeurs à bas        .NET Microframework pour coûts • Directement sur du métal • Pe...
NETMF Modèle Open Source• Open Source collaboratif• Release History   –   V. 4.0 (Nov 2009) entièrement Microsoft   –   V....
Namespaces                                   Partial implementation                                             Same as .N...
Par où commencer?• 1 board tel que Netduino   – Prendre la version Netduino Plus avec     suport réseau et SD pour 50€ env...
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...
demoBen 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 q...
Example d’entrée analogique• Capteur de lumière agit  comme une résistance  1M Ω (noir complet) à  100 Ω (lumière intense)...
demoInterruptions, débuggage et analogique
Mon premier serveur Web
Implémenté un serveur Web•   Partir de l’exemple Web ServerComment ça fonctionne• 1 thread par protocole = 1 pour http• 1 ...
demoEmulateur
Simplifier le serveur Web• Enlever le code lié à https• Enlever le code lié à POST si GET uniquement utilisé• Enlever le c...
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...
demoAller, je vous montre les 10 lignes nécessaire au serveurWeb 
Gérer mon arrosage       automatique
Un boitier propre avec arrivée réseau. AutomateCrouzet
Des électrovannes 24V courant continue
Comment ça marche?                                     Netduino                              http  Client utilisant       ...
Capteur d’humidité
Données…   Comment faire pour avoir un signal propre?   1 acquisition par minute
Les 2 optionsHard                              Soft• Bon capteur = bonne donnée      • Donnée non exacte• Coût de producti...
Filtre logiciel (1/4)      Période de 15 points
Filtre logiciel (2/4)      Période de 60 points
Filtre logiciel (3/4)                             Vert =                             arrosage,                            ...
Filtre logiciel (4/4)                              Vert =                              arrosage,                          ...
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 ...
Le hard
Piloter des servo moteur• Servo moteur se pilotent en envoyant des  trains d’onde pour atteindre un angle  spécifique• Uti...
demoPiloter mon train Lego
Trucs et astuces• Try catch partout…• Les buffers sont limités (1024 in most small ARM)• System.Threading.Thread.Sleep(100...
Resources•   SDK download: http://netmf.codeplex.com/releases/view/52341•   .NET Microframework sources: http://netmf.code...
Questions ?               Laurent Ellerbach        laurelle@microsoft.comhttp://blogs.msdn.com/laurelle
Développeurs                                                         Pros de l’IT http://aka.ms/generation-app       Forme...
Prochain SlideShare
Chargement dans... 5
×

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

156

Published on

Envie de se faire plaisir le soir ? Envie de faire vibrer des canards ? Envie de développer quelque chose de WAF et super Geek ? Alors, cette session est pour toi :-) .NET Microframework est une technologie open source permettant de réaliser des robots, des modules intelligents, le tout sans aucun OS. Cette session montra par des exemples concerts comment réaliser des automates et les piloter à travers des interfaces web. Exemple concret avec un arrosage automatique entièrement pilotable depuis l'autre bout du monde.

0 commentaires
0 mentions J'aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Be the first to like this

Aucun téléchargement
Vues
Total des vues
156
Sur Slideshare
0
À partir des ajouts
0
Nombre d'ajouts
0
Actions
Partages
0
Téléchargements
7
Commentaires
0
J'aime
0
Ajouts 0
No embeds

No notes for slide
  • Notation
  • Transcript of ".NET Microframework: du code, de l’électronique, de la robotique"

    1. 1. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.frDe nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… http://notes.mstechdays.fr Merci de nous aider à améliorer les TechDays
    2. 2. .NET Microframework : du code, delélectronique, de la robotique2013-02-12Laurent EllerbachAudience Marketing DirectorMicrosoft Central and Eastern Europe
    3. 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. 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. 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. 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. 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. 8. Mon premier projet Hello Led 
    9. 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. 10. demoBen oui, on va la faire clignoter cette led…
    11. 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. 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)
    13. 13. demoInterruptions, débuggage et analogique
    14. 14. Mon premier serveur Web
    15. 15. Implémenté un serveur Web• Partir de l’exemple Web ServerComment ç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
    16. 16. demoEmulateur
    17. 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. 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. 19. demoAller, je vous montre les 10 lignes nécessaire au serveurWeb 
    20. 20. Gérer mon arrosage automatique
    21. 21. Un boitier propre avec arrivée réseau. AutomateCrouzet
    22. 22. Des électrovannes 24V courant continue
    23. 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
    24. 24. Capteur d’humidité
    25. 25. Données… Comment faire pour avoir un signal propre? 1 acquisition par minute
    26. 26. Les 2 optionsHard 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. 27. Filtre logiciel (1/4) Période de 15 points
    28. 28. Filtre logiciel (2/4) Période de 60 points
    29. 29. Filtre logiciel (3/4) Vert = arrosage, rouge = pluie Période de 60 points
    30. 30. Filtre logiciel (4/4) Vert = arrosage, rouge = pluie Période de 600 points
    31. 31. Piloter des éléments infrarouge Lego
    32. 32. Pourquoi?• Remplacer ça… …par ça
    33. 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
    34. 34. Le hard
    35. 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
    36. 36. demoPiloter mon train Lego
    37. 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. 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. 39. Questions ? Laurent Ellerbach laurelle@microsoft.comhttp://blogs.msdn.com/laurelle
    40. 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 accompagnerWindows 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
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×