wersja mobilna | kontakt z nami

Podwieszany ploter z Raspberry PI

Numer: Lipiec/2016

Wydruk dużych schematów i grafik wektorowych nierzadko stanowi problem. Zazwyczaj stosuje się w tym celu plotery, których koszt zakupu wcale nie jest mały. Ploter można też zbudować samodzielnie, względnie niedużym kosztem, np. w oparciu o Raspberry PI. Co prawda nie będzie on miał precyzji urządzeń profesjonalnych, a tempo pracy będzie raczej powolne, ale po udoskonaleniu może okazać się przydatnym narzędziem. W artykule prezentujemy ploter tego typu, opracowany przez Norberta Heinza z Niemiec.

Pobierz PDF

rys-1Autor projektu od lat tworzy maszyny CNC i podobne urządzenia własnej konstrukcji. Jego projekty oparte są na długoletnim doświadczeniu oraz służą do opracowywania kolejnych urządzeń. V plotter jest jedną z nowszych maszyn i wykorzystuje komputer Raspberry PI. Ponadto, całość, choć ma względnie nieduże wymiary, pozwala na rysowanie na teoretycznie dowolnie dużych powierzchniach. Wynika to z faktu, że głowica plotera wisi na dwóch linkach i rysuje po kartkach umieszczonych pionowo, na tablicy ze sklejki lub drewna. Wygląd tego nietypowego urządzenia pokazano na fotografii 1.

Elektryka i mechanika

Od strony elektrycznej, V plotter składa się z jednego Raspberry PI, dwóch silników krokowych oraz sterujących nimi dwóch podwójnych modułów z mostkiem H, a także z dodatkowego, małego serwonapędu, sterowanego bezpośrednio z GPIO komputerka. Sposób wykonania połączeń elektrycznych został przedstawiony na rysunku 2.

rys-2Silniki krokowe są przymocowane do kół zębatych, które służą jako przekładnie. Koła przytwierdzone są do tablicy z użyciem łożysk kulkowych. Wewnętrzny pierścień łożyska nie obraca się i sztywno trzyma tablicy. Zewnętrzny jest przyklejony do koła zębatego i obraca się razem z nim. Na zewnętrzny pierścień łożyska jednego koła zębatego przy prawym silniku i odpowiadającego mu łożyska koła przy lewym silniku nawinięte są linki. Drugi koniec linek jest przymocowany do głowicy drukującej. Głowica zawiera pisak oraz lekki serwonapęd, podłączony luźno zwisającym przewodem do GPIO Raspberry PI. Pisak jest zamontowany za pomocą uchwytu, do metalowej, perforowanej blaszki. Blaszka przyczepiona jest w jednym punkcie do akrylowej płytki. Miniaturowy serwonapęd jest zamontowany również na blaszce, ale w taki sposób, by jego ruch powodował wyginanie się metalu i odchylanie pisaka od akrylowej płytki. Otwór w płytce sprawia, że jeśli pisak jest do niej przysunięty, w praktyce dotyka końcówką kartki i może po niej rysować. Wygięcie serwonapędem blaszki odsuwa pisak od kartki, co pozwala na przesuwanie głowicy po papierze bez pozostawiania śladu.

Kluczowe było użycie odpowiednio małego serwonapędu, by nie uczynić głowicy zbyt ciężką. Ważne jest też by sensownie poprowadzić przewody, tak by nie plątały się. Użycie płytki akrylowej pozwala też stabilniej trzymać pisak względem kartki. Dzięki niej pisak nie obraca się w żadnej płaszczyźnie, ani nie buja – tarcie kartki o płytkę szybko tłumi taki ruch.

Sam komputer jest umieszczony w górnej części plotera i przymocowany do tablicy, mniej więcej na wysokości silników krokowych. Moduły mostków umieszczone są pomiędzy Raspberry PI a silnikami. Nawijanie i rozwijanie linek za pomocą silników powoduje ruch głowicy względem kartki. Wykorzystywana jest przy tym grawitacja – Równomierne i równoczesne rozwijanie linek powoduje opuszczanie głowicy pionowo w dół, a ich nawijanie – ruch do góry. Jeśli rozwijana jest tylko jedna linka, głowica opuszcza się po łuku okręgu o promieniu równym aktualnej długości drugiej linki i środki w punkcie drugiej osi. Oczywiście, osie kół na które nawijane są linki muszą znajdować się na skrajach kartki, gdyż ograniczają obszar wydruku od lewej i prawej.

Matematyka

Obliczenie tego, jak przekłada się pozycja silników na pozycję pisaka wymaga zastosowania wielu obliczeń matematycznych. Po pierwsze, należy obliczyć, jak przekłada się długość rozwiniętych linek na pozycję względem kartki. Sumaryczna długość rozwiniętych linek nie może być mniejsza od odległości pomiędzy osiami kół, na których linki są nawijane. Jeśli długości rozwiniętych linek są sobie równe, głowica jest umieszczona po środku, pomiędzy osiami, a pozycja w pionie zależy od sumarycznej długości rozwiniętych linek.

Budując samodzielnie ploter tego typu trzeba dokładnie określić odległość pomiędzy serwonapędami (a dokładniej, pomiędzy punktami, z których wyprowadzone są linki – warto je precyzyjnie ustalić, np. poprzez użycie dodatkowych, małych, metalowych oczek). Autor stworzył oprogramowanie w taki sposób, że po zamontowaniu plotera ustala się punkt startowy głowicy, będący lewym, górnym rogiem zadrukowywanej kartki. Współrzędne tego punktu, wyrażone w milimetrach, wraz z odległością pomiędzy punktami wyprowadzeń linek, należy podać jako parametry programu. Konieczne jest też sprawdzenie, jak przy zastosowanych kołach zębatych i silnikach krokowych, jeden krok przekłada się na ruch głowicy. W tym celu użytkownik musi najpierw zmierzyć odległość w linii prostej głowicy w pozycji startowej od punktu wyprowadzenia jednego z silników, a następnie wykonać nim 2000 kroków. Gdy głowica osiągnie nową pozycję, następuje kolejny pomiar jej odległości od punktu wyprowadzenia linki tego silnika. Różnica w pomiędzy odległością końcową a początkowo to długość, na jaką wysuwana jest linka po 2000 krokach. Program wymaga podania ile kroków przypada na wysunięcie linki o 1 mm. Można jeszcze zastanowić się nad zależnością szybkości rozwijania linki od jej aktualnego stopnia nawinięcia – w końcu im warstwa linki na łożysku jest grubsza, tym efektywna średnica szpuli większa, a więc każdy obrót koła powoduje szybsze rozwijanie linki. W praktyce jednak, przy zastosowanych łożyskach, których zewnętrzna średnica to 30 mm, 140-centymetrowa linka nie powoduje znaczącego zwiększenia grubości szpuli nawet przy pełnym nawinięciu i można ten problem pominąć.

rys-3Umiejąc przeliczać liczbę przebytych kroków jednego i drugiego silnika na długość rozwijanej linki oraz znając aktualną pozycję głowicy, można obliczać liczby kroków potrzebne do przesunięcia głowicy do nowej pozycji. Trzeba jednak pamiętać, że tor ruchu głowicy pomiędzy dwoma punktami znajdującymi się od siebie w tej samej odległości będzie zależał od ich pozycji względem powierzchni zadrukowywanej. Przykładowo, silniki krokowe, poruszając się jednocześnie, przy równo wysuniętych linkach, będą sprawiały że głowica będzie się poruszała pionowo w górę lub w dół. Natomiast jeśli  początkowo linki nie będą w równym stopniu rozwinięte, każdy równocześnie wykonany krok będzie powodował przesunięcie głowicy po ukosie, pod kątem zależnym od aktualnych proporcji długości rozwiniętych linek.

Inaczej mówiąc, ploter powinien otrzymywać dokładnie obliczane pozycje punktów na rysowanych liniach, a nie tylko początek i koniec linii. Dzięki temu, tor poruszania się głowicy będzie dokładnie taki, jak potrzeba, a jednocześnie sam ruch i tak będzie płynny, gdyż szybkość sterowania silnikami krokowymi z użyciem Raspberry PI jest wystarczająco duża.

rys-4Zasilanie

Zastosowane silniki krokowe to japońskie modele KP4M2-217 firmy Tandon (fotografia 3). Pobierają prąd zależny od podłączonego napięcia. Przy 12 V przepływa przez nie 340 mA, co przekłada się na ok. 4 W mocy, a przy 5 V prąd spada do 150 mA, a więc pobierana moc spada do ok. 0,75 W. Użyte moduły z mostkami bazują na układach L298N (fotografia 4), a więc scalonych, dwukanałowych sterownikach silników. Ich maksymalny prąd ciągły to 2 A, ale autor twierdzi, że mocno się nagrzewają już przy 1 A.

W efekcie potrzebne jest jedno źródło napięcia do mostków (5…12 V) i jedno 5-voltowe do zasilania Raspberry PI oraz serwonapędu umieszczonego na głowicy. Masa jest wspólna dla wszystkich elementów.

lst1Oprogramowanie

Autor napisał program w języku C i udostępnił jego kod źródłowy. Program korzysta z biblioteki wiringPi, którą można także bezpłatnie pobrać z Internetu i zainstalować. Najlepiej zrobić to z użyciem polecenia git, które w razie potrzeby też trzeba doinstalować. W Raspbianie służą do tego komendy:

sudo apt-get update
sudo apt-get install git-core

Pobranie i instalowanie wiringPi poleceniem git odbywa się następująco:

git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build

Pobrany kod źródłowy można skompilować za pomocą komendy gcc:

gcc v-plotter.c –o v-plotter  -I/usr/local/include -L/usr/local/lib -lwiringPi –lm

a później by go uruchomić, wystarczy wpisać:

./v-plotter

Fragmenty kodu źródłowego wraz z komentarzami pokazano na listingu 1.

Program pozwala na wczytywanie plików SVG, przy czym rysuje jedynie kontury, a nie wypełnienia. Ponadto, wszystkie obiekty muszą być przekonwertowane na wielokąty.

Podsumowanie i ocena projektu

rys-5Przygotowany projekt pokazuje, pokazuje jak łatwo jest wykonać przydatne urządzenie elektromechaniczne z użyciem niedrogiego komputera jednopłytkowego. Fakt wykorzystania komputera z systemem operacyjnym, zamiast modułu typu Arduino, które autor wykorzystuje w wielu innych swoich projektach, zdecydowanie ułatwia wykonywanie wydruków w oparciu o pliki graficzne. Co więcej, użycie Raspberry Pi z bezprzewodowym interfejsem sieciowym sprawia, że ploter pracuje bezprzewodowo – przekazywanie plików do druku może odbywać się przez sieć Wi-Fi, za pomocą SSH.

Warto też zwrócić uwagę na staranność wykonania projektu. Autor, dzięki dużemu doświadczeniu wiedział, co będzie istotne w tego typu konstrukcji. Zastosował łożyska, przekładnie, a linki utrzymujące głowicę wyprowadził z użyciem dodatkowych, miniaturowych przelotek. W programie uwzględniono także fakt rozciągania się linek. Zjawisko to ma różne nasilenie, w zależności od rodzaju użytych linek oraz od pozycji głowicy. Im jest ona wyżej, tym naprężenie linek silniejsze. Niestety, głowicę plotera wykonano „jako tako” – jej wygląd prezentuje fotografia 5. Być może autor chciał jak najszybciej zobaczyć efekt swojej pracy, bo tak naprawdę najważniejszym elementem plotera jest układ napędowy i jego oprogramowanie – głowica jedynie trzyma pisak.

Co ciekawe, rzadkością jest też użycie języka C, który w projektach dla Raspberry PI pojawia się rzadko. Autor jednak wykorzystał swoje doświadczenie w tym języku, wynikające z wykonania wielu projektów na Arduino. Sam projekt może też stanowić podstawę do realizacji innych urządzeń, w których pozycja jakiegoś elementu jest zależna od ustawienia silników krokowych.

Marcin Karbowniczek, EP

Dodatkowe informacje:
Opis całego projektu można znaleźć pod adresem http://goo.gl/BmiFyT, kod źródłowy programu dostępny jest na stronie http://goo.gl/GAQgyJ, a dodatkowo autor opublikował film na YouTube, gdzie przedstawia działanie i budowę plotera – można go obejrzeć pod adresem: https://goo.gl/iRHqom.

Pozostałe artykuły

Restarter do routera sterowany za pomocą SMS

Numer: Czerwiec/2016

Nikogo nie trzeba przekonywać o tym, jak bardzo jesteśmy uzależnieni od Internetu. Nie trzeba też przekonywać, jak irytujące mogą być niespodziewane przerwy w dostępie. Wiele z takich awarii można łatwo usunąć poprzez zrestartowanie routera lub modemu. Oczywiście, o ile mamy do niego łatwy dostęp. Jeśli nie, to idealnym rozwiązaniem będzie prezentowane urządzenie. Może służyć do zdalnego włączania, wyłączania lub restartowania ...

Automat do gier z Raspberry Pi

Numer: Czerwiec/2016

Miniaturowe komputery mają obecnie moce obliczeniowe znacznie przewyższające możliwości pełnowymiarowych komputerów z przed kilku-kilkunastu lat. Dotyczy to także specjalizowanych komputerów do gier wideo. Z całą pewnością wielu starszych czytelników EP miło wspomina czas spędzony w salonach gier, gdy królowały Pacman i Galaxians. Takie zamiłowanie do starych gier sprawiło, że na świecie opracowano bardzo wiele projektów, ...

Raspberry TOR Router

Numer: Czerwiec/2017

Korzystanie z sieci TOR nie jest specjalnie trudne, ale wymaga nieco zachodu. W praktyce każde urządzenie, na którym chcemy puścić ruch sieciowy poprzez szereg anonimowych routerów musi mieć zainstalowane odpowiednie oprogramowanie. Da się to jednak obejść w całkiem łatwy sposób - wystarczy tylko posiadać taki komputerek, jak Raspberry Pi.

Kot z dostępem do Internetu

Numer: Maj/2017

Choć prima aprilis już minął, publikujemy opis projektu, który na pierwszy rzut oka będzie wydawał się żartem. I fakt ? opisywany w nim projekt powstał jako żart, ale mamy wrażenie, że sama idea jest godna zastanowienia i może być podstawą do opracowania bardziej sensownych i przydanych rozwiązań. Dlatego prezentujemy "Kota IoT", na którego pomysł wpadł Jeremy Wall z Kalifornii.

Raspberry PI jako koparka bitcoinów

Numer: Maj/2016

Kryptowaluty coraz odważniej wkraczają do naszego życia. Bitcoin - najbardziej popularna z nich nie tylko została niedawno oficjalnie uznana w Europie za walutę, a nie towar, co ułatwia transakcje, ale też bywa akceptowana przez rosnącą liczbę firm. Pod pewnymi względami przypomina też złoto - jego zasoby są ograniczone i trzeba je wydobywać. Tyle, że zamiast przesiewać grunt na Alasce czy kopać kilofem pod ziemią, można to ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Sierpień 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym