Wie kann ich eine Linearposition messen?

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Wie kann ich eine Linearposition messen?

Beitrag von steffalk » 11 Mär 2018, 19:00

Tach auch!

Ich bin schon ewig an einem Modell, bei dem ich etwas über ca. 20 cm verfahren muss. Das wollte ich mit einem XM-Motor mit Impulstaster dran machen, aber ich bekomme kumulative Fehler beim Zählen der Impulse. Ich habe nur ein Robo Interface, kein TX, TXT, Encodermotor etc. Ich versuchte auch, mit einer alten ft-Antriebsfeder einen "Schiebewiderstand" zu bauen, aber das Messergebnis ist viel zu zitterig. Der Ultraschall-Sensor vom RoboInt löst wohl 1 cm auf, das ist zu wenig. Ich muss übrigens mindestens hunderte, wenn nicht tausende von Positionierungen hintereinander durchführen, deshalb kann ich mir keine kumulativen Fehler leisten. Ein Endlagentaster als Notnagel ginge vielleicht noch, aber toll wäre dieser Workaround nicht.

Hat jemand eine Idee, wie ich, möglichst mit wenig nicht-ft, die Position von etwas auf einer Länge von ca. 20 cm auf ca. 2 mm genau messen und im Robo Interface per Robo Pro verwerten kann?

Gruß,
Stefan

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Wie kann ich eine Linearposition messen?

Beitrag von MasterOfGizmo » 11 Mär 2018, 19:25

Die Potis aus den alten Computingkästen in Kombination mit einer Zahnstange sollten es m.E. in 100% ft bringen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von steffalk » 11 Mär 2018, 19:28

Tach auch!

Die Drehpotis habe ich. Das ist über eine so lange Strecke genau genug? Ich taste mit so einem Poti ein Lenkrad ab, und das erscheint mir schon nicht so sehr stabil, obwohl es nur um ca. eine Vollumdrehung geht.

Oder verstehe ich falsch? Ich verstand, ich sollte eine lange Zahnstange über eine geeignete Untersetzung an ein Drehpoti bringen.

Gruß,
Stefan

Benutzeravatar
geometer
Beiträge: 595
Registriert: 28 Jan 2011, 12:24
Wohnort: Bochum
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von geometer » 11 Mär 2018, 19:52

Hallo zusammen,

bei alten Radios stellte man den gewünschten Sender immer mit einem Mehrgang-Poti ein. Welche Frequenz man gerade eingestellt hatte, wurde auf einer linearen Skala angezeigt. Dazu wurde ein Balken mit einem geschlossenen Seilzug bewegt.

Genau solch einen Seilzug empfehle ich Dir auch. Mach ein Seil an das rechte Ende des zu verschiebenden Objekts, führe es nach rechts um die eine Drehscheibe, dann zur anderen Drehscheibe links am Objekt vorbei und befestige es dann an der linken Seite des Objekts. Steckst Du die alten Potis mit 4-mm-Achse in eine der Drehscheiben, kannst Du Dein Objekt etwa 14 cm bewegen und die Genauigkeit wird gut passen. Du musst natürlich linearisieren, also die Potiwerte im 1-mm oder 2-mm-Abstand tabellieren.

Für weitere Strecken und höhere Genauigkeit ist ein Mehrgangpoti ideal. So etwas wie dieses:
https://www.ebay.de/itm/Multi-turn-Drah ... 2392057330

Viele Grüße

Thomas

Thomas

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von steffalk » 11 Mär 2018, 20:02

Tach auch!

Danke für die flotten Ideen allerseits!

Damit ich beim Seil nicht wieder durch Schlupf kumulative Fehler bekomme, werde ich mal "Kette um Z40 mit Poti dran" probieren. Ich berichte dann hier.

Gruß,
Stefan

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Wie kann ich eine Linearposition messen?

Beitrag von hamlet » 11 Mär 2018, 20:28

Hallo Stefan,
2mm/20cm=1% analog mit fischertechnik sauber aufzulösen halte ich für schwierig. Vielleicht doch zählen? Hast Du eine Idee, warum sich das Interface "verzählt"? Ich kenn das Teil nicht. Läuft das "online" und gehen evtl. bei der Übertragung Pulse verloren? Ist die Verbindung OK. Hast Du mal das Kabel getauscht? Verzählt sich das Teil auch, wenn Du die Geschwindigkeit runternimmst? Wie hoch ist denn die Pulsfrequenz?
Falls die Pulsfrequenz zu hoch ist, könntest Du versuchen mit z.B. drei Schaltern/Lichtschranken und einer entsprechenden Encoderscheibe einen 3Bit-Encoder zu bauen (Die ft Drehscheibe hat blöderweise nur sechs Positionen, aber das Dampfwalzenrad hat acht Speichen (-;). Dann könntest Du pro Umdrehung 8 Positionen unterscheiden, und müsstest nur das langsame signifikanteste Bit bei einem Viertel der ursprünglichen Frequenz zählen.
Viele Grüße,
Helmut

Benutzeravatar
geometer
Beiträge: 595
Registriert: 28 Jan 2011, 12:24
Wohnort: Bochum
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von geometer » 11 Mär 2018, 21:54

Hallo Stefan,

wenn Du Angst vor Schlupf hast (meiner Einschätzung nach grundlos, bei unserem Graetz Chanson 301 hat sich in fast 50 Jahren nichts verstellt), kannst du auch einfach eine Schubstange an Dein bewegliches Objekt machen und über einen Arm das Poti exzentrisch drehen. Mit dieser Technik erziele ich eine Auflösung von ±2 mm auf einer Strecke von 14 cm bei jedem einzelnen der Arme meines Delta-Roboters, obwohl ich dort nur etwas mehr als 100° des eigentlichen 270°-Drehbereichs der Potis nutze. Der Arduino-ADC liefert an seinen Analogeingängen Werte zwischen 0 und 1023. Ich habe also auf den 14 cm ungefähr 400 verschiedene Werte. Das sind grob 5 Werte auf 2 mm und klappt, wie gesagt, sehr gut bei mir. Bei über 20 cm Strecke wird es mit ca. 2 Werten pro 2 mm schon kritischer.

Viele Grüße

Thomas

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: Wie kann ich eine Linearposition messen?

Beitrag von H.A.R.R.Y. » 12 Mär 2018, 08:21

Hallo zusammen,

Radios wurden früher üblicherweise per Drehkondensator (mit Getriebe) abgestimmt. Nix Präzisions-Wendelpotis. Aufwendige Konstruktionen hatten Spielausgleich im Getriebe, allen Varianten gemeinsam ist die Tatsache, dass das Seil am Skalenzeiger befestigt ist und an der Seilscheibe für den Drehko. Wegen der Fixierungen war Schlupf kein Thema, die Seilspannung wurde per Spiralzugfeder eingestellt. Liess die Seilspannnung nach, rutschte der Einstellknopf für den Sender. Die Linearität wurde bei Mittelwelle durch Nachbiegen bestimmter Bleche eingestellt. Die kleinen UKW-Drehkos aus den 80ern sind vollgekapselt und bereits ab Werk recht linear zum Drehwinkel. In hochwertigen Laborgeräten (also welche jenseits der Preismarke für 100m²-Eigenheim-mit-300m²-Garten-in-Frankfurt-am-Main-Innenstadt) habe ich kapazitive Rücklesung einer Linearposition gesehen, *kein* Poti.

Ein ft-Poti hat etwa 270°Drehwinkel. In den alten Radios wurden große Seilscheiben und einstufige Getriebe verwendet um die 20 bis 40 cm Linearskala auf die 180°des Drehkos abzubilden. Was hältst Du vom Dampfwalzenrad, dass kommt auf stattliche 282 mm Umfang und mit 270° sind es 212 mm. Potis fangen aber nicht bei 0° an und hören nicht bei 270° auf, der Widerstandsbereich ist zwischen etwa 5° und 265° aufgeteilt. Und dann haben die alle eine Nichtlinearität der Kennlinie.

Eine Auflösung von etwa 1% ist mit den Potis durchaus zu machen, es sollten hochwertige moderne Leitplastik-Typen sein, keine billigen Kohleschicht-Potis (die "kratzen" nämlich). Aber denk an die Nichtlinearität der Kennlinie.

Mein Favorit wäre in der Tat ein Mikrocontroller, der die Impulse vom Encodermotor schnell genug zählen kann oder alternativ der Seilzug, aber umgekehrt: Kein Poti sonder per Schrittmotor angetrieben. Auch das sind Konstruktionen aus edlen Laborgeräten wenn die Position kritisch ist.

Es gäbe noch mehr Möglichkeiten, aber das wird dann nicht mehr fischertechnisch bleiben.

Gruß
H.A.R.R.Y.
[42] SURVIVE - or die trying

Benutzeravatar
geometer
Beiträge: 595
Registriert: 28 Jan 2011, 12:24
Wohnort: Bochum
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von geometer » 12 Mär 2018, 09:34

Hallo H.A.R.R.Y.,
H.A.R.R.Y. hat geschrieben: Radios wurden früher üblicherweise per Drehkondensator (mit Getriebe) abgestimmt. Nix Präzisions-Wendelpotis.
Da hast Du natürlich 100% recht.

Den wesentlichen Punkt hast Du später in Deinem Post auch gemacht, nämlich dass der Seilzug an der Seilscheibe festgemacht ist. Genau das kann Stefan hier ja auch machen: Das Seil an der Drehscheibe festklemmen.

Viele Grüße

Thomas

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: Wie kann ich eine Linearposition messen?

Beitrag von Peterholland » 12 Mär 2018, 13:42

Bei nur 100mm gibt es gute ergebnisse bei meinen Autowaschstrasse :
https://www.ftcommunity.de/details.php?image_id=33322
https://www.conrad.de/de/schiebe-potent ... 42121.html

Beim Positionierung meiner Libelle gibt es auch gute Ergebnisse mit einer Vishay 10-slags 5K-potmeter; Bei Conrad-artikelnr. 429287.
http://www.conrad.nl/ce/nl/product/4292 ... -?ref=list
https://www.ftcommunity.de/details.php? ... 39059#col3

Gruss,

Peter
Poederoyen NL
Peter Poederoyen NL

Lars
Beiträge: 564
Registriert: 25 Okt 2016, 21:50

Re: Wie kann ich eine Linearposition messen?

Beitrag von Lars » 12 Mär 2018, 19:59

Hallo Steffalk!
steffalk hat geschrieben:Ich bin schon ewig an einem Modell, bei dem ich etwas über ca. 20 cm verfahren muss. [...] Ich habe nur ein Robo Interface, [...]

Hat jemand eine Idee, wie ich, möglichst mit wenig nicht-ft, die Position von etwas auf einer Länge von ca. 20 cm auf ca. 2 mm genau messen und im Robo Interface per Robo Pro verwerten kann?
Soweit ich weiß, hat auch dieses Interface analoge Eingänge. Du könntest einen Fotowiderstand am "festen Ende" installieren und mit einer geeigneten Lichtquelle auf dem beweglichen Teil anstrahlen. Je weiter sich die Lichtquelle entfernt, desto größer wird der elektrische Widerstand des Fotowiderstandes. ft hat ja im aktuellen Optics-Kasten, aber auch im alten ec 3-Kasten Linsen herausgebracht. Es dürfte aber auch LEDs geben, die ihr Licht ohne weitere Optik genügend gezielt abgeben. Vielleicht ist es sogar möglich, sowohl Lichtquelle als auch Fotowiderstand fest zu installieren und nur die Linse mit dem beweglichen Teil zu verbinden - so müßtest Du für diese Messung schon mal keine Adern auf das bewegliche Teil führen.
Der Strahlengang muß vermutlich ein wenig vor Störlicht geschützt werden. Mit zwei Entlagentastern könnte sich das Steuerprogramm nach dem Start automatisch an die jeweilige Lichtsituation anpassen. Das Programm verfährt das bewegliche Teil dazu einmal zur nächsten, dann zur fernsten Position und ermittelt so erst den niedrigsten, dann den höchsten Widerstandswert. Wenn Du es hinbekommst, daß der Fotowiderstand in der nächsten Endlage ausschließlich von der Lichtquelle bestrahlt wird, kann ein Endlagentaster entfallen. Ob man mit Licht in nicht sichtbarem Bereich besser arbeiten kann, weiß ich nicht. Dazu müßte es Fotowiderstände geben, deren Empfindlichkeit sich auf solches Licht kapriziert.

Etwas "elektromechanischer" wäre eine Lösung mit Widerstandsdraht und einem Schleifer. Ich habe solchen als Schüler aus den defekten Kaffeemschinen meiner Familie gewonnen, wenn auch nicht zur Wegmessung. Der Widerstandsdraht wäre aber ein Fremdteil, denn der aus der "Hobbywelt" dürfte für Deine Zwecke wohl zu kurz sein.

Mit freundlichen Grüßen
Lars

Benutzeravatar
Harald
Beiträge: 507
Registriert: 01 Nov 2010, 07:39

Re: Wie kann ich eine Linearposition messen?

Beitrag von Harald » 12 Mär 2018, 21:32

Hallo Stefan,

ich würde da eine Gewindestange hernehmen (m4 oder dicker, nur zur Not die ft-Schnecken) und die Umdrehungen optisch (Lichtschranke) zählen. Wenn die vollen Umdrehungen schon zu schnell kommen, dann bau halt eine Untersetzung dazu und zähle z.B. in Viererschritten. Die Feinmessung muss dann ein weiteres Getriebe ermöglichen, oder der Antrieb muss eine langsame Stufe haben. Oder du malst ein Muster (Gray-Code) auf eine hinreichend große Trommel und kannst damit die feineren Drehwinkel auflösen.

Sehr schön auch die Teleskopzylinder von chef8: https://ftcommunity.de/details.php?image_id=44568 . Wenn man da mitzählt, wird das auch was.

Gruß,
Harald
--- Ich liebe es, wenn ein Modell funktioniert. ---

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von steffalk » 12 Mär 2018, 22:18

Tach auch!

Herzlichen Dank für das Füllhorn an Ideen hier, Ihr Lieben. Damit ihr seht, um was es geht: https://1drv.ms/f/s!AnuxuhxP0zblqJkFop4zECZ2E06q6Q. Das Modell war mechanisch auf fast genau diesem Stand und wartete so 1,5 Jahre darauf, dass es endlich mal jemand verkabelt und programmiert ;-) Das soll die mechanische Simulation eines Autorennen-Spiels des Commodore PET 2001 (8-Bit 6502 CPU, 1 MHz Takt, 8 KB RAM, 25x40 Textbildschirm von 1979) werden: Die Straße waren ein Paar Doppelpunktreihen, die kurvig von oben den Bildschirm herunterscrollten. Das Auto war nichts weiter als ein in Negativschrift dargestellter Leerschritt in der untersten Bildschirmzeile. Mit den beiden Shift-Tasten (die man per Maschinensprache direkt vom I/O-Baustein für die Tastatur getrennt auslesen konnte) lenkte man nach links oder rechts und musste halt versuchen, das Auto auf der kurvigen Straße zu halten. Man konnte verschiedene Geschwindigkeiten, Kurvigkeiten und Straßenbreiten wählen.

Der Nachbau hat anstatt 25 nur 6 Zeilen. Die 6 S-Motoren oben sollen die Balken mit den Platten 15x15 als Straßenpixel so bewegen, dass der geschlängelte Eindruck einer auf den Fahrer zukommenden Fahrbahn entsteht. Das Auto ist das winzige Modell in der Mitte. Es wird über ein Gleichlaufgetriebe nach links und rechts verschoben sowie verdreht. Es soll nämlich in Fahrtrichtung zeigen. Das Lenkrad vorne hängt an einem Poti, das Zählwerk rechts daneben zählt die Fehler - so die Theorie.

Der erste Versuch soll das Robo Interface plus zwei I/O-Extensions verwenden. Eins weiß ich schon: Es wird wohl nur online gehen. Beim Download erscheint die Meldung, es wäre zu wenig Speicher da. Das setzt nochmal Grenzen an die Abtastfrequenz. Die Software fährt je einen Prozess für jede der 6 Fahrbahnstangen, den links/rechts-Motor, den Verdreh-Motor (die alle die ausgerechnete Sollposition möglichst schnell ansteuern sollen), das Lenkrad (daran sitze ich gerade) und später noch das laufende Rennen selbst. Die Software ist schon deutlich weiter als in dem Video - das ist ein älterer Stand.

Möglicherweise ist das eine Überforderung des Robo Interfaces. Dann würde ich versuchen, auf meine Netduino-Boards auszuweichen, aber da muss ich die I/O-Boards noch deutlich aufstocken. Programmieren würde ich das eh lieber in .net als in RoboPro, aber da fehlt mir eben noch einige Motortreiber.

Wie schon gesagt, werde ich wohl zunächst die Variante "Istmessung durch Kette, Z40, Poti" versuchen. Das wird aber dauern, weil ich nur alle paar Wochen dazu komme - und die nächste ft:pedia steht ja auch schon wieder vor der Tür :-)

Ich hatte das alte Programm übrigens mal in .net nachprogrammiert. Wer es ausprobieren möchte: http://www.ct-systeme.com/LargeDownloads/Autorennen.zip. Wenn jemand den Quellcode haben will, packe ich den da natürlich auch gerne hin.

Gruß und nochmals vielen Dank an alle,
Stefan

Benutzeravatar
Harald
Beiträge: 507
Registriert: 01 Nov 2010, 07:39

Re: Wie kann ich eine Linearposition messen?

Beitrag von Harald » 17 Mär 2018, 10:37

Noch'n Gedanke: Pollin verkauft gerade ganz kleine optische Computer-Mäuse für 2,50 das Stück. Da muss doch was zu machen sein!?

Gruß,
Harald
--- Ich liebe es, wenn ein Modell funktioniert. ---

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Wie kann ich eine Linearposition messen?

Beitrag von steffalk » 20 Mär 2018, 12:54

Tach auch!

Die Versuche mit Kette über Z40 auf Poti verliefen bei mir sehr enttäuschend. Die Messwerte springen herum, als wären es Flöhe. Vielleicht sind meine Potis schon sehr verschlissen (die hatte ich allesamt mal gebraucht erworben).

Der Plan ist nun, die Sache zu einem späteren Zeitpunkt unter Verwendung von Schrittmotoren nochmal in Angriff zu nehmen. Das erfordert einen Neubau der ganzen Auto- und Lenk-Mechanik. Also habe ich das Modell, so wie es jetzt war, zerlegt.

Die nächste Version will ich dann auch gleich nicht mit dem RoboInt und RoboPro, sondern mit einem Netduino steuern - das Programmieren ist einfach so enorm viel angenehmer für mich. Dazu muss ich dann aber noch mehr I/O und wohl auch anständige Schrittmotortreiber besorgen. Außerdem will ich die Gelegenheit nutzen, vom .net Micro Framework auf den Community-getriebenen Nachfolger nanoFramework https://nanoframework.net/ "aufzusteigen", weil es dafür ein Addin für Visual Studio 2017 gibt (das letzte mit dem µF offiziell supportete war VS 2013).

Also: Irgendwann melde ich mich wieder dazu, hoffe ich. Danke Euch allen für den lehrreichen Input!

Gruß,
Stefan

Antworten