Cómo hacer un dispositivo USB simple sin identificación de proveedor y producto '

1

Me gustaría controlar un simple servo o led con USB.

Abrí el cable y conecté los cables rojo y negro al servo para que girara correctamente con aproximadamente 5 V, ya que son VCC y GND. Ok.

Ahora me gustaría usar uno de los canales de datos para controlar el estado (encendido / apagado) del servo a través de mi computadora.

Al final me gustaría tener un script para activarlo y desactivarlo. El problema es que cada tutorial usa una arquitectura USB que complica demasiado los controladores al usar los identificadores de los proveedores y los productos para identificar automáticamente el hardware al final del USB (para permitir el uso de plug'n'play, me imagino), y no No tengo eso, es decir, no quiero hacer un circuito que pueda informar a la PC las especificaciones de mi dispositivo. Y no quiero usar Arduino u otros tableros complejos para una tarea tan simple.

Ni siquiera pude identificar mis puertos (en linux), ya que cada software y utilidad que encontré enumera solo los dispositivos USB conectados, con sus identificadores locos, y mi extensión de medio corte (no servo aparte) de usb no está en la lista , ya que (parece) no está conectado a un gadget 'apropiado' de usb.

Me gustaría hacer un programa que se ejecute, pedir un puerto USB físico en mi máquina (identificándolo de alguna manera) y luego permitirme configurar la salida en cada uno de los dos cables, en lugar de un controlador que pueda detectar automáticamente mi gadget Tan simple como eso.

¿Hay una manera de hacer eso con USB? ¿O debería elegir otra forma de comunicarme con mi dispositivo? (aunque no puedo pensar en ninguna otra forma en que mi computadora manejaría ... y con la ventaja del poder incorporado ...)

    
pregunta Luan Nico

2 respuestas

4

Usb es un protocolo complicado que no funciona de la forma en que desea que funcione. Debe enumerar, debe tener un par VID / PID, debe informar su estructura y puntos finales.

Una solución para usted sería buscar un usb a gpio o usb a la placa de relés y usarlo para controlar su servo (omitir el relé, pero la sincronización podría no ser tan buena como espera). Otra solución es un adaptador usb a serial (ttl), con los pines rts y / o dts rotos, que luego pueden ser activados por el software del puerto serial.

De lo contrario, necesitas una solución de microcontrolador compatible con USB.

    
respondido por el Passerby
4

Un panel USB a UART hará lo que quieras. Puede obtener un de Sparkfun por $ 15. Vienen en versiones de 5v y 3,3 voltios. No se necesita VID / PID porque el chip en la placa ya contiene uno de su fabricante (FTDI).

El panel de conexiones aparecerá como un puerto de comunicación virtual en su computadora.

AdemásdeloscablesnormalesdeTX/RX,loscablesdecontrolcomoDTRyRTStambiénseponendemanifiesto.Puedeusarlosparacontrolaruntransistorque,asuvez,seinterconectaconsuservo.(LassalidasDTR/RTSdelchipFTDIpuedenseradecuadasparaconducirsuservosinunainterfaz).

Pararealizarpruebas,puedeusarunprogramadeterminalquemanipuleestoscontactos,como RealTerm . También puede controlarlo desde un programa que tenga acceso a puertos de comunicaciones. Por ejemplo, puedes controlarlo desde un script de Python usando la API pySerial.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas