WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

USB Maus auslesen

 

n.force
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 27.09.2012, 13:49     Titel: USB Maus auslesen
  Antworten mit Zitat      
Hallo liebe Mitglieder,

ich habe ein kleines Problemchen. Wir basteln an der Uni gerade an einem Octocopter. per USB würde ich nun sehr gern die Sensordaten in Matlab einlesen.

Ich dachte mir, dass ich zuerst mal versuche, meine USB Maus auszulesen, um prinzipiell zu verstehen wie das ganze funktioniert.

Leider habe ich keine Ahnung wie das geht.

Ich habe die Funktion
Code:

gefunden.

Könnte es damit funktionieren? Wenn ja wie? vielen Dank für eure Hilfe
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.09.2012, 08:49     Titel: Re: USB Maus auslesen
  Antworten mit Zitat      
Hallo n.force,

Die Maus-Daten werden zunächst mal von Betriebssystem abgefangen und verwendet, natürlich zum Bewegen des Pointers. Möchtest Du die Pointer-Position auf dem Bildschirm bestimmen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 28.09.2012, 10:28     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen Dank für deine Antwort. Eigentlich möchte ich mit den Daten nichts weiter anfangen. Ich möchte einfach nur die Daten anzeigen lassen, welche die Maus sendet.

So irgendwie:
Code:

for i=1:1:n
mausdata(x-wert)
mausdata(y-wert)
end
 


Es geht mir also prinzipiell darum, zu verstehen wie ich einen USB Port auslesen kann, um die Sensordaten unseres Octocopters auslesen zu können.

Ich hoffe, dass ich mir das ganze nicht zu einfach vorstelle und es tatsächlich eine praktikable Möglichkeit gibt...

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.09.2012, 11:49     Titel:
  Antworten mit Zitat      
Hallo n.force,

Eine USB-Maus senden einen recht komplexen Datenstrom. Darin identifiziert sie sich als Maus und ob die gesendeten Daten die Position oder den Zustand der Tasten bedeuten.
Das war in den Zeiten der PS2 bzw. seriell-angeschlossenen Mäuse noch anders.

Was möchtest Du also genau erreichen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 28.09.2012, 11:52     Titel:
  Antworten mit Zitat      
Ok,

ich merke also, es scheint sehr kompliziert zu sein.

Dann möchte ich mich darauf beschränken, ausgeben zu lassen, ob die linke Taste gedrückt ist oder nicht.

Geht das?
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 12:18     Titel:
  Antworten mit Zitat      
Also es ist eigentlich unnötig sich mit USB Programmierung in diesem Fall auseinander zu setzen. Außerdem würde man keinen direkten Zugriff auf die Hardware erhalten, denn aus sicherheitstechnischen Aspekten laufen Treiber, die mit der Hardware kommunizieren in einem anderen Bereich als normale Anwendungen. Zusätzlich gilt heute, dass das OS ein Multitasking System ist und damit nur eine Komponente ein Device exklusiv im Zugriff hat und dies ist das OS.

Hänge Dich einfach an das entsprechende Interface des Betriebssystem und Du bekommst die Informationen. Das ganze lässt sich via Mex dann in Matlab einbinden

siehe für Windows http://msdn.microsoft.com/en-us/lib.....op/ms645543(v=vs.85).aspx
Bei Linux, geht dies über das entsprechende Udev Device
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 28.09.2012, 12:55     Titel:
  Antworten mit Zitat      
vielen Dank. dann werde ich mich damit mal intensiver befassen....
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.09.2012, 21:49     Titel:
  Antworten mit Zitat      
Hallo n.force,

Zitat:
Dann möchte ich mich darauf beschränken, ausgeben zu lassen, ob die linke Taste gedrückt ist oder nicht.

Auch das ist nicht leicht. Wenn man z.B. mit der Linken Maustaste auf den Close-Button von Matlab's Command-Window klickt, wird Matlab geschlossen. dann ist das Auslesen der Maustaste nicht mehr machbar... Wenn man in ein Fenster eines anderen Programmes klickt, wird diese Program aktiviert. Auch dann kann Matlab nicht ohne weiteres auf die Maus zugreifen.

Musst Du wirklich unbedingt mit dem kompliziertesten Teil des Mensch-Maschine-Interfaces beginnen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.09.2012, 12:53     Titel:
  Antworten mit Zitat      
Eine allgemeine Diskussion über OS Events wurd nach http://www.gomatlab.de/viewtopic,p,99821.html#99821 verschoben.
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 01.10.2012, 17:07     Titel:
  Antworten mit Zitat      
Zitat:
Musst Du wirklich unbedingt mit dem kompliziertesten Teil des Mensch-Maschine-Interfaces beginnen?


Ich dachte nicht, dass das ganze so kompliziert ist.

Es ist ja so, dass die Maus unentwegt irgendwelche Daten sendet. Kann ich diese denn unproblematisch auslesen? Bzw. die Sensordaten unseres Octocopters? Auch, wenn ich zunächst erstmal nicht weiss was die Daten dann bedeuten...
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.10.2012, 17:12     Titel:
  Antworten mit Zitat      
Hallo n.force,

Ich bin sicher, dass die Daten des Optocopters, was immer das auch sein mag, deutlich einfacher auszulesen sind. Wenn man das Gerät an die USB-Schnittstelle anhängen kann, wird üblicherweise ein C/C++-Programm mitgeliefert, welches die Kommunikation übernimmt.
Andernfalls kannst Du ein USB-Interface auch zur Übermittlung serieller Daten verwenden. Maus und Tastatur stellen nur ein Sonderproblem dar, weil deren Daten von Betriebssystem interpretiert werden und das Abfangen der Daten bereits vom Behaviour-Blocker des Viren-Schutzes als feindliche Aktivität gewertet werden kann.

Werden für den Octocopter irgendwelche APIs zur Verfügung gestellt? Wenn ja, würde ich genau damit beginnen, und nicht mit einem anderen (schwierigeren!) Problem.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
n.force
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 02.03.12
Wohnort: nähe Magdeburg
Version: ---
     Beitrag Verfasst am: 01.10.2012, 17:19     Titel:
  Antworten mit Zitat      
achso, ich dachte es wäre vom Schwierigkeitsgrad genau andersherum Smile

Du hast vollkommen recht, dass ein Programm dazu existiert. Dieses zeigt auch in Echtzeit die Sensordaten an.

Also sagst du, ich müsste nach einer API suchen?

P.S.: Ein Octocopter ist ein Fluggerät mit 8 Motoren an welchem man hervorragend Regel und Steueralgorithmen anwenden kann. Wenn man denn die Kommunikation zum PC hinbekommt Smile

Ich danke dir für deine Mühen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.