Servomotor mit Python ansteuern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
chris_hdrive
User
Beiträge: 3
Registriert: Donnerstag 8. Dezember 2016, 13:20

Hallo Zusammen
Ich habe einen Motor entwickelt, welchen Ihr mit nur 4 Zeilen Code aus Python ansteuern könnt. Der Motor hat Ethernet drauf und brauche keinerlei Gerätetreiber oder Kabeladapter. Auch das OS ist wurscht.

Code: Alles auswählen

import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(('192.168.1.102' , 1000))
    s.sendall(b'<system pos=\"150\" speed=\"400\" current=\"40\" acc=\"500\" decc=\"400\" mode=\"129\" out1=\"0\" out2=\"0\" />')
    data = s.recv(1024)
print('Received', repr(data))
Das reicht, der Motor fährt nun selbstständig auf 15.0°.

Den Motor versuche ich gerade über ein Kickstarter Projekt zu industrialisieren, hier ein Link: http://kck.st/2gal6IG.
Mich würde jetzt wundernehmen, ob ein solcher Motor für Euch interessant ist oder auch nicht. Ich bin um jede Antwort dankbar.

Wir haben damit schon tolle Sachen gebaut:
https://www.youtube.com/watch?v=k47auAHhDr4
https://www.youtube.com/watch?v=BUwt71hkCCQ
https://www.youtube.com/watch?v=BzsTlfyQbL4

Grüsse
Chris
BlackJack

@chris_hdrive: Das XML in den Beispielen bei Twitter unterscheidet sich bei den verschiedenen Programmiersprachen‽ Und warum überhaupt XML? Ich würde heutzutage ja eher JSON für so etwas erwarten. Ausser die Software auf dem Teil ist in Java. :twisted:

Die ganzen Backslashes beim `sendall()`-Argument sind unnötig.
chris_hdrive
User
Beiträge: 3
Registriert: Donnerstag 8. Dezember 2016, 13:20

Ciao BlackJack

Gut bemerkt, das XML Ticket ist noch nicht ganz definitiv. Zum Schluss aber für allen Programmiersprachen natürlich das selbe. Es gibt davon übrigens auch kürzere Varianten.

Danke für den Hinweis mit den Backslashs.

Der HDrive unterstützt zwei Protokolle, ein eigenes welches binär ist und das XML. Beim XML ist es halt sehr schön da man es in einer Code Zeile unterbringt und direkt lesen kann. z.B. aus Telnet kann ich kein JSON senden, auch Matlab bräuchte eine zusätzliches Packet.

Auch für die analyse mit Wireshark ist das XML schön, man sieht sofort was passiert.

Grüsse
BlackJack

@chris_hdrive: Wieso kannst Du mit Telnet XML senden aber kein JSON? Und wo ist der Unterschied zwischen den beiden bei Wireshark?
chris_hdrive
User
Beiträge: 3
Registriert: Donnerstag 8. Dezember 2016, 13:20

Also für alle dies genau wissen wollen, das Ticket in Jason wäre etwa sowas:
{ "pos": "100", "speed": "400", "current": "40", "acc": "500", "decc": "400", "mode": "129", "out1": "0", "out2": "0" }

und XML:
<system pos="150" speed="400" current="40" acc="500" decc="400" mode="129" out1="0" out2="0" />

Stimmt schon, beides sehr ähnlich und über Telnet als auch wireshark bedienbar. Das XML habe ich aber doppel so schnell eingegeben und ist übersichtlicher.

Um das gehts hier aber nicht, wir haben uns nun mal für XML entschieden :).
Antworten