Me gustaría aprender a hacer mis propios dispositivos USB

29

He estado escribiendo controladores de dispositivo de caracteres Linux para cosas de otras personas durante algún tiempo. Me gustaría encontrar un nuevo pasatiempo y la idea de hacer mis propios dispositivos USB parece realmente genial.

Me encantaría poder controlar algunos LED, servos y motores paso a paso. Realmente disfruto aprendiendo cosas nuevas por mi cuenta y la emoción cuando algo finalmente funciona. No he hecho ninguna programación seria de MC, pero sé cómo hacerlo.

¿Alguien puede recomendar algunos kits que serían útiles para un noob completo? Idealmente, son:

  • Compatible con Linux
  • Se puede enviar internacionalmente (actualmente vivo en Asia)
  • Ofrecer kits de tablero

Si tiene el tiempo y la inclinación, los enlaces a proyectos en sitios de otras personas que incluyen esquemas y listas de piezas serían muy apreciados. Quiero estudiar a partir de ejemplos, pero buenos ejemplos, por lo que estoy preguntando aquí.

Mi objetivo final es hacer mis propios recolectores de datos, desde lluvia hasta decibeles promedio y niveles de luz. Lo siento, si esto se ha preguntado anteriormente, realicé búsquedas (y etiquetas buscadas).

    
pregunta Tim Post

11 respuestas

26

El Arduino es muy popular, y es un hardware de código abierto, así que hay variaciones , incluido el Freeduinos denominada Bare Bones Board , la Really Bare Bones Board , y el Boarduino , que son muy agradables para usar con las tablas de pruebas. . El Arduino estándar se adapta utilizando cosas llamadas Shields. Puede hacer su propio escudo de tablero o comprar algo como esto ProtoShield Kit.

El Arduino usa un chip o cable USB-RS232 FTDI . [El Arduino estándar lo tiene incorporado, mientras que la mayoría de los que utilizan la placa de empalme usan un cable especial que tiene el chip en su interior, y le ahorra algo de dinero.] Hay un controlador incorporado para Linux, Mac OS X y Windows Los usuarios pueden descargar un controlador. Efectivamente, esto significa que el Arduino actúa como un dispositivo que se comunica en un puerto serie, por lo que es muy fácil comunicarse con él.

Para usarlo, también descarga software. Viene con un IDE, una cadena de herramientas AVR-GCC, una biblioteca realmente agradable y un software para cargar su programa en el chip. Oculta la mayoría de los detalles de usted y tiene una gran comunidad. Está programado en un lenguaje llamado "Cableado", pero en realidad es C ++.

Por último, al ser un hardware de código abierto, hay esquemas por ahí. De hecho, me parece recordar haber leído que fue bastante fácil construir un modelo anterior. La búsqueda de "esquemas de Arduino" en su motor de búsqueda favorito le dará buenos resultados.

En cuanto a los kits, Maker Shed ofrece una gran cantidad de artículos relacionados con Arduino en stock. Parece que se envían alrededor del mundo. Algunos de interés incluyen:

El Shoppe at Wulfden (EE. UU.) tiene unos bonitos kits de experimentadores y parece que se envía a nivel internacional.

Solarbotics (Canadá) tiene un ARDX Arduino Experimenter's Kit , un Freeduino Starter Bundle - Ultimate y un Arduino Starter Bundle - Basic (y Ultimate ), y parece que se envía internacionalmente.

La página principal de "comprar" de Arduino enumera a los proveedores de Arduino en todas las áreas del mundo.

Otros lugares que revisaría son Adafruit Industries y Sparkfun Electronics (ambos en los EE. UU.).

    
respondido por el Clinton Blackmore
12

Arduino es una gran herramienta para comenzar cuando quieres crear dispositivos electrónicos y podría llevarte a tu objetivo final de crear un datalogger . Sin embargo, no es adecuado para el desarrollo real de USB, ya que emula un puerto serie antiguo. No le permitirá ingresar a ninguna otra cosa (como un dispositivo de interfaz humana (mouse / teclado) o un dispositivo de almacenamiento masivo (lector de tarjetas / unidad extraíble)).

Si desea crear dispositivos USB "reales", visite el sitio de Jan Axelson . Escribe libros para principiantes sobre USB. El desarrollo de dispositivos que utilizan USB en este nivel puede no ser adecuado para principiantes, por lo que la experiencia Arduino definitivamente lo pondrá en camino.

    
respondido por el bpijls
8

Recomiendo encarecidamente el tutorial del presentador de diapositivas de Tuxgraphics AVR USB. Utiliza un Atmel El microcontrolador AVR, que cuenta con una gran comunidad de aficionados (avrfreaks, etc.) y una pila usb1.1 de código abierto solo de obdev.org. No puede escalar muy alto (almacenamiento masivo, por ejemplo), pero el producto final es un pequeño teclado USB HID con dos botones asignables. Sería trivial usarlo como registrador de datos, y algunos de los ejemplos en obdev.org son solo eso (www.obdev.at/products/vusb/projects.html). Está escrito en clean c, y la lista de piezas es de unos pocos dólares como máximo.

Al mismo tiempo, recomiendo construir o comprar el programador tuxgraphics avrusb500. Es un placer utilizarlo y es uno de los equipos más confiables que tengo. (No estoy afiliado, ¡solo un cliente muy satisfecho!)

    
respondido por el qartis
8

Otro dispositivo que he querido investigar es el AT90USBKey . Ha pasado un tiempo desde que lo busqué, y no estoy seguro de que pueda programarlo sin Windows, pero actuará como un dispositivo USB (como un teclado o dispositivo de almacenamiento masivo) o como un host USB. que conectas otros dispositivos en. Hay programas de ejemplo disponibles, y parece bastante fácil trabajar con ellos, siempre y cuando se conozca un poco sobre electrónica y pueda codificar en C.

Una búsqueda en Google para AT90USBKey y Linux yileds promete resultados.

Sé que puedes obtenerlo en DigiKey.ca . Busqué un equivalente en digikey para Asia ; puede obtener la pieza en Farnell .

    
respondido por el Clinton Blackmore
6

Es posible que también quieras consultar Teensy .

    
respondido por el tuupola
6

Si terminas usando Arduino, yo he portado la biblioteca V-USB (antes AVR-USB) para ejecutarlo. También está envuelto con una clase para facilitar la interacción.

Puede crear dispositivos USB HID con él, por ejemplo. Teclado, mouse o joystick. También puede crear un dispositivo genérico que use libusb en el host para controlarlo, desde Python, C, Processing, etc.

Mi sitio tiene un protector de PCB que puedes hacer que usa un conector USB y algunas resistencias, etc.:

enlace

Puedes escribir el código Arduino para enviar pulsaciones de teclado tan fácilmente como:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

o con un "controlador" libusb puede enviar datos como:

UsbStream.write(0xff)

o leer datos con:

UsbStream.read()

--Philip;

    
respondido por el follower
5

Hay una serie de tableros de desarrolladores basados en AVR-USB ahora.

Personalmente he usado el Teensy y Bumble-B mencionados anteriormente y creo que ambos son geniales.

Teensy es agradable, porque se integra realmente bien con el entorno Arduino. Esto significa que puedes hacer cosas como "Mouse.init; Mouse.move (x, y)" en lugar de lidiar con el código USB de bajo nivel. Sin embargo, ambos ejecutarán LUFA si lo deseas.

    
respondido por el Laen
5

Aquí hay un simple proyecto PIC USB mío:

enlace

Los PCB están disponibles.

    
respondido por el Leon Heller
4

Object Development ha creado una biblioteca para microcontroladores AVR que le permite crear dispositivos USB muy económicos por su cuenta (a partir de solo 2-3 $). GCC para AVR es compatible con Linux. Hay hudreds de dispositivos ya hechos. Eche un vistazo aquí: enlace

    
respondido por el avra
0

Depende de qué tipo de gadgets usb quieres crear y de qué nivel avanzado. Mencionas leds parpadeantes. Ese tipo de control se puede archivar fácilmente con cualquier microcontrolador con uart y un chip ftdi (el arduino es bastante popular y fácil de comenzar). El chip ftdi se conecta a la uC en serie y actúa como un serial < - > Convertidor USB. También se muestra como un puerto COM virtual en su computadora.

Si desea utilizar protocolos, controladores y funciones usb más avanzados, puede obtener una unidad de usuario con capacidad usb nativa. Microchip tiene muchas fotos (sus microcontroladores) que pueden hacer esto, por ejemplo. Microchip también tiene muchos paneles de desarrollo dedicados a aprender a usar el usb. Atleast Microchips 32 bit uC también es compatible con host y otg -modes, por lo que podría crear un registrador de datos que guarde los datos en un dispositivo de memoria usb común, que puede conectar a su computadora para leer los datos. (Estoy seguro de que muchos otros fabricantes también tienen circuitos integrados y kits de desarrollo similares, pero Microchip es el único que he usado)

Página de inicio de Microchip / USB

    
respondido por el varesa
0

Tenga en cuenta que no tiene que comenzar a un nivel electrónico tan bajo y ahorrar más tiempo de desarrollo para el "gizmo" en sí. Muchas empresas venden dispositivos USB para el mercado del bricolaje, por ejemplo:

enlace

enlace

    
respondido por el martinm

Lea otras preguntas en las etiquetas