Home
RobotArm
Fun
- Die Zahl Pi
Skripte
Kontakt
|
|
|
Projekt: Quickshot Robotarm 2003
Der Quickshot Robotarm ist ein kleiner 5-achsiger Roboterarm, der über zwei
Joysticks gesteuert wird. Außerdem gibt es für den C64 ein Interface, mit dem
man den Roboterarm per Software steuern kann.
Da ich keinen C64 besitze und mein Computereinstieg bereits mit einem PC 486 begann,
habe ich mir vorgenommen, eine Schaltung zur Steuerung des Roboterarmes via PC zu
und entsprechende Software zu entwickeln. Nach langem Suchen im Internet und Analysieren
der Steuerplatine im Roboterarm konnte ich die folgende Schaltung realisieren:
Klick zum Vergrößern
Bauteile:
- OK1, OK2, OK3: 3x Optokoppler PC847 (Datenblatt)
- R1-R8: 8x Widerstand 470 Ohm
- R9, R10: 2x Widerstand 180 Ohm
- Q1, Q2: 2x Transistor NPN BC547B
- X1: 1x 36 pol. Centronics Buchsenleiste für Anschluss von Druckerkabel
- X2, X3: 2x 9 pol. SUB D Buchsenleiste zum Anschluss an den Roboterarm
- G1: kleine 1,5V Stromversorgung z.B. durch AA Mignon Batterie oder 1,2V Akku
Erläuterung:
Nach Analyse der Steuerplatine des Roboterarmes und Durchprobieren der Kontakte
wusste ich, welche Pins des Roboterarmes für welche Funktionen zuständig sind.
Die Hoch-Runter oder Links-Rechts Bewegungen einer Achse kommen dadurch zustande, dass
je nach Joystickbewegung +3V oder -3V in den entsprechenden Gleichstrommotor gegeben werden.
Die Ansteuerung erfolgt über den Parallelport, da dieser am einfachsten zu Schalten ist
und keine weiteren Mikroprozessoren oder ICs für die Kommunikation mit dem PC erfoderlich sind.
Über die Optokoppler ist eine galvanische Trennung der Stromkreise PC-Parallelport und Roboterarm
gegeben, sodass eine Beschädigung z.B. des PC vermieden wird.
Für die 4 Bewegungsachsen (Achsen 1-4) wurden die 8 Datenleitungen des Parallelport D0-D7
verwendet. An einer Datenleitung liegen im Ein-Zustand (1, true) ca. 3-5V,
im Aus-Zustand (0, false) 0,2-2V an. Die Spannungen sind von Parallelport zu Parallelport
unterschiedlich. Im Ausgangszustand sind diese Leitungen auf 0 (false) gesetzt.
Da nur 8 Ausgänge verfügbar sind, musste ich für die 5. Achse, den Greifer 2 Leitungen
missbrauchen, die eigentlich dazu da sind, dem Drucker Statussignale mitzuteilen (Pin 1 und 14).
Diese Leitungen sind jedoch invertiert, d.h. an ihnen liegen 3-5V, wenn die Leitungen auf 0 (false) gesetzt
ist, und 0,2-2V, wenn die Leitung auf 1 (true) gesetzt.
Das bedeutet, dass sie von der Software die den Roboterarm steuern soll, bei Initialisierung beide
auf 1 gesetzt werden müssen, damit kein Impuls an den Roboterarm gegeben wird.
Weiter liefern sie deutlich weniger Strom (mA) als die Datenleitungen und können daher den Optokoppler
nicht ausreichend versorgen. Aus diesem Grund habe ich die beiden Transistoren eingesetzt, welche an
einer kleinen Stromversorgung (z.B. 1,5V Batterie) hängen. Kommt nun ein Signal vom Parallelport an die
Basis des Transistors, schaltet dieser durch.
Pin-Belegungen:
Roboterarm Anschluss 1 (links):
Pin 1: Achse 2 vor
Pin 2: Achse 2 zurück
Pin 3: Achse 1 linkherum (gegen Uhrzeigersinn)
Pin 4: Achse 1 rechtsherum
Pin 6: Achse 5 Greifer zu
Pin 8: Masse
Roboterarm Anschluss 2 (rechts):
Pin 1: Achse 3 runter
Pin 2: Achse 3 hoch
Pin 3: Achse 4 linksherum (vom Licht aus gesehen)
Pin 4: Achse 4 rechtsherum
Pin 6: Achse 5 Greifer auf
Pin 8: Masse
Software-Programmierung:
Mit Visual Basic und einer veränderten inpout32.dll
(von logix4u)
konnte ich unter Windows 2000 eine Steuerungssoftware für den Roboterarm
programmieren. Den bisherigen Quellcode (Klassenstruktur zur besseren Handhabung)
schicke ich auf Anfrage gerne raus.
Die Standard-Adresse für den Parallelport ist &H378.
Hier kann man die 8 Bits für die Datenleitungen (also Achsen 1-4) setzen.
Für die beiden Statusleitungen zur Ansteuerung von Achse 5 (Greifer) ist die
Adresse &H378+2 (=&H37A).
7 6 5 4 3 2 1 0 | Datenleitungen
----------------+---+---------------
0 0 0 0 0 0 0 0 | 0| Achsen 1-4 aus
0 0 0 0 0 0 0 1 | 1| Achse 2 vor
0 0 0 0 0 0 1 0 | 2| Achse 2 zurück
0 0 0 0 0 1 0 0 | 4| Achse 1 links
0 0 0 0 1 0 0 0 | 8| Achse 1 rechts
0 0 0 1 0 0 0 0 | 16| Achse 3 hoch
0 0 1 0 0 0 0 0 | 32| Achse 3 runter
0 1 0 0 0 0 0 0 | 64| Achse 4 links
1 0 0 0 0 0 0 0 |128| Achse 4 rechts
----------------+---+---------------
0 0 0 0 0 0 1 1 | 3| Achse 5 aus
0 0 0 0 0 0 1 0 | 2| Greifer zu
0 0 0 0 0 0 0 1 | 1| Greifer auf
----------------+---+---------------
Die Werte können kombiniert werden, z.B. 6 für Achse 2 zurück und Achse 1 links.
Man muss jedoch aufpassen, dass nicht die Funktionen einer gleichen Achse
kombiniert werden, z.B. 3 für Achse 2 vor und Achse 2 zurück. Auswirkungen hat dies keine,
ich weiß jedoch nicht, ob es soo gut für die Elektronik des Roboterarmes ist,
wenn beide Stromkreise aufeinmal geschlossen werden.
Links und Dankeschöns:
Alles über den Parallelport: http://www.lvr.com/parport.htm
Erosoft NobraControl - Vibrator-Ansteuerung via PC (-; ... hier habe ich einen Teil der Schaltung abgeguckt:
http://www.erosoft.de/erosoft3/nobracontrol/
Ein großes Dankeschön an news.de.sci.electronics, die mir bei der Suche nach einer
passenden Schaltung geholfen haben.
Für Fragen zur Schaltung oder Programmierung stehe ich gerne zur Verfügung.
|
|
|
|
|