Skip to content
Jaroslav Beran edited this page Nov 15, 2017 · 14 revisions

Grafická jednotka XY 4131, XY 4140, XY 4150

Laboratorní přístroje Praha

Obsah

Úvod

Pokud se Vám do ruky dostala grafická jednotka XY 41xx (nebo i jiný typ) a nevíte si rady jak jí zprovoznit na svém počítači, tak právě pro Vás je tato stránka určená. Najdete zde způsob propojení jednotky s PC, nebo Raspberry PI. Také zde najdete ovládací program napsaný v jazyce C, který Vám umožní kreslit vektorovou grafiku.

Jestliže umíte pájet a znáte základy jazyka C, tak pro Vás zřejmě nebude velký problém zprovoznit jednotku pro jiný počítač s jiným rozhraním. V těchto případech uvítám jakoukoliv zpětnou vazbu.

Grafická jednotka

Charakteristické vlastnosti grefické jednotky XY 41xx jsou: pohony os krokovými motorky, rozlišení 0,1 mm/krok, formát papíru A4 a rychlost kreslení čáry 100 mm/s.

Všechny úkony při kreslení a výpisu řídí vnitřní procesor mikropočítače dle programu. Způsob programování je založen na použití mnemotechnického kódu, doplněného o případné parametry. Je tedy pro uživatele "přátelským". Sada povelů dovoluje vynášení vektorů, bodů, kružnic a kruhových oblouků, vykreslení okénka, výpis řetězců znaků libovolné velikosti v libovolném směru a s libovolnám sklonem při respektování českých a slovenských diakritických znamének, volbou typu čáry, kopii obrazovky, změnu měřítka kresby a další užitečné funkce.

Původní dokumentace

Záznamová pera

Spolu s jednotkou byly dodávány 2 typy záznamových per. Kuličkové (propiska) a s plastickým hrotem (mikrofixa). Nevím, zda dosud tyto pera někdo vyrábí, nicméně je možné do původního obalu pera instalovat plastický hrot a náplň z nové mikrofixy.

Druhou možností je použití trubičkových per CENTROGRAF plněných tuší různých barev. Podrobnosti naleznete v původní technické dokumentaci v kapitole "Příslušenství a náhradní díly".

Známé problémy a jejich řešení

Řešil jsem problém s nefunkčním ovládáním pera, kdy elektromagnet nepokládal pero. Příčinou byl utržený drátek v konektoru propojujícím základní desku s mechanikou posuvů. Drátky jsou poměrně tenké a tak je snadné je utrhnout v místě letování. Pokud tedy řešíte podobný problém doporučuji začít kontrolou těchto vodičů.

Propojovací kabel

Zapojení konektorů plotru

Popis pinů: Signál: Poznámka:
1 PEN zvednutí, položení pera
2 STEP jeden krok motorku
3 X/Y volba osy - horizontální, nebo vertikální posun
4 ± volba směru pohybu - krok vpřed, vzad
5 READY signál od XY plotteru - připravený pro práci
6 GND Zem (signálová)

Propojení PC s plotrem přes paralelní port

PC-printer port       XY4131        XY4140        XY4150
    4 ------------------ 1 ----------- 1 ----------- 1
    5 ------------------ 2 ----------- 2 ----------- 2
    3 ------------------ 3 ----------- 3 ----------- 3
    2 ------------------ 4 ----------- 4 ----------- 4
    18------------------ 6 ----------- 6 ----------- 6

Propojení Raspberry PI s plotrem přes GPIO

GPIO rozhraní Raspberry PI pracuje s napětím 3,3V, zatímco grafická jednotka s napětím 5V. Pokud byste tedy propojili Raspberry s jednotkou napřímo, tak byste Raspberry zničili. Propojení provedeme pomocí tranzistorového rozhraní zapojeného dle následujícího schematu.

Ovládací program

Společně s grafickou jednotkou byl dodávaný ovládací program napsaný v assembleru, který se zavedl do paměti počítače a umožňoval pomocí příkazů kresilt vektorovou grafiku a psát text. Na tehdejší dobu byl tento ovládací program velmi kvalitní co se poskytovaných funkcí týče.

Cílem tohoto projektu je rekonstrukce ovládacího programu a jeho implementace v jazyce C, krerý je snadno portovatelný na různé operační systémy a různé počítače. Existuje i překladač pro 8-bitové procesory SDCC - Small Device C Compiler.

Stažení programu PlotterController a jeho sestavení

Pro sestavení programu budete potřebovat překladač jazyka c a utilitu make. V případě Linuxu provedete instalaci překladače a utility make například takto:

apt-get install gcc
apt-get install make

V případě Windows doporučuji použít MinGW.

V prostředí DOSu je možné projekt zkompilovat v Turbo C 2.01 (které je volně ke stažení).

Projekt rozbalte do adresáře PlotterController. Aktuální verzi můžete stáhnout přímo z Githubu:

git clone https://github.com/berk76/plottercontroller PlotterController

Program sestavte následujícím způsobem:

cd PlotterController
make

Výsledkem je spustitelný soubor plotter_controller. Po jeho spuštění se objeví menu s demo příklady.

Povolení přístupu na paralelní port

V prostředí Linuxu zkontrolujte, že máte práva pro čtení a zápis do /dev/parport0. Nepoužívejte /dev/lp0 (ten umožňuje pouze zápis a ne čtení).

V prostředí MS Windows je potřba povolit přímý přístup na paralelní port. To provedete utilitou UserPort (postupujte dle přiloženého návodu).

Příklad použití

PlotterController je knihovna funkcí pro práci s grafickou jednotkou. Příklad použití je zde:

#include <stdio.h>
#include "printer.h"
#include "graph.h"
#include "text.h"


int main(int argc, char **argv) {

        PRINTER *prn;
        if ((prn = pr_create_printer(PARPORT, "/dev/parport0")) == NULL) {
                fprintf(stderr, "Error: Cannot access port\n");
                return -1;
        }

        pr_init(prn);                   /* Inicializace jednotky */
        POSITION paper = pr_get_max_position(prn);

        xy_vr(prn, paper.x, 0);         /* Vykresí čáru na pozici (vector relative) */
        xy_vr(prn, 0,paper.y);
        xy_vr(prn, -paper.x,0);
        xy_vr(prn, 0,-paper.y);
        xy_vr(prn, paper.x,paper.y);
        xy_mr(prn, 0,-paper.y);         /* Přesune se na pozici (move relative) */
        xy_vr(prn, -paper.x,paper.y);

        xy_set_font_size(8);            /* Nastaví velikost písma */
        xy_set_text_angle(M_PI_2);      /* Nastaví orientaci textu */
        xy_ma(prn, paper.x - 100, 100); /* Přesune se na pozici (move absolute) */
        xy_vs(prn, 7);                  /* Nastaví rychlost 7 (velocity set) */
        xy_write(prn, "Hello World!");  /* Vypíše text */

        xy_hm(prn);                     /* Zaparkuje pero (home) */

        pr_close_printer(prn);
        return 0;
}

Kompletní výčet funkcí naleznete v souborech graph.h, text.h a hpgl.h. Další příklady použití jsou v souboru main.c. Pokud byste připojili nějaký další plotter (například Alfi), rád uvítám Vaší zpětnou vazbu.

YouTube

RPi is drawing

RPi is typing

Externí linky

Kontakt

Uvítám jakoukoliv zpětnou vazbu na mailové adrese jaroslav.beran@gmail.com

Clone this wiki locally