Transcript
Page 1: NET Microframework: du code, de l’électronique, de la robotique

Donnez votre avis !Depuis votre smartphone, sur : http://notes.mstechdays.fr

De nombreux lots à gagner toutes les heures !!!

Claviers, souris et jeux Microsoft…

Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr

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

2013-02-12Laurent EllerbachAudience Marketing Director Microsoft Central and Eastern Europe

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

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

• .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 »

Agenda

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

.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/ROMCompatibilité .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: du code, de l’électronique, de la robotique

• 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…

NETMF Modèle Open Source

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

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 Drivers

I2C/SPI

USB

SerialPort

GPIO Watchdog

Power MgmtA/D

PWM

Partial implementationSame as .NET Fx

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

• 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: du code, de l’électronique, de la robotique

Mon premier projetHello Led

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

• 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

Un peu de Hard

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

demoBen oui, on va la faire clignoter cette led…

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

• 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 12: NET Microframework: du code, de l’électronique, de la robotique

• 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 13: NET Microframework: du code, de l’électronique, de la robotique

demoInterruptions, débuggage et analogique

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

Mon premier serveur Web

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

• 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

Implémenté un serveur Web

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

demoEmulateur

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

• 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

Simplifier le serveur Web

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

• 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

Finalement, je réécris mon serveur web

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

demoAller, je vous montre les 10 lignes nécessaire au serveur Web

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

Gérer mon arrosage automatique

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

Un boitier propre avec arrivée réseau. Automate Crouzet

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

Des électrovannes 24V courant continue

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

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

Utilisation en production tout l’été

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

Capteur d’humidité

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

Données…

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

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

Hard• Bon capteur = bonne

donnée• Coût de production plus

élevé• Complexité matérielle

Soft• Donnée non exacte• Temps de développement• Complexité logicielle,

temps de traitement

Les 2 options

Quoi choisir ???

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

Filtre logiciel (1/4)

Période de 15 points

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

Filtre logiciel (2/4)

Période de 60 points

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

Filtre logiciel (3/4)

Période de 60 points

Vert = arrosage, rouge = pluie

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

Filtre logiciel (4/4)

Période de 600 points

Vert = arrosage, rouge = pluie

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

Piloter des éléments infrarouge Lego

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

• Remplacer ça… …par ça

Pourquoi?

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

• Les protocoles infrarouge sont compliqués

• Utilisation d’un « hack » avec SPI pour créer l’onde et l’envoyer telle quelle

Envoyer des infos en infrarouge

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

Le hard

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

• 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

Piloter des servo moteur

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

demoPiloter mon train Lego

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

• 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

Trucs et astuces

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

• 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/

Resources

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

Questions ?

Laurent [email protected]

http://blogs.msdn.com/laurelle

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

Formez-vous en ligne

Retrouvez nos évènements

Faites-vous accompagner gratuitement

Essayer gratuitement nos solutions IT

Retrouver nos experts Microsoft

Pros de l’ITDéveloppeurs

www.microsoftvirtualacademy.com

http://aka.ms/generation-app

http://aka.ms/evenements-developpeurs

http://aka.ms/itcamps-france

Les accélérateursWindows Azure, Windows Phone,

Windows 8

http://aka.ms/telechargements

La Dev’Team sur MSDNhttp://aka.ms/devteam

L’IT Team sur TechNethttp://aka.ms/itteam


Top Related