AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Maus als Sensor am PC

Ein Thema von laube53 · begonnen am 8. Dez 2011 · letzter Beitrag vom 16. Dez 2011
Antwort Antwort
Seite 1 von 2  1 2      
laube53

Registriert seit: 10. Feb 2011
Ort: Berlin
10 Beiträge
 
#1

Maus als Sensor am PC

  Alt 8. Dez 2011, 22:02
Ich möchte eine optische Maus als Bewegungssensor nutzen.
Die Roboter-Bastler machen das schon lange, aber sie steuern mit Mikrokontrollern, d.h. sie nutzen einen seriellen Zugriff auf den Maus-Chip.
Hat jemand einen Tip, wie das mit Delphi (unter USB) gemacht werden kann?

Ich habe mit der JvHIDController-Klasse (JEDI) herumprobiert.
Stecke ich (in der ReadWriteDemo) einen Joystick an, sprudeln die Daten - wunderbar.
Stecke ich eine (zweite) Maus an, wird das zwar gemeldet, aber ich kann keine Daten empfangen.
Vermutlich liegt das daran, dass Windows alle Mäuse exklusiv für das System öffnet.
Die Abfrage
TJvHidDevice.HasReadWriteAccess
wird auch negativ beantwortet.
Wenn ich sie auskommentiere, ergibt der Lesezugriff
Device.ReadFileEx(Report[0], Device.Caps.InputReportByteLength, @DummyReadCompletion)
natürlich einen Fehler (GetLastError = 5, d.h. access denied).

Es ist wohl nicht so einfach (und vielleicht auch ein Sicherheitsproblem), einer Maus beizubringen, sie solle sich als Nicht-Maus ausgeben.
Dann könnte man sich ja auch als Tastatur ausgeben und unbemerkt Daten eingeben (s. Heise).

Hat jemand einen Hinweis?

Laube53
Thomas Lauer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.016 Beiträge
 
Delphi 12 Athens
 
#2

AW: Maus als Sensor am PC

  Alt 8. Dez 2011, 22:10
Für diese Maus einen Treiber installieren, welcher sich nicht als Maus-Treiber ausgibt?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#3

AW: Maus als Sensor am PC

  Alt 8. Dez 2011, 22:36
Warum nimmst Du nicht einen RICHTIGEN Bewegungssensor?
http://www.robot-electronics.co.uk/htm/cmps09doc.htm
http://pishrobot.com/files/products/...ets/cmps09.pdf
Nachfolger:
http://www.dfrobot.com/index.php?rou...product_id=137
http://www.robot-electronics.co.uk/htm/cmps10doc.htm

Geändert von hathor ( 8. Dez 2011 um 22:39 Uhr)
  Mit Zitat antworten Zitat
laube53

Registriert seit: 10. Feb 2011
Ort: Berlin
10 Beiträge
 
#4

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 20:17
Vielen Dank für die Tips.

Der vorgeschlagene CMPS10 ist eine interessante Platine, aber ein Kompass.
Der eingebaute Beschleunigungssensor dient vorrangig der Kompensation bei Schräglage.
Die Position kann man aus den Beschleunigungswerten natürlich errechnen; man muss aber zweimal integrieren, und damit geht die Zeit quadratisch ein. Selbst bei Ruhelage würde ein leicht verstimmter Beschleunigungssensor mit der Zeit große Positionsabweichungen ergeben. Eine Maus, die nicht bewegt wird, lässt den Mauszeiger aber ziemlich gut in Ruhe.

Der Vorschlag, einen veränderten Maustreiber zu schreiben, ist für Profis bestimmt richtig.
Meines Wissens lässt sich mit Delphi da nicht viel ausrichten.
Außerdem: Die Zuordnung eines Geräts, das sich gerade verbindet, zu einem Treiber übernimmt Windows, und zwar anhand der VendorID und ProductID, die das Gerät ihm bei der Kontaktaufnahme zusendet. Ohne hier einzugreifen (was ich mir schwierig vorstelle) nützt auch ein neuer Treiber nichts.
Thomas Lauer
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 20:39
Der CMPS wird sogar in Erdbeben-Anzeige-Programmen genutzt.
Du hast offensichtlich nicht alles gelesen oder nicht alles verstanden!
Wenn der Chip bzw. die Platine nicht bewegt wird, werden immer die gleichen Werte für X, Y, Z gesendet.
Wo ist das Problem?

Es ist ein Chip zur Messung der Beschleunigung und zur Lage im Erdmagnetfeld.

Man kann die Werte entweder als absolut oder relativ interpretieren, um z.B. eine Cursor-Steuerung (wie ich es gemacht habe - Stichwort: HEADTRACKER) zu realisieren.

Geändert von hathor ( 9. Dez 2011 um 21:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 20:54
man kann schon, aber alles abgesehn von Lage und Beschleunigung nur mit extremem Rechenaufwand, bei dem sich langfristig dann Ungenauigkeiten bezüglich der Position einschleichen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
laube53

Registriert seit: 10. Feb 2011
Ort: Berlin
10 Beiträge
 
#7

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 21:32
Ob mit dem Baustein CMPS10 (Überschrift in der Dokumentation: Tilt Compensated Compass Module) eine Positionsbestimmung so genau und schnell möglich ist, wie ich es gerne hätte, weiß ich natürlich nicht, dazu muss ihn ausprobieren. Dass man die Beschleunigungswerte ebenfalls auslesen kann, ist mir nicht entgangen; allerdings nur mit ca. 75 Werten pro Sekunde.

Ich wollte auch keine Erdbeben registrieren, sondern eine laufende Fahrradfelge mit einem optischen Sensor erfassen und die zurückgelegte Entfernung als Referenzgröße benutzen.
Vielleicht ist das ja eine schlechte Idee, aber eigene Ideen machen halt mehr Spass.

Hathor: Kannst du etwas über die mit dem CMPS10 erzielbare Genauigkeit sagen?
Thomas Lauer
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#8

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 22:05
Was Du vorhast, kann man ganz einfach mit einem Fahrrad-Computer für 10 EUR machen, die zur Erfassung der Radumdrehungen mit einem Reed-Kontakt und einem Magneten arbeiten.
Es gibt auch drahtlose Ausführungen.

Der CMPS ist für Dein Vorhaben völlig deplaziert.
Zur Genauigkeit:

CMPS03, CMPS09: - 3 bis 4 Grad nach Justierung

CMPS10: 0,1°

Geändert von hathor ( 9. Dez 2011 um 23:22 Uhr)
  Mit Zitat antworten Zitat
laube53

Registriert seit: 10. Feb 2011
Ort: Berlin
10 Beiträge
 
#9

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 22:56
Ich benötige die Rad-Position in Millimeter-Genauigkeit. Das Rad dreht sich nur langsam; am Fahrrad montiert ist ein Laser-Sensor (mit Triangulierung), der den Straßenbelag vermisst. Wie das mit ein paar Reed-Kontakten gehen soll, sehe ich noch nicht. Man könnte aber über eine feine, sich mitdrehende Scheibe nachdenken, wie sie in mechanischen Mäusen verbaut wurde.
Thomas Lauer
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#10

AW: Maus als Sensor am PC

  Alt 9. Dez 2011, 23:06
Man kann doch die Zeitdifferenz zwischen 2 Reed-Kontakt-Schliessungen durch 360 teilen und erhält zu jedem Zeitpunkt den Winkel.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz