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

Post on 14-Dec-2014

962 views 0 download

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

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

Domotique et robotique avec le micro Framework

.NET

J-C Armici / Ph. Schutz

jc.armici@gmail.com pschutz@iprolink.ch

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

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

• 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

Micro Framework .NET

SMTP envoi email

HTTP client & serveur

Time server

FTP

Google Maps

Twitter client

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

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

• 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

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

• 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

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

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

• 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

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

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

• 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

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

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 $

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, …)

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)

Démo 1

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); } }

Démo 2

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

Démo 3

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); } }

Démo 4

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; } ... } }

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 …

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

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 $

Relais

14.99 $

Carte 16 relais

64.95 $

Bouton

4.99 $

WiFi / Ethernet ZigBee

USB Port sériel

RS232

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

Catégories de robots • Domestiques

• Industriels

• De loisirs

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

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

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

Démo 5

Démo 6

• 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

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

Questions ?