Plotterist

Plotter, on printer, mis prindib rastergraafika asemel vektorgraafikat. Kõik kaameratega tehtud asjad on alati rasterid. Tihti on joonised, kaardid, logod ja tähed vektorgraafika.

Meie robootikaringis oleva plotteri mudelinumber on Roland DPX-3500. Täpset vanust me öelda ei oska, aga esmakordselt tuli see mudel välja umbes aastal 1990. Nimelt on tegu Ameerika Ühendriikides toodetud seadmega ja sealne vaste tehnilise järelvalve ametile, FCC, sertifitseerib ära iga elektroonilise seadme mingi n-ö. FCC ID‘ga. Need on kõik internetis olemas. Seetõttu teame, et seade DPX-3500 võis esmakordselt minna müügile 1990 aastal.

Et seade on nii vana, siis tootja poolne tugi on üsna nõrk. Tugi lõpetati ära driveriga Windows 2000 jaoks. Asusime leiutama, kuidas võiks sellist asja tööle saada. Teadsime, et üks selle seadme putitaja oli oma plotteri kuidagi saanud tööle Windows XP lauaarvutiga ning asusime seda teed pidi liikuma. Plottereid kasutatakse tihti arhitektuuris ja üldiselt tehniliste jooniste jaoks. Meie lauaarvutis oli olemas CAD tarkvara AutoCAD iidvana versioon. Sellega tegelemine oli päris vaevarikas. Isegi, kui suutsime tarkvarast aru saada, siis jäi alles veel driverite probleem.

Driverite otsing
Ekraanitõmme WinLine veebilehest

Ekraanitõmme WinLine veebilehest

Googeldamise järel leidsime üles WinLINE tarkvara. Tegu on tarkvara paketiga, mis sisaldab hunnikus iidsete seadmete draivereid ja need saanud tööle modernsete Windows’i versioonidega. Selle eest küsivad nad muidugi suurt raha – 178.20€. Seda raha meie eelarves polnud (ega raatsinud ka) aga katsetasime nende proovi varianti ikka. See lasi ploterdada mida iganes soovisid. Peale seda, kui plotter kujundi valmis joonistas, asus ta WinLINE logo ilusa pildi peale joonistama, et autoriõiguseid kaitsta. Vahepeal tuli meile mõte lihtsalt kasutada seda ja lülitada plotter välja kohe kui ta hakkab logo tegema. See muutus väga tülikaks, nii et otsustasime edasi otsida.

Lõpuks leidsime ikkagi sobiliku draiveri, mis ei kirjutanud logo hiljem peale. CAD tarkvara abil saime me väga hästi plotteriga valmistada nüüd täpseid tehnilisi jooniseid. Nii valmistasime ka üsna mitu asja robootikaringi jaoks. Seinte peale paar A1 formaadis plakatit koos tekstiga Asimovi seaduste kohta ja FLL põhiväärtustega.

Pildid on põnevamad kui tekstid

Tekkis suur soov lisaks tekstile ja kujunditele joonistada ka keerulisemaid asju nagu kaardid, logod ja muud joonised, mida võib internetist leida. Kõige populaarsem failiformaat on vektorgraafika jaoks .SVG. Seda CAD tarkvara AutoCAD ei toeta. Selle põhiline failiformaat on hoopis DXF. Seega pidime spetsiaalselt otsima vaid DXF formaadis vektorgraafika.

Peale googeldamist avastasime saidi lovesvg.com. Sealt avastasime tasuta vektor graafikat. Meie õnneks oli iga pilt saadaval lisaks SVG formaadile ka meile sobilikus DXF formaadis. Kahjuks oli internetist nende failide allalaadimine õudne protsess. Arvuti oli nii aeglane, et internetist alla laadimine võttis rohkem kui 5 minutit. Veebibrauser avanes ainuüksi paar minutit ja iga lehe laadimine võttis ka umbes sama kaua. Vahepeal kasutasime lähenemist, mille korral laadisime teises arvutis faili internetist mälupulgale ja seejärel tõstsime mälupulgalt lauaarvutisse. Ka see protsess oli arvuti aegluse tõttu väga tülikas ja CAD tarkvaraga pidi samuti kaklema.

Väike automaatika

Selle probleemi ajutiseks lahenduseks proovisime protsessi automatiseerida. Valmistasime veebilehe, mis avalikul internetiaadressil hoidis üht DXF faili. Lauaarvutisse kirjutasime kasutades AutoHotKey’d ja arusaadamatut teed pidi WGET’i Windows’i jaoks programmi, mis käis pidevalt seda faili alla laadimas. Iga kord, peale allalaadimist, kalkuleeris faili hashi ja siis võrdles seda eelmine kord allalaetud sama faili hashiga. Kui need erinesid, siis avas allalaetud DXF faili AutoCAD’iga ja pani selle plottima. Failide allalaadimine toimus enamjaolt taustal ja pool aktsepteeritavalt. Aga, plottimine oli väga kehvasti tehtud. Et, me ei suutnud leida käsurea attribuute, millega AutoCAD’i käivitada, et ta koheselt plottima hakkaks. Siis pidime käivitama AutoCAD’i andes talle DXF faili. Sellisel juhul kulub käivitumiseks minut. Meie programm ootab igaks juhuks poolteist minutit, siis vajutab Tabi kindel arv kordi, et valida paneelilt õige nupp. Seejärel Enter, et avada menüü. Nii suutis meie kood asju ploterdama panna, teadmatuses millistele nuppudele pihta sai. Aga selline lahendus vajas arvuti jaoks internetti.

Robootikaringis ei olnud interneti saamine keeruline. Võrgukaableid leidub igal pool ja meil on LAN võrk olemas. Väljaspool oma maja toimunud üritustel oli sellise võrguühenduse leidmine palju keerulisem. Proovisime kasutada telefoni. Android telefon oskab jagada oma 4G või WiFi internetiühendust üle USB. Arvuti näeb telefoni kui USB LAN adapterit ja ühendub kenasti internetti. Kuna tegu oli Windows XP arvutiga, siis selline võimalus ei olnud kasutatav. Lõpuks kasutasime Apple arvutit, mis oskab jagada erinevaid võrguühendusi oma LAN pesa kaudu üllatavalt hästi.

Internetiühenduse olemasolul see isegi teataval määral töötas, kuid Windows XP arvuti interneti ühendus oli ikkagi väga aeglane. Meie vahepealne programm tegi protsessi mugavamaks ja natukene ilusamaks. Saime näidata kõigile kena veebilehte, kuhu sai faili üles laadida, ja näitas ploterdamis staatust.

(Tegelikult me ei teadnud, millal ploterdamine lõpetas. Veebileht lihtsalt ootas 3 minutit, enne kui muutis nupu roheliseks andes teada, et saab uuesti ploterdada)

GoPlot AutoCAD’i asemel

Järgmine suur tehnoloogiline areng oli alternatiivse tarkvara leid iidse AutoCAD’i asemel. Selleks oli GoPlot (http://www.noliturbare.com/plot-print/goplot-classic), mille leidsime peale pikka googeldamist. Tegu on lihtsa Windows’i tööriistaga, mis töötab enamike Windows’i versioonidega. Programm võimaldas lugeda HPGL faili ja panna plotteri seda joonistama. Kui arvutis oli vajalik plotteri draiver installeeritud, ei pidanud enam kannatama aeglase AutoCAD’i all, mis tegi elu lihtsamaks. Siiski pidime internetis saadavad DXF ja SVG failid tegema HPGL failideks ja draiverid, mis sobisid vaid Windows XP’le.

USB to LPT adapter

Pikka aeg olime kinni selles vanas lauaarvutis, mitte ainult tarkvara pärast vaid ka riistavaras LPT (Paraleel port) plotterile andmete edastamiseks. Et, seda ületada uurisime PCI LPT kaardi või USB LPT kaabli olemasolu. Leidsime, et sellised seadmed eksisteerivad, kuid internetis räägitakse nende halva töökindluse kohta. Pooltel on olnud edu ja pooltel mitte. Otustasime, siiski proovida lootuses saada kasutusse väikesem ja võimsam arvuti. Katse osutus edukaks. Ühendasime LPT kaabli USB juhtmega otse arvuti külge. Nüüd oli vaja muretsema mõni uuemat arvuti, millele windows XP installida ja kasutada USB adaptrit, et asendada vanat lauaarvutit.

Linux päästab päeva!

Olime varasemalt avastanud erinevaid plottimis lahendusi, mis olid vabavaralised või linuxi baasil, kuid ei riskinud töötavat Windows XP’ga lauaarvutit Linux’iga asendada. Võimalus oleks Live CD, kuid BIOS keeldus bootima mälupulgalt ja CD plaate Linux operatsioonisüsteemiga meil polnud. Seetõttu jäid Linux’iga katsed varem poolikuks. Tänu uuele USB LPT adaptrile muutus võimalikuks kasutada mis iganes Linux’i masinat.

Googeldamise käigus leidsime ka huvitava blogi postituse, mis rääkis detailselt, kuidas Linux’i abil oli saadud tööle plotter (http://www.alfredklomp.com/technology/plotter/). On mõned tähtsad erinevused meie tehtu ja blogis tehtud vahel:

  • Erinev mudel ja tootmis aasta
  • Blogis on plotteril Serial interface, meil ainult LPT
  • Blogis ühendati Serial otse arvuti Serial porti, meil on vahel USB seade

Võtsime ühe kasutu arvuti ja installisime sinna meie lemmik Linux’i distro Ubuntu. Käsureal kasutades käsku lspci ja lsusb suutmise kindlaks teha, et arvuti tuvastas USB seadme. See oli hea algus. Pannes kokku selle, mida olime näinud blogipostituses (Seadmele andmete saatmine tähendab Linux’i failisüsteemis faili andmete kirjutamist) ja seda, mida googeldades olime leidnud USB LPT adapteri, kasutades selleks /dev/usb/lp või /dev/parport faili. Niiviisi suutsime käsurea kaudu edastada Linux’i masinast faile, mis ei teadnud ühendatud plotteri kohta mitte kui midagi ja käivitas HPGL faili läbi USB LPT kaabli plotterisse, et panna see printima.

HPGL failide tegemine

Siiani oleme palju rääkinud riist- ja tarkvaralistest probleemidest, mis esinevad peale valminud HPGL fail. HPGL fail on väga sarnane GCode’le. Tegu on plotteri failiga, mis sisaldab spetsiifilisi instruktsioone, näiteks: mine positsioonile; tõsta pliiats üles või suru alla (täielik nimekiri siin ja siin).

GCode failid genereeritakse 3D mudeli ja HPGL failid 2D vektor joonise alusel. Praktiliselt ainus vabavaraline vektor tarkvara on Inkscape. Sellest saime abi ka HPGL failide loomisel. Googeldades leidsime infot erinevate pluginate kohta, mida pole pikalt uuendatud. Avastasime, et tegelikult on ilma muutusteta see uuematesse versioonidesse sisse ehitatud, avades mõne vektor faili ja salvestades HPGL’i. Hoiatame, et HPGL’ina salvestamine on ajakulukas protsess. Lihtsamate kujundite puhul valmib see paari sekundiga, kuid suuremad objektid, näiteks kaart, võtab lausa mitmeid minuteid. Inkscape tarkvara ei näita ühtegi laadimisriba salvestamise jooksul. Ainus viis kindlaks teha, et protsess on pooleli on htop või muu sarnane tegumihalduri tööriist  ja sealt leida protsess Pythoni skript, mis tegeleb HPGL’i konvertimisega.

Alade värvimine plotteriga

Alad, mis on seest täidetud, koosnevad joontest. Jooned on plotimise jaoks ebasobilikud. Seetõttu vaikimisi Inkscape ignoreerib neid. Kui on soovi, et plotter ala tegelikult ära värviks, peame värvitud ala teisendama joonteks, mis selle ala moodustaksid. Sellist ala joontega värvimist (viirutamist)  nimetatakse ingl.k. “hatching”. Googeldades leidsime, et Inkscape’le on olemas plugin selle jaoks, originaalis mõeldud projekti jaoks “Egg-Bot” (muna värvimis robot). Nende pluginate installimise jaoks on instruktsioonid nende Wiki’s. Wiki’s on detailne seletus plotteri laadse seadmega alade värvimise kohta ja erinevatest lahendustest (siin). Nende hatch fill plugina abil saamegi avada mõne SVG faili, sealsed regioonid muuta joonteks ja salvestada HPGL failina.

Peame hoiatama, et selline protsess on väga ajakulukas ja kulutab ka palju kirjutusvahendit. Valede seadmete puhul hatching plugin võib jätta joontele liiga suured või väikesed vahed. Liigselt väikeste joonte vahega on tõenäoline värvida paberisse auk ja rikuda pliiats ära.


Kristjan Variksoo

Ma tegelen palju arvutitega. Mulle meeldib programmeerida ja valmistada veebilehti. Minu tehtud asjad ei pruugi näha küll väga ilusad aga need teevad midagi uut ja huvitavat. Ning see on minu arvates kõige tähtsam - Teha midagi uut ja huvitavat.

Lisa kommentaar

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga

This site uses Akismet to reduce spam. Learn how your comment data is processed.