OctoPrint, Raspberry Pi et time-lapse

Afin de pouvoir utiliser une imprimante 3D, il faut tout d’abord pouvoir la contrôler. La première façon de faire, celle de base, est tout simplement le contrôle manuel. La plupart du temps, comme pour l’imprimante Prusa i3 MK2S, ce contrôle s’effectue via un écran LCD pour lire les informations relatives à l’imprimante (température de l’extrudeur, température du plateau, statut de l’impression, etc…), un bouton/molette qui permet de défiler dans les menus et de valider les options sélectionnées, et un bouton arrêt (d’urgence) qui permet de stopper rapidement la tâche en cours, en cas de problème. Enfin, pour transmettre les données d’impression 3D à l’imprimante, cela s’effectue avec des fichiers G-code via une carte SD qui est insérée au niveau du panneau de contrôle.

Mais cette méthode reste tout de même limitée. D’une part, car elle nécessite de faire des aller-retours dans les menus et sous-menus et sous-sous-menus de l’interface LCD qui peuvent devenir à la longue assez pénibles. D’autre part, la taille de l’écran d’affichage étant assez petite, la lisibilité dans le cas de textes longs (nom de fichiers, description pour la calibration, etc…) est grandement réduite (texte qui défile horizontalement ou à faire défiler verticalement). Enfin, le fait que les données doivent transiter via une carte SD oblige à faire des aller-retours entre l’ordinateur et l’imprimante.

Heureusement, l’imprimante est également équipée d’un port USB (type B) au niveau de sa carte mère, ce qui permet de la relier directement  à un ordinateur. Il est alors possible de contrôler l’imprimante à partir de ce dernier. Pour cela, il existe différents logiciels. Vous pouvez tout d’abord utiliser le logiciel Pronterface qui fait partie de la suite Printrun. Ce logiciel reste assez ancien (la dernière mise à jour date de 2014). Il peut être coupler au logiciel Slic3r pour générer les fichiers G-code. Il est également possible d’envoyer les données G-code directement vers l’imprimante avec les logiciels Slic3r ou Cura, par exemple, mais dans ces cas là, le contrôle de l’imprimante (XYZ, température, etc… ) n’est pas possible.

Même si le contrôle par port USB facilite l’utilisation de l’imprimante, celui-ci nécessite que l’ordinateur et l’imprimante soient en permanence connectés. Ce qui signifie que vous devez avoir un ordinateur plus ou moins dédié à cela. Si vous lancez une impression sur plusieurs heures, vous ne pourrez ni arrêter, ni mettre en veille votre ordinateur.

Une autre méthode de contrôle consiste à utiliser par le logiciel OctoPrint. Celui-ci fonctionne comme un serveur et est accessible à partir d’une interface web. Si le serveur est relié au réseau de votre domicile (via wifi ou Ethernet) ou relié à internet, il est alors possible de contrôler votre imprimante depuis n’importe quel endroit et à partir de n’importe quel type d’appareil (ordinateur, tablette ou smartphone). De plus, comme c’est un serveur, et qu’OctoPrint n’est pas très gourmand en ressources, pas besoin de l’installer sur un ordinateur avec un écran et un clavier); un appareil style Rapsberry Pi fait très bien l’affaire. C’est vers cette dernière solution que je me suis orienté pour le contrôle de ma Prusa i3 MK2S.

Je me suis tout d’abord procurer la dernière version du Raspberry Pi. La version 3 avec le support Wi-Fi et Bluetooth. Autant réduire le nombre de câble au stricte minimum. J’ai pris le modèle de base (sans coque ni boîtier) avec, en plus, une carte micro SD de 32 Go, afin d’y installer le système d’exploitation, Octoprint, et avoir assez d’espace pour y stocker les différentes données.

Pour le boîtier du Raspberry Pi, j’ai téléchargé et imprimé le modèle proposé par hackoholic sur Thingiverse. Celui-ci permet de fixer très facilement le système Raspberry Pi sur le châssis de l’imprimante.

L’installation d’OctoPi (système d’exploitation Linux, qui utilise OctoPrint et dédié au Raspberry Pi) est assez simple. Il suffit de télécharger la dernière version de l’image sur internet, de la copier sur la carte SD, et de modifier les fichiers de configuration pour y indiquer les paramètres et identifiants du votre réseau wifi. Ensuite, il suffit d’installer la carte SD dans le Raspberry Pi et de le brancher pour le démarrer. Ensuite en se connectant, via un navigateur internet, à l’adresse IP du Raspberry Pi, vous avez directement accès à l’interface web de d’Octoprint. Il suffit enfin de relier, avec un câble USB, l’imprimante et le Raspberry Pi pour pouvoir contrôler l’imprimante.

Il est alors possible de suivre, à distance, l’état de l’imprimante en temps réel, et d’en prendre le contrôle. Pour lancer une impression rien de plus simple. Il suffit de glisser-déposer le fichier G-code sur la fenêtres de votre navigateur internet. Si, par exemple, vous utilisez sur votre ordinateur le logiciel Slic3r, il est possible d’envoyer les données G-code directement vers Octoprint via le réseau. Vous allez me dire que de contrôler une imprimante à distance, si on ne voit pas ce qui se passe exactement, ce n’est pas très pratique. Effectivement. Pour remédier à cela Octoprint propose en plus le support des caméras. N’en ayant pas sous la main, je m’en suis procurer une toute simple sur Amazon: le modèle ELP-USBFHD01M-L21. Parmi les utilisateurs d’Octoprint, beaucoup choisissent d’utiliser la caméra dédiée au Raspberry Pi… Seulement comme son port est dédié uniquement à l’interface CSI du Rapsberry Pi, j’ai préféré me tourner vers une caméra avec une connectivité USB, plus commune, et qui pourra me servir pour d’autres appareil. Mais, là encore, pas de boîtier…

Cependant, après avoir cherché sur internet, je n’ai pas trouvé de modèle de boîtier correspondant à ce que je voulais. Celui s’en rapprochant le plus était le modèle de PrintCentral, sur Thingiverse, qui permet de fixer directement la caméra sur le plateau d’impression. L’avantage de cette méthode est qu’elle permet d’avoir une vue fixe sur l’objet imprimé. Malheureusement, le modèle de PrintCentral est dédié à la caméra du Raspberry Pi et ne s’adapte pas du tout à ma caméra USB.

Je me suis donc inspiré de ce modèle pour créer le mien et l’imprimer. Le support est imprimé en trois parties : le bras qui va se visser sous le plateau d’impression, la face avant du boîtier (avec l’ouverture pour l’objectif) et la face arrière (avec une ouverture pour faire passer le cable USB). Comme la caméra chauffe un peu, j’ai ajouter des ouvertures pour l’aération. Les deux parties du boîtier s’emboîtent l’une dans l’autre et l’ensemble est fixer au bras par une vis. Vous pouvez télécharger le fichier de ce modèle ici : https://www.thingiverse.com/thing:2437491.

Il suffit ensuite de brancher la caméra USB au boîtier Rapsberry Pi, et de configurer Octoprint pour qu’il puisse utiliser la caméra (dimensions de la vidéo, URL du flux vidéo). Dans mon cas, il a également fallu que je modifie un fichier de configuration dans le système de Octoprint, et que je le reboot le tout, pour que la caméra soit reconnue. Il est maintenant possible de suivre visuellement tout ce qui ce passe sur le plateau d’impression, en temps réel, et à distance.

Avec le support de la caméra, Octoprint propose également une option pour créer des time-lapses. Les time-lapses sont des effets vidéo accélérés, qui sont réalisés, image par image, sur de longues durées. Cela permet, par exemple, de visualiser en 2-3 minutes une impression 3D qui a normalement pris plusieurs heures. Voici un exemple d’un time-lapse que j’ai réalisé lors de l’impression du porte-clés 3D Hubs Marvin avec un filament en PLA rouge (Spool3D PLA 1.75mm Solid Dark Red).

Gwenaël Écrit par :

Soyez le premier à commenter

Laisser un commentaire

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