Voici le premier article d’une série qui va me permettre de vous présenter différents composants de chez GHI, que j’ai utilisé pour réaliser mon projet de fin d’année de BTS, qui consiste à réaliser un système embarqué pour un chariot.
Tout d’abord, voici une petite photo de la carte spider de chez GHI.
Pourquoi avoir choisi cette carte particulièrement?
Pour ce projet, nous avons eu le choix entre une carte « spider » ou une carte « hydra », et nous avons retenu la première. Le choix ne fut pas très compliqué car la carte « hydra » ne peut supporter l’écran tactile que nous avons choisi (je le présenterai dans un prochain article). Quand vous recevrez votre article, le sachet contiendra deux éléments, la carte « spider » mais aussi une petit carte en carton qui est plus utile qu’il n’y parait ; en effet, sur le verso, nous pouvons lire une représentation de la carte, avec les numéros des sockets et les lettres correspondantes. Ci-dessous photo de celle-ci :
Quelle est l’utilité des lettres sur les sockets?
Sur chaque numéro de sockets, il y a une ou plusieurs lettres ; nous pouvons aussi les retrouver sous chaque composant, ce qui va ensuite nous permettre de savoir sur quel socket nous pourrons le brancher. Il faut aussi savoir que les connectiques chez GHI sont standard c’est à dire que n’importe quel câble peut servir à n’importe quel module.
Exemple:
Le module wifi comporte la lettre S ainsi nous pouvons le brancher sur le socket numéro 6 ou 9.
Et le bouton « Reset » à quoi sert-il vraiment?
Le bouton « reset », sert seulement à faire rebouter le système notamment quand il a planté. Quand la carte est mise sous tension elle démarre automatiquement et pour la redémarrer vous avez deux possibilités soit débrancher et rebrancher, ou bien appuyer sur le bouton « reset ».
Quels sont les outils nécessaires pour développer une application sur celle-ci?
Tout d’abord, il faut savoir que cette carte supporte le langage CSharp, mais seulement le micro framework. Pour développer une application, nous avons besoin:
- De l’ IDE visual studio 2012.
- du micro framework, ainsi que le Microsoft .NET Gadgeteer Core à télécharger ici.
Une fois le micro framework téléchargé, vous devez l’extraire de l’archive et lancer son installation. Une fois installé, ouvrez visual studio, et cliquez sur : » fichier ->nouveau -> projet », ensuite vous allez dans « Modèles -> Visual c# -> Gadgeteer »
Ensuite, vous créez un fichier avec le NETFM qui correspond à celui présent dans votre carte. Une fois le projet créé, vous pouvez remarquer qu’il y a plusieurs fichiers qui ont été créés (voir imprime écran ci-dessous) ; notamment le fichier sur lequel vous arrivez par défaut, qui vous permet d’avoir une vue représentative de votre système.
Sur la gauche, vous pouvez voir un onglet nommé « Boite à outils » qui contient tous les composants existant chez GHI. Pour rajouter un composant à votre système, il vous suffit de le sélectionner dans cette liste, et de faire un glisser déposer sur l’aperçu du système. Quand un module est déposé dans cet aperçu, il est automatiquement déclaré dans le programme.
Pour notre exemple, nous allons déposer le module wifi:
Notons que lorsque l’on clique sur le socket de notre module, certains sockets de la carte « spider » deviennent verts. C’est sur ceux-ci que nous pouvons connecter notre module. Le fait de relier les composants de cette façon permet de déclarer le module automatiquement du côté du code et d’éviter les erreurs, notamment pour l’ordre des numéros de sockets quand un composant en possède plusieurs. Voici ce qui est maintenant présent dans le fichier « Program.Generated.cs », après avoir relié le module sur le socket numéro 6 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
//------------------------------------------------------------------------------ // <auto-generated> // Ce code a été généré par un outil. // Version du runtime :4.0.30319.34209 // // Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si // le code est régénéré. // </auto-generated> //------------------------------------------------------------------------------ namespace GadgeteerApp2 { using Gadgeteer; using GTM = Gadgeteer.Modules; public partial class Program : Gadgeteer.Program { //Declaration private Gadgeteer.Modules.GHIElectronics.WiFi_RS21 wifi_RS21; public static void Main() { // Important to initialize the Mainboard first Program.Mainboard = new GHIElectronics.Gadgeteer.FEZSpider(); Program p = new Program(); p.InitializeModules(); p.ProgramStarted(); // Starts Dispatcher p.Run(); } //Innitialisation des composants avec le chiffre du socket entre parentese. private void InitializeModules() { this.wifi_RS21 = new GTM.GHIElectronics.WiFi_RS21(6); } } } |
Le fichier « programme.cs » hérite de notre fichier précédent, ainsi nous pouvons récupérer les objets qui y ont été créés et rajouter notre code personnel car il est fortement déconseillé de mettre du code dans « Program.Generated.cs ».
Exemple:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using System; using System.Collections; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Presentation; using Microsoft.SPOT.Presentation.Controls; using Microsoft.SPOT.Presentation.Media; using Microsoft.SPOT.Touch; using Gadgeteer.Networking; using GT = Gadgeteer; using GTM = Gadgeteer.Modules; namespace GadgeteerApp2 { public partial class Program { // This method is run when the mainboard is powered up or reset. void ProgramStarted() { /******************************************************************************************* Modules added in the Program.gadgeteer designer view are used by typing their name followed by a period, e.g. button. or camera. Many modules generate useful events. Type +=<tab><tab> to add a handler to an event, e.g.: button.ButtonPressed +=<tab><tab> If you want to do something periodically, use a GT.Timer and handle its Tick event, e.g.: GT.Timer timer = new GT.Timer(1000); // every second (1000ms) timer.Tick +=<tab><tab> timer.Start(); *******************************************************************************************/ // Use Debug.Print to show messages in Visual Studio's "Output" window during debugging. Debug.Print("Program Started"); // wifi_RS21.Interface.Close(); } } } |
Dans le prochain article, nous parlerons du module de tag RFID.
Si vous avez des questions n’hésitez pas à me contacter via ce site dans la rubrique contact ou me laisser un commentaire ci-dessous.
Cliquez ici pour afficher la liste des articles de cette série