TXT 4.0 Python Programmierung

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
gbrue
Beiträge: 14
Registriert: 06 Feb 2022, 09:40

TXT 4.0 Python Programmierung

Beitrag von gbrue » 18 Feb 2022, 15:22

Hallo,

ich arbeite mich langsam in Python und Fischertechnik computing ein.

Ich habe einen TXT Controller. Ich habe gelernt, mit Hilfe des Moduls FTROBOPY den Prozessor mit Python anzusprechen und zu steuern.

Ich überlege mir, noch einen TXT 4.0 Prozessor zuzulegen. Gibt es da auch ein Modul, was ich in Python einbinden kann um den TXT 4.0 anzusprechen ?

Wo ist das ggf. zu bekommen ?

Oder geht das nur über die Software ROBO Pro Coding ?

Vielen Dank für Eure Unterstützung

Gunther

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

Re: TXT 4.0 Python Programmierung

Beitrag von vleeuwen » 18 Feb 2022, 16:09

FTROBOPY is Python library for the TXT only.

Programming for the TXT4.0 goes in a completely different way.

For the TXT4.0 you need the RoboPro coding to get some experience with the interaction with the sensors and actuators; this via Blockly. Blockly is a Python generator that uses only a subset of Python.
Can also be programmed directly in Python with RoboPro coding in textual mode.

With good experience with more generic program development tools, you can also work remotely with MS-VS code or Eclipse remote. These tools allows remote program development on the TXT4.0; RoboPro coding does it in a similar way.
=================google translate====================
FTROBOPY ist eine Python-Bibliothek für TXT und die Kommunikation über eine Transfer Area.

Ganz anders funktioniert der TXT4.0.

Für den TXT4.0 benötigen Sie die RoboPro-Codierung, um etwas Erfahrung mit der Interaktion mit den Sensoren und Aktoren zu sammeln; Dies über Blockly. Blockly ist ein Python-Generator, der nur eine Teilmenge von Python verwendet.
Kann auch direkt in Python mit RoboPro-Codierung im Textmodus programmiert werden.

Mit guter Erfahrung mit allgemeineren Programmentwicklungstools können Sie auch remote mit MS-VS-Code oder Eclipse arbeiten. Ermöglicht die Remote-Programmentwicklung auf dem TXT4.0; Der RoboPro-Code macht es auf ähnliche Weise.
software enigineer/teacher/advisor
Google translate
http://tescaweb.nl/Carel/?p=713

Torsten
Beiträge: 324
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: TXT 4.0 Python Programmierung

Beitrag von Torsten » 18 Feb 2022, 19:36

Hallo Gunther,

Auf der untersten Ebene sind der TXT und der TXT 4.0 sich recht ähnlich: Insbesondere die unterste Python-Ebene des TXT 4.0 ist in vielen Funktionen nahzu identisch zum ftrobopy auf dem TXT. Einfache ftrobopy-Programme laufen fast ohne Änderung auch auf dem TXT 4.0. Das Python import-Modul heisst auf dem TXT 4.0 allerdings nicht mehr "ftrobopy", sondern einfach "ft".

Hier ist ein ftrobopy Beispielprogramm zur Motorsteuerung auf dem TXT:

Code: Alles auswählen

import time
import ftrobopy

txt=ftrobopy.ftrobopy("auto")

m1=txt.motor(1)
m1.setSpeed(512)
time.sleep(2)
m1.setSpeed(0)
Hier ist das entsprechende Beispiel-Programm für den TXT 4.0:

Code: Alles auswählen

import time
import ft

txt=ft.fttxt2("auto")

m1=txt.motor(1)
m1.setSpeed(512)
time.sleep(2)
m1.setSpeed(0)
Bis auf den Modul- (ftrobopy --> ft) und Klassennamen (ftrobopy --> fttxt2) sind die Programme identisch.

ftrobopy wird in einer der nächsten Versionen auch den TXT 4.0 unterstützen. Vorerst allerdings nur im sog. "Download"- bzw. TransferArea-Modus. D.h. das ftrobopy-Programm läuft auf dem TXT/TXT 4.0. Der "Online"-Modus, bei dem die ftrobopy-Programme auf einem PC laufen, wird noch etwas dauern, ist aber auch geplant. Dafür wird man dann vorher ein (C++-)Programm auf dem TXT 4.0 starten müssen, welches die ROBOPro-Kommunikation über den Port 65000 emuliert. Möglicherweise kann man damit dann auch RoboPro auf dem TXT 4.0 benutzen. Die Unterstützung der Camera im "Online"-Modus wird auch noch irgendwann folgen.

Viele Grüße
Torsten

gbrue
Beiträge: 14
Registriert: 06 Feb 2022, 09:40

Re: TXT 4.0 Python Programmierung

Beitrag von gbrue » 19 Feb 2022, 19:18

Danke für Eure Antworten.

Torsten: ich habe noch keinen TXT4.0, aber wenn: wie komme ich denn an das neue Modul ft heran ?

Liegt das irgendwo auf der Cloud? Oder ist das schon im TXT4.0 integriert ?

Gunthe

Torsten
Beiträge: 324
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: TXT 4.0 Python Programmierung

Beitrag von Torsten » 19 Feb 2022, 19:30

Hallo Gunther,

das ist schon auf dem TXT installiert.

Viele Grüße
Torsten

Benutzeravatar
PHabermehl
Beiträge: 2569
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: TXT 4.0 Python Programmierung

Beitrag von PHabermehl » 19 Feb 2022, 20:01

Torsten hat geschrieben:
18 Feb 2022, 19:36
ftrobopy wird in einer der nächsten Versionen auch den TXT 4.0 unterstützen. Vorerst allerdings nur im sog. "Download"- bzw. TransferArea-Modus. D.h. das ftrobopy-Programm läuft auf dem TXT/TXT 4.0. Der "Online"-Modus, bei dem die ftrobopy-Programme auf einem PC laufen, wird noch etwas dauern, ist aber auch geplant. Dafür wird man dann vorher ein (C++-)Programm auf dem TXT 4.0 starten müssen, welches die ROBOPro-Kommunikation über den Port 65000 emuliert. Möglicherweise kann man damit dann auch RoboPro auf dem TXT 4.0 benutzen. Die Unterstützung der Camera im "Online"-Modus wird auch noch irgendwann folgen.

Viele Grüße
Torsten
:D :D :D :D :D

Thorsten, Du sprichst da große Worte ganz gelassen aus... Das ist ja großartig. Vielen Dank für die Infos und Deine kontinuierlichen Beiträge für die Community!

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi & 3D-Druck Shop!

viele Grüße
Peter

Techum
Beiträge: 139
Registriert: 25 Dez 2014, 20:50
Kontaktdaten:

Re: TXT 4.0 Python Programmierung

Beitrag von Techum » 20 Feb 2022, 11:33

PHabermehl hat geschrieben:
19 Feb 2022, 20:01
Thorsten, Du sprichst da große Worte ganz gelassen aus... Das ist ja großartig. Vielen Dank für die Infos und Deine kontinuierlichen Beiträge für die Community!
Hier fehlt ganz eindeutig eine LIKE Funktion! Dem Statement schließe ich mich ganz ausdrücklich an. :!:

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

Re: TXT 4.0 Python Programmierung

Beitrag von vleeuwen » 20 Feb 2022, 13:39

In principle, communication based on a TA is fairly easy to establish using a Berkely socket on the TXT4.0.
This can be done both in Python and within RoboPro coding; in my example of the web socket communication, replace the web socket with a Berkely socket. In Python this will result in relatively slow communication but such an interface in C++ will be faster.
In the TX-C/TXT local C++ code there are sufficient clues for what should be sent and what should be received.

However, this only covers communication with the actors and sensors; communication with the I2C, USB and camera is not included.
Communication based on the TA is not bound to Python, so the remote programs in C++ and C# could work just like on the TXT.
The big question will probably be: "Is the 10ms refresh rate of the TX-C/TXT in remote mode feasible again? This plays an important role when working with closed control loops.
Communication via a TA with an application on the local device will be a lot faster.
===============Google translate========================================
Prinzipiell lässt sich die Kommunikation auf Basis eines TA recht einfach über eine Berkely-Socket am TXT4.0 aufbauen.
Dies kann sowohl in Python als auch innerhalb der RoboPro-Codierung erfolgen; Ersetzen Sie in meinem Beispiel der Web-Socket-Kommunikation den Web-Socket durch einen Berkely-Socket. In Python führt dies zu einer relativ langsamen Kommunikation, aber eine solche Schnittstelle in C++ wird schneller sein.
Im lokalen C++-Code von TX-C/TXT gibt es genügend Hinweise darauf, was gesendet und was empfangen werden soll.

Dies umfasst jedoch nur die Kommunikation mit den Aktoren und Sensoren; Kommunikation mit I2C, USB und Kamera ist nicht enthalten.
Die auf dem TA basierende Kommunikation ist nicht an Python gebunden, sodass die Remote-Programme in C++ und C# genauso funktionieren könnten wie auf dem TXT.
Die große Frage wird wohl lauten: „Ist die 10ms Bildwiederholfrequenz des TX-C/TXT im Remote-Modus wieder realisierbar? Das spielt eine wichtige Rolle beim Arbeiten mit geschlossenen Regelkreisen.
Die Kommunikation über einen TA mit einer Anwendung auf dem lokalen Gerät wird viel schneller sein.
software enigineer/teacher/advisor
Google translate
http://tescaweb.nl/Carel/?p=713

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

Re: TXT 4.0 Python Programmierung

Beitrag von MasterOfGizmo » 20 Feb 2022, 15:54

Techum hat geschrieben:
20 Feb 2022, 11:33
Hier fehlt ganz eindeutig eine LIKE Funktion! Dem Statement schließe ich mich ganz ausdrücklich an. :!:
Vor allem öffnet das lustigen Dingen die Tür. Damit könnte man dann einen Raspi per RoboPro steuern usw ...
Arduino für fischertechnik: ftDuino http://ftduino.de

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

Re: TXT 4.0 Python Programmierung

Beitrag von kräml » 06 Jul 2023, 10:21

Hallo,

hab hier einen TXT4 und möchte mit ftrobopy herum spielen. Wenn ich das hier richtig verstanden habe, ist ft == ftrobopy? Wenn ja, wie stelle ich fest, welche Version auf dem TXT4 ist.

By the way. Hat jemand die python Version vom TXT4 auf 3.8 oder höher zum Laufen gebracht?

Gruß Kräml

Torsten
Beiträge: 324
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: TXT 4.0 Python Programmierung

Beitrag von Torsten » 07 Jul 2023, 11:46

Hallo,

nur um kein Missverständnis aufkommen zu lassen:

Die Python-Bibliothek "ft", die in der TXT40 Firmware installiert ist, sieht in der Anwendung der Grundfunktionen zur Motor- und Output-Steuerung zwar nahezu identisch zu ftrobopy aus, hat aber unter der Haube nichts mit ftrobopy zu tun.

Wahrscheinlich hat sich der Softwarehersteller, der die Firmware für den TXT40 programmiert hat, einfach nur am Design von ftrobopy orientiert.

Um das "echte" ftrobopy auf dem TXT40 nutzen zu können, muss dort zuerst der ftrobopy_server installiert und gestartet werden (den entsprechenden Artikel dazu findet man in der ft:pedia 2/2022, ab Seite 123: https://ftcommunity.de/ftpedia/2022/202 ... 2022-2.pdf). Der Online-Modus kann dann bereits verwendet werden. Für den Download/Offline-Modus muss man ftrobopy zuerst noch mit

Code: Alles auswählen

pip install ftrobopy
auf dem TXT40 in einem Terminal installieren. (Am besten macht man das innerhalb einer Python venv-Umgebung. Dann benötigt man keine Admin-Rechte)

Zur Verwendung von ftrobopy im Download-Modus gibt man bei der Initialisierung die Localhost-Adresse (127.0.0.1) an.

Viele Grüße
Torsten

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

Re: TXT 4.0 Python Programmierung

Beitrag von kräml » 08 Jul 2023, 08:14

Hollo Torsten,

danke für die Artikel. Hat mir sehr geholfen. Das mit den python_server hat schon gut geklaptt. Den Rest werde ich bei Gelgenheit testen.

Kräml

robofreak
Beiträge: 11
Registriert: 17 Dez 2016, 08:37
Wohnort: 69190 Walldorf

Re: Installation ftrobopy auf dem TXT 4.0 -Python Programmierung

Beitrag von robofreak » 06 Jan 2025, 11:39

Hallo, Torsten,

ich habe mich bisher intensiv mit der Remote_Programmierung des TXT4.0 über den ftrobopy-Server auf dem TXT4.0 beschäftig, klappt auch super gut.
Habe auch für den Downloadmodus Programme erstellt und auf dem TXT4 direkt über das „ft“-Modul ausgeführt, auch gut, aber halt mit den bekannten Einschränkungen.
Jetzt bin ich aber auf den vorherigen Artikel und deine Aussage gestoßen, dass für eine uneingeschränkte Download-Ausführung von ftrobopy-Skripts ftrobopy auf dem TXT4.0 installiert sein muss.
Du erwähnst nur noch, dass das über eine „venv“-Umgebung passieren muss, da man ja bekanntlich keine root-Rechte auf dem TXT4.0 hat und auch nicht bekommt.
Mit dem „VENV“, Einrichtung und Aktivierung, habe ich mich auch beschäftigt, aber mir ist völlig schleierhaft, wie man das als eingeschränkter ft-User auf dem TXT4.0 realisieren soll.
Ich kann vom Terminal aus weder „python“ ausführen, noch pip, usw.
Wie soll ich da eine „venv“-Umgebung einrichten und aktivieren? Ich habe auch den ftpedia-Beitrag studiert, das mit der Ausführung mit „localhost“, ist alles klar, aber es bleibt die Frage :Wie bekommt man ftroboyp auf den TXT4.0??

Deshalb hätte ich die große Bitte: Könntest du das mal etwas ausführlicher beschreiben, wie man als ft-User ftrobopy auf dem TXT4.0 installiert? Das wäre doch sicher für viel andere Teilnehmer hier von großem Interesse!

Gruß an alle,

Dietmar

Torsten
Beiträge: 324
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Installation ftrobopy auf dem TXT 4.0 -Python Programmierung

Beitrag von Torsten » 13 Jan 2025, 22:20

Hallo Dietmar,
robofreak hat geschrieben:
06 Jan 2025, 11:39
Mit dem „VENV“, Einrichtung und Aktivierung, habe ich mich auch beschäftigt, aber mir ist völlig schleierhaft, wie man das als eingeschränkter ft-User auf dem TXT4.0 realisieren soll.
Ich kann vom Terminal aus weder „python“ ausführen, noch pip, usw.
Wie soll ich da eine „venv“-Umgebung einrichten und aktivieren? Ich habe auch den ftpedia-Beitrag studiert, das mit der Ausführung mit „localhost“, ist alles klar, aber es bleibt die Frage :Wie bekommt man ftrobopy auf den TXT4.0??
Die Kommandos in einem TXT 4.0 Terminal sind nicht python und pip, sondern python3 und pip3 (sorry, da war ich in meinem Post etwas zu ungenau). Allerdings brauchst Du das gar nicht unbedingt zu machen. Eine VENV-Umgebung lohnt sich wahrscheinlich nur, wenn Du zusätzlich zu ftrobopy auch noch andere Python-Module installieren möchtest.

Um ftrobopy Programme auf dem TXT 4.0 im Download-Modus laufen zu lassen brauchst Du einfach nur die ftrobopy.py Datei auf den TXT 4.0 zu kopieren (z.B. per scp-Kommando oder über das Webgui, wie im ft:pedia-Artikel beschrieben) ... und zwar in das gleiche Verzeichnis in dem sich auch Dein Python-Programm befindet. Wenn Du dann in die erste Zeile Deines Programmes den shebang

Code: Alles auswählen

#!/usr/bin/python3
schreibst und außerdem Dein Python-Programm mit

Code: Alles auswählen

chmod a+x myprog.py
auf dem TXT 4.0 ausführbar machst, dann kannst Du das Programm auch über das TXT 4.0 Display (unter "Datei") starten. Der ftrobopy_server muß dafür allerdings bereits aktiv sein (z.B. über eine zweite ssh-Sitzung). [Im Prinzip könnte man den Server auch im Python-Script selbst starten, dann muß man allerdings darauf achten, das nur beim ersten Start zu tun.]

Viele Grüße
Torsten

robofreak
Beiträge: 11
Registriert: 17 Dez 2016, 08:37
Wohnort: 69190 Walldorf

Re: TXT 4.0 Python Programmierung

Beitrag von robofreak » 15 Jan 2025, 17:45

Hallo, Torsten und an Alle,

vielen Dank für deine klärenden Aussagen zu der Download-Ausführung von ftrobopy-Skripts auf dem TXT4..
Ich habe deine Infos sofort umgesetzt und muss sagen: Es klappt alles super und völlig unkompliziert!! Auf das VENV habe ich verzichtet.
Ich ging mit "putty" auf die Kommandozeile und habe den Server dort gestartet. Dann im Skript den "shebang-Eintrag" gemacht und im ftrobopy-Aufruf nur die Adresse: auf "127.0.0.1" geändert und das Skript rüberkopiert, die Ausführungsrechte gesetzt.(bleiben übrigens erhalten, wenn man das Skript auf dem PC berarbeitet und mit gleichem Namen neu überspielt, sehr angenehm! Da arbeite ich übrigens mit WinSCP, sehr angenehm, GUI-Oberfläche für das gesamte TXT-Dateisystem. Dann noch die beiden ftrobopy-Dateien ins Skript-Verzeichnis kopiert
Danach war das Skript einfach über den TXT-Gui zu starten.

Ich war vorher wirklich verwirrt, als du von "Installation" von ftrobopy.py über die Kommandozeile gesprochen hast.
Deshalb habe ich auch viel zu kompliziert gedacht. Dass man nur die beiden ftrobopy.-Dateien wie üblich in das Skript-Verzeichnis auf dem TXT kopieren muss, habe ich nicht gecheckt, da hätte man aber drauf kommen können. Auf den von dir angegebenen "shebang-Eintrag" in der ersten Skriptzeile zum Start des Interpreters auf dem TXT wäre ich allerdings niemals gekommen.
Also nochmals: Alles läuft super wie ich es mir vorgestellt habe , nochmals vielen Dank für deine Tipps.

Viele Grüße

Dietmar

Antworten