Jak zdalnie kontrolować swoją drukarkę.
Nie zajmuję się drukiem 3D profesjonalnie, ale wiem, co jest mi potrzebne, jeśli chodzi o wygodę pracy (; W poprzednim wpisie dotyczącym tej tematyki, wspominałem już, że drukuję bezpośrednio po kablu; nie mam w drukarce kontrolera z ekranem i przyciskami, stąd nie mogę korzystać z karty SD. Wiem, że taki kontroler to tanie i wygodne rozwiązanie. Znalazłem jednak swoją równie ekonomiczną alternatywę, która także pozwoliła mi zrezygnować z podłączania laptopa do drukarki.
Niedawno pokazywałem konstrukcję stojaka testowego. Nieco go już uzupełniłem i ulokowałem niedaleko drukarki. Znajduje się tam też Raspberry Pi, które to właśnie okazało się świetną platformą pod mój pomysł. Jak to wygląda i działa, możecie znaleźć na wideo poniżej.
Skupię się na wyjaśnieniu, jak krok po kroku zrealizować u siebie taką stację.
Przygotowanie
Potrzebny sprzęt:
– Raspberry Pi (u mnie wersja 4 ale spokojnie powinno pójść na 3),
– zasilanie do Raspberry (5 V i prąd zależnie od wersji; 2.5 A na pewno wystarczy),
– kamerka na USB,
– kabel USB do drukarki.
U mnie pojawił się jeszcze dedykowany ekran do Raspberry oraz Netio Power Cable, ale nie są to niezbędne elementy.
Jeśli nigdy nie pracowaliście z Raspberry, znajdziecie kilka podstawowych wideo u mnie na kanale oraz trochę materiałów na blogu:
– notka o popularnych układach,
– warsztaty Raspberry Pi,
– playlista YouTube Raspberry Pi.
Użyty w projekcie software:
– Repieter server,
– Repetier host,
– Motion,
– Node-RED (opcjonalnie).
Repetier Server
Po wstępnym przygotowaniu Raspberry Pi z najpopularniejszym systemem Raspbian doinstalowałem Repieter server. Można użyć zamiennie OctoPrint, jeśli ktoś szuka alternatywy. Istnieją także gotowe systemy z zainstalowanymi wszystkimi składnikami.
Pobieranie pakietu:
wget http://download.repetier.com/files/server/debian-armel/Repetier-Server-0.93.1-Linux.deb
Przed ściągnięciem warto najpierw wejść na stronę https://www.repetier-server.com/download-repetier-server/ i zobaczyć, czy dostępna jest nowsza wersja. Jeśli tak, wtedy zamiast 0.93.1 w poleceniu wpiszecie obecnie najświeższą. Po ściągnięciu paczkę należy rozpakować.
sudo dpkg -i Repetier-Server-0.93.1-Linux.deb
Jeśli macie inną wersję, tutaj również musicie podmienić numer.
Warto dodać serwer do autostartu Raspberry.
sudo update-rc.d RepetierServer defaults
Manualnie Repieter server można włączać z polecenia poniżej.
sudo service RepetierServer start
Po uruchomieniu dostępny jest poprzez przeglądarkę panel – należy wpisać adres IP Raspberry i po dwukropku dopisać port 3344, np. 192.168.0.150:3344, jak na screenie poniżej.
Na moim komputerze posiadam Repetier host, choć może to być dowolne inne oprogramowanie do konwersji projektów 3D (np. *.stl) na G-code. Przekonwertowany projekt wysyłamy na przygotowany serwer i można drukować – patrz film (:
Kamerka – Motion
Często zdarza mi się podchodzić do drukarki i sprawdzać, czy nie ma żadnych problemów. Z wrodzonego wygodnictwa postanowiłem zamocować kamerkę skierowaną na drukarkę, żeby móc spokojnie zerknąć, czy wszystko ok, nie ruszając się z fotela. Oczywiście, podłączyłem ją do tego samego Raspberry, na którym jest serwer.
Niestety, Repetier server udostępnia korzystanie z kamerki tylko w wersji PRO. Aby obejść płacenie za wersję PRO, wykorzystuję popularny pakiet motion, dzięki któremu można streamować obraz z kamery.
Instalowanie pakietu.
sudo apt install motion
Trzeba go trochę skonfigurować. Poniższym poleceniem przejdziemy do edycji pliku.
sudo nano /etc/motion/motion.conf
Ważne są następujące parametry:
demon on
framerate 20
width 640
height 480
stream_maxrate 20
webcontroler_localhost off
Po zapisaniu warto jeszcze edytować jeden plik:
sudo nano /etc/default/motion
Motion będzie działał od autostartu, jeśli zmienimy następujący parametr:
Start_motion_deamon=yes
Pamiętajcie, że do tego trzeba mieć w konfiguracji Raspberry odblokowaną kamerę.
Stream możecie zobaczyć w przeglądarce, podobnie jak Repetier server, tylko zamiast portu :3344 w tym przypadku użyć trzeba :8081.
Zasilanie
Kolejną częścią układanki jest zasilanie. Wykorzystałem tutaj Power Cable od Netio, który jakiś czas temu testowałem.
Pozwala mi on na kontrolę zasilania drukarki wraz z odczytem poboru mocy przy pomocy MQTT.
Node-RED – składanie tego wszystkiego w całość
Miałem trzy kawałki, z których mogłem korzystać do kontroli drukarki, ale każdy z innego miejsca, co byłoby totalnie niewygodne – należało to połączyć. Świetnie nadał się Node-RED, o którym możecie poczytać i znaleźć trochę materiałów tutaj.
Serwer i stream wrzuciłem, korzystając z template w pakiecie dashboard. Do zasilania użyłem serwera MQTT mosca, bloczków do MQTT oraz wykresu, tekstu i przełącznika także z pakietu dashboard.
Na repozytorium znajdziecie całe flow do ściągnięcia.
Póki co, wszystko działa super. Nie mam upublicznionej strony na zewnątrz – nie potrzebuję, ale można to w dość łatwy sposób zrealizować i mieć dostęp do drukarki z każdego miejsca (;
Czy takie alternatywne zarządzanie drukiem 3D wydaje się Wam komfortowe? Dajcie znać.
Jeśli artykuł był dla Ciebie wartościowy, możesz mnie wesprzeć na https://inzynierdomu.tipo.live/
Projekt wygląda świetnie! gratuluje 🙂
Brawo za wykonanie, wygląda świetnie! Polecamy się na przyszłość, zespół EBMiA!:)