HPGL kontrolér pro plotr verze 1.0 Jednoduchý HPGL kontrolér pro plotr Minigraf 0507, Amagraf 0517 nebo podobný. Komunikuje sériovým kanálem 9600Bd softwarovým handshackem pomocí omezené sady HPGL povelů. Nahrazuje softwarový ovladač, který v době moderních operačních systémů nelze použít
Popis konstrukce Řadič je řízen jednočipem 89C4051 s převodníkem MAX232 pro připojení k PC přes svorky JP1 - RS232. Hardware řadiče umožnuje použít jak softwarový (Xon/Xoff) tak hardwarový (RTS/CTS) handshack. V praxi se mi lépe osvědčil softwarový a ten je také nastaven v přiloženém programu řadiče, ale s vlastním komunikačním softwarem (pracuji na něm) pracují oba. Změna typu handshacku se dá provést konstantou FLOWRTS v modulu queue.c. Pin CTS se podle nastavení chová jako RXD nebo CTS a podle toho se zapojí na konektor sériového rozhraní. Mechanicky se dá připojení realizovat např. samicí CANNON 9 na zadní straně plotru a s PC propojovat kabelem 1:1 (samec/samice). Napájení v rozsahu 7-24V je přivedeno na svorky JP2 - PWR. Podle ztrátového výkonu je třeba dimenzovat chladič stabilizátoru případně použít zdroj 5V z plotru a přemostit stabilizátor. Vlastní plotr se připojuje na svorky JP3 - PLOTR. V případě Minigrafu 0507 a Amagrafu 0517 se 3 bity X-ového motoru připojí na piny 3-5, 3 bity Y-ového motoru na piny 6-8 a bit pera na pin 10 (řídící slovo je kompatibilní s PC). Deska je připravena i pro připojení jiných zapisovačů (pro Alfiho je tam 9 bitů, XY, ...). Stačí drobně modifikovat ovládací funkci hwSet v modulu mnghw.c a upravit konstanty papíru v base.h. Deska řadiče je navržena tak, aby se celý počítač vešel na přední část levého krytu motoru. Uchytí se dvěmi šrouby pomocí distančních sloupků a ven zasahují obě LED diody a tlačítko. Desku lze však umístit i do externí krabičky.
Ovládání Parametry komunikace: rychlost je 9600Bd, 8 bitů, bez parity, 1 stopbit, softwarový handshack (Xon/Xoff) Pokud se během zapnutí řadiče drží stisknuto tlačítko online, tak výstupy řadiče zůstanou ve stavu HI a lze použít stávající kabely pro řízení plotru. Za běhu slouží tlačítko k pozastavení tisku a stav indikuje dioda D1. Není to úplně ok (zákmity), ale nechtělo se mi to ladit. Řadič umí interpretovat omezenou sadu povelů. Jedná se o všechny povely z ovladače Aritmy kromě povelů pro práci s textem a nastavení typu čar, více tabulka. syntaxe IN
název Inicializace (INitialize)
PU[x,y][,...] Pisátko nahoru (Pen Up)
PD[x,y][,...] Pisátko dolů (Pen Down) PA[x,y][,...] Přesun absolutně (Plot Absolute) PR[x,y][,...] Přesun relativně (Plot Relative) ER x,y
Obdélník relativně (Edge Rectangle relative)
CI r
Kružnice (CIrcle)
BP
Základní pozice papíru (Basic Position)
SO[x,y]
Nastavení počátku souřadnic (Set Origin)
SD s
Nastavení rychlosti posuvu (Set speeD); *nestandartní HPGL instrukce
Popis instrukcí Instrukce IN; Tato instrukce způsobí tzv. inicializaci Minigrafu. Předpokládá se, že před vysláním této instrukce bude v Minigrafu založen papír tak, že jeho horní okraj se bude krýt s hranou otevřeného zadního vyklápěcího stolku Minigrafu. Provedou se následující činnosti: • • •
pisátko se zdvihne a najede na levý okraj papíru vynuluje se souřadnice X, souřadnice Y bude nastavena na 1700 (odpovídá předpokládané pozici papíru) nastaví se absolutní režim souřadnic
Tuto instrukci je nutné zadat (po instalaci ovladače) po každém zapnutí Minigrafu. Doporučuje se touto instrukcí zahajovat každou kresbu. Slouží k nastavení definovaného stavu Minigrafu.
Instrukce PU [x,y][,...]; a PD [x,y][,...]; Tyto instrukce ovládají zvedání a spouštění pisátka. Instrukce PU pisátko zvedne, PD pisátko spustí. V instrukcích je možné zadat libovolný počet dvojic souřadnic, které se pak akceptují jako povely pro přesun pisátka podle právě nastaveného režimu (absolutně nebo relativně).
Instrukce PA [x,y][,...]; a PR [x,y][,...]; Tyto instrukce přesouvají pisátko (spuštěné nebo zdvižené) do nové polohy podle zadaných souřadnic. V instrukci PA se souřadnice interpretují absolutně, v instrukci PR relativně. V instrukcích je možné zadat libovolný počet dvojic souřadnic. Po vykonání instrukce zůstává nastaven její režim (tj. absolutní nebo relativní).
Instrukce ER x,y; Tato instrukce nakreslí obdélník se stranami ve směru souřadných os, jehož jeden vrchol bude v momentální pozici pisátka a protilehlý vrchol bude relativně určen souřadnicemi x,y (šířka a výška obdélníka). Potom se pisátko vrátí do původní pozice. Po instrukci bude stav pisátka (nahoře/dole) takový, jaký byl před instrukcí.
Instrukce CI r; Tato instrukce nakreslí kružnici o poloměru daném parametrem r a se středem v momentální pozici pisátka. Potom vrátí pisátko do původní pozice a stavu. V současné verzi ovladače je kružnice
ošizena 76 úhelníkem :-).
Instrukce BP; Tato instrukce způsobí zdvihnutí pisátka a najetí papíru do pozice, kdy se jeho horní hrana přibližně kryje s hranou otevřeného zadního vyklápěcího stolku Minigrafu (to je pozice, která se předpokládá před instrukcí IN). To usnadňuje práci při ladění kreslicího programu.
Instrukce SO [x,y]; Tato instrukce nastaví počátek souřadného systému do jiného místa (i mimo kreslící list) takto: • •
instrukce bez parametru nastaví počátek souřadných os do momentální pozice pisátka instrukce s parametry x,y nastaví počátek souřadných os do bodu, daného souřadnicemi x,y v základní poloze souřadného systému.
Instrukce SD s; Tato instrukce nastaví rychlost motoru. Parametr s určuje v 2/10000s dobu jedné fáze motoru např. defaultní 20 = 4ms a to je 250 kroků/s = 31mm/s. Řadič automaticky, pokud čára dovolí, na začátku zrychluje na dvojnasobek rychlosti během prvních s bodů (dle příkladu během 20ti bodů). Stejně také na konci brzdí. Pokud je parametr s záporný, zrychlení se neprovádí.
Schéma řadiče, plošný spoj a osazení
Seznam součástek R1 R2,R5 R3,R4 R6 C1,C2 C3,C4 C5-C8 C9 C10 D1 D2 IC1 IC2 IC3 S1 Q1
4k7 SMD 1206 330 SMD 1206 10k SMD 1206 3k3 SMD 1206 33pF SMD 1206 100n SMD 1206 10u/15V 4.7uF 100uF/25V oranžová LED 5mm zelená LED 5mm AT89C4051 + patice MAX232 nebo náhrada 7805 + chladič mikrospínač 18.432MHz nízký
Podklady Zde si můžete stáhnout podklady:
schéma a deska pro program Eagle 4.03, zdrojové kódy: minihpgl10.zip, minihpgl11.zip
(přidán makefile pro kompilaci s SDCC) ovládací program do procesoru minihpgl10.hex
Změny firmware v1.0 prosinec 2002:
první verze
Bez souhlasu autora je konstrukce určena pouze pro nekomerční využití.