Autor |
Nachricht |
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
bin am WE nicht zu viel gekommen. http://link.mywwwserver.com/~jstookey/arcade/rawmouse/
ist ein ein interessanter Link mit etwas Code zum RawInput (in C/C++). Ich hatte noch ein bischen mit .Net / DirectX9 probiert, aber ich bekomme MouseEvents nur parallel zum Cursor oder exclusiv wenn die Testapp im Vordergrund ist, das ist noch nicht.
Auf der Homepage wird noch ein CPNMouse Project verlinkt, das ist ein Treiber für mehrere Mäuse. Dieser Ansatz könnte auch klappen, habe ich noch nicht probiert.
Den Neuhold Drehgeber habe ich auf jedenfall auch mal bestellt.
|
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Auf die Seite bin ich auch gekommen. Dabei ist mein Problem, dass ich mit C/C++ nichts anfangen kann. Versteh's einfach nicht auf Anhieb Ich denke, ich werde mal ein kleines Programm in VB schreiben, das Mausbewegungen in Tastaturbefehle umwandelt. Die Lösung ist dann allerdings nur für 1 Eingabegerät gedacht
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Beim Auseinandernehmen meiner Maus ist mir aufgefallen, dass in ihr die Elektronik etwas anders verbaut war. Das Mausrad ist seitlich angebracht und direkt an einen Drehgeber angeschlossen.
Denke, dass man das Proket auch über Mausrad und dessen Button laufen lassen kann. Das hat den Vorteil, dass es nicht zu Überschneidungen mit einem TS kommt.
Was meint Ihr?
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Der Drehgeber ist eingetroffen Ein echt gutes Gerät. Kompakte Bauform, schöne Rasterung und der Druckpunkt ist nicht zu lasch. Werd ich gleich mal probieren...
|
|
|
|
|
|
|
|
ibutep
Forenbesetzer
Alter: 43
Anmeldung: 09.04.2004
Beiträge: 364
|
|
bin schon mal gespannt, hab eure bemühungen verfolgt, nur leider hab ich gar keeeeine ahnung von elektronik, sonst würd ich auch rumprobieren
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
das Ding müsste hier auch bald ankommen, dann bastel ich da auch weiter
|
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Hallo,
hast Du Dir schon weitere Gedanken gemacht? Wenn ja, dann zeig mal her Ich habe meine Pläne etwas umstrukturiert. Werde gänzlich auf die Verwendung einer Maus verzichten. Das wird zu kompliziert. Denn wenn die Maus betätigt wird gibt sie ja immer noch ihren ursprünglichen Befehl ab + den von uns generierten. ==> Fehlerquellen
Mein Plan
Verwenden von USBIO. Der generische Gerätetreiber USBIO ermöglicht Win32-Applikationen den direkten Zugriff auf USB-Geräte, wie er standardmäßig nur für Kernel-Mode-Treiber zur Verfügung steht. Der USBIO-Treiber kann mit beliebigen Arten von USB-Geräten eingesetzt werden. Die Entwicklung eines speziellen Kernel-Mode-Treibers entfällt.
Download Freeware: http://www.thesycon.de/usbio/eng/dl_usb_l.htm
Der Vorteil: Das USB-Gerät taucht gar nicht als Maus auf und kann so unabhängig von einem TS benutzt werden. Desweiteren reduzieren sich dann auch die Bauteile, denn mehr als einen IC und ein Quarz werden wir nicht brauchen...
Meine Software
Wird über Autostart geladen. Startet dann das zuvor angegebene Programm automatisch und arbeitet vollständig im Hintergrund. Es liest alle Daten ein und gib es das festgelegte Fenster weiter. Bin jetzt dabei noch den Timer umzusetzen, damit ich zwischen Einfach-, Doppel- und Langklick unterscheiden kann.
Bei SingleClick > 4 Sek schließt das Programm alle Anwendungen und fährt das System sauber runter
|
|
|
|
|
|
|
|
funt4stic
Manchmalposter
Alter: 42
Anmeldung: 16.06.2004
Beiträge: 75
Wohnort: Aachen
|
|
Na das hört sich ja super an. Ich habe nämlich auch nen Powermate habe aber ehrlichgesagt keine Ahnung wie ich den einigermaßen schlicht ins cockpit integrieren soll, der is einfach zu groß.
Gruß
Jan
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
kurz nachdem ich das gestern geschrieben hatte brachte der Paketdienst ein Päckchen aus Österreich... Haber gerade mal 3 alte Mäuse seziert, aber alle haben die Fotodioden an + zusammengeschaltet. Damit ist die einfache Maushardware nicht passend für die Grayhill Encoder
Werde jetzt nochmal probieren die Dinger an meinen IOWarrior anzuschliessen. Das wird klappen, aber wenn man die einfachen IO-Ports nutzt kann man nicht gleichzeitig den I2C Bus und das LCD-Interface benutzen. Ich werde doch nochmal das MausWarrior IC bestellen, das scheint mir die sauberste Lösung zu sein.
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Hallo,
unter dem Link http://www.ak-modul-bus.de/technik/port.html habe ich einen sehr interessanten IC gefunden. Dieser scheint auch hervorragend mit VB zusammenzuarbeiten. Habe denen eine Mail geschickt und angefragt, ob sich der IC für unser Projekt eignet. Meld mich, wenn ich Antwort erhalte.
Muss jetzt noch Statistik lernen
Mo
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
das Teil wird funktionieren, ist aber unverschämt teuer (einzeln 20,00 Euro !).
Habe gerade den Encoder an meinem IO-Warrior zum Laufen bekommen. Die Drehrichtung, Takte und Tastendruck werden korrekt gelesen. Man darf nur nicht zu schnell am Rad drehen, ist aber trotzdem sehr präzise zu bedienen. Der IOW24 Chip kostet bei Segor 13,63 Euro. Auch kein Schnäppchen, aber immerhin... Das Teil ist gut dokumentiert und es gibt einige Programmbeispiele in Delphi, C/C++ und auch VB.
Ich habe mein Proggi in C# mit .Net und DirectInput gebaut, das ist insgesamt nicht zu kompliziert und kann satt erweitert werden. Code stelle ich gerne zur Verfügung.
Der IOW24 hat 16 freie Eingänge, ich habe vor mehrere Encoder (3 Stück) anzuschliessen. Einer soll für MP3 Bedienung, einer für Telefon und einer für sonstiges sein. Drei Knöppe kann man einfach lokalisieren und es entfällt das Menuhangeln für die wichtigsten Funktionen. Als nächstes möchte ich in die Software einen MP3 Player einbauen und verschiedene Bedienungen ausprobieren, dazu sollen noch 2-3 Tasten angeschlossen werden.
Zum IOWarror gibt es ein SDK, das kostet aber mit Versand ca. 65 Euro. Das kann man sich für diese Anwendung sparen, als einzige weitere Bauteile neben dem IC braucht man 2 Kondensatoren für die Glättung der Versorgung und einen Widerstand und die USB-Buchse (oder das USB Kabel von Nachbars Maus abschneiden).
|
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Das hört sich ja riesig an. Würde das gerne mal in Aktion bewundern Hab ich das jetzt richtig verstanden:
Ich kaufe bei Segor:
den IOW24 Chip für 13,63
Kondensatoren
den Widerstand
und die USB-Buchse
Dann kann ich mit der Dokumentation ein Programm in VB schreiben, das DirectInput benutzt???
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Könntest Du nicht einmal ein paar Bilder vom Versuchsaufbau und vom Proggi posten? Evtl. an meine Mail oder PM???
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
yepp, genauso sollte das klappen. DirectInput geht auch mit VB6, du brauchst evtl. das SDK von MS, gibts aber kostenlos als Download. Der Code ist noch eine grobe Baustelle, so zwischen F1 und EM reingehackt...
Im Code lasse ich mir erst die verfügbaren Devices auflisten, der IOW taucht als 'Plain I/O' in der Liste auf. Wird von XP als PnP Gerät erkannt und man muss dann ein 'Device' mit der einmal festgelegten Guid erzeugen. Die muss man sich einmal in einer Konfig merken damit die Zuordnung fest ist (dadurch kann man dann mehrere IOW's anschliessen). Dann meldet man mit 'SetEventNotification' ein Event an das bei Änderung gefeuert werden soll. Ein anderer Thread läuft im Kreis und wartet auf ein Event. Wenn das kommt werden im 'ButtonReaderThread' die drei Bits EncoderA,B und Button gelesen. Nach der Auswertung habe ich die Richtung mit der ich einfach einen Zähler rauf- oder runterzähle. An dieser Stelle kann man natürlich auch einen Tastendruck simulieren (geht in VB glaube ich mit SendKey), aber ich möchte wie geschrieben direkt die MP3 Funktion realisieren.
Wenn das ganze etwas mehr Form angenommen hat mache ich mal ein komplett Paket daraus, wäre natürlich auch gut wenn Furious oder andere das in die CarPC Software integrieren.
Code Snippets:
Code:
|
private void listDevices_DoubleClick(object sender, System.EventArgs e)
{
DeviceItem di = (DeviceItem)listDevices.SelectedItem;
_iow24 = new Device(di.DevGuid);
MessageBox.Show(_iow24.DeviceInformation.ProductName);
eventFire = new AutoResetEvent(false);
_iow24.SetEventNotification(eventFire);
_iow24.Acquire();
// create ButtonReadThread
threadData = new Thread(new ThreadStart(this.ButtonReaderThread));
threadData.Start();
}
|
Code:
|
Thread threadData = null;
AutoResetEvent eventFire = null;
delegate void UIDelegate();
private Device _iow24;
private DeviceList _dl;
bool EncoderA = false;
bool EncoderB = false;
bool EncoderAOld = false;
bool EncoderBOld = false;
bool EncoderChanged = false;
bool EncoderButton = false;
bool EncoderDirection = false;
int EncoderPos = 0;
public void ButtonReaderThread()
{
while(Created)
{
eventFire.WaitOne(-1, false);
try
{
EncoderA = _iow24.CurrentJoystickState.GetButtons()[8] != 0;
EncoderB = _iow24.CurrentJoystickState.GetButtons()[9] != 0;
EncoderButton = _iow24.CurrentJoystickState.GetButtons()[10] != 0;
EncoderChanged = (EncoderA != EncoderAOld) || (EncoderB != EncoderBOld);
if (EncoderChanged)
{
if (EncoderA != EncoderAOld)
{
if (EncoderA)
EncoderDirection = !EncoderB;
else
EncoderDirection = EncoderB;
}
if (EncoderB != EncoderBOld)
{
if (EncoderB)
EncoderDirection = EncoderA;
else
EncoderDirection = !EncoderA;
}
if (EncoderDirection)
EncoderPos++;
else
EncoderPos--;
}
EncoderAOld = EncoderA;
EncoderBOld = EncoderB;
}
catch(InputException)
{
continue;
}
if (Created)
this.BeginInvoke(new UIDelegate(UpdateUI));
}
|
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Würde gerne heute noch ein paar Bauteile einkaufen gehen. Komme leider nur zu Conrad. Kannst Du mir mal die Werte für Konsensatoren und Widerstände geben? Ist das eine USB-Typ A??? Gibt es nicht auch bei Conrad einen entsprechenden IC? Oder ist der dann mit der Treibersoftware nicht kompatibel? Grüße Mo
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
Hole dir das SDK zu dem Chip, da ist alles drin:
http://www.codemercs.com/Downloads/SDK.zip
Bei Conrad gibts den Chip nicht, und wenn dann wäre er ja doppelt so teuer... Am besten bei www.segor.de bestellen, da kriegst du auch die anderen Bauteile. Nur die Katalogsoftware da ist etwas ätzend.
Der Chip ist übrigens auch von Cypress wie das Teil von ak-modul-bus. Codemercs vertreibt den dann mit eigener Programmierung und dem SDK, deshalb gibts den nicht überall.
|
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
unter Artikelschnellsuche 'Warrior' eingeben, der IOW-24 P ist es dann.
USB-B Buchse Printmontage: USB-B BU
unter EVQWTA-S20-15B findest du dort auch einen Winkelencoder.
Sonst brauchst du nur noch 1 Widerstand 1k, 1 Elko 10 mue/16V und 1 Kondensator 100 nF. Passt alles auf ein bischen Lochraster Platine, bei den paar Verbindungen braucht man nicht unbedingt eine geätzte Platine. Die Eingänge haben interne PullUp's, man kann also einfach mehrere Tasten gegen Masse anschliessen. Im IOWarriorDatasheet ist auch beschrieben wie z.B. ein Relais über einen Transistor angeklemmt wird, hatte mir dafür gleich ein paar von den billigen Relais von Neuhold mitbestellt.
Und nu viel Spass beim Basteln...
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Danke für die Info. Aber was ist mit den restlichen Bauteilen? Die würde ich dann schon gerne gleich kaufen. Braucht man für den IC kein Quarz um ihn zu takten???
|
|
|
|
|
|
|
|
JojoS
Forumkenner
Alter: 62
Anmeldung: 25.04.2004
Beiträge: 187
Wohnort: Gelsenkirchen
|
|
nö, der grosse Bruder IOW40 braucht einen, der IOW24 kommt ohne aus.
|
|
|
|
|
|
|
|
moflash
Inputsammler
Alter: 42
Anmeldung: 18.05.2004
Beiträge: 40
Wohnort: NRW
|
|
Hallo JojoS,
wie sieht's aus? Leider hatte ich so viel um die Ohren, dass ich gar keine Zeit hatte, mich unserem Projekt zu widmen. Ich habe meinen Chip nun hier und würde ihn gerne probieren, aber mir fehlen die Bauteile (morgen Conrad). Wie muss ich die anschließen? Will den Chip ja nicht direkt schrotten, dafür war er zu teuer Würde mich freuen, wenn Du mir noch ein paar Infos geben kannst!!!
|
|
|
|
|
|
|
|
|