TXT mit Python im Online und im Download-Betrieb steuern

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
schnaggels
Beiträge: 389
Registriert: 31 Okt 2010, 23:14
Wohnort: Kelkheim
Kontaktdaten:

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von schnaggels » 28 Okt 2015, 16:12

Hi,

your ft sonar sensor should have 3 cables right?
Ground (green) and supply voltage (red) to fitting connectors on the txt (on the lower end also used for the encoder motor power supply)
The third line (black) to one of the 8 inputs (right socket row, not the ground socket row next to the case edge :)
In RoboPro I think the input needs to be switched to analog voltage.

Hope this helps?

Regards,
Thomas

hvn
Beiträge: 266
Registriert: 20 Feb 2011, 11:15

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von hvn » 28 Okt 2015, 16:19

Hi Thomas,

Thank you for your answer. The sonar (which has indeed 3 wires) is connected now and works fine.

hvn

JStar
Beiträge: 10
Registriert: 20 Okt 2015, 16:19
Wohnort: Lemgo

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von JStar » 16 Dez 2015, 17:12

Hallo Torsten,

ein großes Lob für die Mühe, die du dir gemacht hast! Während die Testprogramme aus dem C-Programming-Kit bei mir nicht zum Erfolg führten haben deine Python Skripte sofort funktioniert. Ich bin wirklich am überlegen, ob ich demnächst eher mit Python programmiere, statt mit ROBOPro. Allerdings benötige ich für mein aktuelles Projekt I2C Fähigkeiten (was ja jetzt mit 4.2.3 endlich geht!!!). Es wäre also superklasse, wenn du entsprechende Funktionen einbinden könntest. Damit wäre mir echt sehr geholfen. Ich selber habe nicht viel Ahnung von Python, wäre aber auch nicht abgeneigt, mich mehr damit zu befassen.

Viele Grüße und frohe Weihnachten
Julian

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

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Torsten » 16 Dez 2015, 23:20

Hallo Julian,

erstmal vielen Dank ! ;-)

Ich muss dazu sagen, daß ich das "ftrobopy" Python-Modul eigentlich nur geschrieben habe, weil ich einen Mac verwende, auf dem ROBOPro leider nicht läuft. Inzwischen habe ich auf meinem TXT eine komplette iPython-Notebook Umgebung laufen und kann damit den TXT mit jedem beliebigen Webbrowser fernsteuern bzw. in Python programmieren, u.a. auch mit einem iPhone oder Android Tablet. Ausserdem läuft ftrobopy jetzt auch unter Python3.
In meiner (knappen) Freizeit beschäftige ich mich derzeit mit Algorithmen zur Bilderkennung auf dem TXT mit der fischertechnik Kamera, die unter Linux deutlich mehr Möglichkeiten bietet, als unter ROBOPro (z.B. eine Auflösung von 640x320 als YUYV, ohne störende JPEG-Artefakte und einen manuellen Weißabgleich). Die Routinen für die Bilderkennung können auch von Python aus aufgerufen werden, sind allerdings in "C" geschrieben, da Python hierfür zu langsam gewesen wäre.
Ich habe meine beiden TXTs bisher noch nicht auf die 4.2.3er Version upgedated und kann deshalb zu I2C noch nicht viel sagen. Da es von fischertechnik aber noch keine offizielle Beschreibung der I2C-Schnittstelle auf "C"-Ebene (ala C-Programming-Kit) gibt, müßte ich das Protokoll wohl zuerst "reverse engineeren" (wie heißt das eigentlich auf deutsch ?) wofür ich allerdings im Moment keine Zeit habe. Sobald es da von Fischertechnik eine neue Dokumentation gibt, werde ich das aber auch in ftrobopy einbauen.
Ein anderes Projekt, das mir noch im Kopf herumspukt, ist die Ansteuerung eines "Sphero"-Balles durch einen TXT über Bluetooth (mit einem Raspberry Pi geht das jedenfalls). Mir ist bisher bloß noch kein gutes Fischertechnik-Modell eingefallen, daß man mit einem Sphero "pimpen" könnte.

Viele Grüße
Torsten

DirkW
Moderator
Beiträge: 551
Registriert: 10 Nov 2014, 16:16

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von DirkW » 18 Dez 2015, 14:05

Hallo Torsten,

bezüglich des "Sphero"-Balls, fallen mir spontan als Anregung zwei Modelle ein:

https://www.youtube.com/watch?v=QuTUYofiwcE und
https://ftcommunity.de/categories.php?cat_id=1674

Besten Gruß
Dirk

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

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Torsten » 21 Dez 2015, 22:55

Hallo Julian,

ich habe einen meiner TXTs inzwischen auch auf die FW 4.2.3 upgegraded und mir das I2C etwas näher angeschaut: für den Python-Download Betrieb ist die I2C-Unterstützung kein Problem, es muss lediglich ein Python smbus Modul (cross-)kompiliert werden. Damit kann man auf dem TXT den I2C-Bus direkt ansteuern, ohne über das ROBOPro-Protokoll (d.h. den Unix-Port 65000) zu gehen. Im Online-Betrieb funktioniert dies allerdings noch nicht, da muss fischertechnik, wie bereits erwähnt, zuerst die (C-)Datenstrukturen für I2C und das I2C ROBOPro-Protokoll über den Port 65000 offenlegen.

Falls Dir der Download-Betrieb erstmal ausreicht, steht I2C damit auf dem TXT auch unter Python zur Verfügung.

Viele Grüße
Torsten

hatch
Beiträge: 5
Registriert: 12 Jan 2016, 22:47

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von hatch » 12 Jan 2016, 23:08

Hi Torsten, ich habe mich extra im Forum angemeldet um dir zu sagen: Vielen, vielen Dank für den python Support!!

Mit dem ft programming kit funktioniert bei mir gar nix und die offizielle Doku ist wirklich dürftig und gibt nicht viel her. Die Beispielprogramme machen keinen Mucker und anhand irgendwelcher kryptischer Kommentare und Fehlercodes (z.B.: "-1 means error", aha...) komme ich damit auf keinen grünen Zweig. Dann bin ich auf diesen Thread gestoßen und habe ein Python Hello World sowohl im Onlinebetrieb als auch nach Installation des python Interpreters auf dem TXT nach deiner Anleitung auf Anhieb zum Laufen gebracht! Soweit ich das beim 2-minütigen Querlesen der API Dokumentation beurteilen kann, ist das alles auch schön und ausführlich und mit zahlreichen Beispielen beschrieben. Wirklich große Klasse!

Wie auch schon in diesem Thread erwähnt, bricht die Verbindung nach kurzer Zeit in der nichts passiert wieder ab. Ich kenne mich mit Sockets überhaupt nicht aus, hast du vielleicht einen Tipp wie man das unterbinden oder zumindest etwas verbessern kann? So ist ein direktes Debugging mit Durchsteppen eigentlich unmöglich. Sobald man länger auf einer Zeile stehen bleibt um sich was genauer anzuschauen ist auch schon wieder Feierabend. Gibt es evtl. sowas wie einen Timeout den man erhöhen könnte?

viele Grüße,
hatch

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

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Torsten » 14 Jan 2016, 00:01

Hallo hatch,

es freut mich, dass ich Dir mit dem ftrobopy-Modul helfen konnte. Inzwischen habe ich eine neue Version (0.6) im Download-Bereich hochgeladen, mit der die Verbindungsabbrüche nicht mehr auftreten sollten.
hatch hat geschrieben: Wie auch schon in diesem Thread erwähnt, bricht die Verbindung nach kurzer Zeit in der nichts passiert wieder ab.
Der TXT erwartet spätestens alle 2 Sekunden ein Kommunikationspaket, sonst "denkt" er, die Verbindung sei gestört und bricht die Kommunikation ab. Deshalb musste in der Version 0.5 regelmäßig der "update"-Befehl geschickt werden. In der neuen Version 0.6 basiert die Kommunikation mit dem TXT jetzt auf Python-Threads, die die Verbindung (auch in interaktiven Sessions in der Python-Konsole oder im Debugger) automatisch aufrecht erhalten. Der "update"-Befehl ist nicht mehr nötig.

viele Grüße,
hatch[/quote]

hatch
Beiträge: 5
Registriert: 12 Jan 2016, 22:47

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von hatch » 15 Jan 2016, 11:37

Fantastisch! Das werde ich mir auf jeden Fall anschauen!

hvn
Beiträge: 266
Registriert: 20 Feb 2011, 11:15

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von hvn » 17 Jan 2016, 11:08

Hi Torsten,

Thank you for all your work.
So far I can't find the new version 0.6 in the Download section. Does it still have to be approved ?

hvn

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

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Torsten » 17 Jan 2016, 21:40

Hi hvn,
hvn hat geschrieben: So far I can't find the new version 0.6 in the Download section. Does it still have to be approved ?
I did upload it several days ago. It seems that it has not yet been approved ... or something went wrong. My new upload had the same name as the old one (the filenames were different, though). It's not clear for me if I should try uploading it again ?

Torsten

Masked
Beiträge: 500
Registriert: 18 Okt 2010, 18:19

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Masked » 17 Jan 2016, 22:04

Ist freigeschaltet.
Sorry, hatte keiner von uns gesehen.
Grüße,
Martin

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

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Torsten » 17 Jan 2016, 22:52

Hallo Martin,
Masked hat geschrieben:Ist freigeschaltet.
Vielen Dank !

Die alte Version von ftrobopy (v_0_5) wird nicht mehr benötigt. Ich habe leider keine Option gefunden um im Downloadbreich auch wieder etwas löschen zu können. Oder ist das nicht vorgesehen ?

Viele Grüße
Torsten

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

Re: TXT mit Python im Online und im Download-Betrieb steuern

Beitrag von Torsten » 12 Nov 2016, 15:25

Die neue ftrobopy Version 1.5 steht nun auf github zum Download zur Verfügung.

Im sog. 'direct'-Modus, in dem die Motorplatine ohne Umweg über die ROBOPro-Libraries über die interne serielle Schnittstelle direkt angesprochen wird, stehen I2C, Camera und Sound vorerst noch nicht zur Verfügung. Diese Funktionalität plane ich aber mittelfristig auch noch einzubauen. Am ehesten eignet sich die neue ftrobopy Version für die Verwendung mit der community Firmware des TXT.

Code: Alles auswählen

import ftrobopy
txt = ftrobopy.ftrobopy('direct')
Alle bisherigen Python Programme, die ftrobopy verwenden, sollten mit der neuen Version unverändert laufen können. Ich habe allerdings noch keine allzu ausführlichen Tests machen können (ich garantiere für nichts ! ;) ).


Torsten

PS: Wenn ftrobopy im 'direct'-Modus mit der original fischertechnik Firmware verwendet wird, muss zuvor der TxtControlMain-Prozess (und der run.sh-Prozess) beendet werden, da sich ftrobopy und die ROBOPro-Libraries sonst in die Quere kommen. Ausserdem wird noch die Serial-Library von Python benötigt (diese ist in der Python2.7 Version, die es im Softwaredownload der ftcommunity-Seiten gibt, noch nicht verfügbar, kann aber aus dem community Firmware build kopiert werden)

Antworten