Jump to content

Recommended Posts

Posted

Hallo,

 

Wir versuchen eine Roboterschlange aus einem Servobrick und 7 Servos zu bauen. So weit so gut. Im moment haben wir unseren Programmcode in Python und die Schlange funktioniert, wenn man sie an einen PC oder Laptop mit Windows oder Linux anschließt, der den Brickd installiert hat. Wir würden das ganze gerne zu vorführungszwecken per Kabel von einem Android-Gerät aus Steuern. Ich habe schon eine Python-Laufzeitumgebung für das Gerät und auch eine Bibliothek gefunden, mit der man direkt USB ansteuern kann (PyUSB). Leider habe ich zu wenig ahnung von Tinkerforge um den Servobrick per USB direkt anzusteuern. Ist soetwas überhaupt möglich, oder gibt es eine andere Möglichkeit den Brick ohne den Brickd anzusteuern?

 

Danke,

CodenameRoboterschlange

Posted

Der Brick Daemon leitet die Pakete unseres TCP/IP Protokolls unverändert durch und kümmert sich dabei um das Routing zwischen mehreren Bricks und mehreren TCP/IP Verbindungen.

 

Du kannst also mit einem Brick auch direkt per USB sprechen und ihm die gleichen Pakete schicken, wie sie für unser TCP/IP Protokoll definiert sind:

 

http://www.tinkerforge.com/de/doc/Low_Level_Protocols/TCPIP.html

 

Deutlich einfach ist es aber eine WIFI Extension zu verwenden. Dafür steckst du einen Master Brick unter den Servo Brick und eine WIFI Extension oben auf den Servo Brick. Dann kannst du die WIFI Extension als Access Point konfigurieren, dich vom Smartphone aus damit verbinden und dein bisheriges Steuerprogramm für die Schlange weiterverwenden.

Posted

Der Brick Daemon leitet die Pakete unseres TCP/IP Protokolls unverändert durch und kümmert sich dabei um das Routing zwischen mehreren Bricks und mehreren TCP/IP Verbindungen.

 

Du kannst also mit einem Brick auch direkt per USB sprechen und ihm die gleichen Pakete schicken, wie sie für unser TCP/IP Protokoll definiert sind:

 

Hallo photron.

 

Och. :staun:

 

Nur mal kurz gefragt: Wie geht das? Kann du mir einen kleinen Ansatz geben?

 

Danke.

 

Der Loetkolben

 

Posted

Loetkolben, wie borg schon sagt kannst du dir das alles im brickd anschauen.

 

Was du grob gesagt tun musst ist:

 

- den Brick in der Liste der USB Devices finden

- einen USB Handle für den Brick öffnen

- Interface 0 claimen

 

Dann kannst du Requests als Bulk Transfer an den Interface 0 OUT Endpoint senden und Responses als Bulk Transfer vom Interface 0 IN Endpoint empfangen.

 

Die Pakete sind die gleichen die auch über TCP/IP versendet werden.

 

Um mit USB zu interagieren kannst du z.B. libusb verwenden.

Posted

Hallo borg, hallo photron,

 

vielen Dank fuer die ausfuehliche Erklaerung. Ich nehme davon mit, dass man dazu ein Programm schreiben und dabei eine Library (libusb) mit einbinden muss.

 

Die Vorgehensschritte klingen sehr logisch, da USB Devices nunmal keine statische IP USB-Adresse haben.  :)

 

Es scheint also auch kein typisches Shellprogramm zu geben mit dem ich die USB-Devices in geeignet Form ansprechen kann.

 

Danke nochmals.  :)

 

 

Der Loetkolben

Posted

Loetkolben, ich denke nicht, dass du zwingend ein Programm schreiben muss. Unter Linux kannst du über das Dateisystem mit USB Devices arbeiten, Stichwort usbfs. Siehe /dev/bus/usb und /sys/bus/usb.

Posted

Ui, jui, jui.  8)

 

Ob ich das hinbekomme?  ;D  Wenn mal Zeit ist schauen ich mir das an. Fuer mich ist USB nur "Plug&Pray". (Die ganzen Geschichten wuerden hier den Rahmen sprengen)

 

Danke fuer die Hinweise!

 

Der Loetkloben

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...