Wie erstellt man eine Schnittstelle für ein USB-Gerät, über die Potis, lineare / logarithmische Verjüngungen und Moment- / Kippschalter an einen Computer angeschlossen werden können?
Wenn mir jemand eine Beschreibung auf hoher Ebene geben könnte, würde ich es begrüßen. Ich kann Datenblätter lesen, daher ist das Verstehen von Details kein Problem, solange ich weiß, wo ich die Blätter finde.
Ich würde ein Mikrocontroller-Board wie ein Arduino verwenden. Sie lesen den ADC und die digitale E / A und senden ASCII-Zeichen über die UART-> USB-Verbindung an den PC.
Wie viel externe Hardware Sie benötigen, hängt von der Genauigkeit ab, die Sie benötigen. Ich würde denken, dass für die meisten Anwendungen die interne Hardware des Mikrocontrollers ausreichen würde. Ich würde die Schalter in Hardware entprellen.
Schreiben Sie für die USB-Schnittstelle einfach einen einfachen Parser, damit Sie die Messwerte abfragen können. Zum Beispiel, wenn der PC den String "A00?" der uC könnte den Messwert auf Analogkanal 0 zurücksenden. "D00?" uC könnte den Status von Digitaleingang 0 zurücksenden. Um einen Digitalausgang zu ändern, könnte dies beispielsweise "D00 = 1" oder "D00 = 0" sein. Dies sind kurze Saiten mit fester Länge. Sollte sehr einfach zu analysieren sein.
quelle
Ich mag es, Arduinos zu benutzen, sie sind einfach zu programmieren und Sie können einfach Daten von den verschiedenen Eingängen über die integrierte USB-Verbindung an Ihren Computer senden. Die Daten können an die Arduino-Programmierumgebung Serial Monitor gesendet werden - was für das Debuggen hilfreich ist.
Ich benutze dann ein Programm wie Pure Data (PD) oder Max MSP, um die seriellen Daten zu empfangen. Daten können von diesen Programmen in allen möglichen nützlichen Formaten gesendet werden. Weil es einfach genug ist, in der Software jede Art von Protokollkurven oder Skalierung durchzuführen - Sie müssen sich keine Sorgen machen, teure Protokolltöpfe zu kaufen oder schwer zu findende Werte zu verwenden -, kaufen Sie einfach ein Job-Los mit dem gleichen Wert und sorgen Sie sich um die Besonderheiten später (1K oder 10K sind normalerweise leicht zu bekommen).
Dies ist kostenlos: http://puredata.info/
Dies ist die kostenpflichtige Version, aber es gibt eine gute Demo: http://cycling74.com/downloads/
quelle
Holen Sie sich ein Arduino
Holen Sie sich ein DangerShield .
Schreiben Sie einen Code, um DangerShield-Sensordaten über eine USB-Verbindung über RS-232 an den PC zu senden.
Schreiben Sie eine benutzerdefinierte App wie VB.NET oder etwas, um Daten in nützliche PC-Inhalte wie Win32-Fenstermeldungen oder ähnliches zu übersetzen.
quelle
Ich würde vorschlagen, PoKeys zu verwenden . Sehr einfaches Hinzufügen von 55 digitalen E / A, 7 analogen Eingängen (12 Bit), PWM-Ausgängen und mehr. Es kann sogar mit so etwas wie kombiniert wird dies .
quelle
Ich würde mit einem Arduino oder einem Sanguino gehen, wie die meisten Leute vorgeschlagen haben. Google einfach nach ihnen. Sie sind äußerst benutzerfreundlich und in wenigen Stunden einsatzbereit, sobald Sie über alle erforderlichen Komponenten verfügen.
quelle
Werfen Sie einen Blick auf ObDev V-USB AVR-basierte Projekte: http://www.obdev.at/products/vusb/prjhid.html . Ich denke, dass dies genau das ist, wonach Sie suchen: http://www.fredrikolofsson.com/pages/hardware.html .
quelle
Wenn Sie nur Knöpfe benötigen, besuchen Sie YoctoKnob: http://www.yoctopuce.com/DE/products/yocto-knob
quelle
Eine Alternative, die geeignet sein kann oder auch nicht, besteht darin, im Handel erhältliche analoge Joysticks / Joypads (von $ fckall bei ebay china oder im Games Store) zu kaufen und deren analoge Eingangskomponenten durch Ihre eigenen zu ersetzen oder einfach die Hauptplatine herauszureißen und zu transplantieren in deine Hardware.
Sie müssen einige der elektrischen Eigenschaften abgleichen, aber die harte Arbeit beim Codieren von / USB-Kommunikationen usw. ist für Sie erledigt, und in der Regel sind die Kommunikationsprotokolle / Eingangszuordnungen bekannt.
Chinesische Nachahmungen von PlayStation-artigen USB-Controllern usw. sind für ein paar Dollar zu haben, was weit unter dem Preis von Hobby * duino IO-Boards usw. liegt und billig genug ist, um beim Aufblasen der ersten oder zweiten verfügbar zu sein.
quelle
Der GamepadBlock verwendet einen ATmega32U2 zusammen mit LUFA , um ein USB-HID-Gerät mit voller Geschwindigkeit für die Abfrage mehrerer originaler Gamecontroller zu implementieren. Der ATmega verfügt über eine Hardware-USB-Schnittstelle und der Einstieg war einfach, da LUFA mehrere Demo-Projekte anbietet.
quelle