¿Es posible usar un cable USB OTG (On-The-Go) conectado al conector USB de Arduino Uno (o similar) para leer una unidad de memoria u otro dispositivo? Si es posible, ¿qué software se necesitaría?
¿Es posible usar un cable USB OTG (On-The-Go) conectado al conector USB de Arduino Uno (o similar) para leer una unidad de memoria u otro dispositivo? Si es posible, ¿qué software se necesitaría?
No sin ensuciarse las manos o comprar un escudo.
Los arduinos están configurados por defecto como dispositivos usb esclavos. Los dispositivos esclavos no pueden conectarse a otros dispositivos esclavos, por lo que no tiene sentido conectar una unidad de memoria USB a través de un cable USB OTG.
Si no quiere ensuciarse las manos, hay el protector de host USB como lo sugiere @Kevin que debería funcionar.
Si do quiere ensuciarse las manos, puede probar firmware nuevo en el 8u2 / 16u2 chip en el Uno. Este chip es lo que le da al ATmega328 principal la capacidad de cargar programas y enviar salidas en serie a través de USB. Puede ser reprogramado para ser varias cosas: un joystick, un mouse, un teclado.
Sin embargo, no se limita a dispositivos esclavos, también se puede programar para que sea un host. Con un Due, ser un USB Host para un mouse o teclado es bastante fácil, pero para otros Arduinos necesitas programar el Chip 8u2 / 16u2.
Tenga en cuenta que la programación de un Arduino para comprender un dispositivo de almacenamiento masivo USB aún no se ha realizado. Si desea hacer esto, habrá una cantidad significativa de eliminación del código.
Básicamente, utilizas la biblioteca LUFA , específicamente la biblioteca respondido por el Manishearth
Esto no es exactamente lo que describiste, pero me gustaría buscar en USB Host Shield . Hay una versión completamente ensamblada por $ 5 más. Viene con un impresionante conjunto de bibliotecas desarrollado activamente que le permite controlar una variedad de dispositivos (PS3 / Xbox / Controlador de Wii, y más) con buenas APIs. Le proporciona todo lo que necesita para ponerse en marcha rápidamente con USB. Hay una biblioteca generic_storage que puede ayudar con la lectura / escritura en unidades flash.
Lo he usado para comunicarme con un controlador de PlayStation 3 conectando un dongle Bluetooth con gran éxito.