J'écris des pilotes de périphériques de caractères Linux pour les trucs des autres depuis un certain temps. J'aimerais trouver un nouveau passe-temps et l'idée de créer mes propres gadgets USB semble vraiment bien.
Je serais ravi de pouvoir contrôler certaines LED, servos et moteurs pas à pas. J'aime vraiment apprendre de nouvelles choses par moi-même et l'excitation quand quelque chose fonctionne enfin. Je n'ai pas fait de programmation MC sérieuse, mais je connais mon chemin.
Quelqu'un peut-il recommander des kits qui seraient utiles à un noob complet? Idéalement, ce sont:
- Compatible avec Linux
- Capable d'expédier à l'international (je vis actuellement en Asie)
- Offrir des kits de planche à pain
Si vous avez le temps et l'envie, des liens vers des projets sur les sites d'autres personnes qui incluent des schémas et des listes de pièces seraient grandement appréciés. Je veux étudier à partir d'exemples, mais de bons exemples, c'est pourquoi je pose la question ici.
Mon objectif final est de créer mes propres collecteurs de données - tout, des précipitations aux décibels moyens en passant par les niveaux de lumière. Désolé si cela a déjà été demandé, j'ai fait une recherche (et recherché des tags).
L'Arduino est un excellent outil pour commencer lorsque vous souhaitez créer des gadgets électroniques et il pourrait vous conduire à votre objectif final de construire un enregistreur de données . Cependant, il ne convient pas au développement USB réel car il émule un port série à l'ancienne. Il ne vous permettra pas d'en faire autre chose (comme un périphérique d'interface humaine (souris / clavier) ou un périphérique de stockage de masse (lecteur de carte / lecteur amovible)).
Si vous voulez créer de "vrais" gadgets USB, consultez le site de Jan Axelson . Il écrit des livres "débutants" sur l'USB. Développer des gadgets qui utilisent USB à ce niveau pourrait ne pas convenir aux débutants, alors l'expérience Arduino vous aidera certainement.
la source
Je recommande fortement le tutoriel du présentateur de diaporama USB Tuxgraphics AVR. Il utilise un microcontrôleur Atmel AVR, qui a une grande communauté d'amateurs (avrfreaks, etc.), et une pile usb1.1 open-source uniquement logicielle de obdev.org. Il ne peut pas évoluer très haut (stockage de masse, par exemple), mais le produit final est un petit clavier USB HID avec deux boutons-poussoirs assignables. Il serait trivial de l'utiliser comme enregistreur de données, et quelques exemples sur obdev.org ne sont que cela (www.obdev.at/products/vusb/projects.html). Il est écrit en clair c, et la liste des pièces est de quelques dollars tout au plus.
En même temps, je recommande de construire ou d'acheter le programmateur tuxgraphics avrusb500. C'est une joie à utiliser et l'un des équipements les plus fiables que je possède. (Je ne suis pas affilié - juste un client très satisfait!)
la source
Un autre appareil que j'ai voulu étudier est l' AT90USBKey . Cela fait un moment que je ne l'ai pas étudié, et je ne sais pas si vous pouvez le programmer sans Windows, mais il agira comme un périphérique USB (comme un clavier ou un périphérique de stockage de masse) ou comme un hôte USB que vous branchez d'autres appareils. Il existe des exemples de programmes disponibles, et il semble assez facile à utiliser, à condition que vous en sachiez un peu sur l'électronique et que vous puissiez coder en C.
Une recherche google pour AT90USBKey et Linux donne des résultats prometteurs.
Je sais que vous pouvez l'obtenir sur DigiKey.ca . J'ai recherché un équivalent de digikey pour l'Asie ; vous pouvez obtenir la pièce de Farnell .
la source
Vous pouvez également vérifier Teensy .
la source
Si vous finissez par utiliser l'Arduino, j'ai porté la bibliothèque V-USB (anciennement AVR-USB) pour l'exécuter. Il est également entouré d'une classe pour faciliter l'interaction.
Vous pouvez créer des périphériques USB HID avec lui, par exemple un clavier, une souris ou un joystick. Vous pouvez également créer un périphérique générique qui utilise libusb sur l'hôte pour le contrôler - à partir de Python, C, Processing, etc.
Mon site a un blindage PCB que vous pouvez faire qui utilise une prise USB et quelques résistances, etc.:
http://code.rancidbacon.com/ProjectLogArduinoUSB
Vous pouvez écrire du code Arduino pour envoyer des frappes aussi facilement que:
ou avec un "driver" libusb vous pouvez envoyer des données comme:
ou lire des données avec:
--Philippe;
la source
Il existe maintenant un certain nombre de cartes de développement basées sur AVR-USB.
J'ai personnellement utilisé Teensy et Bumble-B et je pense qu'ils sont tous les deux géniaux.
Teensy est sympa, car il s'intègre très bien avec l'environnement Arduino. Cela signifie que vous pouvez faire des choses comme "Mouse.init; Mouse.move (x, y)" au lieu de gérer vous-même le code USB de bas niveau. Cependant, les deux exécuteront LUFA si vous le souhaitez.
la source
Voici un simple projet PIC USB:
http://www.leonheller.com/usb
Les PCB sont disponibles.
la source
Object Development a créé une bibliothèque de microcontrôleurs AVR qui vous permet de créer vous-même des périphériques USB très bon marché (à partir de seulement 2-3 $). GCC pour AVR est compatible Linux. Il y a des tas d'appareils déjà fabriqués. Jetez un œil ici: http://www.obdev.at/products/vusb/projects.html
la source
Cela dépend du type de gadgets USB que vous souhaitez créer et du niveau avancé. Vous mentionnez des led clignotantes. Ce type de contrôle peut être facilement archivé avec n'importe quel type de microcontrôleur avec uart et une puce ftdi (Arduino est assez populaire et facile à démarrer). La puce ftdi se connecte en série à l'UC et agit comme un convertisseur série <-> USB. Il apparaît également comme un port COM virtuel sur votre ordinateur.
Si vous souhaitez utiliser des protocoles, des pilotes et des fonctionnalités USB plus avancés, vous pouvez obtenir un uC avec une capacité USB native. Microchip a de nombreuses photos (leurs microcontrôleurs) qui peuvent le faire, par exemple. Microchip possède également de nombreuses cartes de développement dédiées à l'apprentissage de l'utilisation de l'USB. La prise en charge Atleast Microchips uc 32 bits prend également en charge les modes hôte et otg, vous pouvez donc créer un enregistreur de données qui enregistre les données sur une clé USB usuelle, que vous pouvez connecter à votre ordinateur pour lire les données. (Je suis sûr que de nombreux autres fabricants ont également des circuits intégrés et des kits de développement similaires, mais Microchip est le seul que j'ai utilisé)
Page d'accueil de Microchip / USB
la source
Notez que vous n'avez pas besoin de commencer à un niveau électronique aussi bas et de gagner plus de temps de développement pour le "gizmo" lui-même. De nombreuses entreprises vendent des périphériques USB pour le marché du bricolage, par exemple:
http://www.yoctopuce.com
http://www.phidgets.com
la source