SeitErstellt: 28.03.2019
vielen Jahren besitze ich ein Modul M029 für den KC85/4. Dieses Modul ist ein Digital-Analog-Umsetzer.
Das Modul wurde seinerzeit zur "Dekoration" angeschafft. Irgendwann einmal wurde dann ein Blick in das Handbuch
geworfen. Zur damaligen Zeit war ich noch sehr unbedarft, was die Thematik des Anschlusses von
Peripheriegeräten an die KC-Module anbelangt. Aber schon damals faszinierten mich Ausgabegeräte, wie
Drucker, Schreibmaschinen und Plotter. Im Handbuch zum M029 wird die Ansteuerung eines XY-Schreibers erklärt und
damit erwachte zum einen das richtige Interesse an dem Modul und zum anderen entstand der Wunsch, einen solchen
X/Y-Schreiber zu erwerben.
Bekannt sind mir solche Geräte als Einkoordinatenschreiber zur Erfassung der Werte der relativen
Luftfeuchtigkeit, wie sie zum Beispiel auch in militärischen Bunkeranlagen zum Einsatz kommen.
Genaugenommen ist auch jeder Plotter ein XY-Schreiber, plottet er doch in einem zweidimensionalen
Koordinatensystem. Allerdings zeichnet jeden modernen Plotter aus, daß er eine Sprachsyntax beherrscht. Als
Standard für diese Plottersprache hat sich schon sehr lange HPGL (Hewlett Packard Graphics Language) durchgesetzt.
Die Befehle dieser Sprache sind sehr einfach und werden über eine entsprechende Schnittstelle an den Plotter
gesendet. Der Plotter wandelt dabei Fahranweisungen zu einer bestimmten Koordinate in Spannungen um, damit sich
der Schreibwagen zur geforderten Stelle bewegt. Und damit arbeitet er intern genauso wie ein XY-Schreiber.
Soll ein Plot erstellt werden, dann gestaltet sich das in der Regel nicht schwer. Es gibt gute Software, die es
ermöglicht, Vektorgrafiken zu erstellen und diese in die HPGL-Syntax umzuwandeln. Dabei zu beachten ist im
Prinzip nur die Plotterauflösung.
Ein XY-Schreiber hat eine andere Aufgabe. Er zeichnet in der Regel Werteverläufe und keine Grafiken. Daher auch
der Name "Schreiber".
In der Regel verarbeitet ein solches auch Koordinatenschreiber genanntes Gerät Eingangsspannungen und wandelt
diese in Bewegungen des Schreibwagens um. Dabei werden für die x- und y-Koordinate unabhängig Spannungen dem
XY-Schreiber zugeführt.
Der Endim 622.01 ermöglicht die individuelle Einrichtung eines Koordinatensystems durch die Festlegung des
Nullpunktes. In aller Regel wird der Nullpunkt (wie in der Schule gelernt) unten, links liegen. Durch
Regelelemente kann eingestellt werden, welche Spannung notwendig ist, um den Schreibwagen einen bestimmten Weg
fahren zu lassen. So kann zum Beispiel festgelegt werden, daß 10 mV notwendig sind, um eine Bewegung von einem
Zentimeter auszuführen. Demzufolge entsprächen 100 mV zehn Zentimeter. Soll nun der Schreibwagen wieder einen
Zentimeter zurückfahren, wird einfach eine Spannung von 90 mV angelegt.
Somit ist bekannt, welche Spannungen angelegt werden müssen, damit eine bestimmte Bewegung ausgeführt wird.
Mit diesen Daten kann nun ein Algorithmus entwickelt werden, um gemessene Werte als Werteverläufe, also als
Graphen, durch den XY-Schreiber darstellen zu lassen. Für jeden Anwendungsfall gibt es einen anderen Algorithmus.
Letztendlich ist das Ergebnis immer das Gleiche: Für jeden darzustellenden Wert müssen zwei Spannungen berechnet
werden.
Wie kommen jedoch die berechneten Spannungswerte zum Koordinatenschreiber?
Dazu wird das Modul M029 (DAU) verwendet. Dieser sogenannte Digital-Analog-Umsetzer wandelt digitale
Eingangsinformationen in analoge Ausgangsinformationen (Spannungen) um. Das M029 hat eine Auflösung von 10 Bit
und einen möglichen Ausgangsspannungsbereich von +-5 Volt. Damit ist eine Schrittweite von 10 mV möglich. Der
Endim 622.01 kann so eingestellt werden, daß eine angelegte Spannung von 100 mV einer Fahrstrecke von einem
Zentimeter entspricht. 10 mV entsprechen demnach einem Millimeter. Dies ist eine hinreichend genaue und feine
Einteilung und ermöglicht zum Beispiel das Darstellen einer Sinuskurve.
Im Handbuch zum DAU-Modul ist beschrieben, wie die Berechnung der Werte zu erfolgen hat. Die Problematik dabei
ist, aufgrund der Verwendung des JKCEMU-Basic-Compilers, die Umwandlung der Gleitkommaarithmetik in
Ganzzahlarithmetik. Da es sich aber um spezifische Gleichungen handelt, ist dies leicht möglich und die neuen
Gleichungen liefern das gleiche Ergebnis, und werden vom KC sehr schnell abgearbeitet.
Um den Koordinatenschreiber einer sinnvollen Anwendung zuzuführen lag es nahe, ihn die gemessenen Werte der
I²C-Geräte schreiben zu lassen. Daher wurde das I²C-Steuerprogramm in einer Variante weiterentwickelt, welche
den Endim integriert.
Um die Leistungsfähigkeit des Endim 622.01 zu demonstrieren, wurde eigens ein Demonstrationsprogramm entwickelt.
Damit wird das Schreiben einer Sinuskurve umgesetzt. Um das Ganze etwas "aufzulockern", erhält der
Koordinatenschreiber seine Spannungswerte letztendlich von einer MS-Excel-Anwendung, welche auf einem PC läuft.
Die Berechnung der Sinuskurve wäre mit einem Basic-Programm des JKCEMU-Compilers nicht möglich. Für MS-Excel ist
dies natürlich ein Standardanwendungsfall. Der PC und der KC sind über die serielle Schnittstelle RS232
verbunden. Visual-Basic für Anwendungen (VBA) erlaubt den direkten Zugriff auf die serielle Schnittstelle. Auf
dem KC läuft ein Programm, welches Spannungswerte vom PC erwartet. Es "horcht" dazu auf dem zweiten Kanal
eines M003. Auf dem PC läuft das VBA-Programm. Dieses berechnet zunächst die Sinuskurve und daraus die
entsprechenden Spannungswerte für den Endim. Diese Werte werden an das M003 übertragen und vom KC-Programm
weiterverarbeitet, welches an das M029 die notwendigen Registerangaben zum Schreiben der Kurve übermittelt.
Während des Programmablaufs wird parallel auf dem PC, dem KC und dem Endim 622.01 die Sinuskurve gezeichnet
bzw. geschrieben.
Für mich war die Entwicklung dieser kleinen Demonstration ein beeindruckendes Erlebnis, hatte ich doch vor
einigen Wochen nie im Traum daran gedacht, daß ein Produkt aus der DDR auf "Befehle" einer Software aus den USA "hört".
Sehen Sie hier den Endim in Aktion.
FastErstellt: 06.04.2020
genau vor einem Jahr wurde beim 25. Treffen des KC-Clubs der XY-Schreiber
Endim präsentiert. Nachdem ich meinen Arbeitsplatz grundlegend umgestaltet hatte, rückte dieser wieder in den
Blickpunkt und ich entschloß mich, das für das M051 entwickelte Programm zur Erfassung der
Innenraumtemperatur/-luftfeuchtigkeit und des Luftdrucks in seinen drei
Varianten (siehe dazu I²C-Programm - Entwicklungsabschluß) wieder
zusammenzufassen und gleichzeitig die Integration in meine Bilderschau "SRNSCHAU" zu entfernen. Weiterhin wurde
zur textuellen Aufzeichnung der Meßwerte ein Drucker integriert. Prinzipiell kann das ein beliebiger Drucker
sein. Es empfiehlt sich aber, einen Drucker zu verwenden, der durch die CAOS-Standardinitialisierung des M003
auf dem Kanal 1 sofort verwendet werden kann.
Das Programm wurde unter strikter Maßgabe der maximalen Größe von 8 KB (weiter-) entwickelt. In der Testphase
diente ein M041 zur Verifikation der korrekten Funktionsweise. Nach dem erfolgreichen Abschluß der Tests wurde
das Programm auf ein M025 ausgelagert bzw. verlegt. Dieses Modul in gelber Farbe ist auf dem Foto der
Gesamtansicht des Endim-Rechnersystems im Schacht 0C des Grundgerätes zu sehen. Um es eindeutig über die
Modulsuche identifizieren zu können, wurde dessen Kennbyte auf B7 geändert. Ebenfalls wurden die beiden
anderen "Endim"-Module M003 (RS232) und M029 mit farbenfrohen Gehäusen ausgestattet.
Der Aufruf des Programms kann gänzlich ohne Parameter erfolgen. In dem Fall werden die Meßwerte nur auf dem LCD
angezeigt. Wird ein optionaler erster Parameter verwendet, kann damit bestimmt werden, ob die Daten vom
XY-Schreiber und ggf. zusätzlich vom Drucker aufgezeichnet werden. Bei Angabe des ersten Parameters dient ein
zweiter Parameter (ebenfalls optional) zur Festlegung des Aufzeichnungsintervalls, welches
standardmäßig 60 Sekunden beträgt.
Damit ist die Entwicklung grundsätzlich abgeschlossen, was jedoch nicht bedeutet, daß es nicht zu einer späteren
Fortführung kommt.
ImErstellt: 16.06.2022
neu eingerichteten Hobbyzimmer wurde es erforderlich, das kleine Demonstrationsprogramm für den ENDIM zu
überarbeiten.
Der Daten sendende PC und der empfangende KC stehen nun räumlich weit voneinander getrennt. Daher machte ich
mich auf die Suche nach einem Bluetooth-Ersatz und wurde mit dem LinTech-Modul 1409/N fündig. Dieses Modul ist
konfigurierbar. Es wird standardmäßig mit einem 9-poligen D-SUB-Stecker geliefert. Das M003 am KC in der
RS232-Ausführung erwartet jedoch eine Buchse und dementsprechend habe ich das BT-Modul umgebaut und gleichzeitig
dafür gesorgt, daß es über den Pin 9 mit 5 Volt Spannung versorgt wird. Am PC befindet sich der Bluetooth-Sender.
Das MS-Excel-Programm kommuniziert nun mit der virtuellen COM-Schnittstelle des Lintech-Adapters. Die Datenübertragung
ist einwandfrei.
Das KC-Programm zum Datenempfang und zur Weiterverarbeitung für den XY-Schreiber hätte im Prinzip unverändert bleiben
können, aber im Zuge dieser Neuerung habe ich es um ein Koordinatensystem erweitert.
Auf den zwei neuen Fotos ist das KC-Programm und der Bluetooth-Adapter von LinTech zu sehen.
M001 - Digital IN/OUT
Ein weiteres Modul, welches nun nicht mehr nur zur Zierde vorhanden ist, ist das
M001 (Digital IN/OUT).
Die Hauptmerkmale dieses Moduls sind ein CTC- und ein PIO-Schaltkreis und des weiteren die nach außen
geführten Anschlüsse des PIO auf einen Direktsteckverbinder. Damit ist es ideal geeignet, interrupt-gesteuert
Daten zu verarbeiten und an eine Peripherie weiterzugeben.
Das M001 wird jedoch schon länger genutzt und zwar im Zusammenspiel mit dem M051 und der Ansteuerung der
I²C-Geräte (siehe dazu auch das Kapitel "I²C-Geräte am M051").
Nun hat ein zweites M001 seine Arbeit aufgenommen und dient der Ansteuerung einer neuen Spielerei:
Einer 4-stelligen 7-Segmentanzeige. Diese kann universell eingesetzt werden. Zum Beispiel zur Darstellung der
Uhrzeit oder einer 4-stelligen Zahl. Letzteres findet seine Verwendung beim Einsatz des hier beschriebenen
x/y-Schreibers.
Das Anzeigemodul und dessen Steuerlogik wurden in der "Fädeldrahttechnologie" aufgebaut (zwei Fotos zeigen
diesen Aufbau). Das kleine Modul besteht aus vier Anzeigen, vier CMOS-IC 4511, einigen SMD-Widerständen und
einem sogenannten Edge-Connector, mit dem es in den nach außen geführten Anschluß des M001 gesteckt wird.
Da es mittlerweile zur Tradition gehört, praktisch genutzte Module zu individualisieren, wurden für das
Anzeigemodul und das M001 Gehäuse in 3D-Druck angefertigt. Die Blende wurde wieder einmal freundlicherweise
von Maik Trompter gefertigt, wofür ich ihm nicht genug danken kann. Die Farbe ist dieses Mal olivgrün.
Das 3D-Modell für das Gehäuse des Anzeigemoduls wurde mit größter Sorgfalt und Genauigkeit entwickelt.
Es paßt exakt.
Für die Verwendung als Uhrzeitanzeige wird die RTC der D008 herangezogen. Dazu ist zunächst der Start des
Betriebssystems ML-DOS (ein CP/M-Klon) notwendig. Wird dieses System mit dem Programm "DEP" verlassen, dann wird
die Uhrzeit in den Koppel-RAM gelinkt und kann unter CAOS ausgelesen werden. Noch komfortabler wird das Ganze,
wenn "DEP" mit einem Parameter aufgerufen wird, welcher den Namen einer ausführbaren KCC-Datei beinhaltet. Durch
die KCC-Datei wird die Initialisierung der Anzeigeroutine gestartet. Diese wiederum installiert im System die
ISR (Interrupt-Service-Routine) unter Verwendung des M001. Die ISR letztendlich ermittelt zyklisch die Uhrzeit
und gibt sie nach entsprechender Wertekodierung über den PIO des M001 an das Anzeigemodul aus.
In diesem Video können Sie den Start der Anzeigeroutine beobachten.
|