Robo Pro Coding Python
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Robo Pro Coding Python
Hi, kann mir jemand sagen, wo ich eine Einführung in die Fischertechnik spezifischen Befehle für Robo Pro Coding mit Python finden kann?
Re: Robo Pro Coding Python
Hey Jochen,
leider hat fischertechnik bisher die Dokumentation nur für die grafische Programmierung erstellt. Mich persönlich ärgert das auch etwas, da ich so nicht wirklich programmieren kann und bereits Probleme beim Finden von Funktionen habe.
Du kannst dir aber mit der grafischen Programmierung in der rechten Seitenleiste den Python-Code für die entsprechenden Blöcke anzeigen lassen. So finde ich mich mittlerweile auch etwas zurecht.
Viele Grüße,
Matrix/Felix
leider hat fischertechnik bisher die Dokumentation nur für die grafische Programmierung erstellt. Mich persönlich ärgert das auch etwas, da ich so nicht wirklich programmieren kann und bereits Probleme beim Finden von Funktionen habe.
Du kannst dir aber mit der grafischen Programmierung in der rechten Seitenleiste den Python-Code für die entsprechenden Blöcke anzeigen lassen. So finde ich mich mittlerweile auch etwas zurecht.
Viele Grüße,
Matrix/Felix
-
- Beiträge: 135
- Registriert: 03 Jun 2020, 19:32
Re: Robo Pro Coding Python
Moin zusammen,
vor diesem Problem stehe ich auch. Da hat FT ein tolles Robotics Programm mit u.a. den Kästen Hightech und Education Base SET mit Addons. Alle Erklärungen/Lehrpläne etc. beziehen sich auf Blockly. Mit Blockly erziele ich schnelle Erfolge, doch mit zunehmender Komplexität der Programme geht die Übersicht verloren. Die RPC (Robo Pro Coding) Hilfe bezieht sich bislang ausschließlich auf Blockly. Bezüglich Python wird nur erwähnt, dass RPC es unterstützt.
Auch erfahrene Python Programmierer (ich zähle eher zu den Anfängern) stehen vor dem Problem, wie die API Schnittstellen aussehen, um Ein- und Ausgaben nutzen zu können. Hier gibt es bislang nichts!!!
Das ist schwach von FT und unbefriedigend!!!
Parallel zu FT Robotics beschäftige ich mich mit dem Lego Spike Prime System. Das bietet Scratch als Block orientierte Sprache und Python als Text orientierte Sprache. Bezüglich Python bietet Lego eine online Hilfe um das Lego Python kennen zu lernen (Erste Schritte) und eine mehr oder weniger ausführliche Beschreibung aller unterstützten API Funktionen. Die Beschreibung ist teils sehr ausführlich mit Programmbeispielen und teils eine einfache Auflistung.
Der Lego Python Editor ist dem von RPC überlegen, da er eine Ausfüllhilfe anbietet, die Schritt für Schritt durch alle Funktionsaufrufe und deren Parameter führt. RPC hat auch eine Ausfüllhilfe, die aber nur sehr einfach gehalten ist und sich nur an dem aktuellen Programm orientiert.
Trotz intensiver Recherche im WWW habe ich zum Thema FT Python keine Hilfe finden zu können. So bleibt mir nur der mühsame Weg über die Beispielprogramme. Der führt jedoch durchaus zum Erfolg. Ich lade also z.B. ein Beispielprogramm in Python und kann es dann modifizieren. Zusätzlich speichere ich den Python Code in einer Textdatei, die ich mit Kommentaren füttere. Hierbei unterscheide ich die Controller Konfiguration (controller.py) und die eigentliche Programmdatei. Auf diese Weise komme ich dahinter, wie Sensoren und Aktoren eingebunden und benutzt werden. Ich stehe aber noch ganz am Anfang.
Meine aktuellen Versionen: RPC 6.2.0, TXT 4.0 Firmware 3.1.5
Meine bisherige Textdatei (beinhaltet NTC, Ultraschall, LED, Display):
# ==================================================
# NTC Widerstand
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I1_ntc_resistor = txt_factory.input_factory.create_ntc_resistor(TXT_M, 1)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import math
import time
from lib.controller import *
from lib.display import *
value = None
while True:
value = round(TXT_M_I1_ntc_resistor.get_temperature(), 1)
display.set_attr("temperature.text", str(''.join([str(x) for x in ['T = ', value, ' °C']])))
display.set_attr("temp_scale.value", str(value))
time.sleep(0.5)
# ==================================================
# Ultraschallsensor
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I2_ultrasonic_distance_meter = txt_factory.input_factory.create_ultrasonic_distance_meter(TXT_M, 2)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import time
from lib.controller import *
from lib.display import *
while True:
display.set_attr("distance.text", str(''.join([str(x) for x in ['D = ', TXT_M_I2_ultrasonic_distance_meter.get_distance(), ' cm']])))
time.sleep(0.25)
# ==================================================
# LED und Taster
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
txt_factory.init_output_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I1_mini_switch = txt_factory.input_factory.create_mini_switch(TXT_M, 1)
TXT_M_O4_led = txt_factory.output_factory.create_led(TXT_M, 4)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import time
from lib.controller import *
while True:
if TXT_M_I1_mini_switch.is_closed():
for count in range(5):
TXT_M_O4_led.set_brightness(512)
time.sleep(0.5)
TXT_M_O4_led.set_brightness(0)
time.sleep(0.5)
Schöne Grüße
Klaus
vor diesem Problem stehe ich auch. Da hat FT ein tolles Robotics Programm mit u.a. den Kästen Hightech und Education Base SET mit Addons. Alle Erklärungen/Lehrpläne etc. beziehen sich auf Blockly. Mit Blockly erziele ich schnelle Erfolge, doch mit zunehmender Komplexität der Programme geht die Übersicht verloren. Die RPC (Robo Pro Coding) Hilfe bezieht sich bislang ausschließlich auf Blockly. Bezüglich Python wird nur erwähnt, dass RPC es unterstützt.
Auch erfahrene Python Programmierer (ich zähle eher zu den Anfängern) stehen vor dem Problem, wie die API Schnittstellen aussehen, um Ein- und Ausgaben nutzen zu können. Hier gibt es bislang nichts!!!
Das ist schwach von FT und unbefriedigend!!!
Parallel zu FT Robotics beschäftige ich mich mit dem Lego Spike Prime System. Das bietet Scratch als Block orientierte Sprache und Python als Text orientierte Sprache. Bezüglich Python bietet Lego eine online Hilfe um das Lego Python kennen zu lernen (Erste Schritte) und eine mehr oder weniger ausführliche Beschreibung aller unterstützten API Funktionen. Die Beschreibung ist teils sehr ausführlich mit Programmbeispielen und teils eine einfache Auflistung.
Der Lego Python Editor ist dem von RPC überlegen, da er eine Ausfüllhilfe anbietet, die Schritt für Schritt durch alle Funktionsaufrufe und deren Parameter führt. RPC hat auch eine Ausfüllhilfe, die aber nur sehr einfach gehalten ist und sich nur an dem aktuellen Programm orientiert.
Trotz intensiver Recherche im WWW habe ich zum Thema FT Python keine Hilfe finden zu können. So bleibt mir nur der mühsame Weg über die Beispielprogramme. Der führt jedoch durchaus zum Erfolg. Ich lade also z.B. ein Beispielprogramm in Python und kann es dann modifizieren. Zusätzlich speichere ich den Python Code in einer Textdatei, die ich mit Kommentaren füttere. Hierbei unterscheide ich die Controller Konfiguration (controller.py) und die eigentliche Programmdatei. Auf diese Weise komme ich dahinter, wie Sensoren und Aktoren eingebunden und benutzt werden. Ich stehe aber noch ganz am Anfang.
Meine aktuellen Versionen: RPC 6.2.0, TXT 4.0 Firmware 3.1.5
Meine bisherige Textdatei (beinhaltet NTC, Ultraschall, LED, Display):
# ==================================================
# NTC Widerstand
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I1_ntc_resistor = txt_factory.input_factory.create_ntc_resistor(TXT_M, 1)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import math
import time
from lib.controller import *
from lib.display import *
value = None
while True:
value = round(TXT_M_I1_ntc_resistor.get_temperature(), 1)
display.set_attr("temperature.text", str(''.join([str(x) for x in ['T = ', value, ' °C']])))
display.set_attr("temp_scale.value", str(value))
time.sleep(0.5)
# ==================================================
# Ultraschallsensor
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I2_ultrasonic_distance_meter = txt_factory.input_factory.create_ultrasonic_distance_meter(TXT_M, 2)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import time
from lib.controller import *
from lib.display import *
while True:
display.set_attr("distance.text", str(''.join([str(x) for x in ['D = ', TXT_M_I2_ultrasonic_distance_meter.get_distance(), ' cm']])))
time.sleep(0.25)
# ==================================================
# LED und Taster
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
txt_factory.init_output_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I1_mini_switch = txt_factory.input_factory.create_mini_switch(TXT_M, 1)
TXT_M_O4_led = txt_factory.output_factory.create_led(TXT_M, 4)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import time
from lib.controller import *
while True:
if TXT_M_I1_mini_switch.is_closed():
for count in range(5):
TXT_M_O4_led.set_brightness(512)
time.sleep(0.5)
TXT_M_O4_led.set_brightness(0)
time.sleep(0.5)
Schöne Grüße
Klaus
-
- Beiträge: 135
- Registriert: 03 Jun 2020, 19:32
Re: Robo Pro Coding Python
Nachtrag: im Code wurden die Einrückungen nicht angezeigt. Hier die korrekte Darstellung:
Code: Alles auswählen
# ==================================================
# NTC Widerstand
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I1_ntc_resistor = txt_factory.input_factory.create_ntc_resistor(TXT_M, 1)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import math
import time
from lib.controller import *
from lib.display import *
value = None
while True:
value = round(TXT_M_I1_ntc_resistor.get_temperature(), 1)
display.set_attr("temperature.text", str(''.join([str(x) for x in ['T = ', value, ' °C']])))
display.set_attr("temp_scale.value", str(value))
time.sleep(0.5)
# ==================================================
# Ultraschallsensor
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I2_ultrasonic_distance_meter = txt_factory.input_factory.create_ultrasonic_distance_meter(TXT_M, 2)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import time
from lib.controller import *
from lib.display import *
while True:
display.set_attr("distance.text", str(''.join([str(x) for x in ['D = ', TXT_M_I2_ultrasonic_distance_meter.get_distance(), ' cm']])))
time.sleep(0.25)
# ==================================================
# LED und Taster
# ==================================================
# ----------------------------
# Controller.py
# ----------------------------
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory()
txt_factory.init_output_factory()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
TXT_M_I1_mini_switch = txt_factory.input_factory.create_mini_switch(TXT_M, 1)
TXT_M_O4_led = txt_factory.output_factory.create_led(TXT_M, 4)
txt_factory.initialized()
# ----------------------------
# Program.py
# ----------------------------
import time
from lib.controller import *
while True:
if TXT_M_I1_mini_switch.is_closed():
for count in range(5):
TXT_M_O4_led.set_brightness(512)
time.sleep(0.5)
TXT_M_O4_led.set_brightness(0)
time.sleep(0.5)
-
- Beiträge: 135
- Registriert: 03 Jun 2020, 19:32
Re: Robo Pro Coding Python
Moin,
ich habe mich näher mit dem Python im Robo Pro Coding (RPC) befasst. Es gibt schon Möglichkeiten, heraus zu finden, wie man die FT Sensoren und Aktoren ansprechen kann.
Eine gute Möglichkeit: im Blockly "programmieren", welche Sensoren man auslesen will und welche Aktoren man ansprechen möchte. Dann das Blockly Programm in Python umwandeln. Das macht man unter Projektkonfiguration. Der Umwandlungsvorgang geht nur vom Blockly in Python. Das ist aber auch logisch, da RPC nur ein Subset von Python verwendet. Ich habe diese Möglichkeit unter RPC 6.2.0 entdeckt. Keine Ahnung, ob das vorher schon ging. Hatte ich nicht drauf geachtet.
Eine weitere Möglichkeit: Die Beispielprogramme laden und analysieren. Mit dem FT Lernmaterial abgleichen, damit man weiß, was das Programm machen soll.
Ich hab dann mal angefangen, eine Doku zusammenzustellen. Das ist erstmal nur ein kleiner Anfang für ein paar Standard Sensoren und Aktoren. Damit kann man LEDs bedienen, Encodermotoren steuern, Mini Switches auslesen, Phototransistoren, NTC-Sensor und Distanzsensor. Und ein paar Basics für das Display des TXT4.0. Im Laufe der Zeit wird die Doku (hoffentlich) weiter wachsen.
Eigentlich wollte ich den TXT4.0 schon in die hinterste Schublade verbannen. Das Blockly mag ich nicht, und die fehlende Doku hat mich verärgert. Da ich aber nicht gerne aufgebe, habe ich mich dann doch mal an das Thema begeben und habe ein paar Fortschritte gemacht. So kann ich z.B. die Parkhausschranke aus dem Basic Set wunderbar mit Python steuern. Das ist viel übersichtlicher als mit Blockly.
Okay, nun zur Doku:
Für die Funktionsfähigkeit kann ich nicht garantieren. Aber ich hoffe, es ist für manche von euch eine Einstiegshilfe. Solltet ihr einen Fehler feststellen, bitte Nachricht an mich. Danke, und nun viel Spaß beim Programmieren mit Python unter RPC.
Beste Grüße
Klaus
ich habe mich näher mit dem Python im Robo Pro Coding (RPC) befasst. Es gibt schon Möglichkeiten, heraus zu finden, wie man die FT Sensoren und Aktoren ansprechen kann.
Eine gute Möglichkeit: im Blockly "programmieren", welche Sensoren man auslesen will und welche Aktoren man ansprechen möchte. Dann das Blockly Programm in Python umwandeln. Das macht man unter Projektkonfiguration. Der Umwandlungsvorgang geht nur vom Blockly in Python. Das ist aber auch logisch, da RPC nur ein Subset von Python verwendet. Ich habe diese Möglichkeit unter RPC 6.2.0 entdeckt. Keine Ahnung, ob das vorher schon ging. Hatte ich nicht drauf geachtet.
Eine weitere Möglichkeit: Die Beispielprogramme laden und analysieren. Mit dem FT Lernmaterial abgleichen, damit man weiß, was das Programm machen soll.
Ich hab dann mal angefangen, eine Doku zusammenzustellen. Das ist erstmal nur ein kleiner Anfang für ein paar Standard Sensoren und Aktoren. Damit kann man LEDs bedienen, Encodermotoren steuern, Mini Switches auslesen, Phototransistoren, NTC-Sensor und Distanzsensor. Und ein paar Basics für das Display des TXT4.0. Im Laufe der Zeit wird die Doku (hoffentlich) weiter wachsen.
Eigentlich wollte ich den TXT4.0 schon in die hinterste Schublade verbannen. Das Blockly mag ich nicht, und die fehlende Doku hat mich verärgert. Da ich aber nicht gerne aufgebe, habe ich mich dann doch mal an das Thema begeben und habe ein paar Fortschritte gemacht. So kann ich z.B. die Parkhausschranke aus dem Basic Set wunderbar mit Python steuern. Das ist viel übersichtlicher als mit Blockly.
Okay, nun zur Doku:
Code: Alles auswählen
# ==================================================
# Documentation TXT 4.0 Python Functions
# 2023-12-02 by Klaus Janssen
# Just a begin with some essential definitions
# and functions
# ==================================================
# ==================================================
# Controller Definitions
# ==================================================
import fischertechnik.factories as txt_factory
txt_factory.init()
txt_factory.init_input_factory() # sensors at I1 to I8
txt_factory.init_output_factory() # outputs at O1 to O8
txt_factory.init_motor_factory() # motor control at M1 to M4
TXT_M = txt_factory.controller_factory.create_graphical_controller()
# Inputs
#
# Mini Switch at i.e. I1
TXT_M_I1_mini_switch = txt_factory.input_factory.create_mini_switch(TXT_M, 1)
# NTC resistor at i.e. I2
TXT_M_I2_ntc_resistor = txt_factory.input_factory.create_ntc_resistor(TXT_M, 2)
# Ultra Sonic sensor at i.e. I3
TXT_M_I3_ultrasonic_distance_meter = txt_factory.input_factory.create_ultrasonic_distance_meter(TXT_M, 3)
# Photo Transistor at i.e. I4
TXT_M_I4_photo_transistor = txt_factory.input_factory.create_photo_transistor(TXT_M, 4)
# Outputs
#
# LED at i.e. O3
TXT_M_O3_led = txt_factory.output_factory.create_led(TXT_M, 3)
# Encoder Motor at i.e. M1
TXT_M_M1_encodermotor = txt_factory.motor_factory.create_encodermotor(TXT_M, 1)
txt_factory.initialized()
# ==================================================
# Basic Functions in Program
# ==================================================
# some essential imports
import math # math functions
import time # time functions
from lib.controller import *
from lib.display import * # display functions
from fischertechnik.controller.Motor import Motor # motor functions
# time delay
time.sleep(5) # sleep 5 s
time.sleep(0.05) # sleep 50 ms
# Get Status of Mini Switch at I1
if TXT_M_I1_mini_switch.is_closed(): # Switch closed
if TXT_M_I1_mini_switch.is_open(): # Switch open
# Get Temperature of NTC at I2
value = TXT_M_I2_ntc_resistor.get_temperature()
# Get Resistor value of NTC at I2
value = TXT_M_I1_ntc_resistor.get_resistor()
# Get Ultrasonic Distance from Sensor at I3
distance = TXT_M_I3_ultrasonic_distance_meter.get_distance()
# Get Status of Photo Transistor at I4
# i.e. as part of a light barrier:
if (TXT_M_I4_photo_transistor.is_bright()): # Barrier intact
if (TXT_M_I3_photo_transistor.is_dark()): # Barrier interrupted
# Led Functions for LED at O3
# Values 0 .. 512
TXT_M_O3_led.set_brightness(0) # LED OFF
TXT_M_O3_led.set_brightness(64) # LED ON dimmed
TXT_M_O3_led.set_brightness(512) # LED ON max bright
# Encoder Motor functions at M1
#
# Set Speed and Turn Clock Wise (CW)
# Speed in range 0 to 512
TXT_M_M1_encodermotor.set_speed(int(speed), Motor.CW)
# Set Speed and Turn Counter Clock Wise (CCW)
TXT_M_M1_encodermotor.set_speed(int(speed), Motor.CCW)
#
# Start Motor
TXT_M_M1_encodermotor.start_sync()
# Stop Motor
TXT_M_M1_encodermotor.stop_sync()
#
# Run Motor for Number of Steps
# 63.9 steps for one full resolution
TXT_M_M1_encodermotor.set_distance(int(64))
# Some Display Functions
#
# Write Text "Hello" in Field "status" (defined in display.xml)
display.set_attr("status.text", str('Hello'))
#
# Set Indicator "red" to active (defined in display.xml)
display.set_attr("rot.active", str(True).lower())
# Set Indicator "red" to not active
display.set_attr("rot.active", str(False).lower())
#
# React on Button Click
# Toggle Variable "los"
def on_button_clicked(event):
global los
if los == 0:
los = 1
else:
los = 0
display.button_clicked("button", on_button_clicked)
Beste Grüße
Klaus
-
- Beiträge: 26
- Registriert: 12 Mär 2024, 20:22
Re: Robo Pro Coding Python
Hallo Klaus,
mir geht es fast wie Dir, allerdings bin ich sowohl in ROBO PRO Coding als auch in Python ein sehr blutiger Anfänger. Und habe auch keinen UNIX/LINUX-Hintergrund.
Umfangreiche Programmiererfahrung habe ich in Delphi, VBA und PHP.
Tief einsteigen möchte ich nicht in Python sondern aus BLOCKLY heraus einzelne Möglichkeiten über die Python-Schnittstelle nutzen, die sicher vorhanden sind aber nicht bis zu BLOCKLY durchgereicht werden.
Beispiel: Im Display ist es sicher möglich, die Schriftfarbe eines labels zu bestimmen. Aber wo finde ich heraus, wie die genaue Syntax hierzu ist? Für die Buttons geht es ja in BLOCKLY.
Ich suche nach einer Lösung für 12-jährige bzw. für Dummies wie mich. Meine Befürchtung ist allerdings, dass es dies nicht gibt. Und das "AGE 10+" auf den Kartons eine reine Werbelüge ist...
Horst (Frustriert)
mir geht es fast wie Dir, allerdings bin ich sowohl in ROBO PRO Coding als auch in Python ein sehr blutiger Anfänger. Und habe auch keinen UNIX/LINUX-Hintergrund.
Umfangreiche Programmiererfahrung habe ich in Delphi, VBA und PHP.
Tief einsteigen möchte ich nicht in Python sondern aus BLOCKLY heraus einzelne Möglichkeiten über die Python-Schnittstelle nutzen, die sicher vorhanden sind aber nicht bis zu BLOCKLY durchgereicht werden.
Beispiel: Im Display ist es sicher möglich, die Schriftfarbe eines labels zu bestimmen. Aber wo finde ich heraus, wie die genaue Syntax hierzu ist? Für die Buttons geht es ja in BLOCKLY.
Ich suche nach einer Lösung für 12-jährige bzw. für Dummies wie mich. Meine Befürchtung ist allerdings, dass es dies nicht gibt. Und das "AGE 10+" auf den Kartons eine reine Werbelüge ist...
Horst (Frustriert)
Re: Robo Pro Coding Python
hallo TXT 4.0 Controller Users
Wie can ich auf RoboPro Coding (python).ft programs (downloaded) on
the TXT4.0 Controller (wieder) importieren ???
mfr Grusse
Rien van Harmelen (NL)
Wie can ich auf RoboPro Coding (python).ft programs (downloaded) on
the TXT4.0 Controller (wieder) importieren ???
mfr Grusse
Rien van Harmelen (NL)
- fishfriend
- Beiträge: 1999
- Registriert: 26 Nov 2010, 11:45
Re: Robo Pro Coding Python
Hallo...
Im Browser die IP Adresse vom TXT 4.0 eingeben. (Am TXT 4.0 : Info/WLAN/IP)
Password/User:
ft
fischertechnik
Warten
In das Verzeichnis gehen, was man haben möchte.
Ganz Rechts in der Zeile auf die Wolke mit dem Pfeil drücken und downloaden.
Achtung! Es ist nur das Python-Program (.py) nicht das Robo Pro Coding Programm (.ft)!
Die .ft werden -nur- auf dem PC gespeichert.
Es ist die Frage, wo auf dem PC die Dateien gespeichert sind.
Meist unter Downloads oder unter User (Username).
Achtung.
Es kann sein, das die Programme ohne .ft gespeichert sind.
Wenn du den Namen auf dem TXT 4.0 gefunden hast, such ihn auf dem PC.
Man kann die Textdatei auch ohne .ft Endung in Robo Pro Coding öffnen.
Mit freundlichen Grüßen
Holger
Im Browser die IP Adresse vom TXT 4.0 eingeben. (Am TXT 4.0 : Info/WLAN/IP)
Password/User:
ft
fischertechnik
Warten
In das Verzeichnis gehen, was man haben möchte.
Ganz Rechts in der Zeile auf die Wolke mit dem Pfeil drücken und downloaden.
Achtung! Es ist nur das Python-Program (.py) nicht das Robo Pro Coding Programm (.ft)!
Die .ft werden -nur- auf dem PC gespeichert.
Es ist die Frage, wo auf dem PC die Dateien gespeichert sind.
Meist unter Downloads oder unter User (Username).
Achtung.
Es kann sein, das die Programme ohne .ft gespeichert sind.
Wenn du den Namen auf dem TXT 4.0 gefunden hast, such ihn auf dem PC.
Man kann die Textdatei auch ohne .ft Endung in Robo Pro Coding öffnen.
Mit freundlichen Grüßen
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro
TX-Light: Arduino und ftduino mit RoboPro
Re: Robo Pro Coding Python
@mario, Rien van Harmelen
It is also possible to use the quite powerful MS-VS code.
This gives the opportunity to develop a Python or C++ program remotely on the TXT40 with fairly good support for Python, including a remote debugger. It is then necessary to expand the memory/file system of the TXT40 with an SD card. The installation files of MS-VS code will then be located there; Together they are just too big for the in memory. In the beginning it works with in memory, but as the program becomes larger it causes problems.
Coding directly in Python via RoboPro is a disaster, there is no program development support.
Integrating your own modules into Blockly is not possible.
Blockly is a text generator that uses only a limited subset of Python.
====================================================
Es ist auch möglich, den recht leistungsfähigen MS-VS-Code zu verwenden.
Dies bietet die Möglichkeit, ein Python- oder C++-Programm remote auf dem TXT40 mit ziemlich guter Python-Unterstützung, einschließlich eines Remote-Debuggers, zu entwickeln.
Anschließend ist es notwendig, den Speicher/Dateisystem des TXT40 mit einer SD-Karte zu erweitern. Dort befinden sich dann die Installationsdateien des MS-VS-Codes; Zusammen sind sie einfach zu groß für die Erinnerung. Am Anfang funktioniert es noch im Speicher, aber wenn das Programm größer wird, kommt es zu Problemen.
====================================================
Het is ook mogelijk om van de vrij krachtige MS-VS code gebruik te maken.
Dit geeft de mogelijkheid om remote op de TXT40 een Python of C++ programma te ontwikkelen met daarbij een vrij goede ondersteuning voor Python, inclusief remote debugger.
Het is dan wel nodig om het geheugen/file systeem van de TXT40 uit te breiden met een SD kaartje. Daar komen dan de installatiebestanden van MS-VS code te staan; ze zijn bij elkaar net te groot voor het in memory geheugen. In het begin werkt het met in memory maar als het programma groter wordt dan geeft het problemen.
Direct in Python via RoboPro coding is een ramp, er is geen ondersteuning van de programmaontwikkeling.
Eigen modulen integreren in de Blockly is niet mogelijk.
Blockly is een tekstgenerator die maar een beperkte subset van Python gebruikt.
It is also possible to use the quite powerful MS-VS code.
This gives the opportunity to develop a Python or C++ program remotely on the TXT40 with fairly good support for Python, including a remote debugger. It is then necessary to expand the memory/file system of the TXT40 with an SD card. The installation files of MS-VS code will then be located there; Together they are just too big for the in memory. In the beginning it works with in memory, but as the program becomes larger it causes problems.
Coding directly in Python via RoboPro is a disaster, there is no program development support.
Integrating your own modules into Blockly is not possible.
Blockly is a text generator that uses only a limited subset of Python.
====================================================
Es ist auch möglich, den recht leistungsfähigen MS-VS-Code zu verwenden.
Dies bietet die Möglichkeit, ein Python- oder C++-Programm remote auf dem TXT40 mit ziemlich guter Python-Unterstützung, einschließlich eines Remote-Debuggers, zu entwickeln.
Anschließend ist es notwendig, den Speicher/Dateisystem des TXT40 mit einer SD-Karte zu erweitern. Dort befinden sich dann die Installationsdateien des MS-VS-Codes; Zusammen sind sie einfach zu groß für die Erinnerung. Am Anfang funktioniert es noch im Speicher, aber wenn das Programm größer wird, kommt es zu Problemen.
====================================================
Het is ook mogelijk om van de vrij krachtige MS-VS code gebruik te maken.
Dit geeft de mogelijkheid om remote op de TXT40 een Python of C++ programma te ontwikkelen met daarbij een vrij goede ondersteuning voor Python, inclusief remote debugger.
Het is dan wel nodig om het geheugen/file systeem van de TXT40 uit te breiden met een SD kaartje. Daar komen dan de installatiebestanden van MS-VS code te staan; ze zijn bij elkaar net te groot voor het in memory geheugen. In het begin werkt het met in memory maar als het programma groter wordt dan geeft het problemen.
Direct in Python via RoboPro coding is een ramp, er is geen ondersteuning van de programmaontwikkeling.
Eigen modulen integreren in de Blockly is niet mogelijk.
Blockly is een tekstgenerator die maar een beperkte subset van Python gebruikt.
Re: Robo Pro Coding Python
Thank you both for the prompt answer
Still I have a question for mr Holger:
How to delete a file: doing this ...... I get as answer: an unknown server error occurred !!!
kind regards Rien van Harmelen
Still I have a question for mr Holger:
How to delete a file: doing this ...... I get as answer: an unknown server error occurred !!!
kind regards Rien van Harmelen
- fishfriend
- Beiträge: 1999
- Registriert: 26 Nov 2010, 11:45
Re: Robo Pro Coding Python
Hallo...
Mal wieder was Neues...
I havend do this or test it, until now.
It do not work.
The only way is on the display from the TXT 4.0 -> Datei /press (Programm-Name that you want to delete) tow times / Projekt löschen (Projekt delete)
Than. are you shure / realy? / realy shure? / realy realy shure...
OK, only "aply" and then the hole Bits and Bytes are gone in the Data Heaven
kind regards from the Münsterland
Holger
PS Ich vermute es gibt da noch eine andere Möglichkeit. Z.B. über Putty. Hab ich jedoch nicht getestet.
I think there is a other solution over Putty, but i havent tested it.
Mal wieder was Neues...
I havend do this or test it, until now.
It do not work.
The only way is on the display from the TXT 4.0 -> Datei /press (Programm-Name that you want to delete) tow times / Projekt löschen (Projekt delete)
Than. are you shure / realy? / realy shure? / realy realy shure...
OK, only "aply" and then the hole Bits and Bytes are gone in the Data Heaven
kind regards from the Münsterland
Holger
PS Ich vermute es gibt da noch eine andere Möglichkeit. Z.B. über Putty. Hab ich jedoch nicht getestet.
I think there is a other solution over Putty, but i havent tested it.
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro
TX-Light: Arduino und ftduino mit RoboPro
-
- Beiträge: 26
- Registriert: 12 Mär 2024, 20:22
Re: Robo Pro Coding Python
Hallo,
ich habe es ausprobiert: Nach erfolgreicher Anmeldung am TXT 4.0 (über WinSCP) sehe ich alle Verzeichnisse. Auch das, das ich löschen will und in dem die entsprechende .py - Datei liegt. Wenn ich mir die Dateieigenschaften ansehe, sehe ich, dass der Eigentümer ftui ist. Nur er hat die Schreibberechtigung. Folgerichtig kann dort nur von ihm etwas gelöscht werden: Fehler 3 Permission denied. Das ist auch so, wenn ich als Windows-Administrator angemeldet bin.
Da auf dem TXT 4.0 ja wohl LINUX läuft, könnte ich mir vorstellen, dass ein LINUX-Kenner weiß, was hier zu machen ist.
Horst
ich habe es ausprobiert: Nach erfolgreicher Anmeldung am TXT 4.0 (über WinSCP) sehe ich alle Verzeichnisse. Auch das, das ich löschen will und in dem die entsprechende .py - Datei liegt. Wenn ich mir die Dateieigenschaften ansehe, sehe ich, dass der Eigentümer ftui ist. Nur er hat die Schreibberechtigung. Folgerichtig kann dort nur von ihm etwas gelöscht werden: Fehler 3 Permission denied. Das ist auch so, wenn ich als Windows-Administrator angemeldet bin.
Da auf dem TXT 4.0 ja wohl LINUX läuft, könnte ich mir vorstellen, dass ein LINUX-Kenner weiß, was hier zu machen ist.
Horst
Re: Robo Pro Coding Python
hello ft RoboPro Coding users
What is wrong in the Python program given below
In the Konsole there is no print output !!!????
# ***********************************
import fischertechnik.factories as txt_factory
txt_factory.init()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
txt_factory.initialized()
from lib.controller import *
Gruss = None
Gruss = 'hello'
print(Gruss)
# *****************************************
kind regards
Rien van Harmelen
What is wrong in the Python program given below
In the Konsole there is no print output !!!????
# ***********************************
import fischertechnik.factories as txt_factory
txt_factory.init()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
txt_factory.initialized()
from lib.controller import *
Gruss = None
Gruss = 'hello'
print(Gruss)
# *****************************************
kind regards
Rien van Harmelen
Re: Robo Pro Coding Python
1)
On the TXT40, you can only delete files if the owner is the ft user or it has file delete rights .
A lot of files and maps on the TXT40 have different ownerships and security description.
So you will need to inspect the rights and ownership of a file or map in case you can not delete it from the remote command prompt (Putty).
2)
Some Python tests:
Both version are working very well.
The console has been redirected to the RoboPro coding console, not the TXT screen.
The TXT40 is connected.
The program runs on the TXT40
Remark:
Optional typing gives a Python Error message, that is not normal
(https://docs.python.org/3.5/library/typing.html):
(Gruss: str | None =None)
Is also working fine
The imports are not neeeded, this works also fine:
On the TXT40, you can only delete files if the owner is the ft user or it has file delete rights .
A lot of files and maps on the TXT40 have different ownerships and security description.
So you will need to inspect the rights and ownership of a file or map in case you can not delete it from the remote command prompt (Putty).
2)
Some Python tests:
Both version are working very well.
The console has been redirected to the RoboPro coding console, not the TXT screen.
The TXT40 is connected.
The program runs on the TXT40
Remark:
Optional typing gives a Python Error message, that is not normal
(https://docs.python.org/3.5/library/typing.html):
(Gruss: str | None =None)
Is also working fine
Code: Alles auswählen
import fischertechnik.factories as txt_factory
txt_factory.init()
TXT_M = txt_factory.controller_factory.create_graphical_controller()
txt_factory.initialized()
#your python code
Gruss = None
Gruss = 'xxxtestdddf'
print(Gruss)
Code: Alles auswählen
#your python code
Gruss = None
Gruss = 'xxxtestdddf'
print(Gruss)
Re: Robo Pro Coding Python
Hello ft Robopro Coding Uuers
Thank you all for the prompt answers
but..... for me .. it is very frustating... two conputers and two TXT4.0 Controllers... but uptill now is is not possible to get a print output .
Is there (another) possibility to check the "print output" ???
Connection TXT 4.0 Controller/PC: USB cable
Kind regards:
Rien van Harmelen
Thank you all for the prompt answers
but..... for me .. it is very frustating... two conputers and two TXT4.0 Controllers... but uptill now is is not possible to get a print output .
Is there (another) possibility to check the "print output" ???
Connection TXT 4.0 Controller/PC: USB cable
Kind regards:
Rien van Harmelen
Re: Robo Pro Coding Python
@Rien @mario
Did you try to enter the code in the Python code Blockly first?
What RoboPro coding version uoy are using?
Can you send me your RoboPro coding project (menu | export | local ) als PM?
Can you see the console messages in RoboPro coding?
The part with:
Did you try to enter the code in the Python code Blockly first?
What RoboPro coding version uoy are using?
Can you send me your RoboPro coding project (menu | export | local ) als PM?
Can you see the console messages in RoboPro coding?
The part with:
Code: Alles auswählen
Program starts...
Program finished.
Re: Robo Pro Coding Python
hallo mr vLeeuwen
.... Block..... yes
.... Robo Pro Ccoding.....3.1.6
.... API versie .......8.2.2
.... send me..... please see my Beitrage 12 mai 2024 12.46
.... console message.... no
kind regards
Rien van Harmelen
.... Block..... yes
.... Robo Pro Ccoding.....3.1.6
.... API versie .......8.2.2
.... send me..... please see my Beitrage 12 mai 2024 12.46
.... console message.... no
kind regards
Rien van Harmelen
Re: Robo Pro Coding Python
3.1.6/6.2.2 is the firmware version on your TXT40
But what is your RoboPro coding version (6.2.1 is the version that you need for this firmware).
But what is your RoboPro coding version (6.2.1 is the version that you need for this firmware).
Re: Robo Pro Coding Python
hallo mr van Leeuwen
The version I use is 6.2.1
But I discover another problem:
In the Schnittstellentest only Servomotor and Ausgange given output.
Eingange and Zahler do not react (give no output ???!!!)
Perhaps is there a relation with print_output and Schnittstellentest problems ??
kind regards Rien van Harmelen
The version I use is 6.2.1
But I discover another problem:
In the Schnittstellentest only Servomotor and Ausgange given output.
Eingange and Zahler do not react (give no output ???!!!)
Perhaps is there a relation with print_output and Schnittstellentest problems ??
kind regards Rien van Harmelen
Re: Robo Pro Coding Python
I don't think so because the small program runs also without any imports.
I even removed all the program lines from "control.py" (1)
The print function in Python (2) does not have a relation with the Python hardware interface libraries.
Another test:
With Putty created a remote command window connection.
Run this small Python program from the command line.
Then the console is this command window.
You can also redirect de std output device to a file.
Option:
Install the 3.1.6 firmware again. (it takes 30 to 50 min)
I even removed all the program lines from "control.py" (1)
The print function in Python (2) does not have a relation with the Python hardware interface libraries.
Another test:
With Putty created a remote command window connection.
Run this small Python program from the command line.
Then the console is this command window.
You can also redirect de std output device to a file.
Code: Alles auswählen
import sys
from contextlib import contextmanager
@contextmanager
def stdout_redirected(new_stdout):
save_stdout = sys.stdout
print(str(sys.stdout))
print(str( new_stdout))
sys.stdout = new_stdout
try:
yield None
finally:
sys.stdout = save_stdout
with open("./test.txt", "w") as f:
with stdout_redirected(f):
print( "Hello world")
Install the 3.1.6 firmware again. (it takes 30 to 50 min)