Mit Lichtschranke Momentan Geschwindigkeit bestimmen. Grenzen der Elektronik?

Ich versuche für ein Physikpraktikum mit zwei Grove Light Sensoren 1.1 und 2 Calliope’s die Momentangeschwindigkeit einer Kugel am Ende eines Rohrs zu bestimmen.

Problem: Die Streuung der Messungen ist sehr gross und daher frage ich mich, wo die Grenzen der Sensoren und des Programmablaufs liegen. Wie schnell sind die Messzyklen? Sind sie konstant? Was für eine Reproduzierbarkeit darf ich erwarten? (Der Luftpolstereffekt beim Gleiten kann es auch noch sein.) Bei einer Geschwindigkeit von 2m/s und 1cm Messstrecke bin ich im Bereich von 5 ms zwischen den Messungen. Bei der Übertragung des Startimpuls verliert man etwas 1ms, was man kompensieren kann.
Hat jemand damit schon Erfahrungen gemacht? Könnte alternative Sensoren verwenden? Hall-Sensoren oder Bewegungsensoren?

Noch etwas konkreter:
Mit einem 3 D Drucker habe ich eine Halterung für zwei Sensoren mit einem Abstand von ca 2 cm erstellt und am Ende der Röhre angebracht. Gegenüber den Sensoren leuchten 2 Dioden.

1. Messmethode:

  1. Calliope wird gestartet und schickt ein Funksignal zum zweiten Calliope. Damit wird jeweils der t 0 Zeitstempel gespeichert. (Zeitverzögerung durch den Funk ca 1 ms).
    Wenn die zweite Lichtschranke schliesst, schickt sie die Zeit zur ersten C, der die Geschwindigkeit ausgibt. Am OLED Bildschirm kann ich die Zeiten ansehen.
    Die Messresultate sind in etwa in der richtigen Grössenordnung, streuen aber sehr stark. (zu stark! Faktor 1.5-2)

2. Methode:
Lasse statt einer Kugel eine Batterie runter sausen und messe die Verdunkelungszeit an einem Sensor. Bei meiner Anordnung bekomme ich so zwei unabhängige Messresultate. Erstaunlicherweise bekomme ich immer die gleichen Zeiten (auf Microsekunden gleich) und bei beiden C die gleichen Zeiten- sogar unabhängig von Steilheit der Röhre. Da stellen sich die gleichen Fragen zur Elektronik wie bei Methode 1.

Bei der Auslösung von die Hand funktionieren die Methoden. Das Problem kommt mit den kurzen Messzeiten.
Das wärs für den Moment. Bei Interesse kann ich noch die Codes hochladen.

Hallo @Robert

das ist ein super Projekt!
Schreib doch mal deinen Code hier ins Forum, dann hat man besser die Möglichkeit deinen Weg zu sehen und kann evtl. direkt Optimierungen vorschlagen.
Beste Grüße
Jörn

Hallo Jörn, das Interesse freut mich.
Noch was zu den Codes.

  1. Methode mit 2 Calliope. Dafür gibt es ein …First und ein …Second File.

Bei dieser Methode habe ich immer wieder negative Zeiten (3 auf 10). Das heisst, dass die Batterie mit ca 4 cm nicht mit ihrer Nase die Schranke auslöst, sondern später. Wieso eine Batterie? Ich hatte gerade nichts bessers. Eine etwas zu kleine Kugel löste nicht immer aus. (eben) Die Erschütterung hatte zu Beginn teilweise auch die LED’s aus und eingeschalten. Doch dieses Problem konnte ich eliminieren. Auslösen durch Erschütterung und Verdunkeln durch den Handschatten sind eliminiert.
Ich überlege mir, ob ich nicht ein Experiment mit Schaltung bauen kann, wo ich diese Nicht-Reproduzierbarkeit nachweisen kann.

  1. Methode mit 1 Calliope gibt es nur ein File. …One
    Ich hoffe, dass die „Codiersprache“ nachvollziehbar ist. Sonst was sagen.

Den Funkfehler (Delay beim Start) habe ich mit dem 3. Programm bestimmt. ca 1 ms

Vielen Dank und Gruss
Robert

mini-Lichtschranke_Second (1).hex (669,7 KB)
mini-LichtschrankeFirst (19).hex (668,9 KB)

mini-LichtschrankeOne (15).hex (660,0 KB)

mini-Funkfehler-bestimmen (4).hex (671,6 KB)

Hallo Robert,

es ist bestimmt einen Versuch wert, die Zeitmessung mit Ereignissen zu versuchen anstatt in einer „dauerhaft“ Schleife.

Schau mal hier, nur als Beispiel:

Jegliche Ausgabe auf dem Display würde ich in den Ereignis - Blöcken dann aber weglassen,
sobald das funktioniert.

Gruß Raik

Ich denke auch, dass mit den Ereignissen hier genauere Ergebnisse erzielt werden.

In der Kategorie „Steuerung“ finden sich zu den Ereignissen auch weitere Blöcke. Im Anhang eine ungetestete Variante, die vielleicht bessere Ergebnisse liefert (ich habe tatsächlich mit den Rise und Fall Events noch gar nichts gemacht bisher).

Eventuell können die Wenn-Dann Blöcke auch noch weg gelassen werden, schließlich brauchen die ja auch Laufzeit.

mini-LichtschrankeOne.hex (659,6 KB)

Vielen Dank für Eure Beiträge. Werde mich der Sache annehmen und mich dann mit den Resultaten wieder melden. Schöne Zeit. Gruss. Robert

Möchte Euch über den Tipp zur Eventmethode Danke sagen:
Aktueller Zwischenstand:
Bei der für mich neuen Methode „Event“, konnte ich mit dem Druckknopf A ein Event auslösen und die Eventzeit auslesen. Mit dem Lichtsensor auf Pin16 und Rise/Fall bekam ich es nicht hin. Das Lichtsignal schwankt deutlich, so weiss ich nicht genau, was Fall/Rise bedeutet. Wann wird das Ereignis ausgelöst? Fand noch nichts dazu.
Gehe jetzt einen weiteren Weg.
Vom Zeitbedarf her, müsste es eigentlich ein digitaler Sensor sein, der 0/1 schaltet. So habe ich heute einen Grove - Digital Distance Interrupter 0.5 to 5cm(GP2Y0D805Z0F)(P) und Grove Hall Sensoren bestellt und werde diese Sensoren mit der Eventmethode testen.
Bis bald. Robert

1 „Gefällt mir“

Hallo zusammen
Ich bekam kürzlich die beiden Sensoren (IR interrupter V1.2 und den Hall-Sensor von Grove). Zuerst versuchte ich den IR Sensor zu verstehen bzw zu schalten. Ich testete die Anschlüsse A und B (entsprechend Pin 16,17 und 18). Dann testete ich auch Eventmethode. Ich bekomme eine simple ON/Off Schaltung nicht hin. Muss ich den Sensor zuerst von NULL auf „0“ setzen? Seht Ihr einen Standardfehler, den ich mache. Den blinden Fleck? Eine Antwort würde mich freuen. Teste dann noch den Hall Sensor. Ich lade noch die beiden Kurzprogramm hoch. Merci. Robert
mini-IR_Sensor_Ereignis (1).hex (641,7 KB)
mini-IR_Sensor (8).hex (642,5 KB)

Ich habe den Sensor nicht da. Laut Schaltplan ist er, wenn er am rechten Groveport angeschlossen ist an C 16 angeschlossen. Das ist bei Dir schonmal richtig.

dann würde ich den Sensor erstmal ohne Eventhandler abfragen
grafik
eventuell die Sensorempfindlichkeit enstellen. Soweit ich verstehe müsste auch die LED am Sensor leuchten (oder halt nicht ) Grove - IR Distance Interrupter v1.2 - Seeed Wiki

Wenn das läuft kannst Du dich an den Eventhandler machen.

Eventuell auch pulse_low verwenden.
Ich meine Du musst den Microbitpin P2 verwenden weil P2 am microbit mit C16 am Calliope identisch ist (Dezimalwert 9) Leider sind die Pins für den Calliope mini für die Events nicht angepasst worden.

Viel Erfolg!

Michael

Zum Teil 1: Das funktioniert jetzt soweit gut. Es lag an der Empfindlichkeit. Merci.
Prog1 zeigt Deinen Vorschlag. Prog2 versucht die Zeit zu bestimmen, welche bei einer Auslösung vergeht. Die minimale Zeitdifferenz, welche mit dieser Art Programmierung zu messen ist, betragen 23ms. Das könnte man mit den Schülern auf diese Art austesten. Und dann…entweder mit 2 Sensoren arbeiten oder mit der Eventprogrammierung oder beidem.
Der Einbau des Sensors in der Röhre löst auch ohne Kugel aus. Die Rohrgegenseite ist zu nahe. Muss anders gelöst werden.
Teil 2 mit der Eventprogrammierung folgt.
Vielen Dank und schöner Abend
Robert
mini-IR_Interrupt_Basis_iO.hex (640,2 KB)
mini-IR_Interrupt_Basis_dt (2).hex (642,2 KB)

1 „Gefällt mir“

Teil II: Mit der Event Methode

Der IR Sensor arbeitet nur korrekt, wenn man im unbeleuchteten Zimmer arbeitet. Er ist empfindlich auf störende Lichtquellen. Das war das Urproblem meiner Anfangsschwierigkeiten mit diesem Sensor.
Ich konnte mit dem ON und OFF des Sensors eine Zeitunterschiedsmessung von minimal 23ms erreichen. Dann war fertig - wie gehabt.
Bei der Event Methode komme ich nicht weiter. Habe mit verschiedenen Events rumgepröbelt. Pin 2/16 und auch andere (Rise / Pulse …). Ich kann auch den Druckknopf A Event nicht auslösen. Schade. Der Sensor leuchtet schön auf, wenn man ihm zu Nahe kommt, was hilfreich ist. Jetzt gibt es eine Pause. Oft braucht es mehrere Anläufe. Gruss Robert
mini-testevent (8).hex (639,9 KB)

Hier hatte ich einen eigenen Eventhandler für den Fischertechnik Fototransistor. Du müsstest allerdings die Erweiterung umbauen und statt Analogpins den Digitalpin verwenden. Oder bestellst Dir die Teile von Fischertechnik einzeln.