ftduino und RoboPro

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), 3D-gedrucktes Zubehör, usw
Forumsregeln
Bitte beachte die Forumsregeln!

ftduino und RoboPro

Beitragvon fishfriend » 29 Mai 2019, 16:55

Hallo...
Scheint ja doch mehrere Leute zu interessieren...
Hier also wie weit das Projekt ist und welche Hürden genommen wurden:

-ftduino mit Windows 8.0 verbunden. (Das sind mehr Schwierrigkeiten als gedacht.)
-Arduino IDE mit ftduino erweitert
-Arduino Programm "TX-Light", das mit einen UNO mit Adafruit Motorshield V2 läuft, die I2C Motortreiber entfernt.
-"TXLight"-(RoboPro) INO testweise übertragen ob der Speicherplatz reicht, ist OK
-In RoboPro das Interface gesucht und verbunden.
-Mit RoboPro "Interface Testen" erfolgreich angesteuert. Zeigt aber wie erwartet falsche Werte der Ein und Ausgänge.
-ftduino-RoboPro INO erweitert, dass als O-Ausgang die Interne LED angesteuert wird. Eingänge sind erst mal entfernt.
-Neues Programm zum ftduino übertragen
-In RoboPro das "neue" Interface gesucht und verbunden.
-RoboPro Test zeigt neues Interface an (wieder anderer Com Port von 29 sind wir nun bei 31)
-Im Robo Interface Test kann man mit O1 die interne LED des ftduino an und ausschalten.
-RoboPro Programm Blinken mit O1 erstellt und laufen gelassen. LED blinkt - year!

Gruß
fishfriend
Holger Howey

PS Fortsetzung folgt...
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon fishfriend » 31 Mai 2019, 18:08

Hallo...
-Umgestellt von ftduinosmall.h auf ftduino.h
-erste Eingänge laufen nun auch
-PWM läuft noch nicht so ganz

Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon fishfriend » 07 Jun 2019, 10:16

Hallo...
Also Grundsätzlich geht es schon mal. Es gibt aber noch Probleme.
Bei der Übertragung der Daten schein es unerwartetes Problem zu geben.

Im Grunde ist es die ROBO_TX_FM.h .
Welche Version ist die neuste? In den verschiedenen Versionen haben die -ALLE- den selben Namen. (Liebe Programmierer schreibt -Bitte- die Versionsnummer an den Anfang !)
Z.B. die Version von "Display structure" hat unterschiedliche Längen. OK ich kann auch auf I2C und Display erst mal verzichten, aber es ist schon ein Problem was sich etwas schwerer lösen läßt.

Die zweite Schwierigkeit ist zu erkennen welche Prioität die Ausgänge haben. Wird nun einen PWM an einen O oder an einen M ausgegeben?
Ich habe als Notlösung erst mal die Distanz und dann die normale Motorsteuerung genommen.
Das Blöde ist auch die übertragenen Daten die man braucht erst mal wieder in Globale Variabelen zu übergeben, um nach Beendigung der Übertragung von RoboPro, den Motor zu stoppen wenn er das Ziel erreicht hat.
Ich möchte ja erreichen das auch der Counter funktioniert und normal von RoboPro gesteuert wird.
Ich möchte vermeiden, dass man unterschiedliche Versionen der .INO aufspielen muss.

Auch am Reset vom Counter gibts noch was. Der Reset wird zwar durchgeführt, aber danach zählt er nciht weiter, obwohl die Flag gelöscht wurde und auch im RoboTest das Häckchen raus ist.
Das Schöne ist ja das man sich die Daten über die anderen Counter anzeigen lassen kann.
Mal schaun...
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon MasterOfGizmo » 07 Jun 2019, 10:26

fishfriend hat geschrieben:Auch am Reset vom Counter gibts noch was. Der Reset wird zwar durchgeführt, aber danach zählt er nciht weiter, obwohl die Flag gelöscht wurde und auch im RoboTest das Häckchen raus ist.


Vor laaaanger Zeit habe ich auch mal mit dem fx1-Parser und co gespielt und den Counter-Reset habe ich auch nicht zum Laufen gebracht. Keine Ahnung, ob die Dokumentation da falsch war oder wo das Problem lag. Kann mich aber noch erinnern, damals wenig begeistert von der ganzen Konstruktion gewesen zu sein.
ftDuino, der Arduino für fischertechnik: http://ftduino.de
Benutzeravatar
MasterOfGizmo
 
Beiträge: 1680
Registriert: 30 Nov 2014, 08:44

Re: ftduino und RoboPro

Beitragvon fishfriend » 09 Jun 2019, 12:49

Hallo...
Ich habe ein Problem. Manchmal sieht man den Wald vor lauter Bäumen nicht aber:
Kann es sein das bei
void output set(uint8 t port, uint8 t mode, uint8 t pwm)

wenn man z.B. vorher mit:
ftduino.output_set(Ftduino::O2, Ftduino::HI,32);
Einschaltet und mit

ftduino.output_set(Ftduino::O2, Ftduino::LO, 0);
ausschaltet kein GND auf O2 hat?

Er scheint Offen zu sein bei PWM = 0. Ich hätte erwartet das er GND hat.
Hintergrund ist der, einen Motor an O1 und O2 zu betreiben.
Oder hab ich da etwas falsch verstanden?
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon MasterOfGizmo » 09 Jun 2019, 15:35

fishfriend hat geschrieben:ftduino.output_set(Ftduino::O2, Ftduino::LO, 0);
ausschaltet kein GND auf O2 hat?


Ja, genau. Das hat aber nichts mit dem zu tun, was Du vorher gemacht hast.

Dein Kommando hier sagt "ziehe den Ausgang zu 0% auf Masse". Also gar nicht. Entsprechend ist der Ausgang offen. Gibst Du stattdessen
Code: Alles auswählen
  ftduino.output_set(Ftduino::O2, Ftduino::LO, Ftduino::MAX);

an, dann ist der Ausgang permanent auf GND.

Und bei
Code: Alles auswählen
  ftduino.output_set(Ftduino::O2, Ftduino::LO, Ftduino::MAX/2);

ist er 50% der Zeit auf GND und 50% der Zeit offen während er bei
Code: Alles auswählen
  ftduino.output_set(Ftduino::O2, Ftduino::HI, Ftduino::MAX/2);

50% der Zeit auf +9V und 50% der Zeit offen ist.

Was es beim ftDuino in der aktuellen Bibliotheksversion nicht gibt ist eine PWM, die permanent zwischen +9V und GND hin und her schaltet. Das gibt m.E: wenig Sinn und würde m.E. bei Motoren zu unnötiger Erwärmung führen.

Was wäre Deine Anwendung für eine PWM, die zwischen +9V und GND umschaltet?
ftDuino, der Arduino für fischertechnik: http://ftduino.de
Benutzeravatar
MasterOfGizmo
 
Beiträge: 1680
Registriert: 30 Nov 2014, 08:44

Re: ftduino und RoboPro

Beitragvon fishfriend » 09 Jun 2019, 18:53

Hallo...
Aha OK ich hatte in eine etwas andere Richtung gedacht.

Eigendlich geht es um eine einfachere Umsetzung von RoboPro zu ftduino. Ist schon interessant was und wie RoboPro eigendlich sendet.
Bisher hatte ich, um einen Motor zu steuern, die O-Ausgänge benutzt.

Für den Counter mit einer M-Motorsteuerung ,muss ich ausschließen, dass man O -Befehle empfangen, sie werden halt ignoriert wie beim echten TX.
Beim Testen ist mir das aufgefallen.

Etwas Unglücklich bin ich, in der Anleitung vom ftduino, mit "dem" Counter. In der Hilfe von RoboPro wird ja auch von Distanz und dem Zähler gesprochen.
Sind ja auch zwei verschidenen DInge. Distanz wird vom (RoboPro-) Programm vorgegeben, Counter(Zähler) vom Interface.
Zumindest geht immer mehr...
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon MasterOfGizmo » 09 Jun 2019, 20:39

Und was ist der Unterschied zwischen Distanz und Zähler? Beim ftDuino gibt es in der Tat nur einen Zähler.

Was dem ftDuino auf jeden Fall fehlen dürfte ist der Synchronlauf zweier Motoren. Das muss ich mal nachrüsten. Das kann der TXT bei jeder Geschwindigkeit und Richtung oder nur wenn die Motoren gleich schnell oder gleich herum laufen?
ftDuino, der Arduino für fischertechnik: http://ftduino.de
Benutzeravatar
MasterOfGizmo
 
Beiträge: 1680
Registriert: 30 Nov 2014, 08:44

Re: ftduino und RoboPro

Beitragvon fishfriend » 09 Jun 2019, 21:16

Hallo...
Distanz = gehe/drehe 100 Impulse
Zähler wieviele Umdrehungen macht der Motor

Programm sagt wieviel Impulse - Interface fährt die selstständig an - gibt Rückmeldung Ziel angefahren = Distanz
Counter = Wert des Zählers im Interface, ob nun Frequnzmessung, Umdrehungen... ist wie ein I Eingang.
Deswegen die Trennung von RoboPor einmal TA-Input Counter[1-4] und Distance [1-4] in TA-Output.
Die Richtung der Übertragung vom PC zum Interface und zurück ist anders.

Im Interfacetest von RoboPro sieht du nur den Counter/Zähler der vom Interface kommt.
Synchronlauf - Ja das steht auch noch auf meiner Liste, aber ziemlich unten.

Was jetzt richtig läuft sind die O- und M- Ausgänge.
Alle I-Eingänge werden als Digitale Eingänge angenommen. (Analoge Auswertung lasse ich erst mal weg)

Mit den Countern muss ich noch mal neu anfangen. Ich hatte erst selber was gemacht werde aber auf die ftduino.h umsatteln.
Also Zählen tut er schon, aber die Flankenerkennung usw. ist, sagen wir mal, nicht so doll von mir gewesen. Zuviele neue globale Variablen....
Ich muss auch noch mal die fx1.h ändern und auf den neusten Stand bringen.
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon ski7777 » 09 Jun 2019, 22:13

Ich habe vor bald zwei Jahren das gleiche in umgekehrt für den TX gemacht. Ich kann dir sagen, dass du mit allen offiziellen Dateien nicht die richtige fx1.h zusammenbauen kannst. Ich habe die offiziellen Sourcen vom TX, darf dir die aber natürlich nicht geben. Erklär mir am besten Mal, was genau du haben willst, was du tust, schaffst, und was nicht geht. Dann kann ich dir sicherlich helfen.

Gruß
Raphaeö
Benutzeravatar
ski7777
 
Beiträge: 829
Registriert: 22 Feb 2014, 15:18
Wohnort: Saarwellingen
Alter: 17

Re: ftduino und RoboPro

Beitragvon fishfriend » 10 Jun 2019, 16:04

Hallo...
Also, es ist so:
Vom original Parser Programm gibt es zwei versch. Versionen. Diese sind u.a. der Versionsnummer, die halt abgefragt wird, geschuldet, da es sonst gar nicht läuft.
Die Struktur ist aber gleich geblieben.
Nach dem erscheinen der zweiten Version ist ja die Übertragung zu TX noch mal geändert worden.

Die Dokus von ft und was man sonst so im www findet, geben aber scheinbar nicht die letzte Version wieder.
Das heißt die Position der übertragenen Bits stimmt nicht bzw das Protokoll ist länger.
(Lob an den RoboPro-Programmierer das es trotzdem so Fehlertollerant ist.)
Genaugenommen werden die Empfangenen Daten (die nicht genutzt werden) so wie sind zurückgeschickt.

Klar ist es interessant, wie nun der TX einzelne Sachen macht, jedoch will ich das gar nicht. Das eigendlich interessante ist die TX-Datenstruktur die ich gerne komlett verstehen möchte.
-Und- halt in mein Programm einbauen möchte. Dies soll ja keine Konkurenz für den TXT werden um die gleichen Fähigkeiten zu erreichen. Ein Teil davon ist aber nicht schlecht...
Momentan scheint es, dass von den Counter-Daten der Reset und Distanz "Ziel erreicht" an einer anderen Stelle im Datenstrom liegen. (Da scheint es auch noch mehr zu geben)

Die fx1.h (zumindest was mich interessiert) könnte ich mir schon zusammenbastel - zum Teil habe ich das ja auch schon. Es ist nur sehr sehr Zeitufwändig.
Da ich noch mehrere andere Projekte betreibe (Ortsgeschichte) ist es die Frage ob es nicht das schon Volständig gibt.
Programmieranleitungen von PC Seite gibt es ja auch mehrere und die TX Software wird ja nicht mehr weiterentwickelt - und beziehen sich auf "ältere" TX Versionen (oder?).

Also wenn verhanden würde mich die fx1.h bzw die Datenstruktur interessieren, die von den aktuellen "TX" -RoboPro Version.
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon fishfriend » 10 Jun 2019, 17:42

Hallo...
kleine Erweiterung:
es ist nicht nur die fx1.h sondern auch die ROBO_TX_FW.h
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon fishfriend » 11 Jun 2019, 21:00

Hallo...
Also zum einen gibt es nicht nur 108 Bytes Display structure sondern auch 128 Bytes Dispaly message "und dazu" 88Bytes
Gab es mal einen Wechsel zwischen 128 und 88 oder sind die 128 auf 88 geschrumpft?
Das Dumme ist die Gesammtanzahl der übertragenen Bytes. Der Arduino Uno hat schlicht nicht genügend Speicher um die Daten zu speichern. - Warum auch immer bei diesem Konzept die Daten 3-mal im Speichern vorhanden sind. Ich gebe zu diesen Punkt kann ich nicht nachvollziehen. Ich würde nicht unterteilen in:
rxData[BUF_MAXLEN];
txData[BUF_MAXLEN];
tmpData[BUF_MAXLEN];

Die TA Input hat 48 Bytes und nicht mehr! Somit gibt es keine Reserve Bytes mehr also 0 und nicht 16 bzw 12.
Also schöpfen die counter_reset und motor_pos_reached alles aus.
Der Punkt ist schon mal eingebaut und muss "nur" noch funktionieren...
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon fishfriend » 16 Jun 2019, 17:21

Hallo...
Mal eine kleine Frage am Rande:
Womit ist die ftduino Anleitung geschrieben?
Ich frage deshalb, weil ich häufig darauf reinfalle, dass beim kopieren
(unter Windows) von Code-Texten der Unterstrich _ nicht mitkopiert wird.
Nur warum?
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon fishfriend » 16 Jun 2019, 17:40

Hallo...
Jear...
M1 läuft mit Counter unter RoboPro.
Ansteuerung ist auch Blokiert mit normalen Motor-Befehlen wie beim TX.
Also wenn der Zähler noch nicht auf 0 ist nimmt er keine rechts-links-aus an.

Das Hauptproblem sind immer noch alle 512 Bytes in der Übertragung. Sie fressen fast den gesammten Speicher des ftduino für globale Variablen.
Ich denke ich sollte auf ein paar Sachen verzichten.
Zumindes rückt es näher den Roboterarm und andere ft Modelle in Berieb zu nehmen...
Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45

Re: ftduino und RoboPro

Beitragvon MasterOfGizmo » 17 Jun 2019, 09:08

fishfriend hat geschrieben:(unter Windows) von Code-Texten der Unterstrich _ nicht mitkopiert wird.
Nur warum?


Das Font-Encoding war ungeschickt. Sollte nun behoben sein.
ftDuino, der Arduino für fischertechnik: http://ftduino.de
Benutzeravatar
MasterOfGizmo
 
Beiträge: 1680
Registriert: 30 Nov 2014, 08:44

Re: ftduino und RoboPro

Beitragvon fishfriend » 21 Jun 2019, 22:06

Hallo...
Tada...
Es läuft - mit ein paar Einschränkungen zwar, aber es läuft.

Also kann man tatsächlich den ftduino mit RoboPro sprechen lassen und die Counter benutzen.
Zum einen kann man den Counter als Distanz benutzen, zum anderen als Zähler im der normalen Motorsteuerung.
Motoren laufen ganu normal.
Eingänge 6 als Taster 2 als Widerstandmessung


Einschränkungen unter anderem:
-Kein Ultraschall
-Keine Umschaltung der analogen Werte der Eingänge (Ist Festgelegt welcher was macht)
-momentan noch kein "aktueller" Counter Eingang (um ihn als normalen I-EIngang zu nutzen)
-kein Synchronlauf von Motoren
-Läuft momentan mit der RoboPro Version 3.1.2 (Ich glaube, dass ist die CD Version von den TX Robotern (256 Byte-Version))

Also das was ich testen wollte, die Benutzung von Countern, hab ich nun zum laufen gebracht.
Ich werd mal nächte Tage auf die neuste RoboPro-Version umsteigen und dann die 512 Byte Übertragung testen.
Der ftduino bzw. die Arduino IDE Meckert schon über sehr wenig Speicher wenn man den Buffer auf 512 stellt. Ich muss dazu die ganze fx1.h umstellen...
Mal schaun...
Also der ftduino ist schon am Limit. Man merkt das manchmal die RoboPro-Übertragung und gleichzeitig die PWM und Counter zu minimalen Zeitverzögerungen führen. Aber es läuft!

Gruß
fishfriend
Holger Howey
fishfriend
 
Beiträge: 207
Registriert: 26 Nov 2010, 12:45


Zurück zu Community-Projekte

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast