ftrobopy: getCameraFrame() funktioniert nicht
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Ich habe vor kurzem angefangen mit ftrobopy und der CFW ein paar Sachen auszuprobieren.
Aber wenn ich versuche die Kamera von Fischertechnik (Die ältere aus dem Discovery Set) zu nutzen funktioniert es nicht.
Ich habe es auch mit SimpleCameraDemo.py versucht, aber das Programm speichert kein Bild ab.
Wenn ich es über ssh ausführe und irgendwann (ca. 5 min später) mit Strg-C abbreche hängt das Programm immer bei txt.getCameraFrame() fest.
Ich habe es schon mit mehreren cfw-versionen ausprobiert (0.9.3-0.9.5) doch das Problem bleibt das gleiche.
Versionen: Ft 4.6.6; ftrobopy v0.98
Schon mal danke im Voraus für evtl. Lösungen
Grüße Daniel
Ich habe vor kurzem angefangen mit ftrobopy und der CFW ein paar Sachen auszuprobieren.
Aber wenn ich versuche die Kamera von Fischertechnik (Die ältere aus dem Discovery Set) zu nutzen funktioniert es nicht.
Ich habe es auch mit SimpleCameraDemo.py versucht, aber das Programm speichert kein Bild ab.
Wenn ich es über ssh ausführe und irgendwann (ca. 5 min später) mit Strg-C abbreche hängt das Programm immer bei txt.getCameraFrame() fest.
Ich habe es schon mit mehreren cfw-versionen ausprobiert (0.9.3-0.9.5) doch das Problem bleibt das gleiche.
Versionen: Ft 4.6.6; ftrobopy v0.98
Schon mal danke im Voraus für evtl. Lösungen
Grüße Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Ich habe gerade mein ftrobopy auf 1.80 upgedated und es noch einmal versucht.
Der TXT speichert zwar jetzt ein Bild ab, die Datei ist aber nur 0 Bytes groß.
Grüße Daniel
Ich habe gerade mein ftrobopy auf 1.80 upgedated und es noch einmal versucht.
Der TXT speichert zwar jetzt ein Bild ab, die Datei ist aber nur 0 Bytes groß.
Grüße Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Ich habe mal noch ausprobiert, die Kamera nicht über ftrobopy, sondern direkt über die opencv Methode VideoCapture() angesteuert und wenn ich das ausführe bekomme ich als Rückmeldung nur einen "Select timout" als error zurück. In anderen Foren wird bei diesem Error meist darauf hingewiesen, dass die Kamera kaputt ist, aber wenn ich das Programm nicht auf dem TXT, sondern auf meinem PC mit der Kamera am USB-Port ausführe, funktioniert es.
Kann es sein, dass das zurzeit ein allgemeiner Bug in der CFW ist, oder funktioniert es bei anderen und mein TXT will nicht?
Danke schon mal im voraus für eure Rückmeldungen.
Grüße Daniel
Ich habe mal noch ausprobiert, die Kamera nicht über ftrobopy, sondern direkt über die opencv Methode VideoCapture() angesteuert und wenn ich das ausführe bekomme ich als Rückmeldung nur einen "Select timout" als error zurück. In anderen Foren wird bei diesem Error meist darauf hingewiesen, dass die Kamera kaputt ist, aber wenn ich das Programm nicht auf dem TXT, sondern auf meinem PC mit der Kamera am USB-Port ausführe, funktioniert es.
Kann es sein, dass das zurzeit ein allgemeiner Bug in der CFW ist, oder funktioniert es bei anderen und mein TXT will nicht?
Danke schon mal im voraus für eure Rückmeldungen.
Grüße Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Daniel,
Vielleicht erklärt dieser Thread (etwa ab der Mitte) das Verhalten.
viewtopic.php?f=33&t=5551&p=40946&hilit=camera#p40921
Falls es mit dem Link nicht klappt der Titel ist "USB Kamera funktioniert nicht".
Grüsse Joachim
Vielleicht erklärt dieser Thread (etwa ab der Mitte) das Verhalten.
viewtopic.php?f=33&t=5551&p=40946&hilit=camera#p40921
Falls es mit dem Link nicht klappt der Titel ist "USB Kamera funktioniert nicht".
Grüsse Joachim
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Joachim,
Danke für deine Antwort und den Hinweis, ich hatte in diesem Thread auch schon mal nachgefragt, aber dann doch ein neues Thema geöffnet, da es bei mir auch mit dem alten OpenCV nicht funktionierte und ich so den OpenCV-Bug nicht für schuldig halte. Auserdem denke ich, dass ftrobopy, das Bild nicht skaliert (oder irre ich da?).
Grüße Daniel
Danke für deine Antwort und den Hinweis, ich hatte in diesem Thread auch schon mal nachgefragt, aber dann doch ein neues Thema geöffnet, da es bei mir auch mit dem alten OpenCV nicht funktionierte und ich so den OpenCV-Bug nicht für schuldig halte. Auserdem denke ich, dass ftrobopy, das Bild nicht skaliert (oder irre ich da?).
Grüße Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Ich habe jetzt zumindest einen Teil des Problems gelöst bekommen, indem ich das Programm per ssh ausgeführt habe, während mein TXT die ft-GUI geöffnet hat. Ist das normal, dass man nur in der ft-gui auf die Kamera zugreifen kann? Wenn ja, wäre es cool, wenn das irgendwie im Manual von ftrobopy vermerkt wird, dann muss dass nicht jeder selbst herausfinden. Oder stand das irgendwo und ich habe es nur überlesen?
Gibt es auch eine Möglichkeit, direkt in der CFW Bilder aufzunehmen, denn ich will das Programm ja nicht immer über ssh starten müssen?
Danke für euren Einsatz. Die CFW ist wirklich cool!
Grüße, Daniel
Ich habe jetzt zumindest einen Teil des Problems gelöst bekommen, indem ich das Programm per ssh ausgeführt habe, während mein TXT die ft-GUI geöffnet hat. Ist das normal, dass man nur in der ft-gui auf die Kamera zugreifen kann? Wenn ja, wäre es cool, wenn das irgendwie im Manual von ftrobopy vermerkt wird, dann muss dass nicht jeder selbst herausfinden. Oder stand das irgendwo und ich habe es nur überlesen?
Gibt es auch eine Möglichkeit, direkt in der CFW Bilder aufzunehmen, denn ich will das Programm ja nicht immer über ssh starten müssen?
Danke für euren Einsatz. Die CFW ist wirklich cool!
Grüße, Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Daniel,
Viele Grüße
Torsten
ja, das ist richtig. Die Camera-Funktionen von ftrobopy funktionieren in der CFW nur, wenn die ftGUI aktiviert wurde.
Danke für die Anregung, ich werde das ftrobopy-Manual entsprechend ergänzen.
Viele Grüße
Torsten
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Danke für eure Antworten.
Gibt es sonst noch irgendwelche anderen Möglichkeiten innerhalb eines Programms Bilder aufzunehmen? TXTShow bringt mir leider nichts, da ich die Bilder während des Programmausführens aufnehmen will um sie dann zu verarbeiten.
Danke im Voraus,
Daniel
Danke für eure Antworten.
Funktionieren die Kamerafunktionena nur während der Nutzung der ft-GUI oder geht das auch, wenn man die ft-GUI wieder geschlossen hat?
Gibt es sonst noch irgendwelche anderen Möglichkeiten innerhalb eines Programms Bilder aufzunehmen? TXTShow bringt mir leider nichts, da ich die Bilder während des Programmausführens aufnehmen will um sie dann zu verarbeiten.
Danke im Voraus,
Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Daniel,
Viele Grüße
Torsten
die ft-GUI muss die ganze Zeit laufen.
In der ft:pedia Ausgabe 2016-1 ( https://www.ftcommunity.de/ftpedia_ausg ... 2016-1.pdf ), ab Seite 69, gibt es einen recht ausführlichen Artikel über die Ansteuerung der ft-Camera. Der Artikel entstand zwar in einer Zeit, als es die CFW noch nicht gab und bezieht sich auf die original fischertechnik FW, vieles ist jedoch übertragbar. Insbesondere das Auslesen des Camera-Bildes (in Auflösungen bis 1280x720) über die ftrobopytools.so ist dort beschrieben (als Beispiel für die Anwendung siehe ftDigiCam.py). Beachte: bei Verwendung der ftrobopytools.so unter der CFW darf die ft-GUI nicht laufen !
Viele Grüße
Torsten
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Torsten,
Danke für deine Antwort, das erklärt einiges
Ich habe jetzt mal ein bisschen rumprobiert und die beiden Dateien ftrobopytools.c und ftrobopytools.so in das Verzeichnis meiner App kopiert. Wenn ich folgendes Programm ausführe:
bekomme ich allerdings folgende Fehlermeldung:
Wo in meinem Programm liegt der Fehler? Ich kenne mich mit Python nicht aus, es kann also auch irgendein Anfängerfehler sein.
Danke für eure Hilfe,
Daniel
Danke für deine Antwort, das erklärt einiges

Ich habe jetzt mal ein bisschen rumprobiert und die beiden Dateien ftrobopytools.c und ftrobopytools.so in das Verzeichnis meiner App kopiert. Wenn ich folgendes Programm ausführe:
Code: Alles auswählen
from __future__ import print_function
import ftrobopy
import ftrobopytools
txt = ftrobopy.ftrobopy('auto')
try:
high_fps = 5
high_width = 1280
high_height = 720
videv = ftrobopytools.camInit(high_fps, high_width, high_height, 0, 0)
jpg = ftrobopytools.getJPEGImage(videv)
ftrobopytools.camClose(videv, 0)
with open('PIC.jpg', 'wb') as f:
f.write(jpg)
except ftrobopytools as error:
print(error)
finally:
ftrobopytools.camClose(videv, 0)
Code: Alles auswählen
Traceback (most recent call last):
File "Ledtest.py", line 4, in <module>
import ftrobopytools
ImportError: /home/ftc/apps/d01b7ab0-00d4-11ea-aaef-0800200c9a66/ftrobopytools.so: undefined symbol: Py_InitModule4
Danke für eure Hilfe,
Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Daniel,
die ftrobopytools.so, die in dem Paket enthalten ist, habe ich für Python2.7 compiliert (das war 2016 noch üblich). Du könntest die Python2-Version der CFW verwenden oder alternativ könntest Du die ftrobopytools.c Datei auch selbst für Python3 übersetzen.
Ich selbst verwende meistens noch Python2, weil der Python2-Interpreter deutlich kleiner ist als der von Python3. Da der Python2-Support aber zum Ende des Jahres offiziell ausläuft, werde ich selbst wohl auch bald vollständig zu Python3 wechseln
Falls Du Probleme mit dem Compilieren hast, sag' Bescheid, dann lade ich noch eine ftrobopytools.so für Python3 hoch.
Viele Grüße
Torsten
die ftrobopytools.so, die in dem Paket enthalten ist, habe ich für Python2.7 compiliert (das war 2016 noch üblich). Du könntest die Python2-Version der CFW verwenden oder alternativ könntest Du die ftrobopytools.c Datei auch selbst für Python3 übersetzen.
Ich selbst verwende meistens noch Python2, weil der Python2-Interpreter deutlich kleiner ist als der von Python3. Da der Python2-Support aber zum Ende des Jahres offiziell ausläuft, werde ich selbst wohl auch bald vollständig zu Python3 wechseln
Falls Du Probleme mit dem Compilieren hast, sag' Bescheid, dann lade ich noch eine ftrobopytools.so für Python3 hoch.
Viele Grüße
Torsten
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Torsten,
Danke für deine Antwort. Ich habe gerade probiert die ftrobopytools zu kompilieren.
Allerdings bekomme ich folgenden Error:
Wo finde ich die Datei Python.h? Noch besser wäre es natürlich, wenn du das Kompilieren übernehmen würdest, vorausgesetzt das ist kein zu großer Aufwand.
Vielen Dank,
Daniel
Danke für deine Antwort. Ich habe gerade probiert die ftrobopytools zu kompilieren.
Allerdings bekomme ich folgenden Error:
Code: Alles auswählen
gcc -shared -o ftrobopytools.so -fpic ftrobopytools.c
ftrobopytools.c:1:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
Vielen Dank,
Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Ich habe es jetzt geschafft die ftrobopytools zu kompilieren (dank vleeuwen und stackoverflow
)
Allerdings bekomme ich jetzt beim Ausführen folgenden Fehler:
Was bedeutet das?
Danke, dass ihr euch soviel Mühe macht.
Grüße Daniel
Ich habe es jetzt geschafft die ftrobopytools zu kompilieren (dank vleeuwen und stackoverflow

Allerdings bekomme ich jetzt beim Ausführen folgenden Fehler:
Code: Alles auswählen
Traceback (most recent call last):
File "Ledtest.py", line 4, in <module>
import ftrobopytools
ImportError: /home/ftc/apps/d01b7ab0-00d4-11ea-aaef-0800200c9a66/ftrobopytools.so: wrong ELF class: ELFCLASS64
Danke, dass ihr euch soviel Mühe macht.
Grüße Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
-
- Administrator
- Beiträge: 582
- Registriert: 26 Dez 2015, 23:49
- Wohnort: Rhein-Main-Gebiet
Re: ftrobopy: getCameraFrame() funktioniert nicht
Nach Deiner Kommandozeile für den GCC zu schließen hast Du ftrobopytools für Deinen PC übersetzt - d.h. für ein 64-Bit-x86-System. Die Fehlermeldung die Du bekommst zeigt die Hälfte davon (64Bit statt 32Bit) auch an - allerdings wirst Du mit einem für x86 übersetzen Programm auf dem TXT (der hat einen ARM-Prozessor) generell nicht glücklich.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo,
Ich habe ftrobopytools mit folgendem Befehl kompiliert:
was müsste ich an dem Befehl ändern um eine 32-Bit Verison zu bekommen?
Laut geeksforgeeks müsst man also folgenden Befehl ausführen:
Allerdings bekomme ich dann folgenden error:
Was bedeutet das?
Danke für eure Hilfe,
Daniel Großmann
Ich habe ftrobopytools mit folgendem Befehl kompiliert:
Code: Alles auswählen
gcc -shared -o ftrobopytools.so -fPIC ftrobopytools.c
Laut geeksforgeeks müsst man also folgenden Befehl ausführen:
Code: Alles auswählen
gcc -shared -o ftrobopytools.so -fPIC -m32 ftrobopytools.c
Code: Alles auswählen
In file included from /usr/include/python3.6/Python.h:8:0,
from ftrobopytools.c:1:
/usr/include/python3.6/pyconfig.h:7:12: fatal error: i386-linux-gnu/python3.6m/pyconfig.h: No such file or directory
# include <i386-linux-gnu/python3.6m/pyconfig.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Danke für eure Hilfe,
Daniel Großmann
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Daniel,
ich verwende normalerweise die fischertechnik toolchain (installiert unter Ubuntu Linux) zum cross-compilieren von Programmen für den TXT.
Hier ist eine sehr ausführliche Kommandozeilenversion (nicht alles ist unbedingt genauso notwendig), die bei mir aber funktioniert.
Viele Grüße
Torsten
Edit: Sorry, ein paar Optionen sind wohl beim Copy-and-Paste doppelt in der Zeile gelandet ... schadet aber nix
ich verwende normalerweise die fischertechnik toolchain (installiert unter Ubuntu Linux) zum cross-compilieren von Programmen für den TXT.
Hier ist eine sehr ausführliche Kommandozeilenversion (nicht alles ist unbedingt genauso notwendig), die bei mir aber funktioniert.
Code: Alles auswählen
# cross compiling ftrobopytools or other c/c++ programs with fischertechnik TXT toolchain
/home/stuehn/software/ft_TXT_toolchain/output/host/usr/bin/arm-linux-gnueabihf-gcc -fno-strict-aliasing -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -DNDEBUG -O3 -Wall -Wstrict-prototypes -DPY_FORMAT_LONG_LONG= -fPIC -I/home/stuehn/software/local/include -I/home/stuehn/software/local/include/python3.5m -I/home/stuehn/software/ft_TXT_toolchain/output/host/usr/include/python2.7 -I/home/stuehn/software/SDL-1.2.15/include -c ftrobopytools.c -o ftrobopytools3.o
# linking the object code
/home/stuehn/software/ft_TXT_toolchain/output/host/usr/bin/arm-linux-gnueabihf-gcc -shared -L/home/stuehn/software/local/lib -L./software/ft_TXT_toolchain/output/target/usr/lib -lSDL ftrobopytools3.o -o ftrobopytools3.so
Torsten
Edit: Sorry, ein paar Optionen sind wohl beim Copy-and-Paste doppelt in der Zeile gelandet ... schadet aber nix

Re: ftrobopy: getCameraFrame() funktioniert nicht
Hallo Torsten,
Wo finde ich diese Toolchain? Ist das das C-Compiler-Programmierpaket beim Tx?
Da ich mich mit C kaum auskenne, wie nutzt man diese Toolchain?
Da ich ansonsten kein C programmiere würde ich mich freuen, wenn du, falls du ftrobopytools sowieso schon einmal für python3 kompiliert hast oder das für dich kein großer Aufwand ist, mir die kompilierte Version zukommen lassen kannst, das wird wahrscheinlich weniger Aufwand sein als mir jede Einzelheit beim Kompilieren zu erklären
Danke, dass ihr euch die Zeit nehmt, mir das zu erklären.
Grüße Daniel
Wo finde ich diese Toolchain? Ist das das C-Compiler-Programmierpaket beim Tx?
Da ich mich mit C kaum auskenne, wie nutzt man diese Toolchain?
Da ich ansonsten kein C programmiere würde ich mich freuen, wenn du, falls du ftrobopytools sowieso schon einmal für python3 kompiliert hast oder das für dich kein großer Aufwand ist, mir die kompilierte Version zukommen lassen kannst, das wird wahrscheinlich weniger Aufwand sein als mir jede Einzelheit beim Kompilieren zu erklären

Danke, dass ihr euch die Zeit nehmt, mir das zu erklären.
Grüße Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.
Re: ftrobopy: getCameraFrame() funktioniert nicht !!Gelöst!!
Hallo,
Das Problem ist gelöst, da Torsten so nett war und mir die kompilierte Datei geschickt hat (Vielen Dank). Jetzt funktioniert alles.
Frohe Weihnachten
Daniel
Das Problem ist gelöst, da Torsten so nett war und mir die kompilierte Datei geschickt hat (Vielen Dank). Jetzt funktioniert alles.
Frohe Weihnachten
Daniel
Alle sagten: Das geht nicht. Dann kam einer der das nicht wusste und hat es einfach gemacht.