libroboint und Robo LT Beginner

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 28 Jun 2013, 18:51

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

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1845
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Dirk Fox » 28 Jun 2013, 19:16

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

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 28 Jun 2013, 19:53

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
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 28 Jun 2013, 20:14

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

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 28 Jun 2013, 20:45

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

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 28 Jun 2013, 20:56

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.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 28 Jun 2013, 21:11

Python behersche ganz gut, C verstehe ich in etwa.

Unter Windows sniffen will ich gern probieren. Hast Du bestimmte Tipps?

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 28 Jun 2013, 21:20

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.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 28 Jun 2013, 22:04

ich scheitere leider momentan daran, dass ich die Installations CD vom RoboPro Light nicht mehr finde.... bis später!

vleeuwen
Beiträge: 1609
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von vleeuwen » 29 Jun 2013, 22:44

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.

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1845
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Dirk Fox » 30 Jun 2013, 00:03

@vleeuwen: This posting is about Linux, not Windows.

Regards,
Dirk

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 30 Jun 2013, 07:53

Das macht der doch immer so. Hauptsache Werbung machen.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

thkais
Beiträge: 384
Registriert: 31 Okt 2010, 21:45

Re: libroboint und Robo LT Beginner

Beitrag von thkais » 30 Jun 2013, 09:17

Moin,

aber die Kernaussage ist richtig: Der LT-Controller lässt sich auf die gleiche Weise ansteuern wie ein Robo-Interface.
Gruß
Thomas

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 30 Jun 2013, 09:26

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.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 30 Jun 2013, 13:06

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....

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 30 Jun 2013, 19:13

Da ich kein Windows 7 habe kann ich hier leider nicht helfen.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 02 Jul 2013, 09:01

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?
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 02 Jul 2013, 22:52

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

Benutzeravatar
Defiant
Beiträge: 409
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: libroboint und Robo LT Beginner

Beitrag von Defiant » 03 Jul 2013, 19:13

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;
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

automotive-engineer
Beiträge: 10
Registriert: 28 Jun 2013, 18:43

Re: libroboint und Robo LT Beginner

Beitrag von automotive-engineer » 03 Jul 2013, 22:13

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? :geek:


Gruß, Dirk

Antworten