soft-shake.ch - Domotique et robotique avec le micro Framework .NET

49
cocktail d’expérience informatiques Genève 3 & 4 octobre 2011 Seconde édition Track Auteur Session Microsoft J-C ARMICI / Ph. SCHUTZ Domotique et robotique avec le micro Framework .NET soft -shake.ch

description

Jean-Claude Armici and Philippe SchutzLe micro Framework .NET offre un environnement de développement et d’exécution complet et innovant. Il offre une programmation de haut niveau, par exemple en C#, permettant de gérer toutes les possibilités offertes par diverses carte électroniques modernes et performantes.Cette présentation a pour but de faire connaître le micro Framework .NET, son architecture et ses fonctionnalités, au travers d’exemples et de démonstrations dans les domaines de la domotique et de la robotique. La programmation, dans un environnement standard, ainsi que le matériel utilisé, très abordable à tous les points de vue, devraient permettre à chacun de s’initier sans peine à l’utilisation de l’informatique embarquée.http://soft-shake.ch/2011/conference/sessions/microsoft/2011/09/06/domotique-et-robotique-avec-le-micro-framework-NET.html

Transcript of soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Page 1: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

cocktail d’expérience informatiquesGenève 3 & 4 octobre 2011

Seconde édition

Track

Auteur

Session

Microsoft

J-C ARMICI / Ph. SCHUTZ

Domotique et robotique avec le micro Framework .NET

soft-shake.ch

Page 3: soft-shake.ch - Domotique et robotique avec le micro Framework .NET
Page 4: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Domotique et robotique avec le micro Framework

.NET

J-C Armici / Ph. Schutz

Page 5: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

[email protected] [email protected]

Philippe Schutz

Jean-Claude Armici

• Physicien et informaticien • Enseigne l’informatique au CFPT

(techniciens ES en informatique) • Intérêts:

• Ergonomie • Nouvelles technologies • Écriture

• Informaticien: • Créateur indépendant • CT Technologies, Inc.

• Graphiste et dessinateur d’icônes • Intérêts:

• Xxx • yyy

Page 6: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Motivations:

• Intérêt pour le micro Framework .NET

• Lien entre informatique et matériel électronique

• Facilité de développement pour non-électroniciens

Objectifs:

• Démocratiser le micro Framework

• Présenter un «Bootstrap» permettant à chacun de concevoir et de programmer des systèmes embarqués

• Susciter la curiosité

Nous nous sommes focalisés sur le matériel FEZ

Page 7: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Environnement riche basé sur la technologie .NET

• Adapté aux systèmes embarqués miniaturisés, peu coûteux et disposant de peu de ressources matérielles

• Développé «from scratch» et opensource

• Quelques centaines de Ko de RAM jusqu’à plusieurs Mo

• Processeur 32 bits

• Utilisation d’un émulateur ou d’un terminal réel

• C# avec Visual Studio

Page 8: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Micro Framework .NET

SMTP envoi email

HTTP client & serveur

Time server

FTP

Google Maps

Twitter client

Page 9: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Micro Framework n’est pas un OS, mais un runtime bootable permettant d’exécuter 1 seul programme (multithread)

WPF (avantage pour les IHM vectorielles), mais pas de XAML

Page 10: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Application et librairies utilisateur

Librairies .NET WPF Comms …

CLR Moteur

d’exécution Système de

types Garbage Collector

Interop

PAL Timers RAM I/O

HAL Drivers

Processeur et périphérique

OS Drivers

Ap

plic

atio

n

Cla

sses

d

e b

ases

M

atér

iel

Ru

nti

me

Ou

Page 11: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Convient aux équipements mono-fonctionnalité ou à fonctionnalités limitées

• Dédié aux nouveaux processeurs 32 bits (moindre coût et faible consommation):

• Minimum 256 Ko de RAM et 512 Ko de flash/ROM

• ARM7 sans MMU, ARM9 sans MMU, Cortex M3, Xscale, Blackfin (DSP intégré)

• Expose au code .NET les interfaces de gestion de l’énergie

Page 12: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Pas un OS, mais un runtime bootable d’un sous-ensemble du CLR .NET

• Code plus simple en comparaison à C / C++

• Gestion native des exceptions

• Garbage Collector

• Écriture de drivers en C# pour les périphériques connecté via • Ethernet, SPI, I2C, GPIO, USART, I/O

• USB (vrais devices connectés, p.ex. souris)

• PWM (support rapide des nouveaux périphériques)

Page 13: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Intégration à Visual Studio

• Développement en C#:

• On profite des avantages

• Peu de fonctions disponibles (il faut écrire le reste)

• Cross-debugging

• Object browsing

• Intellisense

• Compilation et déploiement

• Émulateurs extensibles

Page 14: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Environ 1 à 2 millions d’équipements sur le marché qui utilisent le Micro Framework

Quelques exemples d’applications:

• Domotique: • Télécommandes • Capteurs

• Médical: • Tensiomètres • Autres appareils portables

• Automobile: • Afficheurs • GPS

Page 15: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Mais aussi…

• Informatique:

• Connexions avec l’électronique • Loisirs portables

• Grand public: • Robotique de divertissement • Périphériques divers • Stations météo • Jeux • Systèmes d’alarme

Page 16: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Doit tenir dans peu de mémoire

• Une seule collection: ArrayList

• Rendu: pas de WindowsForm (seulement de quoi écrire , drawing 2D, Pen, Brush, formes de base)

• System.Web et System.Data: inexistant

• System.Globalization

• System.Net (Sockets, Dns, IPAddress, …)

• System.Reflection (Assembly, MethodInfo)

• System.IO

Page 17: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

System.Web

Services • Description • Discovery • Protocols

UI • HTML controls • Web controls

Cache

Configuration

Security

Session state

System.Data

ADO.NET

Design

SQL Client

SQL ServerCE

System

Collections

Security

IO

Net

Text

Globalization

Reflection

Resources

Configuration

Service process

Runtime

Interop services

Diagnostics

Threading

Remoting

Serialization

System.Windows.Forms

Design Component model

Drawing2D

Imaging

Printing

Text

System.XML

XML Document

Xslt/XPath

Serialization

Reader/Writers

System.Drawing

existant inexistant

Page 18: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Microsoft.SPOT

Presentation

IO

Net

Hardware

System

Collections

Security

IO

Net

Text

Globalization

Reflection

Resources

Configuration

Service process

Runtime

Interop services

Diagnostics

Threading

Remoting

Serialization

System.Windows.Forms

Design Component model

Drawing2D

Imaging

Printing

Text

System.XML

XML Document

Xslt/XPath

Serialization

Reader/Writers

System.Drawing

existant inexistant nouveau

Page 19: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Taille minimale 256Ko de flash et 64Ko de RAM

• Amélioration des performances

• Threads avec priorités

• Outil de génération de code pour DPWS

• Connexion SSL

• Supporte le WiFi

• Interface standard pour les écrans tactiles

• Supporte les systèmes de fichiers (FAT32)

• Interopérabilité avec du code natif

Important www.microsft.com/netmf

Page 20: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• HTTP and HTTPs: clients et serveurs, avec les nouveaux types HttpWebRequest, HttpWebResponse et HttpListener dans l’assembly System.Http.dll

• Native XML Parser: le parser a été déplacé vers le code natif pour améliorer ses performances

• Native collections: les classes de collections natives déplacées vers le code natif, ajout des types Queue et Stack

• Time sync: nouvelle API Time Sync pour synchronisation manuelle ou automatique avec un serveur de temps

• TinyCore performance improvements: amélioration du dispatch des événements et des couches.

Page 21: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Matériel Kit robot 100 $ FEZ ultimate kit 150 $

Logiciel: Visual Studio Express (ou supérieur) 0 $ SDK Micro Framework (Microsoft) 0 $ SDK FEZ 0 $

Page 22: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Techniques diverses utilisées dans les bâtiments et lieux publics.

Domaines de prédilection • Confort (appareils électrodomestiques, gestion de l’énergie, …)

• Sécurité (alarmes, détecteurs, …)

• Communication

Importance des IHM et des modes de transmission

• Ondes radio: Bluetooth, Zigbee, … • Courant porteur: X10, … • Réseau câblé (Ethernet, bus divers, …)

Page 23: soft-shake.ch - Domotique et robotique avec le micro Framework .NET
Page 24: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

2 relais 30.-

1 carte FEZ Panda II 39.-

1 carte d’extension Panda II 35.-

1 joli boîtier gris 30.10

1 alimentation interne 39.-

2 prises secteur encastrables 8.-

1 cordon d’alimentation 3.-

Visserie 5.-

Total 189.10

(en CHF)

Page 25: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Démo 1

Page 26: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

public static void Main() { OutputPort port = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.Di5, false); bool state = false; while (true) { port.Write(state); Thread.Sleep(1000); state = (!state); } }

Page 27: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Démo 2

Page 28: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

public static void Main() { Lampe lampeVerte = new Lampe(FEZ_Pin.Digital.Di5); lampeVerte.On(); Lampe lampeCerise = new Lampe(FEZ_Pin.Digital.Di8); lampeCerise.On(); }

Page 29: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Démo 3

Page 30: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

public static void Main() { Lampe lampeVerte = new Lampe(FEZ_Pin.Digital.Di5); Lampe lampeCerise = new Lampe(FEZ_Pin.Digital.Di8); lampeVerte.StartBlink(new TimeSpan(0, 0, 1)); lampeCerise.StartBlink(new TimeSpan(0, 0, 3)); while (true) { Thread.Sleep(100); } }

Page 31: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Démo 4

Page 32: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

internal static void RunServer() { HttpListener listener = new HttpListener("http", 80); listener.Start(); while (true) { ... HttpListenerContext context = listener.GetContext(); HttpListenerResponse response = context.Response; HttpListenerRequest request = context.Request; switch (request.HttpMethod.ToUpper()) { case "GET": ProcessClientGetRequest(context); break; case "POST": ProcessClientPostRequest(context); break; } ... } }

Page 33: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Possibilités

• Pilotage depuis • Windows Phone 7 • Silverlight • Tout autre outils capables d’appeler une adresse web

• Automatisation paramétrable via le web

• Réglage via TimeServer

• Notification SMS, Twitter

• Et bien d’autres encore …

Page 34: soft-shake.ch - Domotique et robotique avec le micro Framework .NET
Page 35: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

FEZ Cobra FEZ Panda 2 FEZ Mini

Prix 149.95 $ 39.95 $ 39.95 $

Dimensions 11.24 cm x 8.44 cm 5.3 cm x 8.1 cm 4.8 cm x 2.8 cm

User free Flash > 3 Mo 148 Ko 148 Ko

User free RAM > 12 Mo 62 Ko 62 Ko

Color TFT contr. oui non non

Ethernet oui Oui + carte d’extension non

Carte SD oui oui non

Page 36: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Détecteur de proximité 12.95 $

Capteur par réflexion 9.95 $

Capteur de température 7.99 $

Récepteur infrarouge 5.99 $

Senseur lumineux 4.99 $

Potentiomètre 4.99 $

Page 37: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Relais

14.99 $

Carte 16 relais

64.95 $

Bouton

4.99 $

Page 38: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

WiFi / Ethernet ZigBee

USB Port sériel

RS232

Page 39: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Protocole de haut niveau (certifié en 2004) • Courte distance

• Grande fiabilité

• Faible coût

• Très faible consommation

• Particulièrement bien adapté à la domotique

(Wikipédia)

Page 40: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Catégories de robots • Domestiques

• Industriels

• De loisirs

Objectifs • Imitation de la nature (hommes, animaux, …)

• Automatisation de tâches (vitesse, fiabilité, sécurité, …)

Page 41: soft-shake.ch - Domotique et robotique avec le micro Framework .NET
Page 42: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• Expert en cybernétique et neurosciences (Institut Max Planck)

• Décédé le 9 septembre 2011

• Livre «culte»: Expériences en psychologie synthétique

• Petits véhicules avec: • Capteurs • Actuateurs • Connexions simulant des réseaux de neurones

• Des robots simples montrent des comportement complexes

• 14 versions de robots avec des comportements divers (fuite, attirance, timidité, amour, agressivité…)

Page 43: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Démo 5

Page 44: soft-shake.ch - Domotique et robotique avec le micro Framework .NET
Page 45: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Démo 6

Page 46: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

• 72MHz 32-bit ARM7 processor

• 4.5 MB Flash

• 16 MB RAM

• LCD controller

• Full TCP/IP Stack with SSL, HTTP, TCP, UDP, DHCP

• Ethernet, WiFi driver and PPP (GPRS / 3G modems) USB host

• 76 GPIO Pin

• 4x UART

• 7x 10-bit Analog Inputs

• 10-bit Analog Output (capable of WAV audio playback)

• Extended double-precision math class

• FAT File System

Page 47: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Matériel: • FEZ (http://www.ghielectronics.com/) Logiciels: • Micro Framework (http://www.microsoft.com/en-us/netmf) • Visual Studio Express (http://www.microsoft.com/express) • SDK micro Framework

(http://www.microsoft.com/download/en/details.aspx?id=1434) Livres: • Embedded Programming with the Microsoft .NET Micro Framework

(Donald Thompson and Rob S. Miles (Jun 27, 2007), Microsoft Press, ISBN-13: 978-0735623651

• Expert .NET Micro Framework (Jens Kühner), Apress, ISBN-13: 978-1430223870

Page 49: soft-shake.ch - Domotique et robotique avec le micro Framework .NET

Questions ?