Pewien czas temu byłem w posiadaniu laptopa, który z mobilnością miał niewiele wspólnego. Padła w nim zupełnie bateria i każda próba przeniesienia go w inne miejsce związana była z czasochłonnym wyłączaniem i włączaniem od nowa systemu. Głównym problemem była obsługa drukarki 3D, która znajdowała się w pokoju, podczas gdy laptop przebywał głównie w salonie. Można powiedzieć, że straciłem nawet przez to chwilowy zapał do drukowania. Niestety moja drukarka 3D pozbawiona jest wyświetlacza. Posiada wprawdzie obsługę kart pamięci, jednak ograniczeniem tego rozwiązania jest brak możliwości kontroli w trakcie druku nad chociażby temperaturą.
Niejako przez przypadek trafiłem na informację, że istnieje możliwość połączenia Raspberry Pi i Octoprint (zdalnego hosta do obsługi drukarki). Zmontowałem sobie taki zestaw i od tego czasu drukuje już tylko wyłącznie za pomocą OctoPi. Postanowiłem, więc zebrać wszystkie dostępne informacje w całość i przedstawić je w formie poradnika, przedstawiającego krok po kroku, jak samemu utworzyć domowy serwer druku 3D. Dzięki niemu mamy możliwość zdalnego sterowania drukarką, puszczania wydruków oraz podglądu pola roboczego na żywo, poprzez kamerkę internetową, bez podłączania komputera do drukarki 3D.
Zacznijmy więc od początku…
Czego potrzebujemy:
- Raspberry Pi wraz z osprzętem (karta pamięci, zasilacz)
- Karta sieciowa WiFi podłączana do USB
- Kabel USB A-B do podłączenia drukarki z „maliną”
- Drukarka 3D
- Dowolny laptop lub komputer PC
Instalacja systemu na Raspberry Pi:
OctoPi jest to specjalnie przygotowana dystrybucja linuxa (Debian, Raspbian, Ubuntu) dla Raspberry Pi, zawierająca w sobie OctoPrint (zdalny host dla drukarek 3D) oraz „mjpg-streamer with RaspiCam support” (repozytorium do przesyłania na żywo obrazu z kamerki internetowej):
- Pobieramy i rozpakowujemy dystrybucję OctoPi
- Pobieramy program unetbootin-windows-608, np. stąd
- Wkładamy kartę SD do czytnika i formatujemy ją w systemie plików FAT32,
- Uruchamiamy program unetbootin
- Zaznaczamy opcję Obraz dysku (A), klikamy w klawisz … (B) i wybieramy plik z rozpakowaną wcześniej dystrybucją OctoPi, w zakładce Napęd (C) wybieramy literę dysku, pod którą widoczna jest karta pamięci
- Klikamy OK. i czekamy na ukończenie instalacji
- Po ukończeniu instalacji wyświetli się komunikat z opcją zakończenia programu, lub ponownego uruchomienia systemu
- Zamykamy program i bezpiecznie usuwamy kartę z systemu.
- Tak przygotowaną kartę podłączamy do Raspberry Pi.
Pierwsze uruchomienie i konfiguracja OctoPi:
- Poprzez kabel HDMI podłączamy Raspberry Pi do telewizora lub monitora, włączamy zasilanie i podłączamy dowolną klawiaturę USB.
- Po ekranie ładowania wyświetli nam się następujące okno konfiguracyjne (uruchamia się ono tylko za pierwszym razem).
- Dokonujemy następujących zmian:
a.) 2-Change User Password – domyślnym użytkownikiem (loginem) systemu jest „pi”, ustalamy więc hasło, które będziemy używać przy logowaniu do panelu OctoPi,
b.) 5-Enable Camera- jeżeli planujemy używać kamerki do streamu obrazu, to włączamy tę opcję,
c.) 8-Adwanced Option – Włączamy opcję SSH, dzięki czemu będziemy mogli się logować za pomocą terminala, np. przy pomocy Putty.
d.) Zaznaczamy „Finish” i wciskamy klawisz enter. Następuje reset systemu.
Raspberry Pi – konfiguracja połączenia bezprzewodowego WiFi:
Raspberry Pi możemy oczywiście podłączyć do Internetu poprzez gniazdo RJ45, jeżeli nie mamy jednak możliwości pociągnięcia kabla, to poniżej przedstawiam procedurę konfiguracji połączenia bezprzewodowego. Posłużę się przy tym dostępną za kilka-kilkanaście złotych na serwisach aukcyjnych kartą sieciową Sagem XG-760N. Można użyć oczywiście innej karty, procedura będzie wtedy analogiczna, warto jednak się upewnić, czy karta ta jest kompatybilna z Raspberry Pi.
1. Podłączamy Raspberry Pi (z podpiętym kablem sieciowym oraz kartą Ethernet) do telewizora, monitora lub jeśli znamy IP „maliny” łączymy się poprzez terminal używając Putty
W pole Host Name (or IP address) wpisujemy nasze IP i klikamy Open.
2. Sprawdzamy, czy urządzenie (karta sieciowa Ethernet) jest dostępna wpisując polecenie: lsusb
Jak widzimy, modem został wykryty.
3. Sprawdzamy, czy w systemie są zainstalowane niezbędne sterowniki, za pomocą polecenia: dmesg
Najprawdopodobniej sterowników brak, co przejawia się następującymi komunikatami:
zd1211rw 1-1.3.1:1.0: couldn’t load firmware. Error number -2
usb 1-1.3.1: Could not load firmware file zd1211/zd1211b_ub. Error number -2
Instalujemy, więc brakujące pliki za pomocą polecenia: sudo apt-get install zd1211-firmware
4. Konfiguracja połączenia WiFi: dokonujemy jej edytując plik etc/network/interfaces
Możemy tego dokonać np. używając edytora Nano. W tym celu wykorzystujemy polecenie: sudo nano /etc/network/interfaces
Następnie doprowadzamy plik do zawartości jak na obrazku powyżej zmieniając Iface wlan0 inet manual na Iface wlan0 inet dhpc oraz dopisując i uzupełniając dane dostępowe do naszej sieci, takie jak nazwa sieci i hasło do niej. Zapisujemy zmiany i zamykamy edytor przy pomocy klawiszy Ctrl+Q i potwierdzamy zmiany klawiszem Y.
5. Połączenie z siecią – po wykonaniu opisanych wcześnie czynności restartujemy Raspberry Pi oraz wykonujemy reset połączenia sieciowego:
sudo /etc/init.d/networking restart
sudo ifdown wlan0
sudo ifup wlan0
Następnie sprawdzamy połącznie za pomocą komendy Ifconfig.
Możemy stąd między innymi odczytać IP naszego Raspberry Pi. Po tych czynnościach nasz serwer jest gotowy do uruchomienia.
Rozpoczęcie pracy z serwerem:
Po wykonaniu wszystkich powyższych czynności jesteśmy gotowi do pierwszych zdalnych wydruków. W tym celu podłączamy drukarkę do Raspberry Pi i podłączamy wszystko do prądu. Po odczekaniu krótkiej chwili, w której uruchamia się system w „malinie”, otwieramy przeglądarkę internetową i w pole wpisywania adresu, wpisujemy IP Raspberry Pi.
Powinna ukazać się następująca strona:
Dane do logowania są takie, jakie ustaliliśmy w pierwszych krokach niniejszego poradnika. Klikając w przycisk „settings” możemy pozmieniać ustawienia podstawowych parametrów, takich jak ustawienia połączenia z drukarka oraz ścieżkę dostępu do programu Cura.
W zakładce „Temperature” możemy ustawić temperaturę stołu oraz głowicy drukującej.
W zakładce „Control” możemy sterować ekstruderem oraz osiami naszej drukarki.
W zakładce „GCode Viewer” mamy podgląd na drukowaną aktualnie warstwę.
Jeśli posiadamy kamerkę internetową, kompatybilną z Raspberry Pi, to w zakładce „Timelapse” możemy uzyskać np. podgląd pola roboczego naszej drukarki 3D.
Schemat postepowania przy druku z OctoPrint:
- Po ustawieniu parametrów połączenia klikamy w „Connect”.
- Rozgrzewamy stół i głowicę wpisując pożądane wartości w pola „temperature” i „bed temperature”.
- W polu „Files” wczytujemy utworzony wcześniej przez nas w jakimkolwiek slicerze plik gcode.
- Po załadowaniu pliku klikamy ikonkę drukarki wyświetlającą się po najechaniu na niego kursorem.
- Po uruchomieniu druku, możemy wyłączyć komputer. Jeżeli mamy taką potrzebę to możemy uzyskać połączenie z pulpitem OctoPi z dowolnego innego komputera.