Inhalt dieser Seite:
Wer noch einen Robotarm 2000, von
QuickShot sein Eigen nennt, kann sich glücklich schätzen. Egal ob man Interesse
an diesem Gerät hat oder nicht. Denn wenn man das Teil los werden will, kann
man bei www.ebay.de
mit einem saftigen Auktionsendpreis rechnen. Bei der letzte, von mir
beobachtete Auktion (Sep.2002), wechselte der Robotarm für 98€ den Besitzer. Kurzbeschreibung des Robotarms: Der Robotarm 2000 besitz 4 Achsen
und einen Greifer, der bei bedarf durch eine Schaufel ersetzt werden kann. Die
Achse Eins ist eine Drehachse, mit ihr wird der komplette Arm auf dem Rumpf
gedreht. Der Drehwinkel beträgt ca. 300°, somit lässt sich, fast der
komplette Bereich, um den Robotarm herum anfahren. Achse Zwei und drei sind die
Gelenke des Armes. Achse Vier dient zum Drehen des Greifers bzw. der Schaufel.
Diese Achse besitzt, im Gegensatz zur Ersten keinen Anschlag, der Greifer kann
beliebig lang, in eine Richtung rotiert werden. Die im Arm eingebaute
Leuchte, leuchtet übrigens nur wenn man den Greifer Auf oder Zu bewegt. Die Steuerung des Arms kann auf zwei Arten geschehen:
Nun zum Eingemachten. Der Roboter wird, wie gesagt am USER-Port der Rechners betrieben. Um die USER-Port-Pforte zu öffnenm, benötigt der Commodore erst mal Tritt in den Arsch, dies geschieht mit POKE56579,255. Danach gelten folgende Befehle: POKE 56577,0 - Achse 2 Hoch Noch ein paar Worte zu Verwendung der POKE's. Wird der Roboter nun mit einem der Poke's in Bewegung gesetzt, so behält er die vorgegebene Bewegungsrichtung bei. Vorsicht! Auch wenn der Arm an seinen Anschlag gelangt ist, wird der Motor immer noch versuchen weiter zu drehen, was sich in lauten Knackgeräuschen niederschlägt. Ein abbrechen der Bewegung geschieht entweder, durch festlegen einer anderen Bewegung oder durch setzten des POKE 56577,255. Damit das ganze nicht zu trocken wird habe ich mal schnell ein kleines BASIC Programm geschrieben, mit dem es möglich ist, vom Computer aus, alle Achsen zu bedienen. Die einzelnen Achsen sind dabei auf dem Bildschirm immer sichtbar, zudem wird auch immer die aktuelle Arbeitsbewegung angezeigt. Das Programm kann man Hier herunterladen. Es befindet sich in einem D64-Image, wie man das Programm auf den C64/128/VC20 bekommt steht hier. Natürlich kann man das BASIC-Listing auch abtippen, dazu bitte hier Klicken. Um den Arm nun in eine bestimmte Richtung zu steuern muss man eine Bewegung, für eine bestimmte Zeit vorgeben. Dazu nutz man einfach eine Zeitschleife. Ein Programm, zum Anheben und Senken des Arms (Achse2) für eine bestimmt Zeit könnte so aussehen: 10 POKE 56579,255 Bei der hier gezeigten Ausführung des Programms, hat man allerdings viel Schreibarbeit und verliert obendrein auch noch schnell den Überblick. Um das ganze etwas zu vereinfachen hatte ich mir schnell mal folgendes zurecht gebastelt: 2 ES=2:EW=3:ZH=0:ZR=1:DH=6:DR=7:VS=8:VW=9:GA=5:GZ=4:HALT=255 In den Zeilen 2 bis 100 werden alle sich wiederholenden Bestanteile, als Variable bzw. Abrufbare Unterprogramme deklariert. Ab Zeile 110 (XXX) kann somit jede Bewegung, mit nur wenigen Eingaben eingeleitet werden. Um den gleichen Ablauf wie oben zu erreichen, muss das Programm ab (XXX) um folgendes ergänzt werden: 110 POKE A,ZH : T=500
: GOSUB 10 -> Achse 2 hoch (ZH) für Zeit 500 Geändert werden hier nur die fett gedruckten Elemente, Richtung und Zeit. Der Rest kann immer wieder in die nächste Zeile kopiert werden, um den nächsten Schritt festzulegen. Eventuell muss die Zeit zum Hochfahren einer Achse etwas länger sein, als die des Absenkens, da der Motor hier wegen der Mehrbelastung etwas langsamer dreht. Bei mir waren das bei T=500 ca. 25 mehr fürs Hochfahren. Die Variablen zur Steuerung der Bewegungen sind wie folgt aufgebaut:
Ein auf diesen Schema, aufbauender
Arbeitsablauf stelle ich mal hier
zum Download
bereit. Um den Überraschungseffekt zu waren sag ich mal nur wie die Ausgangsstellung
des Robotarm aussehen sollte. Man nehme eine leere Zigarettenschachtel und
stelle diese auf den Boden und packt diese mit dem Greifer. So wie in der
Abbildung, ganz oben auf dieser Seite gezeigt (Bild rechts). Die ca. Werte der
Armausschläge sind: Achse 2 = 30°; Achse 3 =+7,5°; Achse 4 = waagrecht. Dabei ist darauf zu
achten, dass Achse 1 noch ca. 180° nach rechts schwenken kann. Am
einfachsten geht dies mit angeschlossenen Joystick's, aber das Programm TEST1.PRG,
von oben tut's natürlich auch. Software: Beim Kauf des Robotarms lag, zumindest bei Conrad eine Steuerungssoftware bei, die auf der Software zu Hardware - Seite downlgeloadet werden kann. Diese lässt sich allerdings nicht in eigene Programme einbinden.
Auch wenn man es nicht unbedingt vermutet aber der Roboterarm hat trotz seines simpel wirkenden Aufbaus eine Platine im Rumpf. QuickShot hat meines Wissens kein Interface-Modul für den Roboterarm angeboten, man ging alos davon aus, dass der Arm mit Joysticks bewegt wird, am besten welche von QuickShot :-) Um diese nun nicht mit unnötig hohen Schaltströmen und somit extrem erhöhtem Verschleiß zu belasten muss wohl diese Platine entwickelt worden sein. Dabei werden genau wie auf der Interfaceplatine, Transistoren als Schalter bzw. als Relais "missbraucht". In der Regel kommt an diese Platine auch nichts dran, ausser man ist ein unvorsichtiger Bastler (so wie ich :-). Beim Experimentieren hatte ich einen Kurzschluss verursacht und infolge sind mir drei Transistoren abgeraucht :-( Eine Hilfe könnte eventuell sein wenn man weis, welcher Transistor für welche Bewegung zuständig ist. Da ich dies sowieso herausfinden musste, um zu wissen welche Transis ich wechseln musste, habe ich die Info gleich mal zu Papier... ähhh, HTML gebracht. In der unten stehenden Tabelle ist diese Info zu finden. Die Nummerierung stammt übrigens nicht von mir, sondern es ist die tatsächliche Transistor-Durchnummerierung der Platine.
In der Tabelle ist auch der Transistortyp genannt, bei dieser Bezeichnung handelt es sich offenbar um eine japanische "Normbezeichnung" oder Werksnorm. Als Bezugsquelle konnte ich nur Reichelt Electronics ausfindig machen. Und trotz gleicher Transistor-Kennzeichnung ist hier Vorsicht geboten! Die Belegung entspricht sehr wahrscheinlich nicht der original eingelöteten Transistoren (zu mindest nicht bei denen die ich von Reichelt bekam). Durch die, auf der Platine gekennzeichneten Anschlüsse (BEC) ist jedoch sehr einfach erkennbar, wie er Eingelötet werden muss. Leider kann man bei Reichelt keine Datenblätter zu den beiden Transistoren herunterladen, aber ich konnte dennoch welche besorgen, die man hier auch saugen kann - 8050.tif - 8550.tif . Als Alternative zum 8550 kann man auch einen BC558 oder verkl. verwenden. Jeder der nun ein wenig elektronisches Grundwissen hat wird nun vermuten, dass man für den 8050 dann einen 548 einsetzen könnte. Denn der 8050 ist der komplementäre Typ zum 8550 wie der BC 548 zum BC 558. Dem ist aber leider nicht so. Ich habe leider keine Ahnung warum das nicht geht, wobei ich mich auch nicht weiter mit den Datenblätter auseinandergesetzt habe. Am besten besorgt man sich gleich die beiden japanischen Typen, dann klappt's auch 100% Das Modul welches ich benutze ist von Conrad, ob QuickShot selbst, oder weitere Anbieter, Interface-Module vertrieben hat weiss ich nicht. Wenn ja, dann könnte dort der Aufbau anders sein.
Zahnradpuzzle beim Zusammenbau Um an die Platine des Robotarms ran zu kommen muss der Rupf aufgeschraubt werden. Unter Umständen kommen einem beim Öffnen dann gleich zwei Zähnrädchen entgegengeflogen, die man eventuell nicht gleich einem Plätzchen zuweisen kann, bzw. wo denn nun welches Rädchen wie herum hinein gehört. Um ein eventuell langes und nervenzehrendes Puzzlespiel zu vermeiden habe ich mal ein Bild gemacht welches zeigt, wie die Rädchen eingesetzt werden müssen. Es macht auch Sinn beide Zahnräder beim Zusammenbau, wie abgebildet zuerst in den Arm zu stecken. Um die beiden Teile besser erkennen zu können habe ich das eine Zahnrad etwas herausgezogen. Meines Wissens gab es kein Interface um den Arm an einem PC zu betreiben aber für einen Bastler ist das kein Problem. Das C64'er Interface ist mit wenigen Handgriffen umgebaut, um es am PC zu betreiben. Dabei werden die Anschlüsse C, D, E und F vom Userport auf 2, 3, 4, und 5 des PC-LPT Port's umgelegt. GND, also Masse findet man am LPT-Port auf den Pin's 18-25. Die Spannung 5V+ die beim USER-Port auf dem Anschluss 2 liegt sucht man allerdings am LPT-Port vergeblich. Entweder holt man sich die Spannung direkt vom Netzteil, vom Gameport oder einem PS/2 Anschluss, sicherheitshalber holt man sich da auch nochmals Masse und legt sie mit der vom LPT-Port zusammen. Für die Belegungen siehe bitte im Hardwarebereich unter "Anschlüsse und Pinbelegungen" Nachdem die Hardware umgebaut ist, steht einem Probelauf nichts mehr im Wege, leider existiert meines Wissens nach kein fertiges Programm mit dem es möglich ist den Arm unter Windows oder DOS direkt anzusteuern. Drum muss man sich hier eines basteln. Ich möchte mal beschreiben, wie man dem Arm unter QBasic Leben am PC einhaucht. Qbasic sollte eigentlich jeder haben der auch ein Betriebsystem von M$ besitzt... das trifft wohl auf 90% aller PC User zu. Ansonsten kann man den den QBASIC Compiler 4.5 z.B. hier kostenlos saugen: Antonis Die Ansteuerung der Ausgänge ist eigentlich genauso wie beim C64 nur das die Bit's nicht gepoket, sondern über den Befehl OUT(888) gesetzt werden. Möchte man also die Achse 2 aufwärts bewegen so nutzt man folgenden Syntax: OUT(888),0 analog also zum C64 der hier ein POKE 56577,0 erwartet. Ich spare mir hier mal die Auflistung aller Bewegungen, da man dies ja direkt aus der oben gezeigten Auflistung zum C64 direkt übernehmen kann. Das oben gezeigt Basic-Programm könnte für QBasic wie folgt aussehen: ES=2:EW=3:ZH=0:ZR=1:DH=6:DR=7:VS=8:VW=9:GA=5:GZ=4:HALT=255 GOTO Anweisungen Warten: Anweisungen: In den ersten 4 Zeilen werden alle sich wiederholenden Bestanteile, als Variable bzw. Abrufbare Unterprogramme deklariert. Ab der Zeile mit den roten X'en (XXX) kann somit jede Bewegung, mit nur wenigen Eingaben eingeleitet werden. Um einen Ablauf zu erreichen bei dem der Arm für eine bestimmte Zeit hoch und für die gleiche Zeit wieder runter gefahren wird, ist dann folgendes einzugeben: OUT (888), ZH: T=15000:
GOSUB Warten Geändert werden hier nur die fett gedruckten Elemente, Richtung und Zeit. Der Rest kann immer wieder in die nächste Zeile kopiert werden, um den nächsten Schritt festzulegen. Eventuell muss die Zeit zum Hochfahren einer Achse etwas länger sein, als die des Absenkens, da der Motor hier wegen der Mehrbelastung etwas langsamer dreht. Die Variablen zur Steuerung der Bewegungen sind, wie schon in der obigen Tabelle gezeigt zu verstehen. Nachtrag: Ansteuern unter Windows Da unter Windows die Schnittstellen nicht so ohne weiteres angesteuert werden können, bedarf es hier eines zusätzlichen Tools wie z.B. die INPOUT32.DLL Library die man in eigene Programme einbinden kann. Es gibt auch noch andere Mittel und Wege, jedoch ist dieses Tool, insbesondere für QBasic erfahrene wirklich einfach zu bedienen. Wie man z.B. INPOUT32.DLL in ein Delphi Programm einbindet kann man hier erfahren. Für weitere Fragen und Anregungen stehe Ich gerne zur Verfügung: eMail
- Webmaster |
"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"
I Startseite I