-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Laboratorní přístroje Praha
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.
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.
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".
Ř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čů.
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á) |
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
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.
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.
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.
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).
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.
- http://www.sapi.cz/prislusenstvi/xy4150.php
- http://www.root.cz/clanky/tiskarny-a-plottery-vyrabene-v-ceskoslovensku/
- http://www.pslib.cz/museum/index.php?singleitem=463&menuopen=15
- http://blog.3b2.sk/igi/post/Plotter-XY4140-XY4150.aspx
- http://www.volny.cz/kapp/XY4140.htm
Uvítám jakoukoliv zpětnou vazbu na mailové adrese jaroslav.beran@gmail.com