Seite 1 von 2
libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 18:51
von automotive-engineer
Hallo,
leider hatte ich keinen Erfolg, unser Robo LT Interface unter Linux mit der libroboint (
http://defiant.homedns.org/~erik/ft/libft/) anzusteuern.
Kann mir jemand (am besten der Autor defiant selbst) sagen, was oder wo im Code anzupassen wäre, um das hin zu bekommen?
Mein Ziel: ich möchte vom RaspberryPi im Kinderzimmer Fischertechnik Modelle mit Scratch (
http://scratch.mit.edu/) steuern. Vermittels Python Schnittstelle.
mit freundlichen Grüßen an das tolle Forum, das ich hier zum ersten mal nutze

Dirk
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 19:16
von Dirk Fox
Hallo Dirk,
bis defiant antwortet, hilft Dir vielleicht sein Aufsatz in der ft:pedia 2/2012 (wenn Du den noch nicht entdeckt haben solltest):
http://www.ftcommunity.de/ftpedia_ausga ... 2012-2.pdf
Gruß, Dirk
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 19:53
von Defiant
Hallo,
Das LT Interface war mir bisher unbekannt, aber es scheint zur TX-Generation gehören.
Die Interfaces der TX-Generation werden aktuell nicht von der libroboint unterstützt.
Das TX soll aber den USB CDC[1] Standard verwenden.
Da ich kein TX habe, kann ich hier leider nicht helfen.
Für den Raspberry Pi gibts allerdings auch genügend IO-Peripherie, so daß das Interface nicht notwendig ist ;)
[1]
http://mbhs.edu/~sclawren/old/p/PC_Prog ... oTXCs.html
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 20:14
von automotive-engineer
Vielen Dank für die Antworten,
lt. diesem Beitrag
http://forum.ftcommunity.de/viewtopic.p ... =233#p1511 gehört das Robo LT zur Robo Int Familie. Irgendwo hatte ich auch aufgeschnappt, dass das LT eine abgspeckte Version des Robo I/O Extension sei.
Daher hatte ich mit Chancen ausgerechnet. Ich werde mal schauen, wie weit ich mit diesem Ansatz komme und melde mich dann wieder.
Gruß, Dirk
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 20:45
von automotive-engineer
ich habs kompiliert und erhalte folgende "Lebenszeichen":
dmesg:
Code: Alles auswählen
[60349.480084] usb 4-1: USB disconnect, device number 2
[60355.820075] hub 1-0:1.0: unable to enumerate USB device on port 6
[60356.880041] usb 4-2: new full-speed USB device number 3 using uhci_hcd
[60357.049062] usb 4-2: New USB device found, idVendor=146a, idProduct=000a
[60357.049070] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[60357.049076] usb 4-2: Product: fischertechnik Robo LT-Controller (Knobloch GmbH)
[60357.049081] usb 4-2: Manufacturer: Knobloch-GmbH
[60357.049085] usb 4-2: SerialNumber: 00000001
ftdiagnose.py:
Code: Alles auswählen
..... (Interface blinkt)
FtThread: Error reading from the Interface. Got 6 of 21 bytes
FtThread: Error reading from the Interface. Got 6 of 21 bytes
FtThread: Error reading from the Interface. Got 6 of 21 bytes
StopFtTransferArea: No such device
dirk@desktop-Ubuntu:~/bin/libroboint/libroboint-0.5.1$
Mir scheint, es lohnt sich weiter zu machen?
Gruß, Dirk
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 20:56
von Defiant
Kannst du die Programmiersprache C?
Und könntest du unter Windows den USB-Verkehr mitsniffen? Mit usbsnoop oder so.
Da nur 6 Bytes gelesen werden, wird hier wohl ein anderes Protokoll als bei der Robo Extension verwendet.
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 21:11
von automotive-engineer
Python behersche ganz gut, C verstehe ich in etwa.
Unter Windows sniffen will ich gern probieren. Hast Du bestimmte Tipps?
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 21:20
von Defiant
Ich hatte damals
usbsnoop verwendet, geht nur vermutlich nicht mit Windows 7/8.
Alternative wäre ein Windows in eine Virtuelle Maschine zu installieren und dann den USB-Port von Linux aus durchzureichen.
Dann kann z.B. der Datenstrom mit wireshark mitgelesen werden.
Wenn du sniffst dann wäre folgendes ganz gut:
- Einmal nur Diagnose starten und beenden
- Einmal nur mit Motor 1 links
- Einmal nur Motor 1 rechts
- Einmal nur Taste an Eingang 1 drücken
etc.
Re: libroboint und Robo LT Beginner
Verfasst: 28 Jun 2013, 22:04
von automotive-engineer
ich scheitere leider momentan daran, dass ich die Installations CD vom RoboPro Light nicht mehr finde.... bis später!
Re: libroboint und Robo LT Beginner
Verfasst: 29 Jun 2013, 22:44
von vleeuwen
For the TL-C you will need the FtLib.dll (from Knobloch) and not the FtMscLib.dll.
The TL-C is using the same API set as the Robo interface family.
But because of its limitation the TL-C is implementing only a subset of this API.
The exist also a MS-Robotics Developer Studio driver FtTlService for it. See the fischertechnik web site downloads.
So the use of C, C++, C++ managed and C# (and other .NET dialects) is possible and supported.
Re: libroboint und Robo LT Beginner
Verfasst: 30 Jun 2013, 00:03
von Dirk Fox
@vleeuwen: This posting is about Linux, not Windows.
Regards,
Dirk
Re: libroboint und Robo LT Beginner
Verfasst: 30 Jun 2013, 07:53
von Defiant
Das macht der doch immer so. Hauptsache Werbung machen.
Re: libroboint und Robo LT Beginner
Verfasst: 30 Jun 2013, 09:17
von thkais
Moin,
aber die Kernaussage ist richtig: Der LT-Controller lässt sich auf die gleiche Weise ansteuern wie ein Robo-Interface.
Re: libroboint und Robo LT Beginner
Verfasst: 30 Jun 2013, 09:26
von Defiant
Hatten wir schon im vierten Post. Und abgesehen davon bringt es Null Information, da das LT offenbar nicht genauso angesteuert wird.
Was helfen würde wär ne Protokoll-Dokumentation oder ein Dump.
Re: libroboint und Robo LT Beginner
Verfasst: 30 Jun 2013, 13:06
von automotive-engineer
Leider klappt's (noch) nicht mit dem Sniffen. Wenn ich usbpcap installiert habe, erkennt RoboPro Light den LT Controller nicht mehr... (Auf dem Win7 Starter PC.)
Um eine virtuelle Maschine zu installieren, müsste ich die CD wiederfinden....
Re: libroboint und Robo LT Beginner
Verfasst: 30 Jun 2013, 19:13
von Defiant
Da ich kein Windows 7 habe kann ich hier leider nicht helfen.
Re: libroboint und Robo LT Beginner
Verfasst: 02 Jul 2013, 09:01
von Defiant
Wir können auch mal versuchen rumzuraten:
Wenn du in lib/libroboint.c die komplette Fehlerabfrage bei Zeile 973 löscht, also folgendes aus der Datei entfernst
Code: Alles auswählen
if (ret != num_read) {
hFt->interface_connected = 0;
fprintf(stderr, "FtThread: Error reading from the Interface. Got %d of %d bytes\n", ret, num_read);
usleep(hFt->query_time);
continue;
}
Und dann das ganze neu kompilierst, kannst du dann die Motoren am LT Controller bewegen?
Re: libroboint und Robo LT Beginner
Verfasst: 02 Jul 2013, 22:52
von automotive-engineer
Teilerfolg:
- die Motoren laufen nicht,
- aber die Eingänge I1, I2, I3 werden erkannt
Beim ersten Versuch wurde auch das Interface mit Namen erkannt beim Öffnen des Dialogs "Open Interface". Danach nur noch als "0 - unknown" - merkwürdig...
ps: ich habe noch Vesion 0.5.0 verwendet
mfg Dirk
Re: libroboint und Robo LT Beginner
Verfasst: 03 Jul 2013, 19:13
von Defiant
ok jetzt probieren wir mal bei Zeile 823 num_write (und num_read) auf 6 zu setzen, also
Code: Alles auswählen
default:
out[0] = 0xf2;
num_write = 6;
num_read = 6;
break;
Re: libroboint und Robo LT Beginner
Verfasst: 03 Jul 2013, 22:13
von automotive-engineer
BINGO!
hätte ich eigentlich auch selbst drauf kommen können ....
Allein der Motor 2 nach links funktioniert nicht richtig im ftdiagnose, d.h. die Geschwindigkeitsstufen passen nicht.
Die InterfaceID ist übrigens 10 (0xa). Worauf wäre zu achten, um das sauber in den Code zu integrieren? Müssen wir noch mehr wissen?
Gruß, Dirk