Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Ordinateurs embarqués (SBC) > PCduino : une double solution > Connexion au robot sur pcDuino

Connexion au robot sur pcDuino

lundi 18 novembre 2013, par Julien H.

Un de nos robots est équipé d’une carte pcDuino. Elle est équipée de la version "sortie d’usine" d’Ubuntu.

Pour s’y connecter, il faut tout d’abord connaître son adresse IP. La première fois, il faut utiliser l’utilitaire "nmap" sur le PC de développement connecté au même réseau (via un câble ou un routeur Ethernet plutôt que via wifi par exemple).

On cherche toutes les adresses IP locales avec un port 22 (connexion à distance sécurisée ssh) ouvert. Mettons que notre réseau local soit avec des adresses IP 192.168.2.XXX par exemple.

pobot@atelier1:~$ nmap -p 22 192.168.2.0/24
Starting Nmap 5.21 ( http://nmap.org ) at 2013-11-18 13:43 CET
Nmap scan report for OpenWrt.lan (192.168.2.3)
Host is up (0.00083s latency).
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for atelier1.lan (192.168.2.106)
Host is up (0.00011s latency).
PORT   STATE  SERVICE
22/tcp closed ssh

Nmap scan report for ubuntu.lan (192.168.2.144)
Host is up (0.0023s latency).
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for pibot-nono.lan (192.168.2.212)
Host is up (0.0014s latency).
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 256 IP addresses (4 hosts up) scanned in 2.45 seconds

Il a trouvé 4 machines : le PC atelier1 du local, le routeur OpenWrt, notre robot Nono et le robot pcduino appelé "ubuntu.lan". Seul le PC local est fermé à la prise de connexion à distance par ssh (et pour cause).

On peut donc se connecter au robot avec ssh :

pobot@atelier1:~$ ssh ubuntu@ubuntu.lan
ubuntu@ubuntu.lan's password: 
Warning: No xauth data; using fake authentication data for X11 forwarding.
Welcome to Linaro 12.07 (GNU/Linux 3.4.29+ armv7l)

 * Documentation:  https://wiki.linaro.org/
ubuntu@pcduino:~$ 

Effectivement, le login est "ubuntu" par défaut et le mot de passe... "ubuntu".
On créera donc opportunément un nom d’utilisateur spécifique, par exemple "pobot" avec le mot de passe "pobot".

Pour faciliter l’identification du robot et des services ouverts, on va installer les outils "avahi" qui fournissent des services "zeroconf" (voir la documentation Ubuntu sur le sujet).

ubuntu@pcduino:~$ sudo apt-get install avahi-utils

Pour plus de facilités, on renommera ensuite le nom réseau de la carte :

ubuntu@ubuntu:~$ sudo hostname pcduino
ubuntu@ubuntu:~$ sudo service avahi-daemon restart
...
ubuntu@pcduino:~$

Pour un changement durable, il faut modifier les fichiers /etc/hosts et /etc/hostname :

ubuntu@ubuntu:~$ sudo nano /etc/hosts
... 
ubuntu@ubuntu:~$ sudo nano /etc/hostname
...

Et sur notre PC de développement, on recherchera toutes les machines du réseau utilisant ZeroConf (ou Bonjour pour nos amis Mac) :

pobot@atelier1:~$ avahi-discover 
...
Found service 'pcduino [ae:cc:88:b0:0b:0a]' of type '_workstation._tcp' in domain 'local' on 2.0.
Found service 'pcduino' of type '_udisks-ssh._tcp' in domain 'local' on 2.0.
Found service 'pcduino [ae:cc:88:b0:0b:0a]' of type '_workstation._tcp' in domain 'local' on 2.1.
Found service 'pcduino' of type '_udisks-ssh._tcp' in domain 'local' on 2.1.

Ce qui affiche des informations concernant la recherche de services et ouvre une fenêtre avec l’arborescence des services trouvés.

Et voilà, on est désormais opérationnel sur notre robot !

Une dernière commande à connaitre : toujours éteindre le robot avant de lui couper l’alimentation !! En attendant de lui mettre un interrupteur qui pilotera l’arrêt logiciel de Linux.

ubuntu@pcduino:~$ sudo shutdown now

Vos commentaires

  • Le 21 novembre 2013 à 12:04, par Eric P. En réponse à : Connexion au robot sur pcDuino

    Salut,

    Pour éteindre la carte, prendre l’habitude d’utiliser l’option -P de shutdown est intéressant, car on voit apparaître çà et là des extensions qui gèrent l’alimentation en implémentant un ACPI (ex : http://hackaday.com/2013/05/19/atx-raspi-is-a-smart-power-source-for-raspberry-pi/). En l’absence de telles extensions, l’ajout de l’option ne changera rien mais l’avantage est qu’une fois les automatismes pris, on ne se pose plus la question. Et pour les feignants (comme moi) que ça gonfle d’ajouter now, il y a aussi la variante d’utiliser halt -p.

    Concernant le bouton d’arrêt, la solution présentée dans l’article Bouton d’arrêt sécurisé pour la RasPi devrait pouvoir être reproduite ici quasiment sans rien changer, vu la similitude entre les distributions.

    Et pour ce qui est d’Avahi, cette solution a été utilisée pour le démonstrateur des balises goniométriques, afin de permettre la localisation automatique des applications de ce type par la machine qui porte les interfaces utilisateur, dans le cas par exemple d’un show mettant en oeuvre plusieurs démonstrateurs distribués sur des cartes distinctes. Le code source fourni dans l’article illustre comment l’application UI localise automatiquement la carte du démonstrateur via Avahi et utilise l’IP obtenue pour établir les communications avec.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.