Raspberry Pi et Reprap

Comment utiliser un Raspberry Pi pour remplacer le PC host qui envoie les Gcodes à la carte de commande?

Attention dans cet article il n’est nullement question de piloter directement l’imprimante avec le raspberry, mais uniquement d’utiliser celui ci pour envoyer les gcodes à la carte contrôleur. Le Raspeberry Pi est un mini PC autonome pour un cout ridicule de $25.95

câblage de l’ensemble :

Le Raspberry est relié via le port USB à la carte de commande de l’imprimante. En utilisant un câble FTDI avec la carte GEN7 ou directement avec des câbles USB/USB pour les cartes GEN6, Ramps.

Un câble réseau permet de relier le Raspberry au monde extérieur, ce qui permettra de télécharger les fichiers stl ou gcodes vers le Raspberry par l’intermédiaire de commande SCP , ou bien de déporter l’affichage avec un service VNC.

Et sans oublier l’alimentation du raspberry. J’utilise pour cela un petit transfo avec câble avec terminaison microUSB. Attention à la qualité du transfo, surtout en provenance d’asie. Sans être un critère déterminant un transfo un peu épais est gage au moins qu’il existe des composants à l’intérieur 😉

Nul besoin d’écran, de clavier , voire de souris supplémentaires. Toutes les commandes seront passées au Rapsberry soit en ssh, soit en utilisant un serveur VNC à partir d’un PC fixe ou portable, qui pourra être déconnecté une fois le job lancé. Sur la photo ci contre , le raspberry est rangé dans une boite imprimée en PLA crée par Redpeppr, fichier stl disponible ( pour le moment!) sur thingiverse . On voit au premier plan l’alimentation « ventrue »…

La carte SD du Raspberry

Le plus simple est de partir de la config Raspbian “wheezy” téléchargeable à l’URL http://downloads.raspberrypi.org/images/raspbian/2012-09-18-wheezy-raspbian/2012-09-18-wheezy-raspbian.zip

C’est une image ISO qu’il faut inscrire sur la carte SD ( je vous conseille une carte minimal de 4Go ). pour cela vous utiliserez l’utilitaire DD sous linux, ou Win32DiskImager pour Windows pour copier l’image ISO sur la carte SD. Attention copier simplement le contenu de l’image ISO sur la carte SD n’est pas suffisant pour la rendre « bootable ».

Une fois les fichiers « transférés » sur la carte SD, avec les utilitaires décrits ci dessus, vous devez renommer le fichier boot_enable_ssh.rc en boot.rc sur la carte SD , pour activer au démarrage le service ssh, ce qui vous évitera par la suite de brancher un écran avec prise HDMI ( pas facile à trouver …)  – cette partie ci dessus je ne l’ai pas testé car j’avais sous la main une big TV LCD.

Une fois la carte prête, il suffit de l’insérer dans le Raspberry Pi, et d’alimenter la bête.

La connexion SSH

Une fois le Raspberry alimenté, vous pouvez vous connecter au raspberry en ssh à partir d’un PC connecté sur le même réseau. Pour avoir l’adresse IP récupéré par le rapsberry un petit coup d’œil sur le serveur DHCP de votre box est une bonne idée. Dans l’exemple ci dessous avec une freebox, en allant dans l’interface de configuration ( http://mafreebox.freebox.fr ) on récupère l’adresse IP 192.168.0.37 qui a été récupéré par le Raspberrypi.

pour cet exemple mon serveur DHCP est réglé assez cool, toute machines connectés sur le réseau récupère une adresse IP… il sera temps par la suite de remettre de l’ordre dans les sécurités associées aux adresses MAC… et d’identifier avec un bail statique le Raspberry.

Puis avec un émulateur ssh, putty par exemple sous windows, ou directement la commande ssh sous linux faites :

  • ssh 192.168.0.37 ( c’est l’adresse récupérée par le Raspberry)

Un écran de connection apparaît,

– le login par défaut est : pi

– le mot de passe : raspberry , attention le clavier est réglé sur Qwerty par défaut, il faut donc taper  si vous avez un clavier Azerty: rqsberry comme mot de passe.

la première chose à faire est de spécifier le bon type de clavier, si vous utiliser un azerty il faut taper :

  • sudo setxkbmap fr

Les drivers USB FTDI

Voila vous êtes sous Raspberry avec une distrib Debian adapté à la bête.

C’est pas le tout, mais l’objectif est de connecter la carte Rapsberry à la carte de commande de l’imprimante. Ce qui est sympa c’est que les drivers FTDI sont inclus dans le noyau. Si vous branchez le câble USB ou USB/FTDI entre le Raspberry et la carte contrôleur, vous retrouverez le port directement opérationnel. tapez dans la fenêtre ssh la commande

  • ls /dev/ttyU*

et vous retrouver le port monté pour l’occasion.

/dev/ttyUSB0 par exemple.

Les utilitaires de dialogue avec la carte « REPRAP »

Le Raspberry n’étant pas un foudre de guerre, je vais en décevoir plus d’un, mais je vous conseille d’utiliser la ligne de commande pour dialoguer avec la carte de commande. Vous pouvez installer des Hosts graphiques, mais finalement à l’usage vous verrez cela n’est pas forcement nécessaires. Je vous explique la démarche pour installer les utilitaires liés à Printrun développé par Kliment. Avant d’installer ces utilitaires, il faut installer quelques dépendances :

  • sudo apt-get update
  • sudo apt-get install python-serial python-wxgtk2.8 python-tk git-core

si vous voulez juste utiliser un dialogue en ligne de commande il vous suffit d’installer comme seule dépendance :

  • sudo apt-get install python-serial

Il faut ensuite récupérer les fichiers de pronterface sur github , que vous enregistrez alors un fichier tarballgz : kliment-printrun-xxxxxxx.tar.gz

Vous décompressez de fichier en utilisant la commande :

  • tar -xvf kliment-printrun-xxxxxxx.tar.gz

un répertoire kliment-printrun-xxxxx est créé que vous pouvez renommer en printrun.

 

Dialogue en ligne de commande avec la carte contrôleur

Vous pouvez alors commencer le dialogue. Nous allons utiliser l’utilitaire pronsole.py écrit en python que vous retrouvez dans le répertoire printrun nouvellement créé.

Déplacer vous dans ce répertoire

  • cd printrun

puis lancer l’utilitaire de dialogue avec la carte, c’est du python:

  • python pronsole.py

un ptit help pour avoir toutes les commandes.

Et help topic, vous donne de l’aide sur le topic…. facile.

  •  connect : pour se connecter à la carte. Par défaut il se connecte avec le port /dev/ttyUSB0
  • move X 20 : déplacement en X de 20 mm dans le sens positif
  • home Y : mise en position origine suivant l’axe Y
  • bedtemp 55 : met en chauffe le bed pour une température de 55°
  • settemp 200 : met en chauffe le nozzle a 200°
  • extrude : extrude 5 mm de fil
  • monitor 3: donne l’état du job avec les températures du bed et de l’extrudeur toutes les 3 secondes
  • load mongcode.gcode : charge le fichier gcode que vous avez préalablement généré avec slc3r ou skeinforge.
  • print : lance l’impression du fichier chargé par la commande load.

Vous voilà prêt pour la commande de votre imprimante à la mode ligne de commande.

Attention quand vous fermez la fenêtre SSH, vous interrompez le job, et l’impression s’arrête. Pour se déconnecter sans souci , voir la suite avec l’installation d’un serveur VNC.

Un serveur VNC pour faciliter et surveiller.

Il peut être intéressant d’utiliser aussi un serveur vnc sur le raspberry pour déporter l’écran graphique. J’ai utilisé pour cette distribution le serveur VNC tighvncserver.

Faites dans la fenêtre ssh :

  • sudo apt-get install tightvncserver

et pour le lancer

  • /usr/bin/tightvncserver

le script de démarrage demande un mot de passe pour sécuriser la connexion. Un serveur VNC tourne maintenant sur le raspberry.

Il vous suffit alors d’installer un client VNC sur votre PC portable, téléphone android, tablette, … J’utilise par exemple sur le PC portable le client VNC : VNC-viewer http://www.realvnc.com/download/viewer/, l’appli Android androidVNC pour mes appareils android ( tablette et smartphone)

Avec ce client VNC vous pouvez alors déporter une fenêtre graphique, et travailler sur le Raspberry comme si vous aviez connecté un écran, un clavier et une souris.

Vous pouvez alors dans une fenêtre terminal lancer la console pronsole.py, comme vous l’avez fait précédemment dans la fenêtre ssh. L’avantage c’est que vous pouvez quitter le client VNC sans que cela interrompe le job en cours. Vous pouvez alors éteindre votre PC portable et laisser le Raspberry bosser tout seul.

Résultats :

Sur mon Samsung Galaxy, en pleine impression de pièce pour la Foldarap:) 14 % du travail. Ca c’est la classe… je vérifie comme cela le job, direct en pleine rue….

Et depuis mon portable.

Et une webcam pour surveiller.

En utilisant le logiciel guvcviewer, Il ouvre une fenêtre graphique. Celle peut être visualiser à partir de l’écran déporté grâce au client VNC.

installation des paquets pour installer guvcviewer

 

  • sudo apt-get install guvcview

 

j’ai utilisé une webcam Logitech directement reconnue, et qui est auto-alimentée par le port USB sans effondrer l’alimentation du Raspberry.

N’hésitez pas, si vous voyez des erreurs : pierrot@paoparts.com

 

Ce contenu a été publié dans Uncategorized. Vous pouvez le mettre en favoris avec ce permalien.