Vorrei imparare come creare i miei gadget USB


29

Ho scritto driver per dispositivi a caratteri Linux per roba di altre persone da un po 'di tempo. Mi piacerebbe trovare un nuovo hobby e il pensiero di creare il mio dispositivo USB sembra davvero pulito.

Sarei felice di poter controllare alcuni LED, servi e motori passo-passo. Mi piace molto imparare cose nuove da solo e l'eccitazione quando qualcosa finalmente funziona. Non ho fatto nessuna seria programmazione MC, ma conosco il mio modo di aggirare.

Qualcuno può raccomandare alcuni kit che sarebbero utili per un noob completo? Idealmente, sono:

  • Linux amichevole
  • In grado di spedire a livello internazionale (attualmente vivo in Asia)
  • Offri kit per tagliere

Se hai tempo e inclinazione, i collegamenti a progetti su siti di altre persone che includono schemi ed elenchi di parti sarebbero molto apprezzati. Voglio studiare da esempi, ma buoni esempi, motivo per cui sto chiedendo qui.

Il mio obiettivo finale è quello di creare i miei raccoglitori di dati: tutto, dalle precipitazioni ai decibel medi ai livelli di luce. Scusate se questo è stato chiesto prima, ho fatto la ricerca (e cercato i tag).

Risposte:


26

L' Arduino è molto popolare ed è un hardware open source, quindi ci sono variazioni , tra cui i Freeduinos di terze parti chiamati Bare Bones Board , Really Bare Bones Board e Boarduino , che sono molto belli da usare con le breadboard. Lo standard Arduino è adattato usando cose chiamate Shields. Puoi creare il tuo scudo per breadboard o acquistare qualcosa come questo ProtoShield Kit.

Arduino utilizza un chip o cavo FTDI USB-RS232. [Lo standard Arduino lo ha incorporato, mentre la maggior parte di quelli a breadboard usano un cavo speciale che ha il chip all'interno e ti fa risparmiare un po 'di denaro.] C'è un driver integrato per Linux, Mac OS X e Windows gli utenti possono scaricare un driver. In effetti, ciò significa che Arduino agisce come un dispositivo che comunica su una porta seriale, quindi è molto facile comunicare.

Per usarlo, scarica anche il software. Viene fornito con un IDE, una toolchain AVR-GCC, una libreria davvero carina e un software per caricare il tuo programma sul chip. Ti nasconde la maggior parte dei dettagli e ha una grande comunità. È programmato in un linguaggio chiamato "Cablaggio", ma in realtà è C ++.

Infine, essendo hardware open source, ci sono schemi là fuori. In effetti, sembra ricordare di aver letto che era abbastanza facile costruire un modello precedente. La ricerca di "schemi Arduino" nel tuo motore di ricerca preferito ti darà buoni risultati.

Per quanto riguarda i kit, Maker Shed offre molti articoli correlati a Arduino in magazzino. Sembrano spedire in tutto il mondo. Alcuni di questi includono:

Lo Shoppe a Wulfden (USA) ha un bel kit di sperimentatori e sembra spedito a livello internazionale.

Solarbotics (Canada) ha un ARDX Arduino Experimenter's Kit , un Freeduino Starter Bundle - Ultimate e un Arduino Starter Bundle - Basic (e Ultimate ) e sembra spedito a livello internazionale.

La pagina principale di "acquisto" di Arduino elenca i fornitori di Arduino in tutte le aree del globo.

Altri posti da controllare sono Adafruit Industries e Sparkfun Electronics (entrambi negli Stati Uniti).


1
Wow. Grazie per il tempo che hai dedicato a una risposta così istruttiva!
Tim Post

3
Sono contento di sentirlo. Dopo aver scritto la risposta, ho pensato: "Non posso credere di aver passato solo quaranta minuti a rispondere a una domanda su Internet!"
Clinton Blackmore,

1
Ottimo post, ma va notato che non tutti gli Arduinos usano il chip FTDI. Ad esempio, utilizzo Arduino Uno R3 su OS X senza driver installato. (Quello utilizza un Atmega 16U2 per la comunicazione USB.)
exscape

12

Arduino è un ottimo strumento per iniziare quando si desidera creare gadget elettronici e potrebbe portarti all'eventuale obiettivo di creare un registratore di dati . Tuttavia, non è adatto allo sviluppo USB reale in quanto emula una porta seriale vecchio stile. Non ti permetterà di trasformarlo in nient'altro (come un dispositivo di interfaccia umana (mouse / tastiera) o un dispositivo di archiviazione di massa (lettore di schede / unità rimovibile)).

Se vuoi realizzare gadget USB "reali", controlla il sito di Jan Axelson . Scrive libri per principianti sull'USB. Lo sviluppo di gadget che utilizzano USB a questo livello potrebbe non essere adatto ai principianti, quindi l'esperienza Arduino ti farà sicuramente strada.


Grazie per il link. Lo verificherò sicuramente una volta che le 'ruote per l'allenamento' si spengono :)
Tim Post

Non è del tutto vero ... Arduino Leonardo e tutte le schede basate su Atmega32u4 possono permetterti di creare HID e qualsiasi altro dispositivo personalizzato
Dmitry Gusarov

8

Consiglio vivamente il tutorial sul presentatore di presentazioni Tuxgraphics AVR USB. Utilizza un microcontrollore Atmel AVR, che ha una grande comunità di hobbisti (avrfreaks ecc.) E uno stack USB1.1 solo software open source di obdev.org. Non può scalare molto in alto (memoria di massa, ad esempio), ma il prodotto finale è una piccola tastiera HID USB con due pulsanti assegnabili. Sarebbe banale usarlo come datalogger, e alcuni degli esempi su obdev.org sono proprio questo (www.obdev.at/products/vusb/projects.html). È scritto in C pulito e l'elenco delle parti è al massimo di pochi dollari.

Allo stesso tempo, raccomando di costruire o acquistare il programmatore avrusb500 tuxgraphics. È una gioia da usare e una delle attrezzature più affidabili che possiedo. (Non sono affiliato - solo un cliente molto soddisfatto!)


8

Un altro dispositivo che ho voluto esaminare è l' AT90USBKey . È passato un po 'di tempo da quando l'ho esaminato e non sono sicuro se puoi programmarlo senza Windows, ma funzionerà come un dispositivo USB (come una tastiera o un dispositivo di archiviazione di massa) o come host USB a cui colleghi altri dispositivi. Ci sono programmi di esempio disponibili e sembra abbastanza facile da lavorare, a patto che tu sappia un po 'di elettronica e puoi scrivere codice in C.

Una ricerca su Google per AT90USBKey e Linux produce risultati promettenti.

So che puoi ottenerlo da DigiKey.ca . Ho cercato un equivalente digikey per l'Asia ; puoi ottenere la parte da Farnell .


Secondo il sito collegato, sembra che la scheda possa essere programmata tramite Jtag.
SingleNegationElimination


6

Se finisci per usare Arduino, ho eseguito il porting della libreria V-USB (precedentemente AVR-USB) per eseguirla. È anche avvolto in una classe per facilitare l'interazione.

È possibile creare dispositivi USB HID con esso, ad esempio tastiera, mouse o joystick. Puoi anche creare un dispositivo generico che utilizza libusb sull'host per controllarlo, da Python, C, Processing ecc.

Il mio sito ha uno schermo PCB che puoi realizzare che utilizza una presa USB e alcune resistenze ecc:

http://code.rancidbacon.com/ProjectLogArduinoUSB

Puoi scrivere il codice Arduino per inviare i tasti con la stessa facilità con cui:

UsbKeyboard.sendKeyStroke(KEY_ENTER);

o con un "driver" libusb puoi inviare dati come:

UsbStream.write(0xff)

o leggi i dati con:

UsbStream.read()

--Philip;


5

Ora ci sono un certo numero di schede sviluppatore basate su AVR-USB.

Ho usato personalmente i già citati Teensy e Bumble-B e penso che siano entrambi fantastici.

Teensy è simpatico, perché si integra molto bene con l'ambiente Arduino. Ciò significa che puoi fare cose come "Mouse.init; Mouse.move (x, y)" invece di gestire tu stesso il codice USB di basso livello. Entrambi, tuttavia, eseguiranno LUFA.



4

Object Development ha creato una libreria per microcontrollori AVR che ti consente di creare da solo dispositivi USB molto economici (a partire da soli 2-3 $). GCC per AVR è compatibile con Linux. Ci sono moltissimi dispositivi già realizzati. Dai un'occhiata qui: http://www.obdev.at/products/vusb/projects.html


0

Dipende dal tipo di gadget USB che si desidera realizzare e dal livello avanzato. Lei parla di led lampeggianti. Questo tipo di controllo può essere facilmente archiviato con qualsiasi tipo di microcontrollore con uart e un chip ftdi (Arduino è piuttosto popolare e facile da iniziare). Il chip ftdi si collega all'UC in serie e si comporta come un convertitore seriale USB <->. Si presenta anche come una porta COM virtuale sul tuo computer.

Se si desidera utilizzare protocolli, driver e funzionalità USB più avanzati, è possibile ottenere un uC con funzionalità USB nativa. Microchip ha molte foto (i loro microcontrollori) che possono fare questo, per esempio. Microchip ha anche molte schede di sviluppo dedicate all'apprendimento dell'uso dell'USB. Anche il supporto uC di Atleast Microchips a 32 bit ospita e altri metodi, in modo da poter creare un datalogger che salvi i dati su una comune chiavetta USB, che è possibile collegare al computer per leggere i dati. (Sono sicuro che molti altri produttori hanno anche circuiti integrati e kit di sviluppo simili, ma Microchip è l'unico che ho usato)

Homepage di Microchip / USB


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.