TXT - Initialisierung des Gestensensors im Onlinemodus?

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
akki
Beiträge: 7
Registriert: 09 Jan 2022, 15:30

TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von akki » 12 Nov 2022, 17:43

Hallo zusammen,

zum Einstieg in die fischertechnik-Robotics-Programmierung habe ich mir den Smarttech-Kasten angeschafft und wollte nun einmal den RGB-Gestensensor am TXT ausprobieren. Dazu habe ich das Modell Dämmerungsschalter gebaut. Leider funktioniert das Programm "Twilight_switch_1" im Onlinemodus von ROBO Pro nicht - wohl aber im Downloadmodus.

Im Onlinemodus scheint schon die Initialisierung des Gestensensors zu scheitern: nach dem Programmstart wird der Befehlsblock „APDS9960_init" rot umrandet dargestellt. Im Unterprogramm „APDS9960_init" wird der Block I2C Lesen "I2C 0x39 | 0x92->8bit" rot umrandet; die Variable ID zeigt nur / dauerhaft "0x0".

(Ein einfaches Testprogramm ohne Gestensensor läuft hingegen problemlos auch im Onlinemodus.)

Gibt es bei der Nutzung des Gestensensors (I2C) im Onlinemodus irgendetwas "Besonderes" zu beachten?
Besten Dank!
Dateianhänge
Screenshot Hauptprogramm
Screenshot Hauptprogramm
Hauptprogramm Twilight_switch_1.png (91.46 KiB) 2061 mal betrachtet
Screenshot Unterprogramm APDS9960_init
Screenshot Unterprogramm APDS9960_init
Unterprogramm APDS9960_init.png (238.84 KiB) 2061 mal betrachtet

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

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von vleeuwen » 12 Nov 2022, 18:37

Maybe the 5 sec online SLI bug (also for I2C valide because these I2C RoboPro elements are SLI functions).
See also: viewtopic.php?f=8&t=7645&p=59450#p59450
software enigineer/teacher/advisor
Google translate
http://tescaweb.nl/Carel/?p=713

Benutzeravatar
Kali-Mero
Beiträge: 595
Registriert: 21 Nov 2017, 12:28
Wohnort: Karlsruhe
Kontaktdaten:

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von Kali-Mero » 12 Nov 2022, 19:01

Wenn Du im Onlinemodus zwischen zwei Signalen auf dem I2C-eine Pause von 5 sek oder länger hast, hängt sich das Programm auf. Du kannst einen Parallel-Thread basteln, welcher jede Sekunde ein I2C-Signal losschickt, dann läuft alles rund.

Grüßle
Der Kali

akki
Beiträge: 7
Registriert: 09 Jan 2022, 15:30

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von akki » 12 Nov 2022, 19:45

Vielen Dank für die schnellen Antworten.

Aber kann mein Problem wirklich mit diesem Bug zusammenhängen?
- Der Programmablauf stockt schon beim ersten Programmschritt bzw. dem dritten Schritt des Unterprogramms / des Befehlsblocks „APDS9960_init" zur Sensor-Initialisierung - da läuft das Programm noch gar keine 5 Sekunden.
- Es handelt sich um das "vorgefertigte" Programm von fischertechnik / ROBO Pro. Wenn das (und auch alle anderen Programme mit Nutzung des Gestensensors?) per se nicht im Onlinemodus laufen würde - müsste das nicht längst bei aqnderen Nutzern des Smarttch-Kastens aufgefallen sein?

Natürlich würde ich auch Eure Lösungsvorschläge gerne - schon um den Fehler einzugrenzen - ausprobieren. Allerdings reichen meine Programmierkenntnisse für einen Parallelthread im / zum Befehlsblock „APDS9960_init" wohl noch nicht aus. (Und was genau würde dieser anders machen als der hier nicht funktionierende Befehlsblock? Der "hängt" doch gerade an einem I2C-Lesebefehl, oder nicht?)

Besten Dank!

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von MasterOfGizmo » 12 Nov 2022, 21:07

Für mich klingt das auch nicht nach dem gerne reflexartig in den Raum geworfenen 5-Sekunden-Bug.

Ich denke auch, dass hier am ehesten jemand anderes das Programm auch mal bei sich testet. Wir haben den Kasten zwar auch daheim, aber der hat wenig Liebe erfahren und ich müsste die Teile erst wieder zusammensuchen.

Irgendwer hier hat den Kasten doch bestimmt halbwegs griff- und betriebsbereit rumliegen ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
fishfriend
Beiträge: 1794
Registriert: 26 Nov 2010, 11:45

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von fishfriend » 12 Nov 2022, 21:07

Hallo...
Ja, die Initalisierung schlägt fehl.
"Wiederholen bis erfolgreich"
Und er ist nicht erfolgreich.

Es läuft wirklich im Download?
Ich hätte jetzt auf Kabel, Spannung,... so etwas in der Art getippt.

Was für einen Unterschied sollte es Online und Download bei I2C geben?
Es ist das erste Ansprechen des Sensors.

Ich sag es mal so, wird der I2C im Onlinemodus im Hintergrund angesprochen, wenn kein Programm läuft?
Das kann normalerweise nicht sein, da sonst kein einziges Programm im Onlinemodus laufen würde, wenn es I2C anspricht.
Ich muss dazu sagen das ich es selbst noch nicht ausprobiert habe. Ich hab die Sachen zwar da, kann es aber erst morgen ausprobieren.
Mit freundlichen Grüßen
fishfriend
Holger Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

akki
Beiträge: 7
Registriert: 09 Jan 2022, 15:30

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von akki » 12 Nov 2022, 22:03

Guten Abend erneut - und zunächst nochmals danke, dass sich hier so viele zu meiner Frage Gedanken machen!

Verkabelungs- und Hardwareprobleme waren auch meine erste Vermutung. Da war ich ganz froh, dass es im Downloadmodus dann doch funktioniert...

Wenn jemand das mal mit seiner Hardware nachstellen würde, wäre natürlich super. Kann ich selber noch etwas testen? (So ein schönes Test-Fenster wie für die I/Os gibt es für den I2C-Sensor ja wohl leider nicht...)

Viele Grüße!

Svefisch
Administrator
Beiträge: 294
Registriert: 31 Okt 2010, 22:26

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von Svefisch » 12 Nov 2022, 22:51

Hallo,
bei mir läuft er sauber durch die Initialisierung und auch der Ambi-Block wird im Rhythmus von << 1 sec durchfahren (ist ja auch neben der Verzweigungsabfrage und der Ausgangsumschaltung nur eine Wartezeit von 0,01 sec im Programm, bis der ambi.Block neu aufgerufen wird). Der 5-sec-Fehler ist hier garantiert nicht von Belang.
Die Online Verbindung zwischen Rechner und TXT läuft bei mir übers heimische WLan.

Gruß
Holger

Benutzeravatar
fishfriend
Beiträge: 1794
Registriert: 26 Nov 2010, 11:45

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von fishfriend » 12 Nov 2022, 23:46

Hallo...
OK, es gibt einen Unterschied. Das Programm auf dem PC muss sich die Daten ja erst mal holen, halt das Raster wo die Daten ausgetauscht werden.
Momentan kann ich nicht glauben, das diese Zeiverzögerung zusammen mehr als die 5s dauert, wenn man ein Kabel dran hat.
Normal läuft es über einen Windows Event. Der ist nicht immer zuverlässig - aber bei 5s sollte auch er irgend wann einmal kommen, zumal ja das Programm nicht abbricht.
Es is zwar aufwändiger das zu suchen, könnte man aber mit Wireshark machen. Wobei ich das für den TXT noch nicht gemacht habe.

Die Initialisierung ist ja im Grunde eine Testumgebung.

Wie sieht denn die Spannungsversorgung aus?
Wie ist das USB-Kabel, USB-Buchsen, USB-Hub...?
Hat der PC mehre interne Hubs? Sprich mal an einer anderen USB-Buchse, anderes Kabel ausprobieren.
Stören andere Netzteile oder ist der Aufbau direkt vor einem Monitor?
Blöde Frage: Welches Betriebssystem? Eine VM in Linux?
Mit freundlichen Grüßen
fishfriend
Holger Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

akki
Beiträge: 7
Registriert: 09 Jan 2022, 15:30

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von akki » 13 Nov 2022, 11:05

Guten Morgen!

Holger, Deine Fragen haben mich zu des Rätsels Lösung geführt:
Ich habe bislang ROBOPro in einer wine/PlayOnLInux-Umgebung genutzt - was soweit auch problemlos funktioniert hat. Nun habe ich ROBOPro in einer Windows-Parallelinstallation ausprobiert - hier funktioniert die Initialisierung über I2C problemlos.

(Zugriff erfolgt normalerweise über das vorhandene WLAN; testweiser Anschluss über USB macht aber keinen Unterschied: Windows funktioniert; Linux / wine nicht...)

Warum die "Rückmeldung" des TXT bei der I2C-Initialisierung unter wine nicht in ROBOPro ankommt, andere Informationen (Eingänge, Zähler) aber schon, kann ich leider nicht erkennen. Wenn hier jemand noch eine Idee hat, wie man das eingrenzen könnte: sehr gerne! Ansonsten werde ich ROBOPro künftig in der nativen Windows-Umgebung nutzen...

Nochmals besten Dank & einen schönen Sonntag!

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von MasterOfGizmo » 13 Nov 2022, 16:23

Solche fundamentalen Infos nicht direkt dazu zu schreiben finde ich ja schon sportlich.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

akki
Beiträge: 7
Registriert: 09 Jan 2022, 15:30

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von akki » 13 Nov 2022, 17:04

Sorry! Für mich schien die Kommunikation zwischen ROBOPro und TXT (in beide Richtungen) zu funktionieren; da war ich wohl zu naiv...

Benutzeravatar
fishfriend
Beiträge: 1794
Registriert: 26 Nov 2010, 11:45

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von fishfriend » 13 Nov 2022, 19:10

Hallo...
;)
Also...
TXT suchen, ok er ist in einem Modell, verbaut. Also ausbauen.
Wo zum Henker ist der Gestensensor? Den hab ich letzte Tage noch gesehen... OK, gefunden.
Hmmm, ich brauch da noch das Verbindungskabel. Wo ist der Kasten? OK, gefunden.
Ein USB Kabel ist auch nicht schlecht, darum geht es ja.
Mist, der brauch noch ein weiteres Kabel für Plus. Kabel raussuchen.
OK, Programm starten und ...
Besuch ist da, alles auf Null.
Also, nach dem Besuch, Sachen wieder aufbauen und Programm starten.
Es macht etwas - toll, wo ist die Anleitung? Find ich gerade nicht.
ft Seite aufrufen, didaktisches Heft? Naja zumindes die HTML Seite. Jedoch nur überflogen.
Also Programm läuft. Werte ändern sich. Was auch immer es macht.
Ja, Forum ftC öffnen, anmelden um die Frohe Botschaft zu verkünden und ...
Mist, schon die Lösung gefunden.

Ja, manche Tage laufen nicht so, wie man sich es selbst vorstellt.
;)
Nicht falsch verstehen, ich bin nicht sauer. Es war nur der Ablauf des Nachmittages.
Jetz, muss ich nur noch die Anleitung finden...
Mit freundlichen Grüßen
fishfriend
Holger Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

kräml
Beiträge: 272
Registriert: 14 Aug 2020, 06:47

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von kräml » 14 Nov 2022, 08:25

Hallo Akki,

hab deinen Thread erst jetzt gelesen. Habe mir den Smarttech, wegen dem Angebot bei Müller, auch geleistet. Meine Problem mit RoboPro und wine sind recht ähnlich, allerdings schon beim ersten Modell. Die Verbindung über Bluetooth ist nicht sehr stabil. Über AP-WLAN vom TXT hatte ich auch keine stabile Verbindung. Werde es heute mal im eigenen Netz versuchen.
Falls ich mehr raus bekomme, werde ich das gerne hier reinschreiben. Das mit Wine und RoboPro würde mich schon interessieren. Aber wenn es nicht klappt, dann mach ich mit Python weiter.

Oder besser gefragt, welche Einstellungen/Pakete hast du unter Playonlinux installiert?

Gruß Kräml

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

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von vleeuwen » 14 Nov 2022, 09:22

As far as I understood the TXT with the fischertechnik firmware.
The communication in the online mode is based on the principle of the Transfer Area with the associated refresh rate, in addition there are at least two extra Berkely sockets (IP sockets) in use for video and I2C? (is not documented).
In fact, there is a program running on the TXT that only takes care of the communication between the TXT and Laptop.
The I2C messages are also split up.
Lots of overhead and little use of the TXT processor capacity.
Just put an I2C protocol scanner on the I2C bus and check the speed at which the various I2C commands pass.

I think it's better to do the pre-prosessing of the data on the TXT and only communicate the final results via Berkeley sockets (or web sockets); black box approach. (MQTT is also an option but is slower.)
Especially if you want to work with closed control loops; which then run on the TXT and can therefore handle higher speeds of information processing and also remain more stable.
==========
Soweit ich das mit TXT verstanden habe mit der fischertechnik Firmware.
Die Kommunikation im Online-Modus basiert auf dem Prinzip der Transfer Area mit der dazugehörigen Bildwiederholrate, zusätzlich sind mindestens zwei extra Berkely-Sockets (IP-Sockets) für Video und I2C im Einsatz (nicht dokumentiert).
Tatsächlich läuft auf dem TXT ein Programm, das sich nur um die Kommunikation zwischen TXT und Laptop kümmert.
Die I2C-Nachrichten werden ebenfalls aufgeteilt.
Viel Overhead und wenig Nutzung der TXT-Prozessorkapazität.
Schließen Sie einfach einen I2C-Protokollscanner an den I2C-Bus an und überprüfen Sie die Geschwindigkeit, mit der die verschiedenen I2C-Befehle passieren.

Ich denke, es ist besser, die Daten im TXT vorzuverarbeiten und die endgültigen Ergebnisse nur über Berkeley-Sockets (oder Web-Sockets) zu kommunizieren. Black-Box-Ansatz. (MQTT ist auch eine Option, aber langsamer.)
Vor allem, wenn Sie mit geschlossenen Regelkreisen arbeiten wollen; die dann auf dem TXT laufen und damit höhere Geschwindigkeiten der Informationsverarbeitung bewältigen können und auch stabiler bleiben.
software enigineer/teacher/advisor
Google translate
http://tescaweb.nl/Carel/?p=713

Benutzeravatar
fishfriend
Beiträge: 1794
Registriert: 26 Nov 2010, 11:45

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von fishfriend » 14 Nov 2022, 13:43

Hallo...
Nur so ein Gedanke:
Ich gebe zu, es ist etwas OT - aber,
ich persönlich finde, das es Zeit wird, ein WIki oder eine Buch... über den TXT zu machen.
Solche Informationen sind auch sehr Hilfreich für andere.
Es gibt nur ein paar Spezialisten, für die solche Sachen klar und verständlich sind.
Ich würde mal Schätzen das wir nicht annähernd 10% dessen nutzen (können) was der TXT kann.
Mit ein Grund, weil wir es nicht wissen.
Wer würde z.B. auf die Idee kommen nach "Berkely-Sockets" hier im Forum zu suchen?
Auch die Sache mit der VM. Welche VM, Einstellungen, Probleme-Lösungen...
Vom Gefühl her, fängt jeder neu an mit seiner Suche - findet die Lösung, die aber dann untergeht und vergessen wird.
Wie gesagt nur so ein Gedanke.

Bei diesem Problem tippe ich aber auf die Enstellung der VM und wie die "Hardware" angesteuert wird.
Wobei aber auch hier, ich sag mal übertrieben -alle- Informationen dazu fehlen.
Man könnte halt diese Infos sammeln...

Mit freundlichen Grüßen
fishfriend
Holger Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

kräml
Beiträge: 272
Registriert: 14 Aug 2020, 06:47

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von kräml » 14 Nov 2022, 13:54

Daumen hoch, eine ähnliche Idee kam mir auch. Die Anleitung von FT ist sehr rudimentär aber geht nicht in die Tiefe. Idee mit der Wiki wäre auch gut. Mann könnte ein Githubprojekt mit Wiki machen. GGF. auch mit github.io Ausgabe. Das wäre eine technische Lösung aber wer macht den Inhalt?

Gruß Kräml

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

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von vleeuwen » 14 Nov 2022, 15:42

@Holger
Here you will find a lot of information about programming for the TXT:
https://github.com/fischertechnik/txt_demo_ROBOPro_SLI
https://github.com/fischertechnik/txt_demo_c_online
https://github.com/fischertechnik/txt_demo_c_download
https://github.com/fischertechnik/txt_training_factory
But a nice description for the not experienced end-user is missing.
Programming developing at C++ level, Python (SLI's and applications) ask for good software engineering skills.
De 4G language RoboPro is a layer above this, RoboPro coding is not.
software enigineer/teacher/advisor
Google translate
http://tescaweb.nl/Carel/?p=713

akki
Beiträge: 7
Registriert: 09 Jan 2022, 15:30

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von akki » 15 Nov 2022, 15:59

kräml hat geschrieben:
14 Nov 2022, 08:25
Oder besser gefragt, welche Einstellungen/Pakete hast du unter Playonlinux installiert?
Hallo Kräml,

bitte entschuldige, habe Deine Nachricht leider erst jetzt gesehen. (Habe aus mir unerfindlichen Gründen keine Hinweis-Mail auf neue Nachrichten im Thread erhalten...)

Wenn ich mich recht erinnere, hat ROBOPro bei mir mit PlayOnLinux 4.4 (wine 6.0, 64bit, Win10-Emulation) unter openSUSE 15.4 weitgehend "out of the box" funktioniert; nur die "corefonts" habe ich zur besseren Darstellung nachinstalliert.
Allerdings stürzt ROBOPro bei mir reproduzierbar ab beim Versuch, kopierte Elemente einzufügen. Das POL-Logfile weist dann einen "page fault on read access" aus.

Die Verbindung zum TXT habe ich, wie schon geschrieben, über das lokal vorhandene WLAN (mit fester IP für den TXT) hergestellt; das hat reibungslos funktioniert.

Beste Grüße!

PS: Das Logfile enthält seit meinen Versuchen mit dem Gestensensor jeweils nach einer Zeile "I2C Init [Addr.] [Addr.]" auch tausende Eintragungen eines "I2C_Error 1 1 [lfd. Nr.] => 00000001". Das hätte mich also auch auf die richtige Fährte zur Lösung meines ursprünglichen Problems setzen können, hätte ich nur die Installation unter wine überhaupt als Problem in Betracht gezogen. Daher nochmals sorry an alle, die sich meinetwegen Gedanken / Mühe gemacht haben!

Benutzeravatar
fishfriend
Beiträge: 1794
Registriert: 26 Nov 2010, 11:45

Re: TXT - Initialisierung des Gestensensors im Onlinemodus?

Beitrag von fishfriend » 15 Nov 2022, 16:21

Hallo.
Nichts zu entschuldigen.
Es hilft ja auch anderen irgend wann mal, wenn die so ein Problem haben.
(denke ich) :-)
Mit freundlichen Grüßen
fishfriend
Holger Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Antworten