Jean-Claude Armici and Philippe Schutz
Le 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
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
1. cocktail d’expérience informatiques
Genève 3 & 4 octobre 2011
Seconde édition
soft-shake.ch
Auteur J-C ARMICI / Ph. SCHUTZ
Track Microsoft
Session Domotique et
robotique avec le
micro
Framework .NET
5. Jean-Claude Philippe
Armici Schutz
jc.armici@gmail.com pschutz@iprolink.ch
• Physicien et informaticien • Informaticien:
• Enseigne l’informatique au CFPT • Créateur indépendant
(techniciens ES en informatique) • CT Technologies, Inc.
• Intérêts: • Graphiste et dessinateur d’icônes
• Ergonomie • Intérêts:
• Nouvelles technologies • Xxx
• Écriture • yyy
6. 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
7. • 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
8. Twitter
client
Micro Framework .NET
Google
Maps
SMTP
envoi
email
FTP
HTTP Time
client & server
serveur
9. 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
10. Application
Application et librairies utilisateur
Classes
bases
Librairies .NET WPF Comms …
de
Moteur Système de Garbage
CLR Interop
d’exécution types Collector
Runtime
PAL Timers RAM I/O
HAL Drivers Ou OS Drivers
Matériel
Processeur et périphérique
11. • 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
12. • 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)
13. • 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
14. 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
15. 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
16. • 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
17. existant
inexistant
System.Web System.Windows.Forms
Services
UI Design Component model
• Description
• HTML controls
• Discovery
• Web controls
• Protocols System.Drawing
Cache Security Drawing2D Printing
Configuration Session state Imaging Text
System.Data System.XML
ADO.NET SQL Client XML Document Serialization
Design SQL ServerCE Xslt/XPath Reader/Writers
System
Collections IO Configuration Runtime
Security Net Service process Interop services
Text Reflection Diagnostics Remoting
Globalization Resources Threading Serialization
18. existant
inexistant
nouveau
System.Windows.Forms
Design Component model
System.Drawing
Microsoft.SPOT Drawing2D Printing
Presentation Net Imaging Text
IO Hardware
System.XML
XML Document Serialization
Xslt/XPath Reader/Writers
System
Collections IO Configuration Runtime
Security Net Service process Interop services
Text Reflection Diagnostics Remoting
Globalization Resources Threading Serialization
19. • 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
20. • 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.
21. 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$
22. 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, …)
23.
24. 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)
26. 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);
}
}
33. 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 …
34.
35. 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
36. 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 $
39. • 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)
40. Catégories de robots
• Domestiques
• Industriels
• De loisirs
Objectifs
• Imitation de la nature (hommes, animaux, …)
• Automatisation de tâches (vitesse, fiabilité, sécurité, …)
41.
42. • 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é…)