22
palais des congrès Paris 7, 8 et 9 février 2012

NET Microframework, les joies de l'électronique et du code pour tous

Embed Size (px)

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.

Citation preview

Page 1: NET Microframework, les joies de l'électronique et du code pour tous

palais des congrès Paris

7, 8 et 9 février 2012

Page 2: NET Microframework, les joies de l'électronique et du code pour tous

2010-02-07Laurent EllerbachAudience Marketing Director Microsoft Central and Eastern Europe

.NET Microframework, les joies de l'électronique et du code pour tous (EMB105)

Page 3: NET Microframework, les joies de l'électronique et du code pour tous

.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

Page 4: NET Microframework, les joies de l'électronique et du code pour tous

.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

Page 5: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 6: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 7: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 8: NET Microframework, les joies de l'électronique et du code pour tous

Mon premier projet : Hello Led

Page 9: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 10: NET Microframework, les joies de l'électronique et du code pour tous

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)

Page 11: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 12: NET Microframework, les joies de l'électronique et du code pour tous

Mon premier serveur Web

Page 13: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 14: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 15: NET Microframework, les joies de l'électronique et du code pour tous

Gérer mon arrosage automatique

Page 16: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 17: NET Microframework, les joies de l'électronique et du code pour tous

Illuminer ma ville Lego

Page 18: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 19: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 20: NET Microframework, les joies de l'électronique et du code pour tous

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

Page 21: NET Microframework, les joies de l'électronique et du code pour tous

Laurent [email protected]://blogs.msdn.com/laurelle

QUESTIONS

Page 22: NET Microframework, les joies de l'électronique et du code pour tous

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