net microframework, les joies de l'électronique et du code pour tous
DESCRIPTION
Le .NET Microframework est une plateforme avec laquelle n'importe quel geek un peu développeur peut prendre son pied :-) Pas besoin d'OS, le .NET Microframework fonctionne directement sur des petites cartes électroniques pas cher, et il permet de faire plein de choses... très geeks : automatiser son arrosage automatique, éclairer sa ville Lego, renvoyer les images de sa Webcam, etc Cette session sera un aperçu technique du .NET Microframework, technologie que Microsoft a mis en Open Source, avec démonstration (en code) des cas réels d'utilisation, dont on peut voir une preview ici: http://blogs.msdn.com/laurelle Les aspects pédagogiques de cet environnement seront également démontrés, car le .NET Microframework est une plateforme idéale pour apprendre à programmer mais aussi pour de la robotique simple et efficace.TRANSCRIPT
palais des congrès Paris
7, 8 et 9 février 2012
2010-02-07Laurent EllerbachAudience Marketing Director Microsoft Central and Eastern Europe
.NET Microframework, les joies de l'électronique et du code pour tous (EMB105)
.NET Microframework
Démo « Hello Led »
Démo « Mon premier serveur HTTP »
Démo « Gérer mon arrosage automatique »
Démo « Eclairer ma ville Lego »
Agenda
.NET Micro Framework
.NET pour les processeurs à bas 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
.NET Microframework pour
Open Source collaboratifRelease 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.comPortages de Atmel, NXP, Renasas, TI, ST Micro, …
NETMF Modèle Open Source
NamespacesSystem.Windows System.Windows.Controls
Window Border
Image
Panel
CheckBox
Button
ListBox
ListView
RadioButton
ScrollViewer
UIElement
TextBox
StackPanel
System.Windows.Input
Stylus
Mouse
Keyboard/GPIO
System.Forms
System.Data
System.XML
Writer
Reader
System.Drawing System
Collections
IO
Resources
Threading
Security
Globalization
Reflection
NET/HTTP
Diagnostics
Compiler Svcs
RuntimeRemoting
Serialization
System.Service.Model
DPWS Addressing
DPWS Eventing
DPWS Discovery
Proxy Discovery
DPWS TransferManaged DriversI2C/SPI
USB
SerialPort
GPIO Watchdog
Power MgmtA/D
PWM
Partial implementationSame as .NET Fx
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#) Gratuit
…et surtout une bonne idée pour construire quelque chose de sympa
Par où commencer?
Processeur et mémoireAtmel 32-bit microcontrollerVitesse : 48MHz, ARM7Espace de stockage pour le code: 64 KB, sans réseau: 128 KBRAM: 28 KB, sans réseau: 60 KB
Mon premier projet : Hello Led
Tout ce qu’il y a connaître : U = R x IUtiliser une led sur un output pin (3,3V sur Netduino)1 led = 2 V environ, courant 0,02AR = (3,3 – 2)/0,02 = 65 Ohms
Un peu 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é
Plus de Hard
Ground (black)
2V (red) Digital IO (yellow)
Capteur de lumière agit comme une résistance 1M Ω (noir complet) à 100 Ω (lumière intense)R = √(1M x 100) = 10K ΩEntrée analogique = 3.3/(1+R/RL)Varie de 0.0323V (lumière intense) à 3.23V (noir)
Example d’entrée analogique
Ground
+3.3V
Entrée analogique
10KΩ R
RL
Mon premier serveur Web
Partir de l’exemple Web Server
Comment ça fonctionne1 thread par protocole = 1 pour http1 handler pour processer toutes les requêtes (GET et POST)1 fonction pour processer GET1 fonction pour processer POST1 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 toutTrès bon exemple complet qui implémente beaucoup de bonnes pratiques
Implémenté un serveur Web
Enlever le code lié à httpsEnlever 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 fichiersEnlever ce genre de choses
Ajouter une fonction qui permet de lire les paramètres passer en URLAjouter du code pour gérer les pages en GETAjouter du code pour gérer vos propres pages
Simplifier le serveur Web
Gérer mon arrosage automatique
Comment ça marche?
Netduino
http
1 Page pour gérer la programmation
1 Page pour ouvrir/fermer les arroseurs
Client utilisant un simple navigateur
2 Pages pour gérer le calendrier et la programmation
Timer pour lancer les arrosages
Illuminer ma ville Lego
Comment ça marche ?
Netduino
http
Page pour retourner le paramrétrage et l’état
Pour allumer/éteindre les led
http
Web Server avec pages ASP.NET
Client utilisant un simple navigateur
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 compteLa sécurité, c’est important, à prendre en compte dès le designU=RI if (Microsoft.SPOT.Hardware.SystemInfo.IsEmulator)
strDefaultDir = "WINFS"; else strDefaultDir = "SD";
localhost:81 utilisé par l’émulateur pour un serveur web
Trucs et astuces
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://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/
Resources
Laurent [email protected]://blogs.msdn.com/laurelle
QUESTIONS
Chaque semaine, les DevCampsALM, Azure, Windows Phone, HTML5, OpenDatahttp://msdn.microsoft.com/fr-fr/devcamp
Téléchargement, ressources et toolkits : RdV sur MSDNhttp://msdn.microsoft.com/fr-fr/
Les offres à connaître90 jours d’essai gratuit de Windows Azure www.windowsazure.fr
Jusqu’à 35% de réduction sur Visual Studio Pro, avec l’abonnement MSDN www.visualstudio.fr
Pour aller plus loin
10 février 2012
Live Meeting
Open Data - Développer des applications riches avec le protocole Open Data
16 février 2012
Live Meeting
Azure series - Développer des applications sociales sur la plateforme Windows Azure
17 février 2012
Live Meeting
Comprendre le canvas avec Galactic et la librairie three.js
21 février 2012
Live Meeting
La production automatisée de code avec CodeFluent Entities
2 mars 2012
Live Meeting
Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7, iOS et Android
6 mars 2012
Live Meeting
Nuget et ALM
9 mars 2012
Live Meeting
Kinect - Bien gérer la vie de son capteur
13 mars 2012
Live Meeting
Sharepoint series - Automatisation des tests
14 mars 2012
Live Meeting
TFS Health Check - vérifier la bonne santé de votre plateforme de développement
15 mars 2012
Live Meeting
Azure series - Développer pour les téléphones, les tablettes et le cloud avec Visual Studio 2010
16 mars 2012
Live Meeting
Applications METRO design - Désossage en règle d'un template METRO javascript
20 mars 2012
Live Meeting
Retour d'expérience LightSwitch, Optimisation de l'accès aux données, Intégration Silverlight
23 mars 2012
Live Meeting
OAuth - la clé de l'utilisation des réseaux sociaux dans votre application
Prochaines sessions des Dev Camps