RoboPro Versions Unterschied (Arduino - fx1 Parser)

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 21 Jan 2017, 17:39

Hallo...
Ich habe ein für mich etwas schwieriges Problem.
An einer Schule habe ich ft Kästen (zB. Roboter, Ploter... von 1995 (?) ). Alle Kästen sind unvollständig und alle Interfaces fehlen .
Jetzt war die die Idee da mit Arduino fx1 Parser und RoboPro die Modelle wieder zum Leben zu erwecken.
Da kein Geld zur verfügung steht, wollte ich das Privat machen. Da ich hier privat 3 Arduino Uno habe und die an der Schule auch welche
gespendet bekommen haben. (Motortreiber usw lassen wir mal außen vor)

Es gibt das Projekt fx1 Parser wo eine Software auf den Arduino gespielt wird und sich mit RoboPro steuern läßt.
Es gibt aber das Problem das es nur mit bestimmten Versionen von RoboPro geht.
Konkret get es um die RoboPro Version 1.30.06 und 1.24.29 und da speziell um die Bibliothek.
Ich kann meine RoboPro Version nicht aktualisieren, da sonst die TX Kontroller einer anderen Schule auch aktualisiert werden müßten - und dann auch
deren Software auf den Schulrechnern, was einen heiden Aufwand nach sich ziehen würde.

Ich vermute mal das bei der Übertragung vom PC zum ft-Interface es einen Unterschied gibt bei den Daten bzw der Anzahl oder der Reihenfolge der Daten.
Sprich es wird wohl einen Unterschie in der LIB geben.
Nur welchen?
Und wie könnte man das Programm ft Parser so ändern das es geht. Klar in dem Arduino könnte man nur die Seriennummer ändern um das Update abzuschalten aber dennoch geht es nicht.
Ich werde selber noch mal weiter an einer Lösung arbeiten, aber evtl hat ja jemand im Forum eine Idee oder besser noch eine Lösung.

H. Howey (fishfriend)

PS
Auf die evtl aufkommende Frage: Warum nicht einfach mit dem über die Arduino IDE programmieren?
Tja für mich weniger ein Problem aber ein großes großes Problem für die Schüler. RoboPro ist da viel einfacher.
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von EstherM » 21 Jan 2017, 18:34

Hallo fishfriend,
leider kann ich dir nur eine Antwort geben, wie sie in vielen Foren üblich ist:
ich habe auch keine Antwort auf deine Frage, aber mach es doch anders.
Im Ernst: Ich habe zur Ansteuerung eines ArduinoUno Snap4Arduino genommen. Die Programmierung damit (mit Kacheln, ähnlich wie Scratch) erscheint mir sogar leichter als mit RoboPro. Es gibt auch eine nachvollziehbare Anleitung, wie man Snap so ergänzen kann, dass man auch ein anderes Device, z.B. eines der Adafruit Motor Shields verwenden kann. Immerhin habe ich damit schon mal einen Motor zum Laufen gebracht. Die Motor Shields brauchst du ja sowieso.
Das ist wirklich nicht schwer.
Gruß
Esther

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 21 Jan 2017, 19:08

Hallo...
Ich hab S4A (Scratch 4 Arduino) genommen. Ist jetzt nicht sooo der Hit.
Ich hab auch ein S4A Sratch Programm geschrieben um damit über einen Arduino Uno ein paralleles ft-Interface anzusprechen.
Problem ist aber die Geschwindigkeit. Wenn man die Zählimpule auswerten möchte stößt man schnell an die Grenzen des Systems.
Um den ft Händetrockner zu steuern geht es.

Die nächsten Versuche sind die unterschiedlichen Parserversionen mal auszuprobieren.
Mal schauen...

Hat denn jemand mal den fx1 Parser benutzt?
Ich stelle mir die Frage ob es möglich ist z.B. Adafuits Motorshields darüber anzustuern.

Ich muss zugeben das ich momentan ein bisschen
raus bin aus der INO Programmierung und das Parserprogramm nicht ganz verstehe.
Na ja, mal schauen...
Gruß
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 21 Jan 2017, 22:01

Hallo...
A big smile :D
Es ist doch gar nicht so schwer wie ich dachte.
Scheinbar ist die Lib nicht unterschiedlich also die Übertragung im Onlinemodus ist gleich. Somit läuft es mit der CD Version von Robopro (das was ich bisher ausprobiert habe).

Also man muss "nur" die Versionsnummer im fx1 Parser an die Nummer von RoboPro anpassen und (warum auch immer) eine 2 als erste Zahl eingeben.
Bei mir 2-29-1-24 also Hexadezimal 02-1D-01-18 unter
reply->X1Data.version.firmware.part.a bis ... d im Unterprogramm fx1parser eingeben.
Auch der Interfacetest geht.

Jetzt muss ich "nur" noch das Programm verstehen und die Motortreiber irgendwie einbinden.

Der eigendliche Gag ist aber das man ein altes paralleles ft-Interface nehmen kann um ft Modelle anzusteuern.
Man nimmt die ICs die auf den Sockeln sind raus und geht vom Arduino Uno direkt auf den Pin in der IC-Fassung.
Da könnte man glatt ein fischertechnik Arduino Shield draus machen.
Mal schaun...
Gruß
H. Howey fishfriend
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
Defiant
Beiträge: 354
Registriert: 31 Okt 2010, 21:42
Wohnort: Narn Homeworld
Kontaktdaten:

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von Defiant » 22 Jan 2017, 13:01

Welche codes sind denn problematisch?
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 28 Jan 2017, 20:17

Hallo...
Ich gerade dabei das Programm durchzuarbeiten und meine Fragen zu sammeln. Da kann man glatt einen ft-Pedia Bericht daraus machen :D
Ich werde mich deshalb nochmals melden.
Gruß
H.Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 29 Jan 2017, 11:58

Hallo...
Eigentlich ist es DAS Programm um fischertechnik mit dem Arduino Uno anzusteuern.
Wenn man den weis wie es geht. Hier geht es darum um altes fischertechnik aus der Schule mit neuem Leben zu versehen.
Vorteil ist auch das der Arduino Uno mit 5V läuft und die Gabellichtschranken daran laufen.

Eigentlich sollte manwirklich einen ft Pedia Bericht dazu machen.
Probleme-Lösungen ("Der Arduino läuft wie ein TX bis auf"):

Problem 1: ist der Anschluss der EIngänge. Es gibt zwei Arten um Schalter oder Taster an den Arduino anzuschließen. Entweder man schaltet den Pluspol auf den Eingang (wie bei den ft Modellen) oder man schaltet den Minuspol (wie sehr häufig beim Arduino). Nun sind beim ft Parser bei drei Eingängen die Pull-Ups eingeschaltet und die anderen analogen Eingänge sind unbeschaltet. Also erwartet der Arduino die Minusbeschaltung. Wenn man den RoboPro Test laufen lässt bekommt man drei mal eine 1 und bei den anderen irgend welche Zahlen (weil es driftet). Wenn man im ft Parser die PullUps ausschaltet und sagen wir mal 200K Ohm Widerstände dranschaltet (nach Minus) laufen die Eingänge so wie beim richtigen TX Controller.
In einem anderen Thread wurde das glaube ich als rumzippen der EIngänge bezeichnet, aber es scheint nur die Beschaltung anders zu sein.

Problem 2: die Seriennummer. Wenn man das "neuste" (4.2.3 was wir im Einsatz haben) Robopro nimmt, läuft ft-Parser sofort. Ansonsten kommt die Fehlermeldung das RoboPro oder der "TX" eine neuere Version hat und das RoboPro updaten will - was nicht geht. ft Paser ändern: Man sollte die Nummer bei der Kontaktaufnahme von RoboPro einlesen (wenn sie denn übertragen wird) und dann wieder ausgeben, denn die Übertragung ist gleich.

Problem 3: Nicht jeder Eingang ist analog wie beim TX. Der Arduino ist halt ein kleiner Bruder vom echten TX. So ein "TX light". Man kann nicht alles 1:1 wie bei den neuen ft Modellen anschließen. Z.B. sollte man tunlichst die 10V Messung vermeiden da man damit den Arduino grillt. (Das einstellen im Test geht - aber das tatsächliche Anlegen von 10V grillt ihn)

Problem 4: Motoransteuerung. Wenn man einen ft Motor ansteuern möchte muss man H-Treiber wie den L293D nehmen. Der L293D kann man "nur" 600mA steuern. ft Motoren nehmen laut fischertechnik Homepage aber mehr Strom auf, was ich aus Messungen aber nicht bestätigen kann. Es kann ja sein das es so ist, wenn schwergängige Modelle betrieben werden.
Die nächste Sache ist die Geschwindigkeitsregelung (PWM). Die ist nicht für alle Ausgänge verfügbar. Das muss man nur wissen.
Es gibt ja die Motorshields z.B. über I2C wobei sich mir die Frage stellt ob der Speicher vom Arduino reicht um die Bibliotheken aufzunehmen. Zumindest könnten so alle Motoren PWM bekommen und man hätte einen besseren Schutz.


Nachgefragt:
So nun habe ich mal etwas mit dem Parser beschäftigt. Aber ich habe so meine Probleme. Ich meine irgendwo gab es eine (?) PDF oder eine DOK wo die übertragenden Variablen beschrieben werden (bei der C Ansteuerung ??).
Ich steige durch die ganzen Strukturen und Verschachtelungen nicht ganz durch. Leider hält sich der Programmierer nicht an die Reihenfolge von MSC "Programmierung der Robo TX Controllers.PDF" was die Sache für mich nicht einfacher macht.

Also mal Grundsätzlich,
Wenn man z.B. einen Counter mit einem Wert vorgibt, kann man unter (fx1Parser):
void CMD002Reply(short nItems, unsigned char *data) ...
unter der Zeile reply->X1Data.uni[7]=map(analogRead(IN8), 0, 1023, 0, 500);
die Zeile reply->X1Data.counter [1] = 198; einfügen und man bekommt brav in ROboPro 198 angezeigt.
Ich weis jetzt kommt eine blöde Frage, aber wenn man z.B. diesen Counter sagen wir mal alle 2 sec hochzälen lassen wollte, wo und wie könnte man das machen?
Hintergrund der Fage:
Ob und wie man z.B. die Motorshields von Adafruit in den Parser einbinden kann. Die benötigen ja eine eigene Lib über I2C und die benötigt Speicher und Zeit. Die Ansteuerung (Programmcode) der Motoren und die PWM ist ähnlich aber kommt ohne die Hardware PWM aus.

Auch könnte man z.B. den Parser so erweitern, dass man über I2C weitere Eingänge oder Ausgänge z.B. über die weiteren Transferbereiche ansteuert. Was ich nicht verstanden habe ob -diese- Bereiche überhaupt initialisiert werden also als Variablen zur Verfügung stehen. Insgesamt kommt mir der Verbrauch an RAM Speicher sehr sehr hoch vor.

Insgesammt gesehen hat man eine große Menge an Varablen und Strukturen, die scheinbar nicht alle genutzt werden. Werden die alle automatisch von der Arduino IDE vor den Programmcode gelegt? Da gibt es ja einnen für den Programmierer nicht sIchtbaren Vorbau, den man z.B. über "enum" beeinflussen/steuern kann.

Von RoboPro werden Commandos (Tele-Code?) gesendet. Gibt es dazu eine Tabelle?
Im Parser werden die CMD001, 2, 5, 6 und CMD007 genutzt. CMD002 scheint ja die Eingänge und Ausgänge zu steuern, was machen die anderen?

Mal eine ganz andere Frage: Wenn man von der Hardware z.B. 12 oder 13 ... Ausgänge als Vorhanden angibt würde Robopro das auch z.B. im Test anzeigen und könnte man diese benutzen?
So könnte man den 3D-Drucker, Plotter oder Fräse direkt betreiben - an einem Master.

Ich hoffe da kann mir jemand mal auf die Sprünge helfen.
Gruß
H.Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

thkais
Beiträge: 381
Registriert: 31 Okt 2010, 21:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von thkais » 29 Jan 2017, 12:46

Moin:

Problem 1: Ließe sich auch per SW beheben, durch Invertierung.
Problem 2: Das ist in der Tat schwierig, wenn man mehrere Versionen bedienen will. Man könnte per I²C einen DIP-Schalter einbinden, mit dem man wenigstens einige Versionsnummern einstellen könnte...
Problem 4: Man muss nicht den (sehr betagten) L293 nehmen. Es gibt -zig Bausteine, die Motoren ansteuern können... btw sind die ft-Ausgänge auch nur für 250mA spezifiziert. Die Motoren haben Kurzschlussströme von 1A, das ist aber nicht der übliche Betriebsstrom.

Man könnte sogar TX + 8 Extensions ansteuern, das Protokoll gibt das her. Was die einzelnen Commands machen, ist im Programm herauslesbar - oder auch hier: http://ft-fanpage.de/Robo-TX-RS-485-Protokoll.pdf. Das Dokument ist aus dem Jahr 2009 und deshalb nicht mehr ganz aktuell, die Übertragung wurde in Details verändert.
RoboPro fragt "nur" 8 Eingänge ab, aber jede Extension ergibt nochmals 8 Ein-/Ausgänge.
Dass viele Strukturen nicht genutzt werden, heißt nicht, dass sie unnötig sind... z.B. verbergen sich dahinter die erweiterten Motorbefehle.
Gruß
Thomas

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 31 Jan 2017, 11:47

Hallo...
:D :D :D
3x Smiley, das musste sein.
Er läuft!

Ich hab das Programm so umgeschrieben, dass man den Arduino Uno mit dem Motorshield 2.3 von Adafruit als fischertechnik TX Interface Controller laufen lassen kann.
Also man nun hat sind:
4 digitale Eingänge und
4 digitale oder Analoge Eingänge und
4 Motorausgänge (M1-M4)
Alles mit RoboPro ansteuerbar, also wie ein "TX-Light".

Was jetzt noch auf der ToDo-Liste steht ist die Umsetzung der PWM der Motorausgänge von 255 auf 512, momentan geht nur an (255) oder aus (0).
Ob man auch eine Extension nachbilden kann um z.B. die Motorshields zu stapeln um dann jew. 4 weitere Motoren anzusteuern? ... Mal schaun

Noch mal eine Nachfrage:
Es gibt beim Motorshield
"Adafruit_MotorShield.h" eine "void setPin(uint8_t pin, boolean val); die sogar als public deklariert ist.

Blöde Frage:
Wie kann man die nutzen um einen einzelnen Port zu steuern? (2x Port = 1x M Ausgang)
Ich weis jetzt nicht ob man in einer Datei von Adafruit sogar die PWM eines einzelnen Port ansteuern könnte.
Somit könnte man einen einzelnen O-Ausgang vom TX-Controller nachbilden.

Kann mal sich jemand mal die Dateien:
Adafruit_MotorShield.h
Adafruit_MS_PWMServoDriver.h
anschauen, ich komme da gerade nicht weiter.
Gruß
H. Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

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

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von DirkW » 31 Jan 2017, 20:03

Hallo Holger,

ich finde dein Projekt sehr spannend.:)

Toll, das du schon so weit gekommen bist. Es zeigt eine gute Alternative
zum ROBO TXT/TX Controller auf.

Kannst du, wenn du dein Projekt/Programm fertig hast, es vielleicht der ft-Gemeinde zur Verfügung stellen?
Vielleicht in einem ft:pedia Artikel? Der würde bestimmt auf großes Interesse stoßen. ;)

Viele Grüße
Dirk

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 31 Jan 2017, 22:57

Hallo...
Status ist Momentan Beta 0.9 und das bei etwas eingerosteten C Kenntnissen ;) .

Ich wollte erst noch zwei Oldies, also graue Roboter ausprobieren, dann wird ich es hochladen.
Mal schauen ob ich das auch noch mit den einzelnen Output hinbekomme, ich finde auch im Netzt dazu kein einziges Beispiel.
Ist halt nicht sooo schön wenn man eine Ampel machen will und dazu jew. einen kompletten M-Ausgang nutzen muss. Wenn es nicht
gehen sollte ist es halt so - ist halt "TX-light".
Gruß
H. Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1832
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von Dirk Fox » 01 Feb 2017, 10:08

Hallo Holger,

ein tolles Projekt, das Du Dir da vor die Brust genommen hast!
Bitte unbedingt die Ergebnisse in einen ft:pedia-Beitrag kippen - das wird eine Menge Leute interessieren.
Ich habe Kontakt zu einigen Schulen, die ebenfalls gerne ft mit dem Arduino steuern würden.

Zu Deiner Motoransteuerung: Ich experimentiere seit einer Weile mit ft-Modellen, die ich über Arduinos steuere. Die ft-Motoren (und 2 Servos!) lassen sich großartig über das Motor-Shield ansprechen.
Da das Adafruit-Motor-Shield, das Du ja auch verwendest, via I²C angesteuert wird, sollte es doch möglich sein, die Motoren aus RoboPro direkt mit I²C-Befehlen zu kontrollieren?
Wenn Dir das helfen sollte, kann ich Dir einen RoboPro-Treiber dafür bereitstellen.
Oder soll die Steuerung komplett transparent über die "üblichen" RoboPro-Befehle erfolgen?

Beste Grüße,
Dirk

Benutzeravatar
Andre
Beiträge: 58
Registriert: 07 Mai 2015, 16:20
Wohnort: Schotten

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von Andre » 01 Feb 2017, 17:46

Ich finde es besonders interessant, dass Du einen TX (mit Extensions) im Onlinemodus emulierst und so ohne einen echten TX auskommt. Dirks Vorschlag, auch noch i2c im Onlinemodus zu unterstützen (und so direkt via i2c das Shield anzusprechen) stelle ich mir problematisch vor - immerhin läuft i2c mit 400kBaud und damit um ein Vielfaches schneller als die Onlineverbindung zwischen Arduino und PC.


Für den 10v-Eingang sollte es doch reichen, zwei gleiche Widerstände als Spannungsteiler zu nehmen. Schaltet man z.B. zwei 1k-Widerstände in Reihe, das eine Ende auf Masse, das andere ist der Eingang, so sind in der Mitte maximal 5V, was dem Arduino eigentlich keine Probleme bereiten sollte.

Gibt es einen besonderen Grund für den Arduino Uno? Aus meiner Sicht würde sich der Mega aufdrängen, bei 15 PWM-Ausgängen ließe sich fast vollständig ein TX mit zweitem TX als Extension emulieren (nur einer der Ausgänge wäre rein an/aus). Als Clone aus China ist der Mega ja spottbillig. Statt speziellem Motorshield dann einfach 4 billige Doppel-H-Bridges. Damit hätte man für ca. 15€ Gesamtkosten einen doppelten "Online-TX".
Der Mega hat 4 serielle Schnittstellen. Ein Erweiterungsgedanke wäre ein Bluetoothempfänger an einer davon - man könnte den TX dann per Funk statt Kabel online steuern. Ein solches Modul kostet ja nur ca. 2,70 (Pegelanpassung erforderlich, da meist 3,3V).

Im Onlinemodus ist die Emulation von Extensions allerdings nicht zwingend (außer man simmuliert auf einem Arduino wie dem Mega gleich zwei TX), denn bei RoboPro kann man mehrere eigenständig angebundene Interfaces innerhalb eines Programmes verwenden (die Einstellungen werden anders als für einen Master mit Extensions nicht über die Menüleiste, sondern auf dem entsprechenden Reiter des Programms vorgenommen - übersieht man leicht...). Im Onlinemodus ist es also anders als im Downloadmodus ganz einfach, innerhalb eines Programmes die Universal-Interfaces (über Knobloch oder Selbstbauadapter), Intelligent-Interface, Fishduiono, RoboInterface, Robo TX und Robo TXT beliebig zu mischen.
Eine Extension-Unterstützung wäre also nur als Slave am RoboInterface (SPI am Extensionport oder RS232 über selbst zu definierende Kommandos), TX oder TXT (RS484) interessant, um Dein Projekt als Extension im Downloadmodus eines 'echten' Fischertechnik-Controllers zu nutzen.

Nicht falsch verstehen, Dein Prijekt ist schon megacool. Ich werfe nur mal all die Ideen ab, die mir so in den Sinn gekommen sind und zu deren Realisierung ich leuder nie Zeit habe.

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 01 Feb 2017, 19:34

Hallo...
Die Motorsteuerung über I2C läuft bereits. Evtl könnte man auch ein Display oder I/O Expander dranhängen.
Die Motoren lassen sich über RoboPo ansteuern.
Mit den Eingängen geht es auch. Man könnte sogar Widerstände auf dem Shield löten.

Der Hauptgrund ist das Vorhandensein der Arduino Unos.
Die Auswertung der Extensionserfolgt ja schon vom Uno "man" muss also "nur" die Ausgänge setzen.
Gruß
H.Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
Andre
Beiträge: 58
Registriert: 07 Mai 2015, 16:20
Wohnort: Schotten

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von Andre » 01 Feb 2017, 19:57

Die Motorsteuerung wird doch aber vom Arduino aus per i2c angesprochen, d.h. RoboPro sendet normale Befehle zur Motorsteuerung (so, wie er die Ausgänge des TX ansprechen würde), der Arduino sendet dann die dafür benötigten i2c-Befehle an das Motorshield. In RoboPro werden daher die Motorsteuerungsbefehle gesendet. Oder habe ich dies falsch verstanden?
Dirks Vorschlag war ja, in RoboPro die i2c-Sendebefehle für das Motorshield einzubauen - also dass der Arduino das quasi nur durchreicht. Das hätte den Charme, dass der Arduino selber quasi beliebige i2c-Komponenten ansprechen könnte, allerdings den Nachteil, dass man in RoboPro entsprechende Librarys braucht (die ja schon umfangreich existieren). Da sehe ich dann aber die Geschwindigkeit als kritisch.
Nichtsdestotrotz ist Dirks Idee ja interessant, vor allem in Kombination - wenn von RoboPro i2c-Befehle im Onlinemodus an den Arduino gehen und dieser sie dann an den i2c-Bus weiterreicht, könnte man noch i2c-Displays, i/o-Module, Schrittmotorsteuerungen etc benutzen, ohne die Software auf dem Arduino anpassen zu müssen - nur die Adresse des Motorshields wäre belegt, weil der Arduino darauf ja die Motorausgänge emuliert. Der Nutzer könnte dann als 'Einstieg' den Arduino als TX-Light mit den normalen Befehlen nutzen - und später mit i2c-Komponenten erweitern (wie man es auch beim originalen TX macht, wenn man nicht extra einen zweiten als Extension kaufen möchte)

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 02 Feb 2017, 08:33

Hallo...
Hmmm, das wird dann ehr ein "TXT-Light".

Ich vermute mal das beim TX keine I2C Unterstützung da ist, da (ich vermute) das Protokoll von RoboPro "einfach" zwischen TX und TXT umgeschaltet wird.
In der TX Lib sind mir zumindest keine I2C Befehle für den TX untergekommen.
Somit dachte ich, dass man z.B. eins dieser I2C Displays nimmt, die dazugehörige Arduino Lib und versucht die auch noch im Uno unterzubringen.
"Man" könnte auch eine eigen schreiben aber der Aufwand ist recht groß.
Es ist ja noch Platz da:
..........Der Sketch verwendet 9.466 Bytes (29%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
..........Globale Variablen verwenden 1.342 Bytes (65%) des dynamischen Speichers, 706 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.


Die O-Ausgänge lassen sich -nicht- über das Adafruit Motorshield V2.3 einzeln schalten. Scheinbar ist im Treiber-H-Brücken IC eine Schutzschaltung die verhindern soll
das beide Ausgänge gleichzeitig angesteuert werden können. Ich hab daher die Ausgänge am Arduino Uno wieder aktiviert. Nun könnte man auch über ein Unterprogramm von
RoboPro ein altes paralleles fischertechnik Interface simulieren oder man nimmt die gesockelten ICs raus und geht direkt an die Treiber vom parallelem Interface ( na steigen jetzt die Preise bei ebay? :o )

Das ruft nach einem eigenen fischertechnik Arduino Shield, zumal es so simpel ist.

Der nächste Gedanke ist dann aus dem Arudino Uno einen TXT-Light zu machen, jedoch würde man fischertechnik damit Konkurrenz machen und das mag ich nicht. Die müssen auch ihre Brötchen verdienen.

Ach ja. es ist halt keine Frage ob man mit der Demoversion von RoboPro und dem TX-Light auch Lego ansteuern könnte :roll: Neeeiiinnn natürlich nicht, man kann natürlich nur fischertechnik ansteuern.
So als kleiner Hinweis für die Lehrer die kleine Modelle mit max. drei Motoren ausprobieren möchten. Alles klar? :D

So, dann muss ich zusehen das ich mit dem Programm und der Beschreibung fertig werde.
Gruß
H.Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von ski7777 » 02 Feb 2017, 09:48

Nur nochmal zur Klarstellung:
  • Das Robo Interface nutzt für die Extensions eine Art SPI und hat einen COM Schnittstelle zur Kommunikation mit eienm anderen Interface
  • Der TX Controller nutzt RS485 für die Extensions und hat I²C %V für sonstige Geräte
  • Der TXT nutzt CAN für die Extensions und hat I²C 3,3V für sonstige Geräte
Raphael

Benutzeravatar
Andre
Beiträge: 58
Registriert: 07 Mai 2015, 16:20
Wohnort: Schotten

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von Andre » 02 Feb 2017, 11:27

Die RS232 beim RoboInterface ist nicht auf die Kommunikation mit anderen Interfaces beschränkt, sondern man kann da auch selber Kommandos drüber jagen - man muss am angeschlossnen Gerät nur vorsehen, dass sie dann interpretiert werden. Man könnte den Arduino also so programmieren, dass er Befehle über RS232 annimmt und Werte zurück gibt. Also auf die Art Ein- und Ausgänge ansprechen oder aber auch Anfragen an i2c weitereichen. Hat dann den Vorteil, mittels günstigem gebrauchten RoboInterface auch im Offlinemodus zu laufen.

Was den TXT angeht: am 10-poligen Extensionport liegen i2c, RS485 und CAN. Es gibt verschiedene Angaben, sowohl im Forum, wie auch bei der Suche im übrigen Internet, worüber die Anbindung eines 2.TXT als Extension läuft. Die häufigste Behauptung war "schnelles RS485, aber anderes Datenprotokoll als beim TX". Die Häufigkeit sagt natürlich nicht, obs stimmt, oder ob sich die Quellen bloß gegenseitig zitieren. Mangels zweitem TXT kann ich es auch nicht selbst testen.
@ski7777: Aus welcher Quelle hast Du die Info, dass die interne Kommunikation zweier TXT über die CAN-Pins des TXT und nicht über die RS485-Pins am Extensionport läuft, oder hast Du das selbst getestet?

Am TX Expansion-Port liegen nur i2c und RS485. Da ist klar und auch hinreichend dokumentiert, dass die Extensions über die RS485 angebunden sind. Im Downloadmodus ist das Ansprechen von i2c möglich, im Onlinemodus habe ich es noch nicht probiert. Es wäre also weiterhin ein TX-Light.

Was das Thema Konkurrenz zu den originalen FT-Produkten angeht: Das würde ich nicht so dramatisch sehen. Im Gegenteil, da die Steuerung von komplexen Fischertechnik-Modellen mehr i/o-Anschlüsse erfordert, als mit zwei gekoppelten Txt möglich ist, förderst Du mit einem günstigen, einfach nachzubauenden Controller den Absatz von den original FT-Bauteilen, Motoren... Apropos: Zähleingänge für Encodermotoren sind nicht vorgesehen, oder?

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 02 Feb 2017, 11:27

Hallo...
Schon klar, ich meinte etwas anderes. Ich wollte keinen TX als Extension an den Arduino anschließen sondern evtl. den I2C Anschluß am Arduino, wo ja schon ein Motorshield dranhängt. Da könnte man einfach ein oder mehrere weitere Motorshields oder halt ein Display dranhängen. Die Variablen mit dem Textinhalt für das Display sind (irgendwo) in der ft-Lib drin (da hab ich mich bis jetzt noch nicht drum gekümmert).
Auch muss man ja RoboPro (irgendwo) sagen das da überhaupt eine Extension vorhanden ist, soweit bin ich auch noch nicht. Das schöne ist ja das die Motorshield-Bibliotheken schon geladen sind und man nur neue Objekte erschaffen muss.

Nachfrage:
Scheinbar kann RoboPro nur einen Master TX-Controller ansprechen, da die Einstellungen unter Hauptprogramm/(Reiter)Eigenschaften/Neu ausgegraut sind.
Es gibt da aber Benutzerauswahl... - Tja -wo- wählt man denn da etwas aus?
Es kann ja sein das es in dem neusten RoboPro anders ist, kann es aber derzeit nicht nachprüfen.
Also was und wo wählt man da was?
Auch unter Interface/ Automatisch ist USB/Bluetooth ausgegraut.

Wenn man zwei mal RoboPro startet kann man mehrere TX oder auch meine zwei TX-Light ansprechen.
Gruß
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Benutzeravatar
fishfriend
Beiträge: 1789
Registriert: 26 Nov 2010, 11:45

Re: RoboPro Versions Unterschied (Arduino - fx1 Parser)

Beitrag von fishfriend » 02 Feb 2017, 11:32

Hallo...
Zeitgleiches Posting :D
Ich hab bisher nur feste Werte über den Counter als Test an RoboPro übergeben. Allmählich gehen die I/Os aus.
Pin 0 und 1 wollte ich nicht so gerne benutzen.
Möglich oder im Tausch sollte es gehen.
Gruß
H. Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Antworten