net microframework: du code, de l’électronique, de la robotique

Post on 25-May-2015

148 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

TRANSCRIPT

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

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

.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

.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

• 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

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

• 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 projetHello Led

• 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

demoBen oui, on va la faire clignoter cette led…

• 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

demoInterruptions, débuggage et analogique

Mon premier 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

Implémenté un serveur Web

demoEmulateur

• 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

• 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

demoAller, 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

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é

Capteur d’humidité

Données…

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

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 ???

Filtre logiciel (1/4)

Période de 15 points

Filtre logiciel (2/4)

Période de 60 points

Filtre logiciel (3/4)

Période de 60 points

Vert = arrosage, rouge = pluie

Filtre logiciel (4/4)

Période de 600 points

Vert = arrosage, rouge = pluie

Piloter des éléments infrarouge Lego

• Remplacer ça… …par ça

Pourquoi?

• 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

Le hard

• 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

demoPiloter mon train Lego

• 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

• 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

Questions ?

Laurent Ellerbachlaurelle@microsoft.com

http://blogs.msdn.com/laurelle

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