Connecter ev3dev2 à Internet via le cable USB

Lorsque la brique EV3 du Lego MindStorm est démarré sous ev3dev2 (avec une carte microSD), la connexion en réseau de la brique n'est pas aussi immédiate que lorsqu'elle démarre avec le firmware par défaut. Relier l'ordinateur et la brique par le câble n'est pas suffisant.
Le présent article explique comment installer et configurer la brique EV3 et l'ordinateur pour établir une connexion fiable entre les deux.



Installation

L'installation se fait d'une part sur l'ordinateur, et d'autre part sur la brique EV3.

Sur l'ordinateur :

  • Ouvrir la fenêtre Périphériques et imprimantes dans le menu Démarrer de Windows.
  • Dans la fenêtre :
    • Connecter la brique sur un port USB du PC. Un nouveau périphérique Périphérique d'entrée USB apparaît.
    • Faire un clic-droit pour lancer la commande Propriétés pour vérifier qu'il s'agit bien de la brique EV3. Puis fermer la fenêtre de propriétés.
    • Refaire un clic-droit pour lancer la commande Paramètres de réseau. Vérifier le réseau connecté à internet. Dans l'exemple ci-dessous, il y a deux réseaux : Réseau 4 qui est le réseau Internet sur lequel est connecté l'ordinateur via le port RJ45 et Réseau non identifié qui est le réseau entre la brique EV3 et l'ordinateur.
    • Cliquer la commande Modifier les paramètres de la carte dans le menu à gauche. S'affiche alors une nouvelle fenêtre contenant toutes les connexions qui sont détectées sur le système.
  • Dans cette fenêtre, deux connexions sont importante, celle relative à la connexion de l'ordinateur à Internet (Réseau 4 dans l'exemple) et celle relative à la connexion entre l'ordinateur et la brique.
    • Faire un clic-droit sur Connexion au réseau local 4 - Périphérique d'entrée USB pour lancer la commande Renommer.
    • Changer le nom en Connexion à la brique EV3.
    • Faire un clic-droit sur la connexion Internet repérée précédemment (Connexion au réseau local - Réseau 4" dans l'exemple) pour lancer la commande Statut.
  • Dans la boite Etat de Connexion au réseau local, vérifier qu'il s'agit bien de la connexion Internet. Puis cliquer le bouton Propriétés.
  • Dans la boite Propriétés de Connexion au réseau local :
    • Cliquer l'onglet Partage.
    • Cocher la case Autoriser d'autre utilisateurs du réseau à se connecter via la connexion Internet de cet ordinateur.
    • Cliquer le bouton Sélectionnez une connexion réseau privé et choisir Connexion à la brique EV3.
    • Cocher la case Autoriser d'autres utilisateurs du réseau à contrôler ou désactiver la connexion Internet partagée.
    • Cliquer le bouton [OK] pour fermer la boite Propriétés de Connexion au réseau local. Le réseau local est automatiquement reconfiguré pour autoriser le partage de la connexion Internet.
  • Cliquer le bouton [Fermer] pour fermer la boite Etat de Connexion au réseau local.
Toutes ces opérations ont comme but d'établir une passerelle entre le réseau local sur lequel l'ordinateur est connecté à Internet et un autre réseau connectant l'ordinateur et la brique par un cable USB pour permettre à celle-ci de se connecter aussi à Internet en utilisant l'ordinateur comme pont.

Sur la brique EV3

La brique doit être démarrée sous ev3dev2.Les opérations se font à l'aide des boutons de la brique pour choisir les options adéquates :
  • Choisir Wireless and Networks.
  • Choisir All Network Connections.
  • Choisir Wired.
  • Vérifier l'état de la connexion (State:Online).
  • Choisir Connect. L'adresse IP de la brique EV3 (en principe 192.168.137.3) s'affiche en haut de l'écran LCD.
  • Cocher la case Connect automaticaly. Cela évite d'avoir à refaire toutes ces manipulations à chaque redémarrage de la brique EV3.
Pour finir, on peut tester la connexion à l'adresse IP de la brique Ev3 (192.168.137.3) à l'aide de la commande ping lancer dans la console cmd de l'ordinateur :
C:\Users\MindStorm>ping 192.168.137.3

Envoi d'une requête 'Ping'  192.168.137.3 avec 32 octets de données :
Réponse de 192.168.137.3 : octets=32 temps=1 ms TTL=64
Réponse de 192.168.137.3 : octets=32 temps<1ms TTL=64
Réponse de 192.168.137.3 : octets=32 temps<1ms TTL=64
Réponse de 192.168.137.3 : octets=32 temps=1 ms TTL=64

Statistiques Ping pour 192.168.137.3:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 0ms, Maximum = 1ms, Moyenne = 0ms

C:\Users\MindStorm>
La connexion étant établie, il est possible de se connecter à partir de VSCode sur la brique en utilisant cette adresse IP (192.168.137.3).

Ça ne marche pas !

Dans certaine configuration réseau, il est possible que le test de la connexion échoue. («Mais qu'est-ce que les mecs du réseau ont encore foutu ?») Car il s'agit bien d'un problème réseau.
C:\Users\MindStorm>ping 192.168.137.3


Envoi d'une requête 'Ping'  192.168.137.3 avec 32 octets de données :
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.
Délai d'attente de la demande dépassé.

Statistiques Ping pour 192.168.137.3:
    Paquets : envoyés = 4, reçus = 0, perdus = 4 (perte 100%),

C:\Users\MindStorm>
Par défaut, le sous réseau utilisé sous Windows pour les connexion USB et le sous réseau 192.168.137.0 avec comme masque de sous réseau 255.255.255.0. De ce fait, le système Linux est paramétré par défaut sur ce sous réseau, l'adresse IP 192.168.137.1 est attribuée à l’ordinateur qui sert de passerelle et l'adresse 192.168.137.3 est attribuée à la brique.
Mais sur une configuration riche où plusieurs périphériques sont connectés à l'ordinateur sur divers port USB partagés sur le réseau local (comme les imprimantes par exemple), il se peut que le sous-réseau 192.168.137.0 soit déjà pris. Dans ce cas un autre sous réseau est attribué à la connexion à la brique EV3. Et celle-ci possédant une adresse IP en dehors de ce sous réseau, la connexion IP est impossible.
Il convient donc de reconfigurer les paramètres réseau de la connexion USB de la brique EV3 pour lui donner une adresse IP dans le bon sous-réseau.

Identification du sous réseau

Sous Windows, il existe un utilitaire pour identifier les paramètres de connexion réseau. Il s'agit de la commande ipconfig lancée en mode ligne de commande dans la console cmd de Windows.
Microsoft Windows [version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.

C:\Users\MindStorm>ipconfig

Configuration IP de Windows


Carte Ethernet Connexion à la brique EV3 :

   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6 de liaison locale. . . . .: fe80::6885:d31:7767:acb6%22
   Adresse IPv4. . . . . . . . . . . . . .: 192.168.0.1
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . :

Carte Ethernet Connexion au réseau local 2 :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :

Carte Ethernet Connexion au réseau local :

   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6. . . . . . . . . . . . . .: 2a02:8428:5c4:ca01:2d6d:3e08:d514:c9d3
   Adresse IPv6 temporaire . . . . . . . .: 2a02:8428:5c4:ca01:7caa:d89b:ab41:666f
   Adresse IPv6 de liaison locale. . . . .: fe80::2d6d:3e08:d514:c9d3%9
   Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.92
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : fe80::46ce:7dff:fede:c30%9                192.168.1.1

Carte Tunnel Teredo Tunneling Pseudo-Interface :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :

Carte Tunnel isatap.{733FEE56-2F21-4FD4-8587-F5CF2191977A} :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :

Carte Tunnel isatap.{4215EC01-E72A-4D4D-9FDE-B198801BDE53} :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :

Carte Tunnel isatap.{DDBB7F62-CF91-4FDA-B066-549B73DF4B15} :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . :

C:\Users\MindStorm>
La commande ipconfig identifie plusieurs équipements réseau dont deux sont positionnés sur deux sous-réseaux distincts. L'une des connexion intitulée Carte Ethernet Connexion au réseau local correspond à la connexion filaire (par un cable RJ45) à la box sur le sous-réseau de celle-ci dont l'adresse IP est 192.168.1.0. La seconde, celle qui nous intéresse, intitulée Carte Ethernet Connexion à la brique EV3 (d'où l’intérêt de l'avoir renommée à l'étape précédente pour pouvoir facilement l'identifier) correspond à la connexion à la brique EV3 par le cable USB sur un autre sous-réseau dont l'IP est 192.168.0.0. L'adresse IP 192.168.0.1 a été attribuée à l'ordinateur. Il suffit d'en attribuer une autre à la brique EV3 sur le même sous-réseau, par exemple 192.168.0.3.

Modification de l'adresse IP de la brique EV3

La brique doit être démarrée sous ev3dev2.Les opérations se font à l'aide des boutons de la brique pour choisir les options adéquates :
  • Choisir Wireless and Networks.
  • Choisir All Network Connections.
  • Choisir Wired.
  • Choisir IPv4.
La brique affiche l'adresse et le sous réseau actuellement paramétré.
  • Cliquer le bouton [Change].
Là, il y a plusieurs possibilités :
  • L'option Load Wnidows defaults ne convient pas. Car celle-ci attribue l'adresse 192.168.137.3 en dehors du sous-réseau repéré pour la connexion USB.
  • L'option Use DHCP fonctionne. C'est le plus simple. Mais elle sous-entends qu'un service DHCP a été activé sous Windows sur l'ordinateur. Ce qui n'est pas forcément le cas. Une adresse IP dans le bon sous-réseau est alors attribuée et s'affiche en haut de l'écran LCD.
  • Dans le doute, utiliser l'option Enter custom value avec les paramètres suivants :
    • IP address : 192.168.0.3
    • Network mask : 255.255.255.0
    • Gateway : 192.168.0.1 (l'adresse IP attribuée à l'ordinateur pour la connexion à la brique EV3).
  • Cliquer le bouton [Apply].
On peut admettre, le coté fastidieux de l'utilisation des touches de la brique pour taper les adresses IP. Le plus simple est alors d'utiliser l'option Use DHCP en espérant que le service DHCP est bien activé sous Windows.
Ces opérations effectuées, les paramètres réseau s'affichent sur le LCD de la brique :
Il faut juste s'assurer que l'adresse affichée en haut de l'écran est sur le même sous-réseau que l'ordinateur (192.168.0.xxx dans l'exemple.).

Contrôle de la connexion à partir de l'ordinateur

Il suffit maintenant de refaire un ping à partir de la console cmd de l'ordinateur :
C:\Users\MindStorm>ping 192.168.0.3

Envoi d'une requête 'Ping'  192.168.0.3 avec 32 octets de données :
Réponse de 192.168.0.3 : octets=32 temps=1 ms TTL=64
Réponse de 192.168.0.3 : octets=32 temps<1ms TTL=64
Réponse de 192.168.0.3 : octets=32 temps<1ms TTL=64
Réponse de 192.168.0.3 : octets=32 temps=1 ms TTL=64

Statistiques Ping pour 192.168.0.3:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 0ms, Maximum = 1ms, Moyenne = 0ms

C:\Users\MindStorm>
La connexion étant établie, il est possible de se connecter à partir de VSCode sur la brique en utilisant cette adresse IP (192.168.0.3).

Commentaires

Posts les plus consultés de ce blog

Connecter ev3dev2 à Internet en WiFi

Connecter Visual Studio Code à un robot MindStorm EV3 avec ev3dev-browser

Installer les modules EV3DEV2 sur Python