Estlcam mit Joystick-Handteil

soapy

User
Hallo liebes Netzwerk,

ich habe mir Anfang diesen Jahres Estlcam zur G-Code-Erzeugung zugelegt. Den Lobeshymnen die überall auf das Programm gesungen werden kann ich mich nur anschließen.

Ich wurde in Zukunft auch gerne die Steuerung direkt über Estlcam machen. Was mich bisher etwas abgeschreckt hat, war, dass ich mir als "Handrad" keinen XBOX-Controller hertun wollte. Klar, der ist schon geschickt, aber ich finde, das passt nicht in die Werkstatt ;)

Da ich aber auf ein Handteil nicht verzichten will, habe ich mir überlegt ein eingenes Handteil zu bauen mit Poti-Joysticks und einigen Knöpfen, vielleicht ein Wippschalter für die Spindel. Das ist noch nicht fertig geplant. Dafür habe ich mich ein bisschen informiert und bin auf folgendes Video gestoßen:
https://www.youtube.com/watch?v=GrO8ZmxbOyI

Kurz zusammengefasst:
Hier wird ein Arduino Uno als XBOX-Controller-Klon gebaut.
Mit UnoJoy lässt sich der USB-Treiber überschreiben, sodass der Arduino als Joystick/Gamepad erkannt wird. (Rückwärts geht auch wieder, der Arduino wird dadurch nicht unbrauchbar.)
Mit tocaedit xbox 360 controller emulator lässt sich dann die Arduino-Ausgabe an die XBOX Controller Ausgabe anpassen. Wenn man alle Knöpfe zugeordnet hat, wirft das Programm eine Treiber-Datei aus, mit der man den Originaltreiber ersetzen kann. Damit sollte das laut Video fertig sein und der Arduino als XBOX Controller erkannt werden.

Hat hiermit schon jemand Erfahrung gemacht und ist bereit die zu teilen? Falls nicht, werde ich mich selbst hinsetzen und Erfahrung sammeln müssen.
Habt ihr sonstige Anregungen, wie man das geschickt anstellen könnte?

Liebe Grüße
Philipp
 
Hey Philipp,

du könntest dir auch überlegen das PCB von einem alten Xbox Controller zu verwenden und dir daraus was zu basteln. Dann umgehst du das Treiber/Software Thema.
Im Arcade-Fighter Bereich machen das einige um sich eigene Fight-Sticks zu bauen. Hier ein Beispiel: http://www.instructables.com/id/Xbox-360-Arcade-controller---Project-Gyokusho/

Alternativ gäbe es auch noch die Deluxe-Variante: http://akishop-customs.com/PS360.html
Ich weiß allerdings nicht ob das Estlcam Kompatibel ist...und für nen Test ist mir die Platine etwas zu teuer ;-)

Gruß
Dome
 

soapy

User
Guten Morgen Dome,

das wäre eine Möglichkeit, ja.
Aber eigentlich will ich mit dem Poti im Joystick nicht nur die Richtung angeben, sondern auch die Verfahrgeschwindigkeit. Dafür wäre dann noch ein bisschen Programmierarbeit auf dem Arduino nötig. Ob das so ohne weiteres möglich ist, werde ich mal ausprobieren. Aber mit einem ausgeschlachteten alten Controller, stelle ich mir das sehr schwierig vor.
Denkt ihr, dass das überhaupt möglich ist, wie ich mir das vorstelle? Wo seht ihr die Probleme?

Liebe Grüße
Philipp
 
Hallo Philipp,

ich möchte deinen Tatendrang nicht bremsen, doch was versprichst du dir konkret davon?
Das Endergebnis wird nicht mehr als der XBox Controller können - eher weniger.

Achtung: der Xbox Controller hat 2 Modi:
  • Den XBox spezifischen Xinput der hier benötigt wird.
  • Und DirectInput der für viele PC Spiele verwendet wird, mit dem Estlcam allerdings nichts anfangen kann.
Keine Ahnung welchen Modus der von dir genannte Treiber zur Verfügung stellt.

Erheblicher Aufwand, höhere Kosten, ungewisser Ausgang...
Ich sehe da abgesehen von Erkenntnisgewinn und Lust am Basteln keinen Sinn.

Christian
 

soapy

User
Hallo Christian,

danke für deinen Hinweis.
So wie ich das gesehen habe, liefert dieser Emulator eine x_Input DLL. Ich werde das in naher Zukunft mal ausprobieren.

Ich weiß, dass der Joystick nicht mehr können wird als der XBox Controller.

Du hast recht, die Herausforderung sowas zu basteln war ein Grund, aber auch, dass ich mich noch nicht so recht mit dem Layout des XBox-Controllers zur Steuerung meiner Fräse anfreunden kann.
Ist für manch einen vielleicht nicht nachvollziehbar, aber das ist bei mir irgendwie Gefühlssache :cool: Und so könnte ich mir mein eigenes Handteil-Layout machen, was für mich einen besonderen Reiz hat.

Außerdem könnte man Estlcam, falls der Emulator funktioniert, dann auch mit jedem anderen Gamepad steuern. Das hätte seinen Charme, sollte man einen Nicht-XBox-Controller zuhause rumliegen haben.

Wenn wir grad schon beim XBox-Controller sind:
Ich fände es cool, die Touchplate-Vermessung über den Controller starten zu können. Natürlich ist der Dialog zur Zeit so aufgebaut, dass man den Werkzeugdurchmesser noch angeben muss. Aber vielleicht könnte man dafür ja auch den Durchmesser des als erstes im GCode verwendeten Werkzeugs heranziehen. Ich weiß nicht, wie andere das machen, aber ich spann mein erstes Werkzeug ein und setze damit den Nullpunkt. Für alle weiteren Werkzeuge muss ich dann nur noch die Z-Achse nullen.

Ich kann nicht abschätzen, wie aufwändig das wäre, aber ich fände es klasse, wenn man so eine wertvolle Funktion einfach kurz über einen Tastendruck auf dem Controller starten könnte.
Siehst du dafür eine Anwendung und könntest dir vorstellen sowas zu implementieren?

Liebe Grüße
Philipp
 

soapy

User
Hey Leute,

nach kleinen Bastelarbeiten habe ich nun festgestellt, dass sich Estlcam mit dem Arduino als Handteil steuern lässt. Was somit auch bedeutet, dass man mit dem Treiber auch andere Gamepads verwenden können sollte. Das kann ich leider nicht nachprüfen, da ich keinen Controller rumliegen habe.

An sich ist das auch nicht schwierig:
  1. XBox 360 Controller Emulatur herunterladen
  2. Joystick/Gamepad anschließen
  3. XBox 360 Controller Emulatur entpacken und ausführen
  4. Wenn im Programm nachgefragt wird, ob die xinput1_3.dll erstellt werden soll -> Bestätigen
  5. Wenn angezeigt wird, dass ein neuer Controller gefunden wurde und nachgefragt wird, ob automatisch nach Einstellungen gesucht werden soll -> Abbrechen
  6. Falls das Kästen links neben dem Controller 1-Tab nicht grün ist, einmal auf Save drücken, Programm nochmal schließen und wieder öffnen
  7. Tasten des Gamepad/Joystick dem Original-XBox-Controller zuordnen (Hier ist die Record-Funktion sehr hilfreich) -> Wieder save
  8. x360ce.ini und xinput1_3.dll in das Verzeichnis legen in dem die ausführbare Date von Estlcam liegt.
  9. In den Estlcam-Einstellungen Gamepad aktivieren

Und fertig... Jetzt sollte man mit dem Nicht-XBox-Controller auch Estlcam steuern können. Wenn das mal jemand ausprobieren will und hier seine Erfahrungen teilen will, möchte ich herzlich dazu einladen.

Vermutlich muss das XNA-Framework trotz allem installiert werden, das konnte ich nicht ausprobieren, da ich es schon installiert hatte.

Um den Arduino verwenden zu können, muss noch der Arduino in ein Gamepad umgewandelt werden.
Falls man, wie ich, keinen Original-Arduino hat (wie es beim Original aussieht, weiß ich nicht), kann es bei dem Programm FLIP 3.4.7 (siehe Video) zu einem Fehler kommen: AtLibUsbDfu.dll not found.
Wenn man im Gerätemanager dann schaut, sollte es ein unbekanntes Gerät (gelbes Ausrufezeichen) geben. Das dürfte der USB-Chip sein, der nicht richtig erkannt wurde. Da muss man dann von Hand den Treiber installieren. Der befindet sich im Flip 3.4.7-Ordner (bei mir: C:\Program Files (x86)\Atmel\Flip 3.4.7\usb). (Vorsicht, es muss sichergestellt sein, dass das auch das richtige Gerät ist!!!) Also Treiber installieren, dann dürfte es funktionieren.
Ein Video wie das zu machen ist: https://www.youtube.com/watch?v=KQ9BjKjGnIc

Die restlichen Schritte sind dann im Video aus meinem ersten Beitrag erklärt.

Falls Interesse besteht, werde ich einen kurzen Bastelbericht für das Arduino-Handteil schreiben.
 

AlexB

User
Hallo,

bevor ich zu Estlcam gewechselt bin hab ich LinuxCNC benutzt. Ich hab den Umstieg nie bereut, Estlcam ist super bis auf eine Kleinigkeit, ich konnte die HB04 nicht mehr benutzen:

K1024_DSC_0772.JPG

eine ziemlich weit verbreitete weil günstige China-USB-Steuerung. Wer einmal sowas in der Art benutzt hat empfindet ein Gamepad in der Tat als Rückschritt. Ich begrüsse daher jede Initiative die dem ansonsten tollem Estlcam auch eine professionelle Steuerung beschert. Weiter so.

Gruß

Alex
 

soapy

User
Hallo Alex,

inwieweit die Steuerung mit dem HB04 möglich ist, weiß ich nicht. Ich schätze, dass - wenn es überhaupt möglich ist - dann doch mit einigen Einschränkungen zu rechnen ist.
Wie wird das Handrad denn am PC erkannt? Wenn es als Joystick erkannt wird, dann könnte es vielleicht sogar möglich sein, den XBox-Controller zu emulieren.
Ich schätze aber eher, dass man dafür einen Arduino dazwischen schalten muss, um das USB-Signal zu konvertieren. Aber da habe ich noch keine Ahnung, ob das so funktioniert. Wäre interessant, wenn sich daran mal jemand versuchen würde.
Wo ich zufällig drauf gestoßen bin ist das hier:
http://www.cnc-area.de/wbb3/index.php?thread/6650-handrad-eding-cnc/

An der Uni haben wir einen Faser-Cutter, der lässt sich relativ komfortabel mit einem Joystick positionieren. Der Joystick hat ein bisschen eine Ähnlichkeit mit dem hier von eBay (Mitte Juli bis Mitte August soll dieser aus Fernost ankommen):
Joystick eBay

Bei dem Cutter muss man den Knopf drücken um den Cutter verfahren zu können. Das soll Sicherheit bieten, dass wenn man versehentlich gegen den Joystick stößt, nichts passiert. Ähnliches wollte ich ursprünglich für mein Handteil umsetzen, doch dann ist mir eine bessere Idee gekommen. Wenn ich den Knopf drücke, deaktiviere ich die Steuerung für die X-/Y-Achse und aktiviere die Steuerung für die Z-Achse. Also Knopf gedrückt: Z-Verfahren. Nicht gedrückt: X-Y-Verfahren. Hat einfach den Vorteil, dass ich mir einen Stick komplett spare und mein Handteil wieder handlicher wird.

Gestern habe ich die Joystick-Steuerung ausprobiert mit einem ausgeschlachteten Joystick-Poti aus einer alten Fernsteuerung. Es lassen sich beide Richtungen gleichzeitig verfahren. Das kann Estlcam ja schon. Dann habe ich noch eine kleine Anpassung am Arduino-Code gemacht, dass die Verfahrgeschwindigkeit von der Auslenkung des Joystick gesteuert wird (im Controller in Estlcam macht das die Taste A). Allerdings lässt sich die Geschwindigkeit nur für beide Achsen gleichzeitig anpassen. Auch die Z-Achse lässt sich über einen Knopfdruck bereits mit dem Joystick steuern.
Genial wäre es, wenn man die Verfahrgeschwindigkeit für beide Achsen entkoppeln könnte, dass, je nach Auslenkung des Joystick in die jeweilige Richtung, die Verfahrgeschwindigkeit individuell angepasst wird.

Geplant ist dann so ein Teil in etwa:

Handteil (1).jpg

Den Arduino-Sketch habe ich hier hochgeladen. Falls jemand Interesse hat, kann er sich daran ausprobieren.
 
Ansicht hell / dunkel umschalten
Oben Unten