Beitragsseiten

Auf der Basis dieses Roboters habe ich dieses Experiment aufgesetzt:

roboterarm

In einer ersten Variante habe ich den USB-Controller zum Einsatz gebracht.

Vorgehensweise:

 Als erstes brauche ich  die USB-Bilbiothek (PyUSB library). Den Raspberry hochfahren, einloggen und mit startx die grafische Benutzeroberfläche starten. Dann den Webbroser starten und auf der Seite "http://sourceforge.net/projects/pyusb/" die neueste Version von PyUSB herunterladen.

Die grafische Oberfläche verlassen und ein Terminalfenster öffnen. Mit dem Befehl "dir" den Inhalt des Heimatverzeichnisses (home directory) anzeigen lassen. Falls das Verzeichnis gewechselt werden muß "cd Verzeichnisname" eingeben. Sobald ich die heruntergeladene Datei pyusb...tar.gz gefunden habe diesemit "tar xvf pyusb....tar.gz" entpacken, das "..." mit der Versionsnummmer der PyUSB (Dateiname!) ersetzen.

Nun in das angelegte Verzeichnis wechseln und mit "sudo python setup.py install" die Installation starten. Vorher sollte natürlich auch bereits PYTHON installiert sein. Bei der Installation werden die benötigten Bibliotheken für PYTHON hinzugefügt.

Dann mit "cd ~" zum Heimatverzeichnis zurückkehren. Die heruntergeladenen Dateien können nun mit  "rm -r pyusb..." gelöscht werden. Bei einigen Dateien muß der Löschvorgang bestätigt werden. Zum Schluß die .tar.gz Datei mit  "rm pyusb....tar.gz" löschen.

Nun mit "sudo nano roboterarm.py" das Script zur Steuerung des Roboterarms erzeugen. Kann natürlich auch einen anderen Namen tragen.

 #!/usr/bin/python

# coding=utf-8
# roboterarm.py
#-----------------------
#Prozedurendefinition für Einzelbewegungen
    #Bewegung starten
    RoboArm.ctrl_transfer(0x40,6,0x100,0,ArmCmd,3)
    #Bewegung nach einer bestimmten Zeit wieder anhalten
    time.sleep(Duration)
    ArmCmd=[0,0,0]
    RoboArm.ctrl_transfer(0x40,6,0x100,0,ArmCmd,3)
	MoveArm(1,[0,1,0]) #Basis gegen den Uhrzeigersinn drehen
    MoveArm(1,[0,2,0]) #Basis im Uhrzeigersinn drehen
    MoveArm(1,[64,0,0]) #Schulter hoch
    MoveArm(1,[128,0,0]) #Schulter runter
    MoveArm(1,[16,0,0]) #Ellenbogen hoch
    MoveArm(1,[32,0,0]) #Ellenbogen runter
    MoveArm(1,[4,0,0]) #Handgelenk hoch
    MoveArm(1,[8,0,0]) #Handgelenk runter
    MoveArm(1,[2,0,0]) #Griff öffnen
    MoveArm(1,[1,0,0]) #Griff schließen
    MoveArm(1,[0,0,1]) #Licht an
    MoveArm(1,[0,0,0]) #Licht aus

 

Ist zwar eigentlich Spielzeug, aber ich wollte mal erkunden, was man damit machen kann. Optimal wäre ein späterer Aufbau auf einem Raupenfahrzeug.

Aber dann kam es anders. Nach einer Weile des Anpassens des Programms und des Testens kam es immer wieder zu solchen Fehlermeldungen:

 

Auf die Dauer war mir das einfach zu lästig. Außerdem hatte das auch zur Folge, daß immer die Plastikzahnräder durchsrutschten. Das könnte zu nachhaltigen Schäden führen. Ein Austausch der Motoren gegen Schrittmotoren und eine Steuerung anstelle der USB-Schnittstelle ist nun unabdingbar geworden. Aber das wird sich ja noch als sicher erweisen müssen.

 

 
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Ok Ablehnen