Beschleunigung von Kugeln auf einer schiefen Bahn messen
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo,
Ich würde gerne mittels ft die Beschleunigung einer Stahlkugel auf einer schiefen Bahn messen und auswerten lassen. Dazu würde ich gerne mehrere Lichtschranken in gleichem Abstand zueinander aufbauen, die von der Kugel passiert wird. Es sollte zu zählen begonnen werden, sobald die erste Lichtschranke passiert wurde. Bei jeder Lichtschranke müsste dann ein weiteres Mal die Zeit gemessen und gespeichert bzw. ausgegeben werden.
Wäre so etwas überhaupt mit einem TXT zu realisieren?
Besitzt der TXT so etwas wie eine Stoppuhr?
Vielen Dank schon mal für eure Ideen!
Ich würde gerne mittels ft die Beschleunigung einer Stahlkugel auf einer schiefen Bahn messen und auswerten lassen. Dazu würde ich gerne mehrere Lichtschranken in gleichem Abstand zueinander aufbauen, die von der Kugel passiert wird. Es sollte zu zählen begonnen werden, sobald die erste Lichtschranke passiert wurde. Bei jeder Lichtschranke müsste dann ein weiteres Mal die Zeit gemessen und gespeichert bzw. ausgegeben werden.
Wäre so etwas überhaupt mit einem TXT zu realisieren?
Besitzt der TXT so etwas wie eine Stoppuhr?
Vielen Dank schon mal für eure Ideen!
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo,
zunächst einmal: Ja, der TX(T) besitzt soetwas wie eine Stoppuhr. Bereits in Level 1 (RoboPro) kommt das Zeitelement vor, in Level 3 zusätzlich das Timer-Element. Dieses eignet sich sehr gut, um eine Stoppuhr zu programmieren. Wie dies funktioniert ist in der RoboPro Hilfe sehr gut erklärt.
Sobald ein Stoppuhr Unterprogramm geschrieben ist, kann man sich der tatsächlichen Aufgabestellung widmen: Um die Beschleunigung zu berechnen, benötigt man jeweils Momentangeschwindigkeiten zu den Zeitpunkten t1 unt t2. Über die Formel a = (v2-v1) / (t2-t1) lässt sich die Beschleunigung in der Einheit m/s² errechnen.
Die Momentangeschwindigkeiten kann man annäherungsweise mit einer Lichtschranken ermitteln: Dazu berechnet man die Geschwindigkeit durch das Anwenden der Formel v= s/ t. Man teilt dabei den Weg (d.h. den Durchmesser der Kugel) durch die Verdunklungszeit der Lichtschranke. Theoretisch erhält man dabei eine Durchschnittsgeschwindigkeit in einem sehr kleinen Intervall, praktisch entspricht diese aber nahezu der Momentangeschwindigkeit.
Je nachdem, wie dein Versuchsaufbau aussieht, benötigt man 2 oder 3 Lichtschranken. Falls die Kugel zum Zeitpunkt t1 sich in Ruhelage befindet, kann man für v1 0m/s als Momentangeschwindigkeit nehmen. Die erste Lichtschranke startet die Stoppuhr, d.h. t1 ist ebenfalls 0. Die zweite Lichtschranke stoppt die Uhr, an ihr kann man dann t2 ablesen. Zugleich errechnet man über die Verdunklungszeit an der zweiten Lichtschranke die Momentangeschwindigkeit v2 (wie oben beschrieben). Da v1 und t1 jeweils 0 sind, kann man die Beschleunigung über die Formel a = v2 / t2 berrechnen. Man erhält die Beschleunigung in der Einheit m/s².
Dies gilt jedoch nur für Beweugungen mit konstanter Beschleunigung, da wir von einer linearen t-v Zuordung ausgehen.
Sehr viel Theorie, ich hoffe ich konnte helfen.
mfg
David
zunächst einmal: Ja, der TX(T) besitzt soetwas wie eine Stoppuhr. Bereits in Level 1 (RoboPro) kommt das Zeitelement vor, in Level 3 zusätzlich das Timer-Element. Dieses eignet sich sehr gut, um eine Stoppuhr zu programmieren. Wie dies funktioniert ist in der RoboPro Hilfe sehr gut erklärt.
Sobald ein Stoppuhr Unterprogramm geschrieben ist, kann man sich der tatsächlichen Aufgabestellung widmen: Um die Beschleunigung zu berechnen, benötigt man jeweils Momentangeschwindigkeiten zu den Zeitpunkten t1 unt t2. Über die Formel a = (v2-v1) / (t2-t1) lässt sich die Beschleunigung in der Einheit m/s² errechnen.
Die Momentangeschwindigkeiten kann man annäherungsweise mit einer Lichtschranken ermitteln: Dazu berechnet man die Geschwindigkeit durch das Anwenden der Formel v= s/ t. Man teilt dabei den Weg (d.h. den Durchmesser der Kugel) durch die Verdunklungszeit der Lichtschranke. Theoretisch erhält man dabei eine Durchschnittsgeschwindigkeit in einem sehr kleinen Intervall, praktisch entspricht diese aber nahezu der Momentangeschwindigkeit.
Je nachdem, wie dein Versuchsaufbau aussieht, benötigt man 2 oder 3 Lichtschranken. Falls die Kugel zum Zeitpunkt t1 sich in Ruhelage befindet, kann man für v1 0m/s als Momentangeschwindigkeit nehmen. Die erste Lichtschranke startet die Stoppuhr, d.h. t1 ist ebenfalls 0. Die zweite Lichtschranke stoppt die Uhr, an ihr kann man dann t2 ablesen. Zugleich errechnet man über die Verdunklungszeit an der zweiten Lichtschranke die Momentangeschwindigkeit v2 (wie oben beschrieben). Da v1 und t1 jeweils 0 sind, kann man die Beschleunigung über die Formel a = v2 / t2 berrechnen. Man erhält die Beschleunigung in der Einheit m/s².
Dies gilt jedoch nur für Beweugungen mit konstanter Beschleunigung, da wir von einer linearen t-v Zuordung ausgehen.
Sehr viel Theorie, ich hoffe ich konnte helfen.
mfg
David
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo,
hier das Robopro-Programm dazu (rechte Maustaste >> Ziel speichern unter):
http://laserman1974.de/fischertechnik/temp/stoppuhr.rpp
hier das Robopro-Programm dazu (rechte Maustaste >> Ziel speichern unter):
http://laserman1974.de/fischertechnik/temp/stoppuhr.rpp
Viele Grüße, Laserman
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Ihr seid cool,
ich wollte mich gerade für die ausführliche Antwort bedanken und dass ich mich jetzt in die Hilfe hineingaben werde (was ich jetzt aber dennoch noch tun werde) und dann wird einem gleich das Programm dazu geliefert. Wow!
Vielen Dank
ich wollte mich gerade für die ausführliche Antwort bedanken und dass ich mich jetzt in die Hilfe hineingaben werde (was ich jetzt aber dennoch noch tun werde) und dann wird einem gleich das Programm dazu geliefert. Wow!
Vielen Dank
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
@ Laserman
Ich verstehe nicht, wie das Programm die Zeit in der Einheit Millisekunden berechnet. Fehlt nicht bei jedem Schleifendurchlauf nach bzw. vor dem +1 Befehl ein Warteelement von 0,001 Sekunden? So hängt die Zeitberechnung doch stark von der Rechenleistung des Controllers ab...
Ich verstehe nicht, wie das Programm die Zeit in der Einheit Millisekunden berechnet. Fehlt nicht bei jedem Schleifendurchlauf nach bzw. vor dem +1 Befehl ein Warteelement von 0,001 Sekunden? So hängt die Zeitberechnung doch stark von der Rechenleistung des Controllers ab...
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
@ davidrpf
Das ist ein sehr gutes Argument.
Also hinter jede Verzweigung noch 1 mSek. warten einfügen:
Das ist ein sehr gutes Argument.
Also hinter jede Verzweigung noch 1 mSek. warten einfügen:
Viele Grüße, Laserman
- steffalk
- ft:pedia-Herausgeber
- Beiträge: 1791
- Registriert: 01 Nov 2010, 16:41
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Tach auch!
Ich habe zwar weder einen TX noch einen TXT, aber ich gebe zu bedenken, dass das Betriebssystem zu recht beliebigen Zeiten meinen kann, eben mal irgendwas anderes zwischendurch zu machen. Welche Messgenauigkeit man mit einer 1-ms-Pause und simplem Durchzählen erreichen kann, müsste vielleicht mal gegen eine externe, zuverlässige Zeitquelle gemessen werden. Und in der Messung der Beschleunigung sollte dann der Zeit-Messfehler berücksichtigt werden, damit man auch weiß, wie genau denn nun die gemessene bzw. berechnete Beschleunigung überhaupt stimmt.
Gruß,
Stefan
Ich habe zwar weder einen TX noch einen TXT, aber ich gebe zu bedenken, dass das Betriebssystem zu recht beliebigen Zeiten meinen kann, eben mal irgendwas anderes zwischendurch zu machen. Welche Messgenauigkeit man mit einer 1-ms-Pause und simplem Durchzählen erreichen kann, müsste vielleicht mal gegen eine externe, zuverlässige Zeitquelle gemessen werden. Und in der Messung der Beschleunigung sollte dann der Zeit-Messfehler berücksichtigt werden, damit man auch weiß, wie genau denn nun die gemessene bzw. berechnete Beschleunigung überhaupt stimmt.
Gruß,
Stefan
- Dirk Fox
- ft:pedia-Herausgeber
- Beiträge: 1831
- Registriert: 01 Nov 2010, 00:49
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo Rito,
tatsächlich wäre ich die Umsetzung der von David vorgeschlagenen Lösung etwas anders angegangen.
Zunächst: Timer in Microcontrollern sind in der Regel ungenau - je kleiner die Zeiteinheit, desto größer wirkt sich die durch parallele Tätigkeiten des Systems (Sensoreingangabfrage o.ä.) verursachte Ungenauigkeit aus. Daher sollte ein zeitliches Messintervall möglichst groß gewählt werden. Eine gute Methode, um die die akzeptable Grenze auszutesten, ist, die Messstrecke zunächst groß zu wählen und dann systematisch zu verkleinern (z.B. zu halbieren), und dann zu prüfen, ob die Ergebnisse (Geschwindigkeit) konstant bleiben. Ob eine Lichtschranke und als Strecke die Kugel ausreicht (wie von David vorgeschlagen: Eintritt/Austritt aus der Lichtschranke als Strecke), solltest Du auf diese Weise testen.
Weiter: Für die Messung brauchst Du eine "Uhr". Die kannst Du mit den Timer- oder Warte-Elementen "bauen": Einfach ein paralleles Programm, das in einer Schleife z.B. 0,01 s wartet und dann einen Zähler hochzählt. Die Zählervariable kannst Du dann in Deinem Messprogramm auslesen. Je größer der Warte-Timer, desto genauer die Messung - den Wert solltest Du daher an Deine gewünschte Messgenauigkeit anpassen (je größer, desto größer muss dann auch die Messstrecke sein - sonst ist die Kugel durch, bevor der Zähler weitergezählt hat.)
Das Programm müsste also Folgendes tun:
- Auslesen der Zeitvariable, wenn die Kugel die erste Lichtschranke passiert (t1)
- Auslesen der Zeitvariable, wenn die Kugel die zweite Lichtschranke passiert (oder, nach Davids Vorschlag, die erste Lichtschranke verlässt - falls das nicht zu schnell geht...) (t1')
- Berechnung der Geschwindigkeit v1 = Strecke/(t1'-t1)
Dann machst Du dasselbe an einer anderen Stelle der Bahn zur Bestimmung von v2 zum Zeitpunkt t2.
Alternativ könntest Du auch die Startgeschwindigkeit V0 = 0 zum Zeitpunkt t0 = 0 verwenden; dann musst Du Deine "Uhr" aber gleichzeitig mit der Kugel starten.
Nach der von David angegebenen Formel zur Beschleunigungsberechnung aus den beiden Geschwindigkeiten erhälst Du die durchschnittliche Beschleunigung zwischen t1 und t2 (oder t0 und t1) - beachte, dass die Beschleunigung zwischendrin aufgrund der Reibung und/oder Neigung der Bahn natürlich variieren kann.
Beste Grüße und viel Spaß,
Dirk
tatsächlich wäre ich die Umsetzung der von David vorgeschlagenen Lösung etwas anders angegangen.
Zunächst: Timer in Microcontrollern sind in der Regel ungenau - je kleiner die Zeiteinheit, desto größer wirkt sich die durch parallele Tätigkeiten des Systems (Sensoreingangabfrage o.ä.) verursachte Ungenauigkeit aus. Daher sollte ein zeitliches Messintervall möglichst groß gewählt werden. Eine gute Methode, um die die akzeptable Grenze auszutesten, ist, die Messstrecke zunächst groß zu wählen und dann systematisch zu verkleinern (z.B. zu halbieren), und dann zu prüfen, ob die Ergebnisse (Geschwindigkeit) konstant bleiben. Ob eine Lichtschranke und als Strecke die Kugel ausreicht (wie von David vorgeschlagen: Eintritt/Austritt aus der Lichtschranke als Strecke), solltest Du auf diese Weise testen.
Weiter: Für die Messung brauchst Du eine "Uhr". Die kannst Du mit den Timer- oder Warte-Elementen "bauen": Einfach ein paralleles Programm, das in einer Schleife z.B. 0,01 s wartet und dann einen Zähler hochzählt. Die Zählervariable kannst Du dann in Deinem Messprogramm auslesen. Je größer der Warte-Timer, desto genauer die Messung - den Wert solltest Du daher an Deine gewünschte Messgenauigkeit anpassen (je größer, desto größer muss dann auch die Messstrecke sein - sonst ist die Kugel durch, bevor der Zähler weitergezählt hat.)
Das Programm müsste also Folgendes tun:
- Auslesen der Zeitvariable, wenn die Kugel die erste Lichtschranke passiert (t1)
- Auslesen der Zeitvariable, wenn die Kugel die zweite Lichtschranke passiert (oder, nach Davids Vorschlag, die erste Lichtschranke verlässt - falls das nicht zu schnell geht...) (t1')
- Berechnung der Geschwindigkeit v1 = Strecke/(t1'-t1)
Dann machst Du dasselbe an einer anderen Stelle der Bahn zur Bestimmung von v2 zum Zeitpunkt t2.
Alternativ könntest Du auch die Startgeschwindigkeit V0 = 0 zum Zeitpunkt t0 = 0 verwenden; dann musst Du Deine "Uhr" aber gleichzeitig mit der Kugel starten.
Nach der von David angegebenen Formel zur Beschleunigungsberechnung aus den beiden Geschwindigkeiten erhälst Du die durchschnittliche Beschleunigung zwischen t1 und t2 (oder t0 und t1) - beachte, dass die Beschleunigung zwischendrin aufgrund der Reibung und/oder Neigung der Bahn natürlich variieren kann.
Beste Grüße und viel Spaß,
Dirk
- H.A.R.R.Y.
- Beiträge: 1083
- Registriert: 01 Okt 2012, 08:38
- Wohnort: Westpfalz
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo zusammen, Rito,
Wenn es auch eine Methode ohne Elektronik sein darf:
Am unteren Ende der Rampe wird die Kugel sanft(!) in die Horizontale umgelenkt. Über einen Schanzentisch geht die Kugel in einen waagerechten Wurf über und mittels Metermaß, passendem Know-How und einem Taschenrechner lassen sich auch gute Ergebnisse erzielen. Eine horizontal ausgerichtetes Sandbett kann helfen die Aufprallstelle besser aufzufinden - der Sand sollte dafür feucht bis nass sein sonst springt die Kugel aus dem "Krater" und rollt noch ein Stück weiter.
Know-How: https://de.wikipedia.org/wiki/Waagerechter_Wurf oder Physikbuchj Deines Vertrauens.
Die Anlaufhöhe und Rampenneigung lassen sich auch prima variieren.
Grüße
H.A.R.R.Y.
Das kann ich so allgemein nicht stehen lassen. Werden Hardware-Timer verwendet (Input-Capture zum Beispiel) und auch noch von einem Quarztakt versorgt, ist durchaus eine hohe Genauigkeit zu erzielen. Es ist dabei sicherzustellen, daß vor jedem Überlauf mindestens einmal der Timer abgelesen werden kann, noch besser einmal nach jedem Ereignis. Werden Timer jedoch per Software emuliert und dann noch mit nicht echtzeitfähigen Betriebsystemen dargestellt, dann ist Dirks Anemerkung allerdings richtig. Was beim TX odder TXT da so im Angebot ist, weß ich nicht.Dirk Fox hat geschrieben:Zunächst: Timer in Microcontrollern sind in der Regel ungenau
Das ist grundsätzlich richtig. Beim Auszählen der Zeiteinheiten ist grundsätzlich eine Unsicherheit von +1 Zeiteinheit als Meßfehler anzusetzen. Hat man nur 10 Einheiten abgezählt, sind das schon 10 Prozent des Meßwertes.Dirk Fox hat geschrieben:Daher sollte ein zeitliches Messintervall möglichst groß gewählt werden.
Wenn es auch eine Methode ohne Elektronik sein darf:
Am unteren Ende der Rampe wird die Kugel sanft(!) in die Horizontale umgelenkt. Über einen Schanzentisch geht die Kugel in einen waagerechten Wurf über und mittels Metermaß, passendem Know-How und einem Taschenrechner lassen sich auch gute Ergebnisse erzielen. Eine horizontal ausgerichtetes Sandbett kann helfen die Aufprallstelle besser aufzufinden - der Sand sollte dafür feucht bis nass sein sonst springt die Kugel aus dem "Krater" und rollt noch ein Stück weiter.
Know-How: https://de.wikipedia.org/wiki/Waagerechter_Wurf oder Physikbuchj Deines Vertrauens.
Die Anlaufhöhe und Rampenneigung lassen sich auch prima variieren.
Grüße
H.A.R.R.Y.
[42] SURVIVE - or die trying
- Dirk Fox
- ft:pedia-Herausgeber
- Beiträge: 1831
- Registriert: 01 Nov 2010, 00:49
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Noch ein Nachtrag:
H.A.R.R.Y. hat natürlich Recht mit seiner Anmerkung - gibt es einen Software-Zugang zum Quarz-Takt, hat man einen genauen Timer. Wie schon an anderer Stelle im Forum berichtet, ist der RoboPro-Software-Timer jedoch kein Hardware-Takt. Also sollte die Messstrecke für eine höhere Genauigkeit möglichst groß sein. ABER: Wenn Du die Geschwindigkeit über eine zu große Strecke bestimmst, erhälst Du nicht die Momentangeschwindigkeit im Punkt t1, sondern die Durchschnittsgeschwindigkeit zwischen t1 und t1' - bei Beschleunigung oder Verzögerung auf der Strecke ist das nicht derselbe Wert. Daher sollte die Messstrecke so lang wie (für die Messgenauigkeit) nötig und so kurz wie möglich gewählt werden.
Vielleicht funktioniert auch der folgende Trick, um einen genauerern Takt zu erhalten: Du startest einen Encodermotor im Leerlauf und schließt den Encoder an einen der schnellen Zählereingänge an. Dann liefert der Motor einen externen Takt (unter der Annahme, dass er gleichmäßig läuft), den Du am Zählereingang abfragen kannst. Für die Umrechnung in ms musst Du ihn eine Weile laufen lassen, die Zeit stoppen und daraus den Umrechnungsfaktor bestimmen. Nach einer groben Überschlagsrechnung anhand der Motordaten solltest Du auf ca. 216 Impulse je Sekunde kommen (ein Impuls entspricht also ca. 4,6 ms). Eine nicht sehr feine Auflösung, aber besser als ein 10-ms-Takt (und wahrscheinlich genauer als der RoboPro-1-ms-Timer).
Beste Grüße,
Dirk
H.A.R.R.Y. hat natürlich Recht mit seiner Anmerkung - gibt es einen Software-Zugang zum Quarz-Takt, hat man einen genauen Timer. Wie schon an anderer Stelle im Forum berichtet, ist der RoboPro-Software-Timer jedoch kein Hardware-Takt. Also sollte die Messstrecke für eine höhere Genauigkeit möglichst groß sein. ABER: Wenn Du die Geschwindigkeit über eine zu große Strecke bestimmst, erhälst Du nicht die Momentangeschwindigkeit im Punkt t1, sondern die Durchschnittsgeschwindigkeit zwischen t1 und t1' - bei Beschleunigung oder Verzögerung auf der Strecke ist das nicht derselbe Wert. Daher sollte die Messstrecke so lang wie (für die Messgenauigkeit) nötig und so kurz wie möglich gewählt werden.
Vielleicht funktioniert auch der folgende Trick, um einen genauerern Takt zu erhalten: Du startest einen Encodermotor im Leerlauf und schließt den Encoder an einen der schnellen Zählereingänge an. Dann liefert der Motor einen externen Takt (unter der Annahme, dass er gleichmäßig läuft), den Du am Zählereingang abfragen kannst. Für die Umrechnung in ms musst Du ihn eine Weile laufen lassen, die Zeit stoppen und daraus den Umrechnungsfaktor bestimmen. Nach einer groben Überschlagsrechnung anhand der Motordaten solltest Du auf ca. 216 Impulse je Sekunde kommen (ein Impuls entspricht also ca. 4,6 ms). Eine nicht sehr feine Auflösung, aber besser als ein 10-ms-Takt (und wahrscheinlich genauer als der RoboPro-1-ms-Timer).
Beste Grüße,
Dirk
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo,
ich bin gerade dabei, zu testen, wie schnell die Controller (TX, TXT) die Programme abzuarbeiten.
Ein Testprogramm "Speedtest" habe ich gerade hochgeladen, es ist aber noch nicht freigeschaltet.
Die Ergebnisse fasse ich schon mal so zusammen:
1. Der TXT führt Programme online fast 5x schneller aus als der TXC
2. Der TXT führt Programme im Download-Modus fast 90x schneller aus als der TXC
3. Der TXT führt Programme im Download-Modus über 11x schneller aus als online
4. Der TXT führt Programme im Download-Modus mit angeschlossener USB-Kamera etwas langsamer
aus als ohne USB-Kamera
5. Der TXC führt Programme im Download-Modus nur mit 2/3 der Online-Geschwindigkeit aus (a)
6. Der TXC führt Programme im RAM etwas schneller aus als im Flash
Anmerkungen:
(a) Sehr stark abhängig von den ausgeführten Befehlen, d.h. nicht allgemeingültig!
Also:
Wenn es um zeitkritische Prozesse geht, muss man genau hinsehen.
ich bin gerade dabei, zu testen, wie schnell die Controller (TX, TXT) die Programme abzuarbeiten.
Ein Testprogramm "Speedtest" habe ich gerade hochgeladen, es ist aber noch nicht freigeschaltet.
Die Ergebnisse fasse ich schon mal so zusammen:
1. Der TXT führt Programme online fast 5x schneller aus als der TXC
2. Der TXT führt Programme im Download-Modus fast 90x schneller aus als der TXC
3. Der TXT führt Programme im Download-Modus über 11x schneller aus als online
4. Der TXT führt Programme im Download-Modus mit angeschlossener USB-Kamera etwas langsamer
aus als ohne USB-Kamera
5. Der TXC führt Programme im Download-Modus nur mit 2/3 der Online-Geschwindigkeit aus (a)
6. Der TXC führt Programme im RAM etwas schneller aus als im Flash
Anmerkungen:
(a) Sehr stark abhängig von den ausgeführten Befehlen, d.h. nicht allgemeingültig!
Also:
Wenn es um zeitkritische Prozesse geht, muss man genau hinsehen.
Gruß ftDirk
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Ach herje, also die Physik ist für mich hier nicht das Problem, da bin ich in der Materie drin, doch komme ich einfach mit diesem Programminterface nicht zurecht.
Ich muss euch leider wieder mit einer laienhaften Frage belästigen: Ich programmierte eine Schleife die in 0,01s Schritten hochzählte und speicherte diesen Wert in einer Variablen ab. Beim Passieren der Lichtschranke wollte ich nun den Timer auslesen und anzeigen lassen (Durchschnittsgeschwindigkeit der Teilstücke). Doch da die Schleife immer weiter zählt, werden auch die Ausgaben der einzelnen Ereignisse (Lichtschranke) weiter gezählt. Wie kann man denn diese Variable auslesen, so dass sie sich nicht weiter verändert, sobald die Schleife wieder einmal durchlaufen wird? Die Textfelder sollen den Timer nicht mitzählen sondern lediglich stets das jeweilige Ereignis ausgeben.
Wahrscheinlich ist es ganz einfach, aber hier stehe ich total auf dem Schlauch!
Ich muss euch leider wieder mit einer laienhaften Frage belästigen: Ich programmierte eine Schleife die in 0,01s Schritten hochzählte und speicherte diesen Wert in einer Variablen ab. Beim Passieren der Lichtschranke wollte ich nun den Timer auslesen und anzeigen lassen (Durchschnittsgeschwindigkeit der Teilstücke). Doch da die Schleife immer weiter zählt, werden auch die Ausgaben der einzelnen Ereignisse (Lichtschranke) weiter gezählt. Wie kann man denn diese Variable auslesen, so dass sie sich nicht weiter verändert, sobald die Schleife wieder einmal durchlaufen wird? Die Textfelder sollen den Timer nicht mitzählen sondern lediglich stets das jeweilige Ereignis ausgeben.
Wahrscheinlich ist es ganz einfach, aber hier stehe ich total auf dem Schlauch!
- Dirk Fox
- ft:pedia-Herausgeber
- Beiträge: 1831
- Registriert: 01 Nov 2010, 00:49
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo Rito,
Beste Grüße,
Dirk
einfachster Weg: Wert der Timer-Variablen beim Ereginis (Passieren der Lichtschranke) einer neuen Variablen zuweisen und mit dieser weiterrechnen (bzw. deren Inhalt anzeigen lassen).Rito hat geschrieben:Beim Passieren der Lichtschranke wollte ich nun den Timer auslesen und anzeigen lassen (Durchschnittsgeschwindigkeit der Teilstücke).
Beste Grüße,
Dirk
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo,
also ich habe für mich mein kleines Problem jetzt so gelöst:
Ich starte den Timer nach dem Durchschreiten der ersten Lichtschranke und füge bei jeder Lichtschranke einam Array einen weiteren Wert des Timers hinzu. Diese Werte kann ich dann entweder auslesen und anzeigen lassen oder in eine CSV-Datei abspeichern. Eigentlich ganz einfach (wenn man die Mechanismen von RoboPro endlich verstanden hat )
also ich habe für mich mein kleines Problem jetzt so gelöst:
Ich starte den Timer nach dem Durchschreiten der ersten Lichtschranke und füge bei jeder Lichtschranke einam Array einen weiteren Wert des Timers hinzu. Diese Werte kann ich dann entweder auslesen und anzeigen lassen oder in eine CSV-Datei abspeichern. Eigentlich ganz einfach (wenn man die Mechanismen von RoboPro endlich verstanden hat )
- Dirk Fox
- ft:pedia-Herausgeber
- Beiträge: 1831
- Registriert: 01 Nov 2010, 00:49
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo Rito,
genau. So habe ich es auch bei meiner "Radarfalle" im Buch gemacht (Abstandsmessung und Geschwindigkeitsbestimmung mit dem Ultraschallsensor; hilft Dir bei Kugeln aber eher nicht).
Noch ein Trick (von Ralf Hansmann): rollende Kugel fotografieren, Belichtungszeit auslesen, Länge des "Schweifs" auf dem Foto messen = Momentangeschwindigkeit... eine pfiffige Lösung, wenn Dir die Fototransistoren ausgehen
Gruß, Dirk
genau. So habe ich es auch bei meiner "Radarfalle" im Buch gemacht (Abstandsmessung und Geschwindigkeitsbestimmung mit dem Ultraschallsensor; hilft Dir bei Kugeln aber eher nicht).
Noch ein Trick (von Ralf Hansmann): rollende Kugel fotografieren, Belichtungszeit auslesen, Länge des "Schweifs" auf dem Foto messen = Momentangeschwindigkeit... eine pfiffige Lösung, wenn Dir die Fototransistoren ausgehen
Gruß, Dirk
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo zusammen,
ich habe einen Versuchsaufbau zum Messen der Beschleunigung von Kugeln auf einer schiefen Bahn gebaut: https://ftcommunity.de/categories.php?cat_id=3181
Dabei habe ich meinen ersten Vorschlag noch etwas überarbeitet. Es werden nun folgende Werte ermittelt:
1. Die Momentangeschwindigkeit v1 kurz nach dem Start der Kugel
2. Die Zeit t , die vergeht, zwischen dem Verlassen der ersten und dem Unterbrechen der zweiten (Laser)lichtschranke
3. Die in diesem Zeitraum zurückgelegte Strecke s
Mit diesen Größen lässt sich ebenfalls die Beschleunigung bestimmen. Folgende Gleichung bestimmt den zurückgelegten Weg in Abhängigkeit der Zeit, der Beschleunigung und der Anfangsgeschwindigkeit: s = 0,5 * a * t² + v0 * t. Da man den Weg s zwischen den Lichtschranken kennt, kann man die Formel nach a umstellen, um die Beschleunigung zu berechen: a = -2*v0 / t + 2s / t².
Mit der Beschleunigung kann man sogar die Endgeschwindigkeit berechnen: https://ftcommunity.de/details.php?image_id=42727
Vorteile von diesem Konzept:
1. Es gibt keine Messungenauigkeit beim Starten, da die erste Momentangeschwindigkeit kurz nach dem Start gemessen wird.
2. Da nur die Momentangeschwindigkeit nach dem Start gemessen wird, ist diese noch nicht so hoch, sprich die zu messende Zeit ist noch nicht zu klein
3. Da das Programm nur relativ große Zeiten messen muss
4. Da mit der konstanten Größe des Wegs gearbeitet wird.
Gruß, David
ich habe einen Versuchsaufbau zum Messen der Beschleunigung von Kugeln auf einer schiefen Bahn gebaut: https://ftcommunity.de/categories.php?cat_id=3181
Dabei habe ich meinen ersten Vorschlag noch etwas überarbeitet. Es werden nun folgende Werte ermittelt:
1. Die Momentangeschwindigkeit v1 kurz nach dem Start der Kugel
2. Die Zeit t , die vergeht, zwischen dem Verlassen der ersten und dem Unterbrechen der zweiten (Laser)lichtschranke
3. Die in diesem Zeitraum zurückgelegte Strecke s
Mit diesen Größen lässt sich ebenfalls die Beschleunigung bestimmen. Folgende Gleichung bestimmt den zurückgelegten Weg in Abhängigkeit der Zeit, der Beschleunigung und der Anfangsgeschwindigkeit: s = 0,5 * a * t² + v0 * t. Da man den Weg s zwischen den Lichtschranken kennt, kann man die Formel nach a umstellen, um die Beschleunigung zu berechen: a = -2*v0 / t + 2s / t².
Mit der Beschleunigung kann man sogar die Endgeschwindigkeit berechnen: https://ftcommunity.de/details.php?image_id=42727
Vorteile von diesem Konzept:
1. Es gibt keine Messungenauigkeit beim Starten, da die erste Momentangeschwindigkeit kurz nach dem Start gemessen wird.
2. Da nur die Momentangeschwindigkeit nach dem Start gemessen wird, ist diese noch nicht so hoch, sprich die zu messende Zeit ist noch nicht zu klein
3. Da das Programm nur relativ große Zeiten messen muss
4. Da mit der konstanten Größe des Wegs gearbeitet wird.
Gruß, David
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Zusatz:
Das Bestimmen von v1 über die Verdunklungszeit ergibt -physikalisch korrekt ausgedrückt- eine mittlere Geschwindigkeit in einem sehr kleinen Interval, praktisch aber schon eine momentane Geschwindigkeit. Dank Laserdioden als Lichtschranken ist dies ziemlich genau.
Auf einen Taktgeber zur Zeitenbestimmung habe ich verzichtet. Ich werde mal schauen, mit welcher Messtoleranz der Versuchsaufbau arbeitet.
Gruß, David
Das Bestimmen von v1 über die Verdunklungszeit ergibt -physikalisch korrekt ausgedrückt- eine mittlere Geschwindigkeit in einem sehr kleinen Interval, praktisch aber schon eine momentane Geschwindigkeit. Dank Laserdioden als Lichtschranken ist dies ziemlich genau.
Auf einen Taktgeber zur Zeitenbestimmung habe ich verzichtet. Ich werde mal schauen, mit welcher Messtoleranz der Versuchsaufbau arbeitet.
Gruß, David
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Hallo David
Das ist ja mal eine richtig coole Anwendung...
Bei den Kommentaren zu den Bildern erwähnst du den Kugeldurchmesser.
Soviel ich weiss, haben die Kugeln einen Durchmesser von 12.7 mm, nicht 12.5.
Gruss
Thomas
Das ist ja mal eine richtig coole Anwendung...
Bei den Kommentaren zu den Bildern erwähnst du den Kugeldurchmesser.
Soviel ich weiss, haben die Kugeln einen Durchmesser von 12.7 mm, nicht 12.5.
Gruss
Thomas
- H.A.R.R.Y.
- Beiträge: 1083
- Registriert: 01 Okt 2012, 08:38
- Wohnort: Westpfalz
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Na das ist doch mal eine feine Anwendung und ebenso gute Dokumentation. Mir gefällt Dein Projekt sehr gut. Bei der errechneten mittleren Beschleunigung ist allerdings zu bedenken, daß die Flexschienen mit ihrer Mäanderstruktur die Kugeln etwas unkontrolliert hopsen lassen. Die Verhältnisse ändern sich vermutlich mit der Rampenneigung bzw. der Geschwindigkeit der Kugel.
Ich teste den Meßaufbau bei Gelegenheit auch mal an einer Anordnung bei der ich die Verhältnisse bereits genau kenne.
Ich teste den Meßaufbau bei Gelegenheit auch mal an einer Anordnung bei der ich die Verhältnisse bereits genau kenne.
[42] SURVIVE - or die trying
Re: Beschleunigung von Kugeln auf einer schiefen Bahn messen
Cool was so aus einer unbedarften Frage alles entstehen kann.
Seid ihr sicher, dass ihr die Kugel auch tatsächlich über den äußersten Kreis messen könnt? Die Idee mit dem Laser finde ich richtig gut, doch muss er auch genau den "Äquator" der Kugel erreichen, sonst ist's nix mit 12,7
Ich war jetzt mal ein paar Lichtschranken bestellen. Wenn sie da sind, werde ich auch mein Ergebnis hier dokumentieren.
Seid ihr sicher, dass ihr die Kugel auch tatsächlich über den äußersten Kreis messen könnt? Die Idee mit dem Laser finde ich richtig gut, doch muss er auch genau den "Äquator" der Kugel erreichen, sonst ist's nix mit 12,7
Ich war jetzt mal ein paar Lichtschranken bestellen. Wenn sie da sind, werde ich auch mein Ergebnis hier dokumentieren.