Home

Jaroslav Beran edited this page Nov 19, 2017 · 11 revisions
Clone this wiki locally

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
  • 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ý". 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 ho 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 superplot 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í nalezente v API dokumentaci. 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

Zde uvádím dvě videa, kde je jednotka XY4150 připojená k Raspberry PI a ovládaná programem PlotterController.

RPi is drawing

RPi is typing

Externí linky

Kontakt

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