SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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
http://www.philippe-schutz.com/SoftShake2011.zip
Domotique et robotique
    avec le micro Framework
                       .NET

J-C Armici / Ph. Schutz
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
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
Twitter
 client
                     Micro Framework .NET
                                                  Google
                                                   Maps

  SMTP
  envoi
  email
                                            FTP
           HTTP                   Time
          client &               server
          serveur
 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



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

        14.99 $        4.99 $


Carte 16 relais



   64.95 $
WiFi / Ethernet   ZigBee



  Port sériel
                   USB
    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 ?

Contenu connexe

En vedette

Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...
Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...
Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...Christophe LEUPE
 
Kalaytek domotique maroc
Kalaytek   domotique marocKalaytek   domotique maroc
Kalaytek domotique marocOssama Khaoua
 
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?soft-shake.ch
 
Domotique et Minergie - Une Synergie efficiente pour les bâtiments de demain
Domotique et Minergie - Une Synergie efficiente pour les bâtiments de demainDomotique et Minergie - Une Synergie efficiente pour les bâtiments de demain
Domotique et Minergie - Une Synergie efficiente pour les bâtiments de demainminergie-romande
 
Domotique et confort memoire
Domotique et confort  memoireDomotique et confort  memoire
Domotique et confort memoiretoyoki2010
 
De la domotique à la maison intelligente
De la domotique à la maison intelligenteDe la domotique à la maison intelligente
De la domotique à la maison intelligenteHakisa
 
Rapport projet Domotique
Rapport projet DomotiqueRapport projet Domotique
Rapport projet Domotiquets4riadhoc
 
La domotique et les objets connectés 2015
La domotique et les objets connectés 2015La domotique et les objets connectés 2015
La domotique et les objets connectés 2015servicesmobiles.fr
 
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauRapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauNicolas Roulleau
 
Smarthome 2012 - Panorama des révolutions domotique
Smarthome 2012 - Panorama des révolutions domotiqueSmarthome 2012 - Panorama des révolutions domotique
Smarthome 2012 - Panorama des révolutions domotiqueAlban Amouroux
 
Maison domotique à Québec – Maison intelligente
Maison domotique à Québec – Maison intelligenteMaison domotique à Québec – Maison intelligente
Maison domotique à Québec – Maison intelligenteMartin Trudel
 
presentation projet domotique
presentation projet domotiquepresentation projet domotique
presentation projet domotiquets4riadhoc
 
Maisons Intelligentes ( Projet bibliographique )
Maisons Intelligentes ( Projet bibliographique ) Maisons Intelligentes ( Projet bibliographique )
Maisons Intelligentes ( Projet bibliographique ) Hamza Ibrahmi
 

En vedette (18)

Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...
Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...
Présentation de notre activité : Domotique, Multi-Room, Home Cinéma, Salle de...
 
Domotique formation
Domotique formationDomotique formation
Domotique formation
 
Kalaytek domotique maroc
Kalaytek   domotique marocKalaytek   domotique maroc
Kalaytek domotique maroc
 
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
 
Domotique et Minergie - Une Synergie efficiente pour les bâtiments de demain
Domotique et Minergie - Une Synergie efficiente pour les bâtiments de demainDomotique et Minergie - Une Synergie efficiente pour les bâtiments de demain
Domotique et Minergie - Une Synergie efficiente pour les bâtiments de demain
 
Les objets connectés
Les objets connectésLes objets connectés
Les objets connectés
 
Comment la domotique
Comment la domotiqueComment la domotique
Comment la domotique
 
Domotique et confort memoire
Domotique et confort  memoireDomotique et confort  memoire
Domotique et confort memoire
 
De la domotique à la maison intelligente
De la domotique à la maison intelligenteDe la domotique à la maison intelligente
De la domotique à la maison intelligente
 
Rapport projet Domotique
Rapport projet DomotiqueRapport projet Domotique
Rapport projet Domotique
 
La domotique et les objets connectés 2015
La domotique et les objets connectés 2015La domotique et les objets connectés 2015
La domotique et les objets connectés 2015
 
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard RoulleauRapport Projet Application Web De Domotique Arduino - Liotard Roulleau
Rapport Projet Application Web De Domotique Arduino - Liotard Roulleau
 
Domotique
DomotiqueDomotique
Domotique
 
Smarthome 2012 - Panorama des révolutions domotique
Smarthome 2012 - Panorama des révolutions domotiqueSmarthome 2012 - Panorama des révolutions domotique
Smarthome 2012 - Panorama des révolutions domotique
 
Maison domotique à Québec – Maison intelligente
Maison domotique à Québec – Maison intelligenteMaison domotique à Québec – Maison intelligente
Maison domotique à Québec – Maison intelligente
 
Domotique
DomotiqueDomotique
Domotique
 
presentation projet domotique
presentation projet domotiquepresentation projet domotique
presentation projet domotique
 
Maisons Intelligentes ( Projet bibliographique )
Maisons Intelligentes ( Projet bibliographique ) Maisons Intelligentes ( Projet bibliographique )
Maisons Intelligentes ( Projet bibliographique )
 

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

Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
Le développement d’un Composant WinRT
Le développement d’un Composant WinRTLe développement d’un Composant WinRT
Le développement d’un Composant WinRTMicrosoft
 
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Microsoft
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotiqueMicrosoft
 
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...ABES
 
Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Microsoft
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Microsoft
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp FrGregory Renard
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisationSébastien Letélié
 
Live Mesh Tech Days Suisse
Live Mesh Tech Days SuisseLive Mesh Tech Days Suisse
Live Mesh Tech Days SuisseGregory Renard
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 

Similaire à soft-shake.ch - Domotique et robotique avec le micro Framework .NET (20)

Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Le développement d’un Composant WinRT
Le développement d’un Composant WinRTLe développement d’un Composant WinRT
Le développement d’un Composant WinRT
 
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
Tour Horizont.Net
Tour Horizont.NetTour Horizont.Net
Tour Horizont.Net
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique
 
Démo puppet et état du projet
Démo puppet et état du projetDémo puppet et état du projet
Démo puppet et état du projet
 
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
 
Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp Fr
 
Flex4.5 air3.0
Flex4.5 air3.0Flex4.5 air3.0
Flex4.5 air3.0
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisation
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Live Mesh Tech Days Suisse
Live Mesh Tech Days SuisseLive Mesh Tech Days Suisse
Live Mesh Tech Days Suisse
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 

Plus de soft-shake.ch

soft-shake.ch - Clojure Values
soft-shake.ch - Clojure Valuessoft-shake.ch - Clojure Values
soft-shake.ch - Clojure Valuessoft-shake.ch
 
soft-shake.ch - Data grids and Data Grids
soft-shake.ch - Data grids and Data Gridssoft-shake.ch - Data grids and Data Grids
soft-shake.ch - Data grids and Data Gridssoft-shake.ch
 
soft-shake.ch - Data grids and Data Caching
soft-shake.ch - Data grids and Data Cachingsoft-shake.ch - Data grids and Data Caching
soft-shake.ch - Data grids and Data Cachingsoft-shake.ch
 
soft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch - JBoss AS 7, la révolutionsoft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch - JBoss AS 7, la révolutionsoft-shake.ch
 
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coinsoft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coinsoft-shake.ch
 
soft-shake.ch - Tests d'intégration JavaEE avec Arquillian
soft-shake.ch - Tests d'intégration JavaEE avec Arquilliansoft-shake.ch - Tests d'intégration JavaEE avec Arquillian
soft-shake.ch - Tests d'intégration JavaEE avec Arquilliansoft-shake.ch
 
soft-shake.ch - Un zeste d’Erlang dans le shaker!
soft-shake.ch - Un zeste d’Erlang dans le shaker!soft-shake.ch - Un zeste d’Erlang dans le shaker!
soft-shake.ch - Un zeste d’Erlang dans le shaker!soft-shake.ch
 
soft-shake.ch - Déploiement continu sur le cloud avec SlipStream
soft-shake.ch - Déploiement continu sur le cloud avec SlipStreamsoft-shake.ch - Déploiement continu sur le cloud avec SlipStream
soft-shake.ch - Déploiement continu sur le cloud avec SlipStreamsoft-shake.ch
 
soft-shake.ch - An introduction to social architecture
soft-shake.ch - An introduction to social architecturesoft-shake.ch - An introduction to social architecture
soft-shake.ch - An introduction to social architecturesoft-shake.ch
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
soft-shake.ch - De Hermes RUP à Hermes Scrum
soft-shake.ch - De Hermes RUP à Hermes Scrumsoft-shake.ch - De Hermes RUP à Hermes Scrum
soft-shake.ch - De Hermes RUP à Hermes Scrumsoft-shake.ch
 
soft-shake.ch - Stewardship et motivation
soft-shake.ch - Stewardship et motivationsoft-shake.ch - Stewardship et motivation
soft-shake.ch - Stewardship et motivationsoft-shake.ch
 
soft-shake.ch - Agile qu'es aco : scrum xp lean
soft-shake.ch - Agile qu'es aco : scrum xp leansoft-shake.ch - Agile qu'es aco : scrum xp lean
soft-shake.ch - Agile qu'es aco : scrum xp leansoft-shake.ch
 
soft-shake.ch - Documentation et agilité
soft-shake.ch - Documentation et agilitésoft-shake.ch - Documentation et agilité
soft-shake.ch - Documentation et agilitésoft-shake.ch
 
soft-shake.ch - Agilité = discipline et rigueur ?
soft-shake.ch - Agilité = discipline et rigueur ?soft-shake.ch - Agilité = discipline et rigueur ?
soft-shake.ch - Agilité = discipline et rigueur ?soft-shake.ch
 
soft-shake.ch - Transition agile & Accompagnement au changement
soft-shake.ch - Transition agile & Accompagnement au changementsoft-shake.ch - Transition agile & Accompagnement au changement
soft-shake.ch - Transition agile & Accompagnement au changementsoft-shake.ch
 
soft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structurée
soft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structuréesoft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structurée
soft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structuréesoft-shake.ch
 
soft-shake.ch - The feel of Scala
soft-shake.ch - The feel of Scalasoft-shake.ch - The feel of Scala
soft-shake.ch - The feel of Scalasoft-shake.ch
 
soft-shake.ch - Le terrain Agile
soft-shake.ch - Le terrain Agilesoft-shake.ch - Le terrain Agile
soft-shake.ch - Le terrain Agilesoft-shake.ch
 
soft-shake.ch - Recettes d’une passion
soft-shake.ch - Recettes d’une passionsoft-shake.ch - Recettes d’une passion
soft-shake.ch - Recettes d’une passionsoft-shake.ch
 

Plus de soft-shake.ch (20)

soft-shake.ch - Clojure Values
soft-shake.ch - Clojure Valuessoft-shake.ch - Clojure Values
soft-shake.ch - Clojure Values
 
soft-shake.ch - Data grids and Data Grids
soft-shake.ch - Data grids and Data Gridssoft-shake.ch - Data grids and Data Grids
soft-shake.ch - Data grids and Data Grids
 
soft-shake.ch - Data grids and Data Caching
soft-shake.ch - Data grids and Data Cachingsoft-shake.ch - Data grids and Data Caching
soft-shake.ch - Data grids and Data Caching
 
soft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch - JBoss AS 7, la révolutionsoft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch - JBoss AS 7, la révolution
 
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coinsoft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
soft-shake.ch - Java SE 7: The Fork/Join Framework and Project Coin
 
soft-shake.ch - Tests d'intégration JavaEE avec Arquillian
soft-shake.ch - Tests d'intégration JavaEE avec Arquilliansoft-shake.ch - Tests d'intégration JavaEE avec Arquillian
soft-shake.ch - Tests d'intégration JavaEE avec Arquillian
 
soft-shake.ch - Un zeste d’Erlang dans le shaker!
soft-shake.ch - Un zeste d’Erlang dans le shaker!soft-shake.ch - Un zeste d’Erlang dans le shaker!
soft-shake.ch - Un zeste d’Erlang dans le shaker!
 
soft-shake.ch - Déploiement continu sur le cloud avec SlipStream
soft-shake.ch - Déploiement continu sur le cloud avec SlipStreamsoft-shake.ch - Déploiement continu sur le cloud avec SlipStream
soft-shake.ch - Déploiement continu sur le cloud avec SlipStream
 
soft-shake.ch - An introduction to social architecture
soft-shake.ch - An introduction to social architecturesoft-shake.ch - An introduction to social architecture
soft-shake.ch - An introduction to social architecture
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
soft-shake.ch - De Hermes RUP à Hermes Scrum
soft-shake.ch - De Hermes RUP à Hermes Scrumsoft-shake.ch - De Hermes RUP à Hermes Scrum
soft-shake.ch - De Hermes RUP à Hermes Scrum
 
soft-shake.ch - Stewardship et motivation
soft-shake.ch - Stewardship et motivationsoft-shake.ch - Stewardship et motivation
soft-shake.ch - Stewardship et motivation
 
soft-shake.ch - Agile qu'es aco : scrum xp lean
soft-shake.ch - Agile qu'es aco : scrum xp leansoft-shake.ch - Agile qu'es aco : scrum xp lean
soft-shake.ch - Agile qu'es aco : scrum xp lean
 
soft-shake.ch - Documentation et agilité
soft-shake.ch - Documentation et agilitésoft-shake.ch - Documentation et agilité
soft-shake.ch - Documentation et agilité
 
soft-shake.ch - Agilité = discipline et rigueur ?
soft-shake.ch - Agilité = discipline et rigueur ?soft-shake.ch - Agilité = discipline et rigueur ?
soft-shake.ch - Agilité = discipline et rigueur ?
 
soft-shake.ch - Transition agile & Accompagnement au changement
soft-shake.ch - Transition agile & Accompagnement au changementsoft-shake.ch - Transition agile & Accompagnement au changement
soft-shake.ch - Transition agile & Accompagnement au changement
 
soft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structurée
soft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structuréesoft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structurée
soft-shake.ch - Agilité et Testing: de l'intérêt d'une démarche structurée
 
soft-shake.ch - The feel of Scala
soft-shake.ch - The feel of Scalasoft-shake.ch - The feel of Scala
soft-shake.ch - The feel of Scala
 
soft-shake.ch - Le terrain Agile
soft-shake.ch - Le terrain Agilesoft-shake.ch - Le terrain Agile
soft-shake.ch - Le terrain Agile
 
soft-shake.ch - Recettes d’une passion
soft-shake.ch - Recettes d’une passionsoft-shake.ch - Recettes d’une passion
soft-shake.ch - Recettes d’une passion
 

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
  • 3.
  • 4. Domotique et robotique avec le micro Framework .NET J-C Armici / Ph. Schutz
  • 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); } }
  • 28. public static void Main() { Lampe lampeVerte = new Lampe(FEZ_Pin.Digital.Di5); lampeVerte.On(); Lampe lampeCerise = new Lampe(FEZ_Pin.Digital.Di8); lampeCerise.On(); }
  • 30. 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); } }
  • 32. 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; } ... } }
  • 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 $
  • 37. Relais Bouton 14.99 $ 4.99 $ Carte 16 relais 64.95 $
  • 38. WiFi / Ethernet ZigBee Port sériel USB RS232
  • 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é…)
  • 44.
  • 46. 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
  • 47. 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
  • 48. 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