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
http://www.philippe-schutz.com/SoftShake2011.zip
Domotique et robotique avec le micro Framework
.NET
J-C Armici / Ph. Schutz
[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
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
Nos références:
• http://www.facebook.com/philippe.schutz
• http://info.philippe-schutz.com
• @armici2000
Les documents et exemples:
• http://www.philippe-schutz.com/SoftShake2011.zip
Questions ?