Webseiten-Logo Die neue Homepage!
Projekte
Model One
goes Europe
230V-Umbau
Lampenprojekt
Lampe
LED-Lichtobjekt
Lichtobjekte
Vectra C
Abblendspiegel
Vectra C
Sitzheizung
Vectra C
Anklappspiegel
PICSEL
Elektronischer
Quellenumschalter
Kenwood KA-990V
High End Upgrade
Audio-Mischpult
Battlemixer #1
C64DTV
Der C64 ist wieder da!
Digital-Regler
Temperatur-Regelung
mit digitalem Sensor
Autogas/LPG
Umbaubericht Vectra C
Autogas/LPG
Umschalter-Selbstbau
Autogas/LPG
GAKI-Projekt
Fahrradlicht
Spannungsbegrenzer
Sonstiges
Feierabendprojekte
Bilder
Industriekultur
Bochum
Volleyball
Mac Volley Warriors
Home
Startseite
Projekte


Hier eine kleine Sammlung an Fotos und Quelltexten etc. über ein altes Projekt aus dem Jahr 1994:

Ein HPGL-Selbstbauplotter


Features:
  • DIN A4 Papiergröße
  • Eigene Intelligenz mit 8051-Prozessor und 32k RAM
  • 2x16 Zeichen LCD-Display und 6-Tasten Bedienfeld, 3 Status-LEDs
  • HPGL-Interpreter für Linienbefehle: PU, PD, PA (Pen up, Pen down, Pen absolute)
  • Endschalter für alle Achsen
  • serielle RS232-Schnittstelle
  • Antrieb über 2 Unipolar-Stepper mit 200steps/U, Betrieb im Halfstep-Mode
  • Fischertechnik-Ketten zur Kraftübertragung
  • Ein Stifthalter mit Hubmagnet
  • Kugelgelagerte Brücke für x-Achse
  • Rahmenkonstruktion aus Plexiglas und Alu-L-Profilen
Hier ein paar Fotos:
Gesamtansicht
Gesamtansicht


Detail Bedienfeld, Bruecke
Controller, Bedienfeld, Y-Achse und Stifthalter (Klicken für Großbild)


Detail
... (Klicken für Großbild)


Detail: Controller
Contoller im Detail (Klicken für Großbild)


Platinenlayout Controller
Das Controller-Board-Layout (Klicken für Großbild)


Platinenlayout Bedienfeld
Das Bedienfeld-Layout (Klicken für Großbild)


Dazu gibt es die ASSEMBLER-Quelltexte (ich glaube ich habe damals den TASM/Table Driven Assembler von Speech Technology Inc. benutzt...) als ZIP
Die Board-Dateien des Controllers und des Bedienfeldes (konvertiert von EAGLE 2.05 nach 4.15) als ZIP. Die doppelseitig durchkontaktierte Controller-Leiterplatte habe ich damals beim PCB-Pool herstellen lassen: Super Sache!

Die Schrittmotoren würde ich jetzt mit nem ULN2803 ansteuern, damals habe ich eine Endstufe mit Transistoren aufgebaut. Die Adressdecodierung bzw. Cipselect-Erzeugung kann man statt mit einem GAL auch mit wired-or etc. erzeugen.

Der Kern des ganzen, der Bresenham-Linienalgorithmus als Pseudocode/Pascal-Quelltext:

Procedure PlotLine(x1,y1,x2,y2 :  Integer);
    Var
       px, py, dx, dy, ax, sy, rest, j :  Integer;
    Begin
 	ax := 1; sy := 1;
    	dx := (x2-x1);
 	dy := (x2-yl);
 	px := 0;
 	py := 0;
    	If dx<0 Then
         Begin dx := -dx; ax := -1 End;
 	If dy<0 Then
      	 Begin dy := -dy. sY := -1 End;
 	rest := dx Div 2;
 	move stift to(px,py);
 	If (dx != 0)-And (dy != 0) Then
      	Repeat
          px := px+ax;
 	  rest := rest+dY.
          If resT>=dx Then
           Begin
 	   py := py+sy;
           rest := rest-dx;
           move_x_Y; (*SCHRITT IN X- UND Y-RICHTUNG*)
           End
       	  Else
           move x;(*SCHRITT IN X-RICHTUNG*)
 	Until px-~dx
 	Else If (dx=0) And (dy != 0) Then
   	RepeaT
 	py : = py+ sy;
 	move_y; (*SCHRITT IN Y-RICHTUNG*)
  	 Until py=dy
	Else If (dx!= 0) And (dy=0) Then
  	Repeat
   	  px := px+ax;
  	  move_x;
 	 UnTil px=dx;
	End;

Der Programmfluss der Assembler-SW in plotter1.zip als unvollständiges Pseudocode-Bruchstück:
10  Schalte LEDs aus
20  Springe zu LCD_Init
30  Fahre nach 0,0
35  Initialisiere Variablen, Clear RAM, Init RS232
40  Warte auf serielles Zeichen oder Taste
50  Wenn Taste, dann Menü behandeln ->goto MENU
60  Wenn Zeichen, dann PA, PD, PU auswerten -> goto COMMAND
70  Wenn Zeichen Dateiende -> goto WORKFIRST
80  gehe zu 40

100 COMMAND:
110 Ist es PU? Pen-Bit setzen
120 Ist es PD? Pen-Bit löschen
130 Ist es PA? Koordinaten von ASCII zu Binaer wandeln, ins RAM schreiben -> goto KOORDINATEN
140 goto 40

200 WORKFIRST:
210 Koordinaten aus RAM abarbeiten, Plotten
220 ...

300 MENU:
310 Tasten auswerten
320 ...
Hier gibt es noch eine ganz interessante Seite mit Selbstbau-Plottern und Algorithmen.

Copyright © 2006 Christian
email-adresse
Valid CSS! Valid HTML 4.01 Transitional