Serial Raspberry Pi

Bonjour à tous, comment allez-vous?

Ehh oui, comme on dit dans le jargon, j’ai passé la seconde au niveau de la rédaction des articles… 👍 Il faut dire que j’ai pas mal de retard… 😡 Aujourd’hui, je vais vous montrer comment prendre le contrôle de votre Raspberry Pi sans WIFI ou écran…. 😈

Non ce n’est pas de la magie… Il existe bel et bien une autre solution pour avoir accès à la console de son Raspberry Pi lorsqu’il n’ y a aucune infrastructure réseau (WiFi ou Ethernet) à proximité et que vous ne pouvez pas alimenter un écran pour brancher le Raspberry Pi… 😱

Bon cette solution n’est pas parfaite, il vous faut quand même un ordinateur et un élément en plus que je décrirai plus bas… Mais elle a toutefois des avantages :

✅ Peu coûteuse. 😀

✅ Facile à mettre en place, il faut juste brancher 3 câbles de prototypages sur le Raspberry Pi. 😃

✅ Ponctuelle, on peut brancher à chaud (même si le Raspberry Pi est déjà allumé ce qui laisse une chance de faire un reboot propre si le réseau à sauté ou si le Raspberry Pi freeze à l’écran). 😋

✅ Peut permettre le transfert de fichier (mais il y a des paquets à installer sur le Raspberry Pi et sans réseau il faut prévoir à l’avance…). 😏

✅ Facile à mettre en place sur OS X, Linux et Windows. 😘

✅ Fonctionne sur tous les modèles de Raspberry Pi. 😳

Mais il y a deux gros inconvénients… 😐

⚠️ Le mode graphique est sommaire

⚠️ Si vous débranchez un câble en cours de route, il se peut que la commande que vous avez envoyée ne soit pas complètement exécutée… Donc, éviter les faux contacts… 😇

Je pense  que vous l’aurez compris, je vais vous montrez comment prendre le contrôle de votre Raspberry Pi via Serial… Il faut dire que le titre était explicite… 😉

Pour me simplifier la rédaction de cet article, à partir de maintenant, dès que je parle d’un Raspberry Pi il est quasiment nu 😊 : juste une carte SD avec Raspbian et une alimentation 5V… Pas de clavier, d’écran, de souris, de dongle WIFI ou de prise Ethernet…

Voici maintenant le moment où je vais vous parler de l’élément miracle : le convertisseur Serial/USB 😍. Vous devez en voir passé pas mal sur internet que ce soit pour des Arduinos ou d’autres cartes open source…

Ils permettent de convertir un signal Serial, qui est un protocole vieux comme les premiers ordinateurs, en signaux détectables par un port USB. Dans le cas du Raspberry Pi, le niveau logique est en 3,3V par comparaison la plupart des Arduinos ont un niveau logique en 5V (Attention ce n’est pas tout le temps vrai…). Ils ont dans notre cas un rôle de step-up. Mais ils permettent aussi à l’inverse de piloter du RS-232 (+12V) via USB. Ils ont alors une fonction de step-down…

Si vous voulez en savoir beaucoup plus sur le Serial alias UART, je vous conseille de lire le numéro 5 d’Hackable Magazine qui offre une série d’articles détaillés sur ce domaine. Vous pouvez le trouver en format PDF pour la modique somme de 7,90 euros ici :

http://boutique.ed-diamond.com/home/849-hackable-magazine-5.html

hackable_magazine_n5Si vous êtes intéressé par cette technique, il vous faudra un convertisseur UART, personnellement j’ai abandonné les convertisseurs disponibles sur Ebay… 👎 Ils sont certes  peu chers, mais ils sont très mal documentés et on ne sait pas très bien s’ils ont un niveau logique en 3V ou en 5V. 😠 Parfois, il faut même installer un obscur pilote disponible uniquement sur un site en Chinois… 😤

C’est pourquoi pour une fois je me suis fait plaisir et j’ai craqué pour du matériel de qualité… 😌 Fabriqué par une société française et de surcroit lyonnaise : Techno-innov. Il serait bête de s’en priver… Leur convertisseur UART est parfait pour ce type d’opération… Il ne requiert aucun pilote… 😎 Si vous êtes intéressé, il est disponible pour 10 euros ici :

http://boutique.techno-innov.fr/usb-to-uart-adapter.html

adaptateur_usb_serieJe n’ai aucun contrat commercial avec Techno-innov, vous pouvez acheter un convertisseur ailleurs… 😏 L’important est de prendre un convertisseur Serial qui peut gérer les niveaux logiques en 3V… ✅

D’origine, la fonction Serial est activée sur Raspbian, ce qui veut dire que vous pouvez utiliser cette technique sur un premier boot après avoir préparé votre carte SD…

⚠️ Si vous voulez désactiver cette fonction, ce qui peut vous permettre d’envoyer des données d’un Arduino à un Raspberry Pi par exemple via Serial, il faut se rendre dans l’utilitaire raspi-config.

Dans une fenêtre Terminal il faut exécuter :

sudo raspi-config

Puis allez dans Advanced Option :

serial_pi_raspiconfig1Choisissez le Menu Serial :

serial_pi_raspiconfig2Activez ou désactivez la console sur le Serial :

serial_pi_raspiconfig3Si vous mettez oui, vous pourrez prendre contrôle du Pi via Serial. Si vous mettez non, la console ne sera plus accessible, mais il sera possible de dialoguer avec un arduino…

Passons maintenant aux branchementx, il nous faut uniquement trois câbles pour TX, RX et GRND. Je ne relie pas le 3V car le Pi est déjà alimenté en 5V… Mais il est possible d’alimenter un RPI directement en 3V depuis le convertisseur au besoin…

serial_pi_schema❗️Notez bien le fait que le TX du Pi va sur le RX du convertisseur… ❗️

Enfin la partie logiciel… Sur Windows, il vous faut utiliser WinSCP que je n’utilise pas… 😖 Mais je suis sûr qu’il y a de très bons tutoriels sur le sujet… Et si vous le demandez dans les commentaires, je réaliserai aussi un tuto… 😉 Sur Mac et & Linux c’est beaucoup plus simple : il suffit d’ouvrir un Terminal… ✌️

Il est possible d’utiliser minicom, mais il faut le configurer ce qui peut-être un peu plus dur… Comme je veux faire simple, je vais donc utiliser screen qui est intégré d’origine… 👌 Vous pouvez utiliser ces commandes sur OS X ou Linux. 🙏 Informations complémentaires, je fais tourner OS X 10.10.3 et pour Linux je suis sur Debian unstable… Mais toutes les versions précédentes de ces systèmes d’exploitation devraient reconnaître les commandes…

La première étape est de trouver le nom du convertisseur. Pour cela, réalisez les branchements, mais ne connectez pas tout de suite le convertisseur à l’ordinateur. Ouvrez une fenêtre Terminal et tapez :

cd /dev

puis :

ls

Vous devriez voir apparaître une liste comme celle-ci :

Branchez maintenant votre convertisseur et renvoyez la commande :

ls

Votre liste devrait contenir un élément de plus :

Félicitations, vous avez trouvé le nom du convertisseur. 🎉 Il ne reste maintenant plus qu’à prendre le contrôle du Pi.

Sur OS X envoyez la commande suivante dans le Terminal :

sudo screen /dev/tty.usbserial-DA00G13J 115200

serial_pi_mac_screen1Ce qui signifie : passe par sudo car l’accès au Serial requiert des droits administrateurs, lance l’application screen sur le port /dev/tty.usbserial-DA00G13J à une vitesse de 115200 bauds. Il faut alors entrer le mot de passe de votre session OSX et appuyer sur Entrée. Et là :

serial_pi_mac_screen2Un écran noir… Oui c’est normal, le Pi ne propose pas le login Shell sur les pins serial toutes les dix secondes sans raison, car il est incapable de savoir que vous venez de brancher ces ports… Rappuyez une seconde fois sur Entrée et la magie :

serial_pi_mac_screen3Votre login apparaît si vous avez effectué les branchements comme il faut… Il vous suffit de vous connecter avec vos identifiants sur le Pi :

serial_pi_mac_screen4Pour Linux envoyez la commande suivante dans le Terminal :

sudo screen /dev/ttyUSB0 115200

serial_pi_linux_screen1Rentrez le mot de passe de votre session. Vous aurez aussi un écran noir comme sur OS X :

serial_pi_linux_screen2Après un second appui sur la touche Entrée vous aurez accès au Shell ce qui vous permettra de vous identifier :

serial_pi_linux_screen3

Dernière astuce, pour vous déconnecter et pour fermer screen, vous allez vite remarquer que si vous tapez :

exit

Dans la console du Pi, vous revenez au login Shell du Pi et non sur le terminal de votre ordinateur :

Il vous faudra utiliser la combinaison de touches Ctrl+A suivit de CTRL+Z pour fermer screen et revenir sur le Terminal de votre ordinateur.

Voila vous savez maintenant vous connecter à votre Raspberry Pi sans WiFi et sans clavier ou écran branché sur celui-ci avec un convertisseur USB – UART à 10 euros et sans rien installer sur le Pi ou votre ordinateur… :mrgreen:

@bientôt Anders

5 réponses sur “Serial Raspberry Pi”

    1. Ouaip il est vraiment top ce convertisseur, mais il permet aussi de faire de l’I2C et du SPI directement… La câble adafruit est bien mais moins complet malheureusement…

  1. Hey,
    Top ton article 😉

    plusieurs remarques :
    Sur Windows tu as aussi TeraTerm qui est pas mal pour communiquer via les ports com 😉

    Pour voir que les ports qui t’intéressent dans /dev, fais un simple ls /dev/tty.*

    Attention avec screen, quand tu fais ctrl+A puis d, tu détaches le screen, tu ne le quittes pas 😉 Une fois détaché, tu peux le rattacher avec la commande screen -r.
    et pour stopper un screen : Ctrl+A puis Z.

    Vivement la suite !

    1. Yop Mickael comment vas-tu? Merci pour TeraTerm que je ne connaissais pas faudra que je le teste…

      Bon, je savais bien que pour le ls y’avait plus court… Merci pour l’info

      Dernière chose, j’ai modifié l’article pour le raccourci de screen encore merci

      @bientôt

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Traduction :