Hallo zusammen, bin neu hier und hoffe ich poste das ganze hier im richtigen Unterforum Und zwar muss ich den Rotationswinkel einer Tischkickerstange messen, also einer Stange die sich in rotatortischer und zusätzlich in translatorischer Richtung bewegen kann. Leider komme ich dabei nicht wirklich voran, da die Sensorik zur Erfassung einerseits nicht zu teuer sein darf, aber andererseits für brauchbare Ergebnisse eine schnelle Positionserfassung vonnöten ist. Vernachlässigbar ist dabei die Genauigkeit. 8 Positionen/45° Schritte würden zur Erfassung reichen. Hatte schon diverse Ideen, die aber alle aus verschiedensten Gründen wieder verworfen wurden: Hier mal ein Auszug der Konzepte, die mir am sinnvollsten erschienen mitsamt der Gründe warum ich sie wieder verworfen habe. 1) Drehgeber oder ähnliche Rotationssensoren -> würden aufwändige mechanische Konstruktion erfordern, da ja ein Teil des Drehgebers nicht mitrotieren darf, sich aber translatorisch mit der Stange bewegen muss. 2) Erfassung mittels Kamera (von oben, oder mittels mehrerer Kameras an den Stangenenden) -> benötigen zu viel Rechenaufwand des Computers zur Auswertung, da der Rechner durch andere Prozesse schon nahezu ausgelastet ist 3) Erfassungs mittels Beschleunigungssensoren -> die Stange hat wohl zu viele Vibrationen, die sich negativ auf das Messergebnis auswirken würden. 4) Erfassung mittels Abstandsensoren(IR-Triangulationssensoren). Hierbei würde einerseits der eigentliche translatorische Abstand eines Bezugspunkts an der Stange zum Sensor ausgewertet werden, und parallel dazu ein "codierter" Abstand. Und zwar werden dabei an der Stange Reflexionsflächen angebracht, die sowohl rotatorisch als auch translatorisch versetzt sind. So lässt sich dann durch Subtrahieren des eigentlichen Abstands vom "codierten" Abstand der Rotationswinkel errechnen. -> momentan favorisiert, aber wahrscheinlich zu langsam für brauchbares Ergebnis. Lange Rede, kurzer Sinn: Hat hier vielleicht irgendjemand noch einen Ansatz oder einen Sensor, mit dem man den Rotationswinkel einer auch in translatorischer Richtung bewegten Stange schnell (sagen wir mal <50 ms) und einigermaßen kostengünstig (<60 Euro pro Stange) erfassen könnte?
wie wäre es, die stangen längs mit einem schwarzweiß-streifenmuster zu lackieren und an der lagerung eine reflexlichtschranke zu installieren? damit sollte die rotation ausreichend genau erfasst werden können, und eine bewegung in translatorischer richtung macht nichts, wenn das muster sauber längs zur stange lackiert ist...
Hast du mal einen Aufbau mit einfachen Reflexlichtschranken ausprobiert? Die Welle kannst du z.B. mit schwarzem Isolierband in einige Abschnitte teilen. Da müsste man wohl einen machbaren Kompromiss finden, abhängig vom Durchmesser, Auflösung vom Sensor etc. Neben der Welle sitzen dann (leicht versetzt) zwei IR-Sensoren, z.B. CNY70. Wenn man die Welle dreht, müsste man Signale bekommen wie hier beim Drehgeber gezeigt. Die Streifen müssen entsprechen lang sein, dann sollte es auch egal sein wenn die Welle sich nur verschiebt. Sprünge im Signal wegen Unebenheiten, Schmutz etc. sollte sich erkennen lassen, wenn der Kontrast zwischen Welle und Isolierband groß genug ist.
Ein paar lange Barrenmagnete im Rohr deponieren (Magnetfeld parallel, Gesamtlänge >= Verschiebeweg) und mit Hallsensoren am Lager die Richtung des Magnetfeldes messen?
@ Philipp S. (sponk) >1) Drehgeber oder ähnliche Rotationssensoren -> würden aufwändige >mechanische Konstruktion erfordern, Keine Sekunde. Ein Nut in der Stange greift in eine Nase im Drehgeber, fertig. OK, man braucht einen mit ner Hohlwelle, aber die gibt es bzw kann man ggf. bauen. >2) Erfassung mittels Kamera (von oben, oder mittels mehrerer Kameras an Viel zu aufwändig und fehleranfällig. >3) Erfassungs mittels Beschleunigungssensoren -> Dito. >4) Erfassung mittels Abstandsensoren(IR-Triangulationssensoren). KISS! Der Verschlag mit dem Längsmuster und der Erkennung ist auch gangbar. Wobei man das sicher nicht lackiert, sondern auf ein Stück Klebefolie druckt und aufklebt. Ist dann ein Absolutwertgeber. MFG Falk
An einem Drehgeber ein Gummirad montieren und dies an der Stange reiben lassen. Gruß Jobst
Erstmal danke an alle für die schnellen Antworten :) @Hannes: Eine Erkennung ähnlich der von dir beschriebenen, hatte ich auch schonmal ins Auge gefasst. Allerdings wollte ich das Muster auf Papier drucken und dann auf die Stange aufkleben. Habe das dann wegen dem Verschleiß (die Stange reibt ja immer etwas an der Führungsöffnung des Tischkickers) verworfen. Darauf gekommen die Stange zu lackieren bin ich allerdings clevererweise nicht ;) Das könnte so vielleicht wirklich funktionieren, wenn der Lack robust genug ist. Danke :) @Leo-andres: Dein Vorschlag stößt ja prinzipiell in dieselbe Kerbe. Beim Isolierband sehe ich ebenfalls die Problematik des zu großen Abriebs, aber wäre vielleicht eine Idee das Prinzip mal auszutesten. @ Tom: Muss ehrlich gestehen, dass ich im Moment nicht wirklich einschätzen kann, ob das realisierbar ist. Allerding könnte ich mir gut vorstellen, dass so ein paar Magnetstangen in der Tischkickerstange das Spielverhalten ziemlich negativ beeinflussen würden. @Falk: Okay, ich glaube ich hab bei der Konstruktion für die Drehgeberführung etwas zu kompliziert gedacht. Allerdings gefällt mir die Lösung eine Nut in die Stange zu fräsen (oder wie auch immer man die Nut in die Stange bekommt) nicht so ganz. Würde gerne die Möglichkeit beibehalten, alles wieder in den Ursprungszustand zurücksetzen zu können. Aber das lässt sich vielleich auch anders lösen. Werd ich mir mal Gedanken drüber machen. Danke :) >Der Verschlag mit dem Längsmuster und der Erkennung ist auch gangbar. >Ist dann ein Absolutwertgeber. Ich hab hier n kleines Verständnisproblem: Warum wäre das denn ein Absolutwertgeber, wenn ich dort ein Schwarz/Weiß - Streifenmuster anbringen würde. Wenn ich das so wie von Hannes/Leo-andres vorgeschlagen mache, kann ich doch nur die Farbwechsel zählen und keine absolute Position bestimmen, oder hab ich da irgendwas falsch verstanden? @ Jobst: Also ich weiß nicht, ob ich das jetzt richtig verstanden habe. Du meinst die Stange soll bei einer rotatorischen Bewegung das Rad des Drehgebers drehen? Aber was passiert dann bei einer translatorischen Bewegung? Da üwrde ja dann die Stange immer am Gummi reiben und dadurch einem hohen Widerstand ausgesetzt sein?!
@ Philipp S. (sponk) >Ich hab hier n kleines Verständnisproblem: Warum wäre das denn ein >Absolutwertgeber, wenn ich dort ein Schwarz/Weiß - Streifenmuster >anbringen würde. Wenn man genügend Spuren aufbringt, kann man die absolute Position kodieren. MFG Falk
So nur mal nebenbei weiss aber nicht ob das geht. Wie wäre es mit einem Gyrosensor und µc in der Stange versengt z.b. Griff und per Funk übertragen. So ein Gyro erfasst ja Richtungsänderungen und Beschleunigung damit müsste sich doch was anfangen lassen. oder?
Die Stahlstange an einem überstehenden Ende vertikal, am anderen horizontal magnetisieren, das sollte weil es Eisen ist problemlos durch drüberstreichen mit einem Neodym-Magneten erfolgen können. Knapp unter jeder Stangenführung einen Magnetfeldsensor wie KMZ10/HRS1021 montieren. Damit bekommt man um 90 Grad versetzte Sinus/Cosinus Werte und kann daraus den Drehwinkel der Stange ableiten, so wie es beim KMZ41 gemacht wird http://www.nxp.com/documents/data_sheet/KMZ41.pdf Vermutlich mit 10 Grad Fehler weil die Magnetsierung nicht so perfekt werden wird, aber das hat dich ja nicht gestöt. Ohne Eingriff ins Gerät, nicht mal ausbauen muß man die Stangen, und für 60 EUR, insgesamt, mit OpAmps.
Philipp S. schrieb: > Da > üwrde ja dann die Stange immer am Gummi reiben und dadurch einem hohen > Widerstand ausgesetzt sein?! Schon. Ein wenig. Wenn der Drehgeber keine Kraft benötigt, muß das Gummirad auch nicht sonderlich fest drücken. Evtl. das Gummirad so gestalten, daß es sich bei seitlicher Kraft umbiegt. drahtigelvernascher schrieb: > Mauskugel? Optische Maus? Optischer Beschleunigungssensor? An einer Spielfigur auf der Stange einen Laserpointer montieren. Dieser leuchtet parallel zur Stange und beleuchtet Fotodioden an der Spielwand (von innen) Gruß Jobst
optischen Maussensor hätte ich auch vorgeschlagen. Erste Tests sollten ganz einfach gehen, Maus schlachten, anbringen, PC anschließen und testen wi sich der Mauscursor verhält. Ganz exakt wird man damit aber nicht messen können. Gruß Hagen
@ Klaus:
Auf den ersten Blick scheint ein Gyrosensor gar keine schlechte Idee zu
sein. Wobei ich mal schauen müsste wie ich das per Funk realisiere.
Danke auf jeden Fall mal für den Tipp.
@drahtigelvernascher:
Kannst du etwas genauer formulieren was genau du meinst? Sehe ich das
richtig, dass du damit vorschlagen wolltest dieses Prinzip einer
optomechanischen Maus mit den Rädchen die sich bei Bewegung der
Mauskugel drehen auf die Stangen übertragen willst?
@MaWin:
Also dein Vorschlag klingt sehr interessant.
Allerdings Frage ich mich, ob die Magnetisierung durch einfaches
drüberstreichen überhaupt ausreichend lang auf der Stange erhalten
bleibt.
Hast du da schon irgendwelche Erfahrungen gemacht inwiefern das
funktioniert?
Aber abgesehen davon ist das echt ne Lösungsidee, die ich zwar noch
nicht ganz durchschaue, aber die mich sehr anspricht. Danke auf jeden
Fall schonmal.
@Jobst:
Das Problem wenn sich das Rad bei ner translatorischen Bewegung
"umknickt": Was passiert bei gleichzeitiger translatorischer und
rotatorischer Bewegung. Denke leider nich, dass das so realisierbar ist.
Trotzdem Danke für den Vorschlag :)
>An einer Spielfigur auf der Stange einen Laserpointer montieren.
Kommt für mich leider nich in Frage, würde gerne die Spielfiguren
unberührt lassen soweit das möglich ist.
@Hagen
Werd mir heute Abend mal anschauen wie so eine optische Maus
funktioniert. Danke soweit schonmal.
Philipp S. schrieb: > @Hagen > > Werd mir heute Abend mal anschauen wie so eine optische Maus > funktioniert. Danke soweit schonmal. wie eine hoch spezialisierte Kamera. Sie hat zwar wenige Pixel aber dafür kann sie sehr schnell diese Daten auslesen. Das Linsenssystem vergrößert dabei einen winzigen Ausschnitt der Oberfläche so das der Sensor tatsächlich auch auf relativ glatten Oberflächen noch Unterschiede wahrnimmt. Die gemachten Einzelbilder werden analysiert und deren Versatz zueinander in eine Bewegungsrichtung + Beschleunigung umgerechnet. Mit simplen PS2 Keyboardprotokoll kannst du das auswerten. Dafür erstmal einen PC benutzt und später im WEB zb. für den AVR den PS2 Sourcecode gesucht, davon sollte es ne Menge geben (Microcomputer Projekte mit PS2 Anschluß) Die Kurzzeitgenauigkeit schätze ich hoch ein, die Langzeitgenauigkeit = Drift schätze ich schlechter ein. Man könnte dann optische/mechanische End-Markierungen anbringen die zusätzlich zum Maussensor ausgelesen werden und wie Endschalter an Maschinen funktionieren. An Hand dieser Sensorsignale wird die berechnete Position des Maussensors nachjustiert. Vorteil der Maussensoren ist das sie jede beliebige Bewegungsrichtung + Bechleunigung mit einem Sensor in X/Y Koordinaten umrechnen und diese ausgeben, sowohl als Relativangaben wie auch Absoluten Koordinaten. Das hängt aber vom Controller der Maussensoren ab. Und das alles mit relativ kleiner Bauform. Gruß Hagen
Danke schonmal für deine Erklärung :) Hab da aber noch ein paar Fragen (hoffe nicht zu viele ;) ) Was den Anschluss angeht: Der PS2 Anschluss ist wegen des einfacheren Auslesens der Daten zu bevorzugen, oder gibt es da sonst noch einen Vorteil gegenüber USB? Ein anderes Problem das ich beim Auswerten der Signale sehe: Bei 4 Sensoren (pro Stange einer) benötige ich Microcontroller mit 4 PS2-Anschlüssen. Habe zwar 2 Microcontroller zur Verfügung, die haben jedoch beide keinen PS2 Anschluss. D.h. ich müsste es irgendwie schaffen auf jeden Mikrocontroller zwei PS2-Anschlüssen unterzubringen & zu verarbeiten. Ist das denn prinzipiell möglich bzw. wäre es dann nicht einfacher das Signal irgendwie direkt von den eigentlichen Sensoren abzugreifen? So ganz kann ich mir auch noch nicht vorstellen, wie man den Sensor da am geschicktesten anbringen soll. Hattest du dabei an oberhalb der Stange gedacht? Sodass die x-Komponente die Drehung darstellt und die y-Komponente die Bewegung in translatorischer Richtung? Irgendwie kann ich mir nicht vorstellen, dass die rotatorische Bewegung damit genau erkannt wird. Aber ich bekomm nachher von nem Nachbarn ne Maus zum Ausschlachten, da werd ich damit mal rumspielen. Was die Nachjustierung angeht: Ich sehe da schon ein gewisses Problem. Mal angenommen ich erkenne mittels einer Lichtschranke den Nulldurchgang. Bis das Signal verarbeitet ist und dann die Koordinaten nachjustiert (bzw. auf den Wert des Nulldurchgangs setzt) ist die Spielstange im Spielbetrieb möglicherweise schon wieder in einer anderen Position. D.h. ich würde hier eine sehr schnelle technik zur Erfassung benötigen, damit die Daten nicht am Ende durch das Nullsetzen noch mehr von der Realität abweichen.
> Was den Anschluss angeht: Der PS2 Anschluss ist wegen des einfacheren > Auslesens der Daten zu bevorzugen, oder gibt es da sonst noch einen > Vorteil gegenüber USB? Naja, USB mit einem kleinen Controller wird schwierig da du einen USB-Host benötigst. PS2 ist da schnarch langsam und jeder kleine AVR sollte mit geschickter Programmierung sehr viele PS2 Geräte abfragen können. Wenn ich mich recht erinnere gibt der Controller beim PS2 den Takt der Slaves vor. Dh. man könnte alle Slaves mit gleichem Takt in parallel auswerten. Das musst du aber nochmal genauer recherchieren. > Ist das denn prinzipiell möglich bzw. wäre es dann nicht einfacher das > Signal irgendwie direkt von den eigentlichen Sensoren abzugreifen? Es gibt oder gab diese Sensoren auch mit anderen Schnittstellen, SPI oder I2C zb. Heutztage dürften sie hoch integriert sein und die Zeiten von PS2 gehen ihrem Ende entgegen. Das eigentliche Signal, zB. in analgoer Form, werden diese Sensoren nicht ausgeben. Ich kenne sie nur mit digitaler serieller Schnittstelle. > So ganz kann ich mir auch noch nicht vorstellen, wie man den Sensor da > am geschicktesten anbringen soll. Hattest du dabei an oberhalb der > Stange gedacht? Jo ist aber egal ob oberhalb, unterhalb oder rechts, links von der Stange. Wichtig wäre nur die X/Y Ausrichtugn zur Stange. Am besten natürlich so exakt das zB. Y die Rotation und X die Linearbewegung misst. > Irgendwie kann ich mir nicht vorstellen, dass die rotatorische Bewegung > damit genau erkannt wird. Aber ich bekomm nachher von nem Nachbarn ne > Maus zum Ausschlachten, da werd ich damit mal rumspielen. Ja testen ist wichtig. Ich gehe eher davon aus das die Rotation sehr sauber erfasst wird die Translation aber zu einem Problem wird. Damit meine ich die Geschindigkeiten die sich dabei ergeben können. Sie könnte viel höher sein als für eine Maus nötig und dann geht natürlich mein Vorschlag nicht mehr. Ich weiß aber das man diese Sensoren in ihrer "Updaterate" programmieren kann. > Was die Nachjustierung angeht: Ich sehe da schon ein gewisses Problem. > Mal angenommen ich erkenne mittels einer Lichtschranke den > Nulldurchgang. > Bis das Signal verarbeitet ist und dann die Koordinaten nachjustiert > (bzw. auf den Wert des Nulldurchgangs setzt) ist die Spielstange im > Spielbetrieb möglicherweise schon wieder in einer anderen Position. Jup, Geschwindigkeit ist alles und glaube nicht das der Mensch wirklich schnell wäre im Vergleich zur Elektronik. > D.h. ich würde hier eine sehr schnelle technik zur Erfassung benötigen, > damit die Daten nicht am Ende durch das Nullsetzen noch mehr von der > Realität abweichen. Ich hatte mir das so vorgestellt: einer (oder alle gleichzeitig) Maussensor wird ausgelesen und in deinem Controller summierst du die relativen Bewegungen in einer Variablen auf. Die Endmarkierungen, eher 0-Punkt-Marierungen werden mit einfachsten Lichtschranken gemacht (Phototransistor + Widerstand, IR-LED, Schmitt-Trigger -> PIN des Controllers). Lösst die Lichtschranke aus setzt du die internen Variablen dieser Stange auf 0 zurück. Machst du das nicht und verlässt du dich auf die Integration im Maussensor, liest also dort die Absolutkoordinaten aus, dann wird im Laufe des Spieles durch das Hin- und Herbewegen der Stange dieser Absolutwert mit Sicherheit langfristig wegdriften. Nach einer Zeitspanne wirst du also an der gedachten 0-Position der Stange eben nicht mehr 0,0 auslesen sondern zb. 20,-51 für die X/Y Koordinaten. Der Vorschlag mit den Maussensoren hat seine Unwägbarkeiten, aber ich weiß das in der Roboterszene mit den Teilen erstaunliche Genauigkeiten erzielt werden konnten. Gruß Hagen PS: ok, vergiß das mit dem gemeinsammen Takt bei PS/2 laut Wikipedia wird der Takt vom Gerät erzeugt.
Philipp S. schrieb: > Ein anderes Problem das ich beim Auswerten der Signale sehe: Bei 4 > Sensoren (pro Stange einer) benötige ich Microcontroller mit 4 > PS2-Anschlüssen. Müssten es nicht mehr als 4 Stangen sein ? PS/2 ist für dein Vorhanben nicht das beste Datenprotokoll, USB erst recht nicht. Besser wären synchrone Protokolle mit gemeinsammen Takt, wie SPI zB. Da du immer die gleichen Sensoren benutzt ist deren Datenprotokoll immer identisch zueinander. Mit SPI hättest du die Möglichkeit den Takt durch deinen Controller vorzugeben. Der Controller hat also nur eine Taktleitung nach aussen aber 4 Datenleitungen. Dann benötigst du nur eine Software die alle 4 Datenleitungen in parallel lesen und schreiben kann. Das hätte 2 Vorteile für dich: viel einfachere Software und absolut synchrone Auswertung aller Sensoren. Dein Contoller erzeugt den Takt und liest/schreibt alle Daten synchron zueinander. Ergo: wenn deine Tests mit einer USB-Maus + PC zufriedenstellend sind dann suche Maussensoren (Agilent ehem. HP) die neben USB/PS2 auch SPI unterstützen. Dann suchst du nach billigen Mäusen die diesen Sensor benutzen (was schwieriger wird ;) Ältere optische Mäuse hatten einen Sensorchip und einen separaten Controller. Diese Sensoren nutzten oft SPI zur Kommunikation. Auf alle Fälle würde ich zu einem kontaktlosen System raten das nur wenige Änderungen an der vorhandenen Mechanik erfordet. Gruß Hagen
Ahnungsloser schrieb: > Die Stangen sind i.A. hartverchromt.. Und ? Maussensoren sollten auch damit arbeiten können. Ein Test lohnt in jedem Fall. Gruß Hagen PS: gleich mal getestet, da kein Hartverchromtes Material zu Hause einfach ein auf hochglanz poliertes Edelstahltabelett benutzt und es geht wunderbar.
Also Hagen, erstmal ein weiteres Dankeschön für deine schnellen &
ausführlichen Antworten.
Mal angenommen die ersten Versuche am Tischkicker sind vielversprechend
(komm da leider erst morgen dazu, da der Kicker an der Uni steht)und ich
finde Maussensoren die SPI unterstützen.
Dann habe ich ein bisschen Angst davor, dass das Ganze an den
Anschlüssen scheitert. Die Mikrocontroller (Renesas M16C/6N4), die ich
zur Verfügung habe unterstützen SPI über die serielle Schnittstelle
(UART).
Würde es dann gehen, dass ich das ganze mit einem Adapter von PS/2 (also
dem Ausgang des Chips aus der Maus) auf UART/R232 verbinde, da ja beide
Seiten das SPI-Protokoll unterstützen?
Sorry, falls die Frage etwas dumm ist, aber bin in dieser ganzen
Thematik noch ein Anfänger.
>Müssten es nicht mehr als 4 Stangen sein ?
Eigentlich ja, aber ich muss nur die 4 vom Menschen gesteurten Stangen
erfassen. Die andere Seite wird vom Computer gesteuert und deren
Position durch entsprechende Schrittzähler o.ä. bestimmt.
Hagen Re schrieb: > Und ? Maussensoren sollten auch damit arbeiten können. Ein Test lohnt in > jedem Fall. > > Gruß Hagen > > PS: gleich mal getestet, da kein Hartverchromtes Material zu Hause > einfach ein auf hochglanz poliertes Edelstahltabelett benutzt und es > geht wunderbar. Das "Und?" hast du dir mit deinem Test ja selber beantwortet. Aber in der Tat geht es auch mit einer staubigen, verchromten Kickerstange. Ist also eine Frage der Genauigkeit/Geschwindigkeit.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.