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

16

Si quisiera hacer un dispositivo simple que se comunique con mi computadora, digamos que tal vez un interruptor que podría 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?

    
pregunta Sean

5 respuestas

11

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 muy populares . Python tiene una biblioteca de serie muy sencilla y es una brisa para escribir.

Código de ejemplo

Python: Ejecute este script como un servicio. Estoy usando Ubuntu, por lo que esta secuencia de comandos mostrará una notificación que le avisará cuando se haya presionado 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');
  }
}

    
respondido por el Nick Pascucci
8

Cree un dispositivo de clase de dispositivo de interfaz humana USB. Esa es la misma clase utilizada por los teclados, ratones, palancas de mando, pads de juegos y similares. Su PC ya tiene total compatibilidad con controladores de dispositivo para dispositivos HID, por lo que el acceso al software es fácil. Se pueden encontrar muchos punteros e incluso códigos de muestra en página de 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 he visto hacerlo a una velocidad baja de USB con un AVR de 8 pines ATtiny completamente en software.

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

Otro enfoque es hacer un dispositivo de comunicaciones en serie. Existen varias soluciones de chip único de FTDI . La FT232R es una opción popular. Los controladores son necesarios, pero el Asistente para 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 controladores alternativos disponibles que le permitirán acceder a sus pines GPIO y usarlos en modos más avanzados.

Actualización, 2015: Esto tenía un enlace a enlace , que parece tener un enlace se pudrió y la nueva ubicación se descubrió gracias a El Marce . Jan's Lakeview Research sigue siendo una gran fuente de información sobre el uso práctico de USB.

    
respondido por el RBerteig
6

Aquí hay una publicación de blog muy detallada enlace con software para usar un PIC18F4550 de menos de $ 5 para la interfaz vía USB como Un dispositivo estándar HID. 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 te muestra cómo hacer una comunicación bidireccional, por lo que no solo puedes conectar un interruptor, sino que también puedes encender y apagar un LED.

    
respondido por el JonnyBoats
3

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

    
respondido por el Leon Heller
2

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

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

    
respondido por el Code Painters

Lea otras preguntas en las etiquetas