Partager via



Mai 2017

Volume 32, numéro 5

Cet article a fait l'objet d'une traduction automatique

Internet des objets - Utilisation de Raspberry Pi et Windows 10

Par Bruno Sonnino

Bien que j’ai travaillé avec le logiciel pour un certain temps, j’ai jamais d’interagir directement avec le matériel. J’ai développé un grand nombre de logiciels fonctionnant près du matériel, mais je n’ai jamais travaillé avec une carte physique où j’ai le contrôle complet de ce qui est effectué. Par conséquent, lorsque j’ai dû l’occasion de travailler avec les Raspberry Pi, en particulier à l’aide de Windows 10 et Visual Studio, j’ai rajouté à l’occasion.

Le Raspberry Pi, dans les versions 2 et 3, peuvent utiliser Windows 10 comme son système d’exploitation (s’il n’est pas la version complète, il vous permet d’exécuter des applications de plateforme Windows universelle [UWP] pour contrôler les périphériques). Il s’agit d’un ordinateur bon marché, vous pouvez en obtenir un de moins de 35 $, et il est puissant. Le Raspberry Pi 3 a un processeur ARM quadruple cœur, 64 bits, vidéo HDMI, mise en réseau Ethernet et Wi-Fi, Bluetooth et quatre ports USB. Vous pouvez effectuer sans aucun doute nombreuses choses avec lui.

Le matériel

Pour commencer, vous pouvez utiliser le tableau Raspberry Pi seul, mais qui limite quelque peu. Si vous utilisez uniquement la carte, qui est le même que le développement d’un ordinateur ou un smartphone. Vous devez également utiliser du matériel supplémentaire. Certains fabricants ont créé des kits pour compléter il : cartes de prototype, résistances, DEL, potentiomètres, capteurs et une carte mémoire. Vous pouvez acheter un cas de l’ordinateur, mais qui n’est pas nécessaire que vous devez garder l’ordinateur ouverte pour établir les connexions.

Connaître le matériel

Une fois que la carte et le kit, il est temps d’apprendre à connaître le matériel. Au départ, vous devez Explorer le Raspberry Pi et qu’il a à offrir. Figure 1 montre le tableau.

Modèle Raspberry Pi 3 B avec GPIO
Figure 1 Raspberry Pi 3 modèle B avec GPIO

Sur le côté droit de la carte dans Figure 1, vous pouvez voir les quatre ports USB (1) et le connecteur Ethernet (2). En bas, de gauche à droite, vous disposez de la prise d’alimentation sous la forme d’un mini USB (3), la vidéo de HDMI (4), le port de l’appareil photo (5) et la sortie audio (6). Sur le côté gauche de la grille, que le connecteur de carte SD micro (7) et un connecteur pour un écran LCD afficher (8). Vous pouvez également voir le Wi-Fi et la carte Bluetooth (9). Au milieu de la carte, vous pouvez voir le processeur (10) et le contrôleur de réseau (11). Sur le côté supérieur, vous disposez du bloc d’entrée/sortie de but général (GPIO) (12), où vous prenez toutes les connexions. Chaque broche a un objectif différent, comme vous pouvez le voir en haut de la figure.

Le Raspberry Pi utilise deux tensions d’alimentation : 5V et 3,3 v. Les broches noirs sont a à z et les jaunes sont les broches GPIO que vous utiliserez dans votre programmation. Notez que la numérotation de code confidentiel n’est pas ordonnée. Par conséquent, à moins d’avoir une parfaite de la mémoire, conserver un diagramme similaire à proximité (il en existe un disponible à l’adresse bit.ly/1WcBUS2).

La deuxième étape consiste à étudier le kit. Je ne l’aborderai tout le contenu car cela peut changer beaucoup, selon le fabricant (ou à partir de ce que vous avez l’intention d’acheter). Pour ce projet, vous devrez un breadboard, trois voyants, résistances et fils. Pour en savoir plus sur ces composants et comment interagir avec eux, lisez applications modernes avril 2016 article de Frank La Vigne « Écriture UWP applications pour l’Internet des objets, » à msdn.com/magazine/mt694090.

Le premier Circuit de montage

Connaître la carte et ces composants simples, vous pouvez monter le premier circuit. En règle générale, le « Hello World » pour un système comme qui est un programme qui rend le clignotement du voyant. Pour qu’il soit très simple, vous allez commencer par créer un circuit DEL, s’allume sans clignoter. Pour ce faire, vous n’avez pas besoin tout type de programme, uniquement pour comprendre le circuit que vous vous apprêtez à générer.

Si vous vous connectez le voyant directement à 3,3 v code confidentiel de la Raspberry Pi, vous serez probablement d’avancement DEL, car il ne prend en charge en cours de passage par celui-ci. À l’aide de la loi de Ohm (V = R * I), vous devez ajouter une résistance 220 Ω (rouge, rouge/noir) dans le circuit. Si vous n’avez pas une résistance 220 Ω disponible, vous pouvez utiliser une plus grande, avec une plus grande résistance, il est moins actuel du circuit, donc le voyant n’est pas endommagé. La résistance ne peut pas être beaucoup plus importante, car si actuel est trop petit, le voyant pas sous tension. Dans mon cas, j’ai utilisé un Ω 330 sans problème.

Pour voir à quoi ressemble le montage de la breadboard, consultez Figure 2. L’image a été créé avec un programme open source appelé « Fritzing », qui peut être téléchargé à fritzing.org.

Circuit monté
Figure 2 monté Circuit

Après avoir monté le circuit (cela doit être fait avec la source d’alimentation Raspberry Pi off ne pas graver tout composant), connectez la source d’alimentation. Si vous avez monté correctement, le voyant doit s’allumer. Si le voyant pas sous tension, vérifiez si vous placez les pôles DEL correctement, le pôle positif (plu câble) et la connexion à 3,3 v pin dans le Raspberry Pi doit être dans la même ligne horizontale. Le pôle négatif et la résistance (dans ce cas, il n’est pas POLARISATION) doit se trouver dans la même ligne. Le deuxième câble de la résistance doit être connecté à la ligne qui accède à la broche d’a à z dans la Raspberry Pi. Si tout est bon, vérifiez si le voyant est gravé et remplacez-le par un autre. Lorsque le voyant s’allume, vous pouvez accéder à l’étape suivante : création d’un programme qui contrôle le voyant.

Installation et utilisation de Windows 10

Jusqu'à présent, vous n’avions pas besoin du système d’exploitation, car vous n’avez pas amené à programmer le Raspberry Pi, mais vous aurez besoin de programmation pour accéder votre exploration. Pour ce faire, vous utiliserez Windows 10. Vous pouvez télécharger et installer Windows 10 pour le Raspberry Pi gratuitement et, bien qu’il n’est pas exactement la même version qui s’exécute sur les ordinateurs et les tablettes, il vous permet d’exécuter des programmes pour la série UWP sans modification.

La première étape consiste à télécharger et installer Windows 10 dans la carte SD. Pour ce faire, téléchargez et installez l’outil de tableau de bord de base Windows 10 Internet des objets (IoT), situé dans bit.ly/2lPXrRc.

Pour installer Windows 10 sur le Raspberry Pi, vous devez disposer d’une carte SD au moins 8 Go de micro compatible. Ensuite, sélectionnez l’option « Configuration d’un nouveau périphérique » dans le tableau de bord pour télécharger et installer Windows 10 sur la carte SD. Vous devez disposer d’un moyen à écrire dans cette carte sur votre ordinateur. Si vous n’avez pas un lecteur de cartes disponible, vous pouvez acheter un lecteur de cartes USB.

Sélectionnez le type de périphérique, le système d’exploitation et le lecteur où se trouve la carte SD. Indiquez le nom de l’ordinateur, puis sélectionnez un mot de passe administrateur. Cliquez sur la case pour accepter les termes du contrat de licence et cliquez sur le bouton Installer. Après avoir téléchargé et d’enregistrement des données sur la carte, vous avez 10 Windows installée et prête à utiliser. Supprimer à partir du lecteur de carte d’ordinateur et les placer dans l’emplacement de la Raspberry Pi. Il se connecter au réseau à l’aide d’un câble Ethernet ou le Wi-Fi si vous utilisez la Raspberry Pi 3 ou 2 avec un adaptateur Wi-Fi. Activer le périphérique.

Une fois que Windows 10 a démarré, vous pouvez voir l’appareil connecté sous mes appareils dans le tableau de bord IoT Core.

Vous pouvez ouvrir le portail de l’appareil dans le navigateur à l’aide de l’adresse IP affichée pour l’appareil connecté, sur le port 8080. Dans mon cas, je peux ouvrir avec l’adresse http://192.168.1.199:8080. Il vous demande le mot de passe configurées avant d’ouvrir le portail, comme dans Figure 3.

Portail de l’appareil

Figure 3 DISPOSITIF Portal

Ici, vous pouvez configurer le périphérique, vérifiez les applications installées et ses performances et stockage. La dernière option, à distance, vous permet d’activer le contrôle à distance pour le périphérique. Cette option est utile si l’appareil n’a pas un moniteur, comme vous pouvez le contrôle à distance à partir de votre ordinateur. Activez la case à cocher « Activer Windows IoT serveur distant » pour activer le contrôle à distance sur le périphérique et télécharger l’application de contrôle à distance pour Windows 10 à partir du magasin.

Une fois que vous l’installez et exécutez l’application de contrôle à distance de IoT Windows, vous pouvez contrôler et interagir avec le périphérique à distance.

Maintenant, vous pouvez commencer à développer pour la Raspberry Pi à l’aide de Windows 10.

Développement pour le Raspberry Pi à l’aide de Visual Studio

Pour développer pour la Raspberry Pi à l’aide de Visual Studio, il se peut que vous devez vous assurer que vous avez installé les outils. Vous pouvez le vérifier en sélectionnant « Installation personnalisée » et en vérifiant les outils de développement Windows application universelle dans la sélection de fonctionnalités.

Une fois que vous procédez ainsi, vous disposerez des outils installés et vous pouvez commencer à développer pour la Raspberry Pi à l’aide de Windows 10. Créez un nouveau projet et sélectionnez l’application UWP « Vide ».

Cela créera une application vide et que vous allez créer une application qui affiche le nom de l’ordinateur actuel dans l’écran principal. Dans MainPage.xaml, ajoutez le code suivant :

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  <TextBlock FontSize="32" x:Name="MachineText"
    HorizontalAlignment="Center"
    VerticalAlignment="Center"/>
</Grid>

Puis, dans le fichier MainPage.xaml.cs, mettez le code pour obtenir et afficher le nom de l’ordinateur :

public MainPage()
  this.InitializeComponent();
  Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation eas =
    new Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation();
  MachineText.Text = eas.FriendlyName;
}

Si vous exécutez cette application sur votre ordinateur local, il affiche une fenêtre avec le nom de votre ordinateur.

Ensuite, exécutez le Raspberry Pi. Dans la liste déroulante plateforme de la Solution, sélectionnez ARM et sur la liste déroulante de périphérique, sélectionnez l’ordinateur distant. Une boîte de dialogue pour sélectionner l’ordinateur distant.

Sélectionnez l’appareil Raspberry Pi et exécuter l’application. L’application sera déployée sur le Raspberry Pi et vous pouvez le voir en cours d’exécution dans la fenêtre de contrôle à distance. Notez que le nom de l’ordinateur indiqué dans la fenêtre doit être celui que vous avez défini lors de la mise en forme de la carte SD installé Windows 10.

Vous pouvez déboguer de cette application de la même façon que vous le feriez avec des applications locales, définir des points d’arrêt, d’analyser des variables et ainsi de suite. Si vous mettez fin à l’application dans Visual Studio, vous verrez que la fermeture de l’application et l’écran principal s’affiche dans le Raspberry Pi. Si vous accédez au portail de navigateur, vous verrez que l’application est toujours installée et peut être exécutée à l’aide du bouton d’exécution, comme dans Figure 4.

Portail d’application affichant l’application installée

Figure 4 App Portal montrant l’application installée

Je suis surpris au niveau de compatibilité avec les applications UWP. Pour afficher le potentiel, je vais utiliser une application qui n’a pas été effectuée pour le Raspberry Pi. Je vais utiliser l’exemple d’application de la boîte à outils UWP communautaire, une boîte à outils des composants développés par Microsoft et la Communauté, qui est sans aucun doute valent à bit.ly/2b1PAJY.

Si vous téléchargez le package et le compilez, vous pouvez déployer sur les Raspberry Pi et exécutez-le (Oui, vous pouvez exécuter le programme de la même façon exacte que vous le feriez sur un ordinateur de bureau). Par ailleurs, vous devez essayer de l’utilisation des contrôles de l’appareil, ils fonctionnent correctement.

Interaction avec la carte

Une fois que vous avez vos programmes en cours d’exécution, vous devez démarrer interaction avec la carte. Vous allez créer un contrôleur de feu. Il aura trois voyants (rouges, jaune et verts) et il peut y avoir différentes durées de chaque lumière.

Pour fonctionner sur les voyants de la carte, vous devez obtenir le contrôleur GPIO et ouvrez le code pin que vous souhaitez contrôler et définissez-la comme vous le souhaitez. Dans Figure 1, vous voyez que le code confidentiel huitième dans le GPIO bloquer (deuxième) est pin 22. Vous allez utiliser les codes confidentiels 22, 9 et 19 et le circuit résultant sera comme celle illustrée dans Figure 5.

Circuit pour les feux de signalisation

Circuit figure 5 pour les feux de signalisation

Avec ce circuit en place, créez une nouvelle application UWP vide. Dans MainPage.xaml, saisissez le code indiqué dans Figure 6.

Figure 6 Page principale xaml Code, affichant des feux de signalisation

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  <Border BorderBrush="Black" BorderThickness="3" HorizontalAlignment="Center"
      VerticalAlignment="Center" CornerRadius="5">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
      <Ellipse Width="50" Height="50" Fill="Red" Opacity="0.5"
        Margin="20,20,20,10" x:Name="RedLed" Stroke="Black"
        StrokeThickness="1"/>
      <Ellipse Width="50" Height="50" Fill="Yellow" Opacity="0.5"
        Margin="20,10,20,10" x:Name="YellowLed" Stroke="Black"
        StrokeThickness="1"/>
      <Ellipse Width="50" Height="50" Fill="LimeGreen" Opacity="0.5"
         Margin="20,10,20,20" x:Name="GreenLed" Stroke="Black"
         StrokeThickness="1"/>
    </StackPanel>
  </Border>
</Grid>

Vous verrez les feux de signalisation sur la carte et de l’affichage, vous voyez également ce qui se passe en consultant l’affichage à distance. Le code source dans le fichier Mainpage.xaml.cs apparaît en Figure 7.

Code Source figure 7 activer feux à intervalles réguliers

private int _currentLight;
private DispatcherTimer _timer;
private int[] _pinNumbers = new[] { 22, 9, 19 };
private GpioPin[] _pins = new GpioPin[3];
public MainPage()
{
  this.InitializeComponent();
  if (InitGPIO())
    InitTimer();
}
private void InitTimer()
{
  var intervals = new[] { 6000, 2000, 6000 };
  var lights = new[] { RedLed, YellowLed, GreenLed };
  _currentLight = 2;
  _timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(500) };
  _timer.Tick += (s, e) =>
  {
    _timer.Stop();
    lights[_currentLight].Opacity = 0.5;
    _pins[_currentLight].Write(GpioPinValue.High);
    _currentLight = _currentLight == 2 ? 0 : _currentLight + 1;
    lights[_currentLight].Opacity = 1.0;
    _pins[_currentLight].Write(GpioPinValue.Low);
    _timer.Interval = TimeSpan.FromMilliseconds(intervals[_currentLight]);
    _timer.Start();
  };
  _timer.Start();
}

Pour exécuter ce code, vous devez ajouter une référence aux extensions IoT. Avec le bouton droit dans le nœud Références dans l’Explorateur de solutions, cliquez sur Ajouter une référence, puis accédez à Extensions et ajouter les Extensions de IoT Windows pour UWP.

Vous créez un timer qui se transforme chaque LED dans un intervalle défini par le tableau des intervalles (dans votre cas, 6s, 2 et 6s). Le bouton de sélection dans l’écran ont leur opacité de 0,5, donc ils apparaissent en grisé et chacun d’eux sera définie sur 1 lorsque la lumière est activée. La minuterie sera uniquement définie si vous pouvez définir le GPIO pour la carte, dans la fonction InitGPIO, comme indiqué dans Figure 8.

Figure 8 Code pour initialiser GPIO et ensemble conduit broches de sortie

private bool InitGPIO()
{
  var gpio = GpioController.GetDefault();
  if (gpio == null)
    return false;
  for (int i = 0; i < 3; i++)
  {
    _pins[i] = gpio.OpenPin(_pinNumbers[i]);
    _pins[i].Write(GpioPinValue.High);
    _pins[i].SetDriveMode(GpioPinDriveMode.Output);
  }
  return true;
}

Vous ouvrez les trois broches de sortie et définissez élevé, pour que les voyants sont éteints. Lorsque vous définissez un code confidentiel à faible, flux actuel par le circuit et Active la LED. Lorsque vous exécutez le programme, vous verrez un écran avec un feu de signalisation, où l’éclairage accédez et comme un véritable et le tableau ressemblera à la photo dans Figure 9.

Tableau des feux de signalisation avec l’exécution du programme

Figure 9 feux carte avec l’exécution du programme

Pour résumer

Comme vous pouvez le voir, il est simple de créer des programmes qui interagissent avec le Raspberry Pi. Connaître la programmation de Windows 10, vous avez déjà la base de connaissances que vous devez programmer un Raspberry Pi (Oui, interagir avec le tableau est une autre histoire, mais il fait déjà à mi-chemin). Vous pouvez créer vos programmes de la même façon que n’importe quel programme Windows 10 (en fait, les programmes UWP s’exécuter sans modification dans le Raspberry Pi). La seule différence est que le contrôleur GPIO pour définir les données et obtenir des données. Si vous souhaitez approfondir vos connaissances et essayez d’autres projets, il existe de nombreux exemples pour essayer à bit.ly/2llecFZ. Une multitude d’opportunités s’ouvre et vous serez en mesure de combiner un matériel puissant logiciel exceptionnelles et productif. C’est la solution idéale.


Bruno Sonninodepuis un MVP Microsoft 2007. Il est un développeur, consultant et auteur, ayant écrit plusieurs livres et articles sur le développement de Windows. Vous pouvez le suivre sur Twitter : @bsonnino ou lire son blog à l’adresse blogs.msmvps.com/bsonnino.

Merci à l’expert technique Microsoft suivant qui cet article : Rachel Appel