Sommaire
- LE MATERIEL
- L'IHM SSI
- Les cartes Netduino
- Les cartes FEZ
- LE LOGICIEL
- LIENS
1. LE MATERIEL
1.1 L'IHM SSI
L' Interface Homme Machine SSI se compose :
- d'un afficheur I²C 2x16 (MIDAS ou BATRON) à circuit PCF2119,
- de huit LED et de huit boutons-poussoir connectés à deux circuits PCF8574(A).
1.2 Les cartes Netduino
Secret Labs
- Microcontrôleur : STM32F405RG 32 bits à architecture Cortex-M4 cadencé à 168 MHz.
- RAM : 164KB+.
- Flash : 1408KB.
- Port Ethernet : 10/100Mbps (Wifi:802.11b/g/n)*.
- E/S numériques : 22
- Entrées analogiques : 6
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
- Compatibilité : shield Arduino, Gadgeteer
![]() |
![]() |
Netduino 3 Ethernet | Netduino 3 wifi* |
- Sites à consulter : Netduino
- Distributeurs : Mouser Electronics
1.3 Les cartes FEZ
GHI Electonics (Extrait)
- Microcontrôleur : 180 MHz 32-bit ARM Cortex-M4.(120 MHz 32-bit ARM Cortex-M3 )*
- SoC(SoM)* : G80 G120*
- RAM : 156 KB(2.87 MB)*.
- Flash : 256 KB (13.67 MB)*.
- E/S numériques : 53(60)*
- Entrées analogiques : 16(8)*
- Réseaux : Ethernet TCP/IP, WiFi, and SSL.
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
![]() |
![]() |
PANDA III | COBRA III* (compatible Gadgeteer) |
- Sites à consulter : GHI ELECTRONICS
- Distributeurs : Mouser Electronics
- Schémas : Panda III, Cobra III
2. LE LOGICIEL
2.1 Contenu du répertoire proposé au téléchargement
Le répertoire proposé au téléchargement (au format zip ou tar.gz) contient la solution IHMSSI composée :
- Du projet IHMSSI : le code source de la classe IHMSSI.
- Du projet Netduino : un exemple d'utilisation de cette classe avec une carte Netduino.
- Du projet FezPanda : un exemple d'utilisation de cette classe avec une carte Fez Panda III.
2.2 Le NuGet MicroToolsKit
La dernière version compilée de la classe IHMSSI se situe dans la bibliothèque MicroToolsKit disponible sur nuget.org.
Organisation des classes contenues dans MicroToolsKit [lien]
Installer cette bibliothèque dans le projet simplifie l'utilisation de cette classe.
2.3 Le wiki .NetMF v4.3
-
Un wiki est dédié au
microframework .Net v4.3. Il propose au téléchargement :
- Des exemples de code pour les cartes Netduino, GHI FEZ (Panda 3, BrainPad, etc.) . [lien]
2.4 Description et utilisation de la classe IHMSSI
- Rôle: Contrôler les leds, les boutons-poussoir et l'afficheur de la carte SSI via un bus I²C.
- Assembly: MicroToolsKit (disponible sur nuget.org)
- Espace de noms: Microtoolskit.Hardware.IHM
Création d'un projet avec l'IDE Visual Studio
- Créer un nouveau projet en suivant la démarche décrite dans le chapitre "Premier programme en C# étape par étape" avec une carte Netduino ou avec une carte Fez (Panda 3, BrainPad, etc.). [lien]
- Utiliser le gestionnaire de paquets NuGet pour ajouter l'assembly MicroToolsKit (disponible sur nuget.org) dans le répertoire Références du projet.(clic droit sur Références puis Gérer les packages NuGet...)
- Ajouter les espaces de noms Microtoolskit.Hardware.IHM et Microtoolskit.Hardware.Displays dans l'en-tête du fichier source.
- Créer un objet en utilisant un des constructeurs IHMSSI.
- Utiliser les propriétés associées aux LED et aux BP de l'IHM pour accéder individuellement aux méthodes des objets. Utiliser les méthodes de la classe IHMSSI pour les gérer collectivement.
Exemple
using System.Threading; using Microtoolskit.Hardware.Displays; using MicroToolsKit.Hardware.IHM; namespace FezPanda { public class Program { public static void Main() { IHMSSI ihm = new IHMSSI(new I2CLcd(I2CLcd.LcdManufacturer.BATRON, 100)); ihm.Lcd.PutString(0, 0, "IHM SSI"); ihm.Lcd.PutString(8, 1, "WebGE"); Thread.Sleep(3000); while (true) { ihm.D0.Write(ihm.BpPlus.Read()); ihm.D1.Write(ihm.BpFleHaut.Read()); ihm.D2.Write(ihm.BpFleBas.Read()); ihm.D3.Write(ihm.BpMoins.Read()); ihm.D4.Write(ihm.BpOk.Read()); ihm.D5.Write(ihm.BpSet.Read()); ihm.D6.Write(ihm.BpEchap.Read()); ihm.D7.Write(ihm.BpEnter.Read()); Thread.Sleep(10); } } } }
Constructeurs
Syntaxe | Description | |
![]() |
IHMSSI() | Instancie un objet "IHMSSI" composé :
Fréquence du bus: 100kHz pour les trois circuits. Remarque: Le constructeur initialise le lcd et éteint les leds. |
![]() |
IHMSSI( I2CLcd lcd) | Instancie un objet "IHMSSI" composé :
Paramètre: lcd: objet I2CLcd Remarque: Le constructeur initialise le lcd et éteint les leds. |
![]() |
IHMSSI( PCF8574 leds, I2CLcd lcd) | Instancie un objet "IHMSSI" composé :
Paramètres: leds: objet PCF8574 lcd: objet I2CLcd Remarque: Le constructeur initialise le lcd et éteint les leds. |
![]() |
IHMSSI( PCF8574 leds, PCF8574 BPs, I2CLcd lcd) | Instancie un objet "IHMSSI" composé :
Paramètres: leds: objet PCF8574 BPs: objet PCF8574 lcd: objet I2CLcd Remarque: Le constructeur initialise le lcd et éteint les leds. |
Propriétés
Syntaxe | Description | |
![]() |
BpEchap |
Le bouton-poussoir
Echap accède aux méthodes de la classe
BP.
Exemple:
if (Ihm.BpEchap.Read() == true)
|
![]() |
BpEnter | Le bouton-poussoir Enter accède aux méthodes de la classe BP. |
![]() |
BpOk | Le bouton-poussoir Ok accède aux méthodes de la classe BP. |
![]() |
BpSet | Le bouton-poussoir Set accède aux méthodes de la classe BP. |
![]() |
BpMoins | Le bouton-poussoir - accède aux méthodes de la classe BP. |
![]() |
BpPlus | Le bouton-poussoir + accède aux méthodes de la classe BP. |
![]() |
BpFleBas | Le bouton-poussoir v accède aux méthodes de la classe BP. |
![]() |
BpFleHaut | Le bouton-poussoir ^ accède aux méthodes de la classe BP. |
![]() |
D0 |
La led
D0 accède aux méthodes de la classe
Led.
Exemple:
if (Ihm.BpPlus.Read() == true)
|
![]() |
D1 | La led D1 accède aux méthodes de la classe Led. |
![]() |
D2 | La led D2 accède aux méthodes de la classe Led. |
![]() |
D3 | La led D3 accède aux méthodes de la classe Led. |
![]() |
D4 | la led D4 accède aux méthodes de la classe Led. |
![]() |
D5 | La led D5 accède aux méthodes de la classe Led. |
![]() |
D6 | La led D6 accède aux méthodes de la classe Led. |
![]() |
D7 | La led D7 accède aux méthodes de la classe Led. |
![]() |
Lcd |
L'afficheur
Lcd accède aux méthodes de la classe
LCDI2C.
Exemple: Ihm.Lcd.PutString(0, 0, "Classe IHMSSI"); |
Méthodes
Syntaxe | Description | |
![]() |
void BPsRead(
out bool
BPEchap,
out bool BPEnter, out bool BPOk, out bool BPSet, out bool BPMoins, out bool BPFleBas, out bool BPFleHaut, out bool BPPlus) |
Renvoie l'état des huit boutons-poussoir. Vrai si appuyé, faux si relâché. |
![]() |
void LedsOff() | Eteint les leds D7 à D0. |
![]() |
void LedsOn() | Eclaire les leds D7 à D0 |
![]() |
void LedsWrite( byte value) | Ecrit l'octet value sur les led D7 à D0. "0" => led éteinte, "1" => led éclairée |
Classe BP
Méthodes
Syntaxe | Description | |
![]() |
bool Read() | Renvoie l'état logique du bouton-poussoir.
Vrai si actionné. Faux si relâché |
Classe Led
Méthodes
Syntaxe | Description | |
![]() |
void Write( bool state) | Eclaire ou éteint la led .
Vrai => led éclairée. Faux => led éteinte |