¿Cuál es la forma más sencilla y económica de interactuar con USB?

17

Si quisiera hacer un dispositivo simple que se comunicara con mi computadora, por ejemplo, un interruptor que pudiera silenciar mi computadora cuando se enciende y apaga y enchufarlo a través de USB, ¿cuál sería la forma más barata y fácil de lograr esto?

Sean
fuente
44
mira mi alcance de chip único usb aquí , es difícil hacerlo con menos partes 1 ATTiny45 y un par de zener, 2 canales HID
Proyecto muy chulo!
Code Painters

Respuestas:

10

Más fácil? Toma un Arduino y escribe un par de líneas de Python. Los Arduino son increíblemente fáciles de programar, no requieren ningún hardware adicional para trabajar y son bastante populares . Python tiene una biblioteca en serie muy sencilla y es muy fácil de escribir.

Código de ejemplo

Python: ejecuta este script como un servicio. Estoy usando Ubuntu, por lo que este script mostrará una notificación que le indicará cuándo se presionó un botón en el Arduino.

#! /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
fuente
¿Puede proporcionar más detalles sobre el uso de pyserial para interactuar con Arduino? Código de muestra o enlaces apreciados.
LeanerRocky
1
Cosa segura. Mira el ejemplo.
Nick Pascucci
Realmente aprecio el ejemplo. ¡¡Tu eres una leyenda!!
LeanerRocky
Sin embargo, no va a ser más barato.
rápidamente_ahora
eso no es "interfaz con usb" sino solo serie de ftdi.
nonchip
8

Cree un dispositivo de clase de dispositivo de interfaz humana USB. Esa es la misma clase utilizada por teclados, ratones, joysticks, pads de juegos y similares. Su PC ya tiene soporte completo de controlador de dispositivo para dispositivos HID, por lo que el acceso al software es fácil. Se pueden encontrar muchos punteros e incluso código de muestra en la página HID de Jan Axelson . Navegue por su sitio para obtener mucha buena información relacionada con el desarrollo de dispositivos USB.

Muchas de las familias de microprocesadores pequeños pueden hacer HID. Incluso lo he visto hecho a baja velocidad USB con un AVR ATtiny de 8 pines completamente en software.

Elija su chip preferido, luego busque en sus "recursos habituales" muestras HID.

Otro enfoque es hacer un dispositivo de comunicaciones en serie. Existen varias soluciones de chip único de FTDI . El FT232R es una opción popular. Se requieren controladores, pero el asistente de Nuevo hardware encontrado conoce los controladores certificados de Windows, por lo que la instalación no es difícil. Una vez instalado, tiene un dispositivo que se parece a un puerto COM. Hay controladores alternativos disponibles que le permitirán acceder a sus pines GPIO y usarlo en modos más avanzados.

Actualización, 2015: tenía un enlace a http://www.lvr.com/hidpage.htm , que parece tener un enlace podrido y la nueva ubicación descubierta gracias a El Marce . Jan's Lakeview Research sigue siendo una excelente fuente de información sobre el uso práctico de USB.

RBerteig
fuente
El enlace de Jan Axelson está roto. Encontré esto ( janaxelson.com/hidpage.htm ) buscando en Google: "jan axelson hid page". ¿Sería tan amable de verificar que es la correcta? ¡Gracias!
El Marce
Gracias. Ese es su sitio ahora. Supongo que Lakeview Research perdió o lanzó su antiguo nombre de dominio y alguien nuevo lo arrebató.
RBerteig
1
Si elige ir a la ruta FTDI, asegúrese de obtener un cable con una parte FTDI genuina. FTDI (una empresa china) se enfermó y se cansó de que sus chips fueran falsificados, por lo que les enseñaron a sus conductores a reconocer sus propios chips. Esto ha causado MUCHOS problemas a las personas que compraron radios bidireccionales con cables de programación que fueron construidos con chips falsificados, porque el fabricante de la radio compró los chips falsificados (¡con suerte por error!).
John R. Strohm
1
FTDI es una empresa inglesa (bueno, escocesa en realidad) con sede en Glasgow.
rápidamente_ahora
@RBerteig enlace de trabajo?
Caracol rápido
6

Aquí hay una publicación de blog muy detallada http://msdn.microsoft.com/en-us/devlabs/dd491992 con software para usar un PIC18F4550 de menos de $ 5 para interactuar a través de USB como un dispositivo HID estándar. El software proporcionado se puede utilizar para interactuar con cualquier dispositivo HID, por lo que si desea un chip alternativo, el software seguirá funcionando.

Una ventaja adicional es que la publicación del blog le muestra cómo hacer una comunicación bidireccional, por lo que no solo puede conectar un interruptor, sino que también puede encender y apagar un LED.

JonnyBoats
fuente
3

Aquí hay un proyecto mío simple usando un PIC18F2455, basado en el software USB de Brad Minch. Los PCB están disponibles en Olimex.

Leon Heller
fuente
2

Si no le importa el microcontrolador basado en Cortex-M3, eche un vistazo a LPC1343 de NXP . Solo cuesta $ 6.30 en Digikey (1 pieza). Hay una característica muy interesante: ¡firmware para almacenamiento y dispositivos HID en la ROM del chip!

En comparación con una solución con chip FTDI + microcontrolador, hay un chip menos :)

Pintores de código
fuente