17 votos

¿Cuál es la forma más simple y barata de interactuar con el USB?

Si quisiera hacer un dispositivo sencillo que se comunicara con mi ordenador, digamos tal vez un interruptor que pudiera silenciar mi ordenador cuando se enciende y se apaga y conectarlo mediante USB, ¿cuál sería la forma más barata y fácil de lograrlo?

10voto

Laurent LH Puntos 176

¿Más fácil? Agarra un Arduino y escribir un par de líneas de Python. Los Arduino son increíblemente fáciles de programar, no requieren ningún hardware adicional para trabajar con ellos, y son bastante poblado r. Python tiene un muy la biblioteca de series directas y es una brisa para escribir.

Ejemplo de código

Pitón: Ejecuta este script como un servicio. Estoy usando Ubuntu, así que este script mostrará una notificación que te dirá cuando se ha pulsado 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');
  }
}

8voto

Rich Puntos 138

Construye un dispositivo USB de clase "Dispositivo de Interfaz Humana". Es la misma clase que usan los teclados, ratones, joysticks, game pads y similares. Tu PC ya tiene un completo soporte de controladores para dispositivos HID, por lo que el acceso al software es fácil. Muchos punteros e incluso código de muestra pueden ser encontrados en el sitio web de Jan Axelson. Página de HID . Busca en su sitio web mucha información buena relacionada con el desarrollo de dispositivos USB.

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

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

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

Actualización, 2015: Esto tenía un vínculo con http://www.lvr.com/hidpage.htm que parece tener el enlace podrido y la nueva ubicación descubierta gracias a El Marce . La investigación de Jan Lakeview sigue siendo una gran fuente de información sobre el uso práctico del USB.

6voto

Craig Hyatt Puntos 158

Aquí hay una entrada de blog muy detallada http://msdn.microsoft.com/en-us/devlabs/dd491992 con un software para usar un PIC18F4550 de menos de 5 dólares para interactuar vía USB como un dispositivo HID estándar. El software provisto puede ser usado para interactuar con cualquier dispositivo HID, así que si quieres un chip alternativo el software seguirá funcionando.

Una ventaja añadida es que la entrada del blog muestra cómo hacer una comunicación bidireccional, de modo que no sólo se puede interconectar un interruptor, sino que también se puede encender y apagar un LED.

3voto

Mark Biek Puntos 41769

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

2voto

Mitchell Watt Puntos 71

Si no te importa el microcontrolador basado en el Cortex-M3, echa un vistazo al NXP LPC1343 . Son sólo 6,30 dólares en Digikey (1 pieza). Hay una característica muy interesante: ¡firmware para almacenamiento y dispositivos HID en la ROM del chip!

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X