Archiv verlassen und diese Seite im Standarddesign anzeigen : Stoppuhr mit "Sollbruchstellenauslöser"
Hallo,
das passt jetzt vielleicht nicht ganz zum Thema Roboter, aber vielleicht hat ja jemand 'ne Idee.
Ich brauche eine Stoppuhr, mit der ich die Geschwindigkeit eines Tennisballs messen kann (der geradlinig fliegt) Die Stoppuhr muss 1/100 sek anzeigen können.
Ich dachte mir, ich schließe (wie?) an die Stoppuhr (handelsübliche Sport-Stoppuhr) zwei Stücke Alufolie, o.ä. an, durch die der Tennisball fliegen soll (und diese zereißen soll). Wenn ich dann die Strecke (ein paar Meter) zwischen der "Start- und Endfolie" kenne, könnte ich die Geschwindigkeit ja ausrechnen.
Die Frage ist nur, wie lässt sich die Kombination Folie - Stoppuhr umsetzen.
Die Stoppuhr braucht wahrscheinlich einen Stromimpuls, um zu starten und nicht eine Unterbrechung, wie es bei der Folie sein wird.
Danke schon mal!
Gruß
Alex
Calis007
28.06.2012, 11:01
Kommt mir etwas kompliziert vor.. wie willst die Folien treffen?
Andere relativ einfache Ideen zur Geschwindigkeitsmessung:
Stroboskopblitz und (Photo-)Zeitaufnahme im Dunkeln
Videoaufnahme und frames zaehlen
Akustisch Differenz Schlaggeraeusch+Aufprallgeraeusch messen
Lichtschranken+Mikrokontroller
Als 'Stoppuhr' wuerde ich sowieso einen Mikrokontroller nehmen, dann isses egal, ob ein Kontakt geschlossen oder geoeffnet wird ..
"Videoaufnahme und frames zaehlen" klingt für mich am einfachsten und genausten. Machen die ja beim Crashtest auch so. Klebst du mit Klebeband eine Art Lineal auf den Boden bzw die Wand und filmst das ganze mit den üblichen 30 Frames oder was deine Cam/Handy aufnimmt. Ist dann nicht so super genau, weil du ja keine Zeitlupenkamera hast, aber könnte reichen. Musst halt etwas weiter weg gehen mit der Kamera, wenn die Bälle zu schnell fliegen, damit mehr im Bild ist. Dann musst ja nur noch 2 aufeinanderfolgende Frames am PC angucken und anhand des "Lineals" im Bild vergleichen, wie weit der Ball in diese 30stel Sekunde gefolgen ist.
Oder wenn es leise ist und du das nicht über einen uC machen willst, dann wäre "Akustisch Differenz Schlaggeraeusch+Aufprallgeraeusch messen" vielleicht sogar einfacher. Einfach ein Mikro in die Mitte stellen, aufnehmen und dann am PC im Audioeditor gucken, wieviel Zeit zwischen beiden Ausschlägen vergangen ist. Das kannst dann ja bequem an der Skala ablesen. Musst dann nur noch die Strecke zwischen Aufschlag und Auftreffen kennen.
Bei den Lichtschranken hast wieder das gleiche Problem wie mit der Alufolie. Da musst wirklich genau treffen.
Edit:
Was ich mir noch vorstellen könnte wäre ein preparierter Tennisball. Also kleine Knopfzelle + Attiny + Beschleunigungssensor. Der Attiny zeichnet dann die Zeit zwischen den ersten 2 sehr starken erschütterungen auf.
Oder statt dem Beschleunigungssensor ein Funkempfänger. Richtest dann 2 sendende Richtantennen im festen Abstand aus. Der Attiny misst dann die Zeit zwischen dem Empfang des Signals von der 1. und 2. Antenne. Wenn du das ganze noch automatisieren willst, könnte der Ball dann auch gleich noch das Ergebnis zurückfunken und auf der Empfangsseite lässt dir das Ergebnis dann auf einem LCD anzeigen.
Aber das ist dann vermutlich schon wieder alles viel zu aufwändig, wenn es auch einfach eine Videoaufnahme tut.
Hi,
ok - wahrscheinlich ist mein Vorschlag hier in einem Bastel-Forum nicht wirklich willkommen (und eine Kaufempfehlung schon 3x nicht), aber vielleicht ist das ja trotzdem interessant für dich: http://www.teamsportbedarf.de/volleyball/sportradar-v-maxx-speed-check/a-1046/?ReferrerID=98. Damit kannst du die Geschwindigkeit mit Radar messen, und 70€ finde ich dafür noch ganz ok (außer du brauchst es wirklich nur einmal für dich, dann wäre es wohl überzogen).
Anyway, viel Spass beim Messen ... :shock:
Hallo,
danke erst mal für die vielen Vorschläge.
Videoaufnahme (und das Radargerät) sind zu langsam, außer man hat eine High-Speed-Kamera (die aber zu teuer sind). Mit den üblichen 30, oder 60 fps gibt das ganze nur einen gelben Strich in einem frame und im nächsten ist schon wieder nichts mehr zu sehen. Weiter weg kann ich auch nicht.
Das mit dem Mikro werde ich noch versuchen, aber kann mir vorstellen, dass der Hall das ganze erschwert.
Da der Ball (habe ich erwähnt, dass es sich um eine Tennisballwurfmaschine handelt ? ;) ) immer geradlinig fliegt wäre mir die Alufolien- / Lichtschrankenvariante lieber. Ist das mit einem Atmel ohne fortgeschrittenen Programmierkenntnisse möglich?
Gruß
Alex
masasibe
04.07.2012, 19:02
Solange das mit dem Zerreißen der Alufolie vom Mechanischen her klappt denke ich, ist das mit dem AVR kein großes Problem mehr. Ein paar Programmierkenntnisse wirst du schon brauchen für Timing und Zeitmessung, aber dazu gibts sehr gute Tutorials im RN-Wissen und im Mikrocontroller.net und hier im Forum kann man dir sicher auch helfen. Hast du denn schon einmal einen AVR programmiert? Wenn ja ist der Einstieg ja schon geschafft und es sollte wirklich kein großes Problem für dich sein.
mfg masasibe
Generell würde wahrscheinlich auch die erste Idee (Stanniolstreifen und handelsübliche Stoppuhr) gehen. Das Problem ist, dass man nicht weiss, was in der Stoppuhr drin ist - bis man sie auseinandergeschraubt hat. Erst wenn man das weiss, kann man sich überlegen, wie man die Schaltung erweitern muss um die Uhr mit den zerreißenden Metallstreifen zu triggern.
Noch eine mechanische Idee zum Messen der Geschwindigkeit: Man schießt in eine Art Trichter hinein, in dem der Ball stecken bleibt. Der Trichter wird z.B. an einem Pendel befestigt. Der maximale Pendelausschlag (und die ausgewogene Masse des Balls) sind ein Maß für die Ballgeschwindigkeit.
Hi,
also wenn ich es basteln müsste, dann würde ich eine alte / billige Tastataur mit USB-Anschluss nehmen und zwei Tasten abgreifen (hab ich schon ein paar Mal für andere Projekte so umgesetzt) und dann via AutoIT eine Zeitüberwachungsroutine schreiben:
#Include <Misc.au3>
#include <GUIConstantsEx.au3>
;DLL öffnen und Handle übergeben
Global $dll_handle = DllOpen("user32.dll")
Global $start
;GUI erzeugen
$Form1 = GUICreate("Zeitüberwachung", 280, 263, 566, 181)
$ausgabe = GUICtrlCreateEdit("", 16, 8, 241, 241)
GUISetState(@SW_SHOW)
;Aktionen überwachen
While 1
;'A' für 'Start'
If _IsPressed(41, $dll_handle) Then
$start = TimerInit()
GUICtrlSetData($ausgabe, "Start... ")
;'B' für 'Stop'
ElseIf _IsPressed(42, $dll_handle) Then
GUICtrlSetData($ausgabe, "Stopp (" & Round(TimerDiff($start), 2) & " ms)" & @CRLF)
EndIf
;GUI überwachen
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Das wäre jetzt natürlich noch erweiterbar, so dass man alle Zeiten speichern kann, ebenso den Durchschnitt, Min, Max etc. Der Nachteil ist halt, dass du dann ein Laptop mitnehmen müsstest... Aber es ist ja auch nicht so ganz klar, welchen Umfang dein Projekt hat, oder was du genau machen willst. Aber falls das für dich eine Option sein sollte, könnte ich dir dabei gerne noch weiterhelfen.
Gruß
Rainer
Wenn du wirklich nur 2 Flanken messen willst, wäre das mit einem Atmega z.B. recht einfach. 1x Atmel-Microcontroller, 1x 10k-Widerstand, 2x 100nF-KerKos, 3x Mignon-Batterien, 1 LED, Bastelplatine, bischen Draht und fertig. Bräuchtest dann aber noch ein billiges Programmiergerät.
Nimmst dann den Timer1 zur Zeitmessung.
Ohne Prescaler würde der dann die Zeit in einer 8.000.000stel Sekunde auflösen und der maximale Messraum wäre unter einer 100stel Sekunde.
Bei einem Prescaler von 8 hättest eine Auflösung von 1.000.000stel Sekunde und der MEsszeitraum wäre 65 Millisekunden.
Bei einem Prescaler von 64 hättest eine Auflösung von einer 125.000stel Sekunde und einen Messzeitraum von einer knappen halben Sekunde.
Letzteres wäre denke ich ganz gut.
Die erste Alufolie legst du auf Masse, hängst die an den INT0-Eingang vom Atmega und aktivierst den internen Pullup vom Int0-Pin. Dann aktivierst den Int0-Interrupt und stellst ihn auf steigende Flanke und in der dazugehörenden ISR setzt du Timer1 auf 0 und startest Timer1. Sobald die Alufolie also komplett zerissen ist, fängt der Timer an zu zählen.
Bei der zweiten Alufolie machst das gleiche nur halt mit INT1. Sobald INT1 auslöst wird der Timer angehalten und der Timerrstand gespeichert.
Schon hast eine Zahl zwischen 0 und 35536 welche in 125.000stel Sekunden die Flugzeit angibt.
Jetzt müsstest dir die Zeit noch irgendwie ausgeben lassen.
-LCD-Display
-10 LEDs die für 0 bis 9 stehen und nacheinander Blinken
-1 LED oder Beeper, welche dir das Ergebnis per Morsecode ausgeben
-16 LEDs die du über eine 4x4 MAtrix anschließt und die das Ergebnis binär ausgeben
-per Bluetooth an Handy
-per RS232-USB-Wander direkt vom Atmega zum PC
ok danke! Das klingt machbar. Ich werde mir die Bauteile bestellen und mein Bestes geben. Falls ich hardware- oder programmiertechnisch nicht weiterkomme, melde ich mich wieder.
Danke + Gruß
Alex
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.