He estado escribiendo controladores de dispositivos 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í conozco mi camino.
¿Alguien puede recomendar algunos kits que serían útiles para un novato completo? Idealmente, son:
- Linux amistoso
- Capaz de enviar internacionalmente (actualmente vivo en Asia)
- Ofrecer kits de tablero
Si tiene tiempo e inclinación, los enlaces a proyectos en los 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 eso pregunto 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 antes, hice una búsqueda (y busqué etiquetas).
El Arduino es una gran herramienta para comenzar cuando desea construir dispositivos electrónicos y puede llevarlo a su objetivo final de construir un datalogger . Sin embargo, no es adecuado para el desarrollo real de USB, ya que emula un puerto serie antiguo. No le permitirá convertirlo en otra cosa (como un dispositivo de interfaz humana (mouse / teclado) o un dispositivo de almacenamiento masivo (lector de tarjetas / unidad extraíble)).
Si desea hacer dispositivos USB "reales", visite el sitio de Jan Axelson . Escribe libros "para principiantes" sobre USB. Sin embargo, desarrollar dispositivos que usen USB en este nivel puede no ser adecuado para principiantes, por lo que la experiencia de Arduino definitivamente lo pondrá en camino.
fuente
Recomiendo encarecidamente el tutorial del presentador de presentaciones de diapositivas USB Tuxgraphics AVR. Utiliza un microcontrolador Atmel AVR, que tiene una gran comunidad de aficionados (avrfreaks, etc.) y una pila usb1.1 de software de código abierto 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 datalogger, y algunos de los ejemplos en obdev.org son solo eso (www.obdev.at/products/vusb/projects.html). Está escrito en limpio 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 usarlo, y uno de los equipos más confiables que poseo. (No estoy afiliado, ¡solo soy un cliente muy satisfecho!)
fuente
Otro dispositivo que he querido examinar es el AT90USBKey . Ha pasado un tiempo desde que lo investigué, y no estoy seguro de si puede programarlo sin Windows, pero actuará como un dispositivo USB (como un teclado o dispositivo de almacenamiento masivo) o como un host USB en el que conectas otros dispositivos. Hay programas de muestra disponibles, y parece razonablemente fácil trabajar con ellos, siempre que conozca un poco sobre electrónica y pueda codificar en C.
Una búsqueda en Google de AT90USBKey y Linux ofrece resultados prometedores.
Sé que puede obtenerlo de DigiKey.ca . Busqué un digikey equivalente para Asia ; puedes obtener el papel de Farnell .
fuente
También es posible que desee comprobar Teensy .
fuente
Si termina usando el Arduino, he portado la biblioteca V-USB (anteriormente 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 escudo de PCB que puede hacer que usa un enchufe USB y algunas resistencias, etc.
http://code.rancidbacon.com/ProjectLogArduinoUSB
Puede escribir código Arduino para enviar pulsaciones de teclas tan fácilmente como:
o con un "controlador" libusb puede enviar datos como:
o leer datos con:
--Philip;
fuente
Hay una serie de placas de desarrollador basadas en AVR-USB ahora.
Personalmente he usado los Teensy y Bumble-B mencionados anteriormente y creo que ambos son geniales.
Teensy es agradable, porque se integra muy bien con el entorno Arduino. Esto significa que puede hacer cosas como "Mouse.init; Mouse.move (x, y)" en lugar de tratar con el código USB de bajo nivel usted mismo. Sin embargo, ambos ejecutarán LUFA si lo desea.
fuente
Aquí hay un simple proyecto PIC USB mío:
http://www.leonheller.com/usb
Los PCB están disponibles.
fuente
Object Development ha creado una biblioteca para microcontroladores AVR que le permite crear dispositivos USB muy baratos por su cuenta (desde solo 2-3 $). GCC para AVR es compatible con Linux. Hay montones de dispositivos ya hechos. Echa un vistazo aquí: http://www.obdev.at/products/vusb/projects.html
fuente
Depende de qué tipo de gadgets usb quieras hacer y de qué nivel avanzado tengas. Mencionas leds parpadeantes. Ese tipo de control se puede archivar fácilmente con cualquier tipo de microcontrolador con uart y un chip ftdi (arduino es bastante popular y fácil de comenzar). El chip ftdi se conecta al uC en serie y actúa como un convertidor serial <-> USB. También aparece como un puerto COM virtual en su computadora.
Si desea utilizar protocolos, controladores y funciones usb más avanzados, puede obtener un uC con capacidad usb nativa. Microchip tiene muchas fotos (sus microcontroladores) que pueden hacer esto, por ejemplo. Microchip también tiene muchas placas de desarrollo dedicadas a aprender a usar el usb. Al menos Microchips de 32 bits uC también admite host y modos otg, por lo que puede crear un registrador de datos que guarde los datos en una 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
fuente
Tenga en cuenta que no tiene que comenzar con un nivel electrónico tan bajo y ahorrar más tiempo de desarrollo para el "gizmo" en sí. Muchas compañías venden dispositivos USB para el mercado de bricolaje, por ejemplo:
http://www.yoctopuce.com
http://www.phidgets.com
fuente