ftrobopy herunterladen und in python einbinden.

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 30 Jun 2023, 17:53

Gott zum Gruß,

ich habe den txt und möchte mit Windows, Python auf dem Laptop arbeiten. Ich bin nicht in der Lage,ftrobopy herunterzuladen und in Python einzubinden. Es ist nirgendwo klar beschrieben oder ich bin überfordert?

LG
Joachim

JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 30 Jun 2023, 18:13

Ergänzung:

Ich hatte installiert mit

pip install ftrobopy

Dann ein Beispiel getestet:

import ftrobopy
ftrob = ftrobopy.ftroboclass()
ftrob.startMotor(1, 100)
ftrob.wait(2000)
ftrob.stopMotor(1)
ftrob.stopOnline()

Und bekomme die Fehlermeldung:
AttributeError: module 'ftrobopy' has no attribute 'ftroboclass'

axel57
Beiträge: 60
Registriert: 22 Mai 2018, 19:52

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von axel57 » 30 Jun 2023, 19:39

Schau mal hier:
http://chobe.info/dokus/py_ft.pdf

Gruß der Axel

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

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von Torsten » 01 Jul 2023, 09:19

Hallo Joachim,

das Python-Programm, das Du zeigst, passt nicht zu ftrobopy.

Programme, die ftrobopy verwenden, sehen typischerweise so aus:

(Für dieses Beispiel sollte ein roter Encodermotor an M1 und C1 des TXT angeschlossen sein)

Code: Alles auswählen

import ftrobopy
ftrob = ftrobopy.ftrobopy('auto')
m1    = ftrob.motor(1)
m1.setDistance(200)
m1.setSpeed(300)
while not m1.finished():
    ftrob.updateWait()
ftrob.stopOnline()
Ein anderes Beispiel einer an Output Nr. 8 (O8) angeschlossenen LED, die 10 mal blinken soll:

Code: Alles auswählen

import time
import ftrobopy
ftrob = ftrobopy.ftrobopy('auto')
led1  = ftrob.output(8)
for i in range(10):
    led1.setLevel(300)
    time.sleep(0.5)
    led1.setLevel(0)
    time.sleep(0.5)
ftrob.stopOnline()
Viele Grüße
Torsten

JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 01 Jul 2023, 10:21

Grüß Dich,

ich habe das Lampen Beispiel kopiert und ausgeführt.
Bekomme Fehlermeldung:

PS C:\pythonprogramm> & C:/Users/chef/AppData/Local/Programs/Python/Python39/python.exe c:/pythonprogramm/test.py
Exception ignored in: <function ftrobopy.__del__ at 0x0000023E0E1F4D30>
Traceback (most recent call last):
File "c:\pythonprogramm\ftrobopy.py", line 1433, in __del__
self.stopCameraOnline()
File "c:\pythonprogramm\ftrobopy.py", line 511, in stopCameraOnline
if not self.cameraIsOnline():
File "c:\pythonprogramm\ftrobopy.py", line 174, in cameraIsOnline
return (not self._camera_stop_event.isSet()) and (self._camera_thread is not None)
AttributeError: 'ftrobopy' object has no attribute '_camera_stop_event'
Traceback (most recent call last):
File "c:\pythonprogramm\test.py", line 3, in <module>
ftrob = ftrobopy.ftrobopy('192.168.7.2')
TypeError: __init__() missing 1 required positional argument: 'port'
PS C:\pythonprogramm>

LG
Joachim

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

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von Torsten » 01 Jul 2023, 14:10

Wurde die Fehlermeldung nach dem Blinken angezeigt oder vorher ?
Falls nach dem Blinken erst, dann war das ein Fehler beim Beenden des Programms. In diesem Fall sollte es ausreichen, nach dem ftrob.stopOnline() noch eine letzte Zeile einzufügen:

time.sleep(0.5)

Damit sollte es keine Timing Probleme beim Beenden mehr geben.

JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 01 Jul 2023, 16:04

So weit kommt das Programm nicht. Es steigt aus bei line 3

File "c:\pythonprogramm\test.py", line 3, in <module>
ftrob = ftrobopy.ftrobopy('192.168.7.2')
TypeError: __init__() missing 1 required positional argument: 'port'

JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 01 Jul 2023, 17:18

Ergänzung

Habe eine Änderung eingebracht. Das auto ersetzt.
import time
import ftrobopy
ftrob = ftrobopy.ftrobopy('192.168.7.2' , 65000)
#ftrob = ftrobopy.ftrobopy('auto')
led1 = ftrob.output(8)
for i in range(10):
print(" i = ",i)
led1.setLevel(300)
time.sleep(0.5)
led1.setLevel(0)
time.sleep(0.5)
ftrob.stopOnline()
time.sleep(0.5)
läuft durch bringt das i
aber die Lampe blinkt nicht.
habe + an c1 lk , und minus an c1 rechts angeschlossen, wahrscheinlich falsch.

JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 01 Jul 2023, 17:23

Entschuldige, wenn ich nerve.
Mir vergeht auch so langsam die Lust.


wenn ich an o7 und o8 anschließe, kommen meldungen
File "c:\pythonprogramm\ftrobopy.py", line 1433, in __del__
self.stopCameraOnline()
File "c:\pythonprogramm\ftrobopy.py", line 511, in stopCameraOnline
if not self.cameraIsOnline():
File "c:\pythonprogramm\ftrobopy.py", line 174, in cameraIsOnline
return (not self._camera_stop_event.isSet()) and (self._camera_thread is not None)
AttributeError: 'ftrobopy' object has no attribute '_camera_stop_event'
PS C:\pythonprogramm>

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

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von Torsten » 01 Jul 2023, 21:51

Hallo Joachim,

ich habe das bei mir nochmal ausprobiert und es funktioniert aus meinem TXT (mit original ft Firmware 4.7.0) ohne Probleme. Die LED blinkt auch. Meine ftrobopy-Version ist die "2.0.0 stable" ( das kannst du abfragen mit print(ftrobopy.version()) ).

Hier ist ein Bild von meiner Verkabelung, der Bildschirmausgabe und des Python-Programmes (die Einrückung muss genau so sein, wie in meinem Bild, in Deinem Post oben war leider die Einrückung nicht zu erkennen).
IMG_6500.jpg
IMG_6500.jpg (90.01 KiB) 1858 mal betrachtet
Viele Grüße
Torsten

JoWo
Beiträge: 35
Registriert: 23 Jun 2023, 19:42

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von JoWo » 02 Jul 2023, 10:07

Du hast mir das Wochenende gerettet. Danke, dass du nicht aufgegeben hast.
Es blinkt!!!

2 Punkte noch

Bei print(ftrobopy.version()) erhalte ich als Ergebnis: 0.98
Wo kann ich nachlesen, wie ich verkable. Die falsche Verkablung war mein Fehler, wie ich jetzt im Nachhinein festgestellt habe.

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

Re: ftrobopy herunterladen und in python einbinden.

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

Hallo,

wegen Version von ftrobopy. Habe auf dem PC (Ubuntu) via pip3 install --user ftrobopy installiert. Mit ftrobopy.version() erhalte ich 1.8.

Hätte gerne die 2.0. Wie bekomme ich dies auf meinen Laptop installiert?

Danke

Kräml

hypnotoad
Beiträge: 121
Registriert: 16 Feb 2019, 12:43
Wohnort: 30559 Hannover
Kontaktdaten:

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von hypnotoad » 06 Jul 2023, 11:44

Hallo,
es gibt deswegen auf Github einen bugreport zu dem pip-Modul von ftrobopy. https://github.com/ftrobopy/ftrobopy/issues/35. Vielleicht kann @torsten mal ein neues Modul hochladen (Wink mit Zaunpfahl!)? Ansonsten kannst Du die Sourcen in deinen PYTHONPATH kopieren. Ich selber habe sie in Linux in
~/.local/lib/python3.11/site-packages.

Ralf

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

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von kräml » 06 Jul 2023, 13:18

Hallo,
cool ein:

Code: Alles auswählen

wget -O ~/.local/lib/python3.8/site-packages/ftrobopy.py https://raw.githubusercontent.com/ftrobopy/ftrobopy/master/ftrobopy.py
hat sehr geholfen. Danke für den Hinweis.

Danke auch an Thorsten für ftrobopy_server auf dem TXT4. So kann man den TXT und TXT4 recht gut mit dem gleichen Softwarestack betreiben.

Kräml

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

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von Torsten » 07 Jul 2023, 10:24

Hallo,

ich habe gerade die ftrobopy Version 2.0.0 auf pypi.org hochgeladen.

Code: Alles auswählen

pip install ftrobopy
sollte also jetzt die Version 2.0.0 installieren.

Viele Grüße
Torsten

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

Re: ftrobopy herunterladen und in python einbinden.

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

Hallo Torsten,

danke fürs hochladen.

Kräml

FJB
Beiträge: 53
Registriert: 09 Mär 2019, 23:16
Wohnort: Recklinghausen

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von FJB » 28 Jul 2023, 18:41

Hallo zusammen,

habe ftrobopy gerade ohne großen Aufwand in Visual Studio 2022 eingebunden. VS2022 nutzt Python 3.9 so dass die Installation im Prinzip gleich bleibt. Nur die Pfade liegen nicht mehr in AppData sondern unter Programme_x86 Microsoft Visual Studio.

Was wirklich gut daran ist, dass eine Projektverwaltung zur Verfügung steht.

Bequemer geht's nicht. Zumal ich seit mittlerweile 31 Jahren diese IDE nutze (C#, SQL Server, C/C++ mit VisualMicro für ftDuino und Arduino, AVR Studio - mit VB 3.0 habe ich tatsächlich 1992 angefangen).
.
Unbenannt.jpg
Unbenannt.jpg (34.23 KiB) 1259 mal betrachtet

FJB
Beiträge: 53
Registriert: 09 Mär 2019, 23:16
Wohnort: Recklinghausen

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von FJB » 28 Jul 2023, 18:48

... und der Debugger funktioniert natürlich auch ...
.
Unbenannt.jpg
Unbenannt.jpg (10.74 KiB) 1257 mal betrachtet
Abbildung: Halt an einem Breakpoint.

hypnotoad
Beiträge: 121
Registriert: 16 Feb 2019, 12:43
Wohnort: 30559 Hannover
Kontaktdaten:

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von hypnotoad » 28 Jul 2023, 20:55

Super! Ich kann noch Pycharm und VSCode weiterempfehlen. Hast Du schon mal ausprobiert, ob man mit VS2022 auch über SSH entwickeln kann, d.h. die .py-Datei liegt auf dem TXT und wird dort ausgeführt? VSCode kann das, ich habe es aber noch nicht ausprobiert. Die Umgebungsvariablen PYTHONPATH und DISPLAY sollten seit kurzem korrekt gesetzt sein, so dass das prinzipiell funktionieren kann.
lg,
Ralf

PS: Ich entwickle mit Emacs, kann das eher nicht empfehlen, wenn man neu anfängt.

FJB
Beiträge: 53
Registriert: 09 Mär 2019, 23:16
Wohnort: Recklinghausen

Re: ftrobopy herunterladen und in python einbinden.

Beitrag von FJB » 28 Jul 2023, 21:11

Hi Ralf,
Das wird der nächste Schritt sein. Mir ging es erstmal darum, dass es funktioniert. Der Komfort, sprich die autonome Ausführung auf dem TXT, sinnvoller Weise mit Autostart nach Einschalten, das wäre dann die Königsklasse.

@alle
Mal etwas ganz Anderes:
Bei mir funktioniert die Funktion stop() des Motorobjekts nicht (motor1.stop() ). Wenn ich setSpeed(0) verwende bleibt der Motor zuverlässig stehen. Ist das schon mal wem aufgefsllen?

Beste Grüße Frank

Antworten