HARDWAREMONTAGES ★ EINBAU DER VORTEXSPEICHERERWEITERUNGSKARTE: ★

ROBOTER steuern mit dem CPC (Schneider Aktiv)Hardware Montages
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Selbstbau für wenige Mark

Was noch vor Jahren Science-Fiction war ist heute Wirklichkeit: Die industrielle Fertigung von Autos, Geräten aller Art bis hin zum Computer nutzt heute in zunehmendem Maße den Einsatz von computergesteuerten Robotern. Spielzeugfirmen haben diesen Trend auch für den Computerfan entdeckt. So liefern z.B. die Firmen Märklin, Pomy, Kosmos und Fischer-Technik spezielle Baukästen mit Motoren und Mechanik zum Bau computergesteuerter Robotermodelle. Was dem CPC-Freak bis heute fehlte war eine preisgünstige Hardware und Software zum Ansteuern derartiger Roboter. SCHNEIDERN-aktiv kann seinen Lesern heute eine Roboteranpassung zum Selbstbau für nur wenige Mark bieten, mit der der CPC-Anwender endlich seinen Roboter steuern kann.

So funktioniert ein Roboter

Wie funktioniert überhaupt ein computergesteuerter Roboter? Der Roboter hat eine bestimmte Anzahl von Bewegungselementenin der Fachsprache Achsen genannt. Vorbild war auch hier der Mensch, denn jede dieser Achsen verkörpert Teile eines Menschen. So finden wir folgende Achsen vor:

  • die Fingerachse
  • das Handgelenk
  • die Ellbogenachse
  • die Schulterachse
  • Die Taillenachse

Achsen können zudem noch doppelt ausgeführt werden. So wir die Taillenachse oft in zwei Achsen - horizontale und vertikale Achsen zergliedert. Je mehr Achsen ein Roboter hat, um so präziser und schneller kann er eingesetzt werden.

SCHNEIDERN-aktiv bietet seinem Leser einen besonderen Service: Der komplette Robo-terschalturlg mit Layout zur Platinenfertigung zum Ansteuern z.B. eines Fischer-Technik Roboters. Für den Leserser-vice ist bei genügender Nachfrage der komplette Bausatz mit fertiger Platine im Gespräch.

SCHNEIDERN-aktiv sucht noch weitere Hard- und Software für den CPC Leserservice.

Das Prinzip

Das Schema Bild 1 erklärt die prinzipielle Funktionsweise des Roboters. Der Computer steht über ein geeignetes Interface mit dem Roboter in Verbindung. Bei diesem Interface handelt es sich um eine Parallelschnittstelle mit Ein- und Ausgängen.

Der Schaltverstärker ‘V‘ verstärkt die Motorsteuersignale des Computers für Ein/Aus bzw. Links/Rechts-Drehung.

Der Motor erhält dieses Signal und bewegt über ein Getriebe eine Achse des Roboters. Mit dieser Achse ist ein Potentiometer, je nach Bedarf über ein Getriebe, fest verbunden. Das Poti liefert uns eine variable Gleichspannung, je nach Stellung des Schleifers. Diese Spannung wird durch den A/D-Wandler in einen Impuls von bestimmter Länge umgewandelt. Über eine Zählschleife ist nun der Computer in der Lage die Länge dieses Impulses zu bestimmen und somit die Stellung der Roboterachse zu erkennen. Aus der dadurch gewonnenen Information bestimmt der Computer die weiteren Steuersignale für den Motor.

Das brauchen wir

Wir benötigen also folgende Komponenten für unseren Roboter:

  1. Parallelschnittstelle mit Ein- und Ausgängen
  2. Schaltverstärker zur Motorsteuerung
  3. A/D-Wandler

Der mechanische Aufbau soll jedem selbst überlassen werden. Am einfachsten ist die Verwendung eines Mechanikbaukastens (z.B. von Fischer-Technik). Aber der eigenen Fantasie sollen hier keine Grenzen gesetzt werden.

Die Parallelschnittstelle

Die Parallelschnittstelle wird mit der Z80A -Pio aufgebaut (Bild 2). Dabei begnügen wir uns mit einer einfachen Dekodierung. Laut Schneider-Handbuch muß für die Auswahl eines Schnittstellenbausteins A10 null sein. Zusätzlich wird noch A2 null gesetzt. (A3 und A4 stehen in ähnlicher Weise für weitere

Bausteinauswahl zur Verfügung). Damit ist die Pio unter folgenden Adressen ansprechbar:

F8F8 Port A - Daten
F8F9 Port B - Daten
F8FA Port A - Steuerwort
F8FB Port B - Steuerwort

Bei Einhaltung dieser Adressen sind keine Störungen zu befürchten, da der CPC intern die gleiche Methode zur Dekodierung verwendet, aber die Adressen A2, A3 und A4 nicht belegt. In der Schaltung nach Bild 2 ist die Anschlußbelegung des Port A angegeben. Wenn Sie das nachfolgende Programm verwenden wollen, sind diese Anschlüsse genau einzuhalten.

Der Schaltverstärker für die Motorsteuerung

Zum Schaltverstärker für die Gleichstrom-motore (Bild 3) ist keine große Erklärung notwendig. Die beiden Transistoren TI und T6 entlasten die Ausgänge der Pio. Sind die beiden Eingänge M-L und M-R auf Null so steht der Motor. Wird einer der beiden Eingänge auf H Pegel gesetzt, so dreht der Motor in die entsprechende Richtung. Für unseren 2-Achs-Roboter ist diese Schaltung zweimal erforderlich.


BILD 1 Schema


BILD 2 Parallelschnittstelle

Der A/D-Wandler

Ais A/D-Wandler (Bild 4) wird ein als Monoflop geschaltetes IC 555 verwendet. Durch den Triggereingang an Pin 2 wird das Monoflop gesetzt. Der Ausgang Pin 3 geht für eine bestimmte Zeit auf H-Pegel. Diese Zeit ist abhängig vom Kondensator CI und der Stellung des Potis. Die Impulsdauer ist nach der Formel t = 1.1 * R1 * C1 berechenbar. Die Triggerung wird durch einen Sprung von H-nach L-Pegel ausgelöst. Auf der Platine ist für drei dieser A/Ds Platz vorgesehen. Es müssen jedoch in unserem Fall vorerst nur 2 bestückt werden.

Es ist auch noch eine einfache Transistorschaltstufe für Elektromagnete oder dgl. vorgesehen (Bild 5). Auf der Platine ist Platz für 8 Schaltstufen. Für unseren Roboter wird nur eine Schaltstufe für den Elektromagneten, der als einfacher Greifer für Münzen und dgl. verwendet wird, benötigt.

Beschreibung des Programms

Assemblerprogramm:

Zunächst werden 9 Bytes reserviert. Sie werden im Programm folgendermaßen vewendet:

A000 Sollwert Achse 1 Low-Byte
A001 Sollwert Achse 1 High-Byte
A002 Sollwert Achse 2 Low-Byte
A003 Sollwert Achse 2 High-Byte
A004 Istwert Achse 1 Low-Byte
A005 Istwert Achse 1 High-Byte
A006 Istwert Achse 2 Low-Byte
A007 Istwert Achse 2 High-Byte
A008 Status Magnet 0 = Aus, &10 = Ein

Die Positionen können also nach der Formel P = Low-Byte + 256 * High-Byte berechnet werden. Ab Programmzeile 280 beginnt die Initialisierung der PIO. Dabei werden die Port A-Bits 0 bis 5 als Ausgänge und die Bits 6 und 7 als Eingänge definiert.

Der Port A ist also folgendermaßen mit dem Robi verbunden:

Bit 0 Motor 1 links
Bit 1 Motor 1 rechts
Bit 2 Motor 2 links
Bit 3 Motor 2 rechts
Bit 4 Magnet
Bit 5 Trigger D/A-Wandler
Bit 6 Impuls von D/A-Wandler Motor 2
Bit 7 Impuls von D/A-Wandler Motor 1

Nach der Initialisierung wird der Trigger Ausgang noch auf H gesetzt, danach folgt der Sprung ins Hauptprogramm.

Im Anschluß an die Initialisierung folgen ab Zeile 430 bis 740 die beiden Unterprogramme für die Abfrage der A/D-Wandler. Dabei wird zunächst der Triggerimpuls ausgegeben und danach in einer Zählschleife das Register HL erhöht, solange der Ausgangsimpuls des A/D-Wandlers andauert. Um korrekte Werte zu erhalten, müssen zuvor die Interrupts des Betriebssystems gesperrt werden. Im Register HL ist somit der aktuelle Positions-Istwert der jeweiligen Achse gespeichert. Mit dieser Information erfolgt die Rückkehr ins Hauptprogramm.


BILD 3 Schaltverstärker

Das Hauptprogramm beginnt wie gesagt ab Zeile 800. Das Hauptprogramm läuft folgendermaßen ab: Das Register BC erhält die Portadresse zugewiesen, das Register DE den Positionssollwert. Danach wird das Unterprogramm zur Bestimmung des Positions-Istwertes aufgerufen. Nach der Rückkehr ist dieser Wert im Register HL. Danach folgt die Festlegung der Drehrichtung. Diese erfolgt mit dem Subtraktionsbefehl. Ist Bit 7 in Register H null, ist die Drehrichtung umzukehren. Im anderen Fall arbeitet das Programm in Zeile 870 weiter. Hier wird zunächst geprüft, ob die Differenz zwischen Soll- und Ist-Wert größer ist als Delta X, wenn ja wird der Motor eingeschaltet und zur Zeile 870 zurückgesprungen. Der Motor bleibt solange eingeschaltet bis die Differenz kleiner ist als Delta X. Danach arbeitet das Programm ab Zeile 1080 weiter. Der Motor wird zunächst abgeschaltet und die Istposition bestimmt. Ist die Sollposition noch nicht erreicht, wird der Motor für ca. 20 ms wieder eingeschaltet und danach die Istposition erneut festgestellt. Dieser Vorgang wird solange wiederholt, bis die Sollposition erreicht ist.

Danach wird der gleiche Vorgang für die 2. Achse durchgeführt. Ist auch diese Achse positioniert wird am Programmende die Istposition der beiden Achsen in die vorgesehenen Adressen übergeben.

Zur einfacheren Eingabe ist das Programm als Basic-Loader angegeben. Zur Demonstration ist zusätzlich ein Demoprogramm angegeben. Der Roboter nimmt von 3 verschiedenen Positionen Gegenstände mit dem Magneten auf und legt sie an einer anderen Position wieder ab. Die Folge der Position ist dabei in den DATA-Zeilen angegeben. An das Maschinenprogramm werden 3 Werte übergeben.

  1. Sollwert Achse 1
  2. Sollwert Achse 2
  3. Magnet Ein (&10), Aus (0)

Das Programm muß sicherstellen, daß für den Magneten keine anderen Werte als die beiden zulässigen übergeben werden.

Die hier angegebenen Schaltungen und Programme sollen nicht als endgültig angesehen werden. Vielmehr sind sie als Anregung zum eigenen Experimentieren zu verstehen. Die Erweiterung des Roboters, zum Beispiel mit weiteren Achsen oder mit Endlagenschaltern, ist ohne weiteres möglich.

Sinnvoll wäre auch ein Programm, das es ermöglicht, den Roboter im sog. ‘teach in‘-Verfahren zu programmieren.

Die Ergebnisse dieser Bemühungen würden mich sehr interessieren. Für Fragen, Anregungen und Verbesserungsvorschläge stehe ich gerne zur Verfügung.(K5)


BILD 4 A/D-Wandler Monoflop


BILD 5 Treiberstufe


Bestückungsplan: A/D – WandlerLayout: A/D Wandler


Layout: Schaltverstärker – Bestückungsplan: Schaltverstärker


Layout: Treiberstufe – Bestückungsplan: Treiberstufe

SA

★ PUBLISHER: Schneider Aktiv
★ YEAR: 1985
★ AUTHOR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» ROBOTER  Steuern  mit  dem  CPC    (Schneider  Aktiv  Special)    LISTING    GERMANDATE: 2022-08-11
DL: 139
TYPE: PDF
SiZE: 909Ko
NOTE: Supplied by www.acpc.me ; 3 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » Gesreuerte Roboter (Telematch)
» Hardware » Robot - Fischertechnik - Tortue (CPC Revue)
» Hardware » Quickshot RobotArm
» Hardware » Robot - Fischertechnik - l'Ordinateur Serre la Pince (Science et Vie Micro)
» Hardware » Robot - Fischertechnik (Microstrad)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 430 millisecondes et consultée 592 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.