Was ist der einfachste und günstigste Weg, um eine USB-Schnittstelle herzustellen?

17

Wenn ich ein einfaches Gerät herstellen möchte, das mit meinem Computer kommuniziert, sagen wir, ein Schalter könnte meinen Computer beim Ein- und Ausschalten stummschalten und über USB anschließen. Was wäre der billigste und einfachste Weg, dies zu erreichen?

Sean
quelle
4
schau dir mein usb single chip scope hier an , es ist schwer mit weniger teilen zu tun 1 ATTiny45 und ein paar zener, 2 chanels HID
Sehr cooles Projekt!
Code Painters

Antworten:

10

Am einfachsten? Besorgen Sie sich ein Arduino und schreiben Sie ein paar Zeilen Python. Arduinos sind unglaublich einfach zu programmieren, erfordern keine zusätzliche Hardware und sind sehr beliebt . Python verfügt über eine sehr übersichtliche serielle Bibliothek und ist ein Kinderspiel.

Beispielcode

Python: Führen Sie dieses Skript als Dienst aus. Ich verwende Ubuntu, daher wird in diesem Skript eine Benachrichtigung angezeigt, wenn auf dem Arduino eine Schaltfläche gedrückt wurde.

#! /usr/bin/python

import serial
import pynotify

ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
  x = ser.read()
  if x == 'b':
    # Show notification
    n = pynotify.Notification("Arduino", "The button was pressed.")
    n.show()

Arduino:

void setup(){
  // Assuming button is active low and on pin 4
  pinMode(4, INPUT);
  Serial.begin(9600);
}

void loop(){
  if(digitalRead(4) == LOW){
    Serial.print('b');
  }
}

 

Nick Pascucci
quelle
Können Sie weitere Details zur Verwendung von Pyserial für die Schnittstelle mit Arduino bereitstellen? Codebeispiel oder Links erwünscht.
LeanerRocky
1
Sichere Sache. Schauen Sie sich das Beispiel an.
Nick Pascucci
Ich schätze das Beispiel wirklich. Du bist eine Legende!!
LeanerRocky
Wird aber nicht am billigsten sein.
quick_now
das ist nicht "interface with usb" sondern nur ftdi serial.
Nonchip
8

Erstellen Sie ein USB-Gerät der Human Interface Device Class. Dies ist dieselbe Klasse, die auch von Tastaturen, Mäusen, Joysticks, Gamepads und dergleichen verwendet wird. Ihr PC verfügt bereits über vollständige Gerätetreiberunterstützung für HID-Geräte, sodass der Softwarezugriff einfach ist. Viele Hinweise und sogar Beispielcode finden Sie auf der HID-Seite von Jan Axelson . Stöbern Sie auf ihrer Website nach guten Informationen zur USB-Geräteentwicklung.

Viele der kleinen Mikroprozessorfamilien können HIDs ausführen. Ich habe sogar es getan gesehen bei USB Low Speed mit einer ATtiny 8-poligen AVR vollständig in Software.

Wählen Sie Ihren bevorzugten Chip aus und durchsuchen Sie die "üblichen Ressourcen" nach HID-Samples.

Ein anderer Ansatz besteht darin, ein serielles Kommunikationsgerät herzustellen. Es gibt mehrere Single-Chip-Lösungen von FTDI . Der FT232R ist eine beliebte Wahl. Treiber sind erforderlich, aber Windows-zertifizierte Treiber sind dem Assistenten für das Suchen neuer Hardware bekannt, sodass die Installation nicht schwierig ist. Einmal installiert, haben Sie ein Gerät, das wie ein COM-Port aussieht. Es stehen alternative Treiber zur Verfügung, mit denen Sie auf die GPIO-Pins zugreifen und diese in erweiterten Modi verwenden können.

Update, 2015: Dies hatte einen Link zu http://www.lvr.com/hidpage.htm , der den Link verfault zu haben scheint und den neuen Ort dank El Marce entdeckt zu haben . Jan's Lakeview Research ist immer noch eine großartige Quelle für Informationen über die praktische Verwendung von USB.

RBerteig
quelle
Die Verbindung von Jan Axelson ist unterbrochen. Ich fand dies ( janaxelson.com/hidpage.htm ) durch googeln: "jan axelson hid page". Wäre das so nett zu überprüfen, ob es das richtige ist? Vielen Dank!
El Marce
Vielen Dank. Das ist jetzt ihre Seite. Ich vermute, dass Lakeview Research seinen alten Domain-Namen entweder verloren oder veröffentlicht hat und er von einem neuen entdeckt wurde.
RBerteig,
1
Wenn Sie sich für die FTDI-Route entscheiden, stellen Sie sicher, dass Sie ein Kabel mit einem FTDI-Originalteil erhalten. FTDI (ein chinesisches Unternehmen) hatte es satt, dass seine Chips gefälscht wurden. Deshalb brachten sie ihren Fahrern bei, ihre eigenen Chips zu erkennen. Dies hat eine Menge Ärger für Leute verursacht, die Funkgeräte mit Programmierkabeln gekauft haben, die mit den gefälschten Chips gebaut wurden, weil der Hersteller des Funkgeräts die gefälschten Chips gekauft hat (hoffentlich aus Versehen!).
John R. Strohm
1
FTDI ist eine englische Firma (eigentlich eine schottische) mit Sitz in Glasgow.
quick_now
@ RBerteig Link funktioniert?
Schnelle Schnecke
6

Hier ist ein sehr detaillierter Blog-Beitrag http://msdn.microsoft.com/en-us/devlabs/dd491992 mit einer Software, mit der ein PIC18F4550 unter 5 USD als Standard-HID-Gerät über USB angeschlossen werden kann. Mit der mitgelieferten Software kann eine Schnittstelle zu einem beliebigen HID-Gerät hergestellt werden. Wenn Sie also einen alternativen Chip benötigen, funktioniert die Software weiterhin.

Ein zusätzliches Plus ist, dass der Blogbeitrag Ihnen zeigt, wie Sie bidirektionale Kommunikation betreiben, sodass Sie nicht nur einen Schalter anschließen, sondern auch eine LED ein- und ausschalten können.

JonnyBoats
quelle
3

Hier ist ein einfaches Projekt von mir, das einen PIC18F2455 verwendet, der auf der USB-Software von Brad Minch basiert. PCBs sind von Olimex erhältlich.

Leon Heller
quelle
2

Wenn Ihnen der Cortex-M3-basierte Mikrocontroller nichts ausmacht, schauen Sie sich den LPC1343 von NXP an . Es ist nur 6,30 $ bei Digikey (1 Stück). Es gibt eine sehr coole Funktion - Firmware für Speicher- und HID-Geräte im ROM des Chips!

Im Vergleich zu einer Lösung mit FTDI-Chip + Mikrocontroller gibt es einen Chip weniger :)

Codemaler
quelle