Interface USB <-> Electronique

blackswordsblackswords Membre
22:16 modifié dans Vos applications #1
Bonjour à  tous et à  toutes! Voilà  à  force de chercher des infos je suis tombé ici et vu que j'ai pas mal de questions qui me trottent dans la tête ça tombe bien!
Bon en gros je fais dans l'électronique et j'aimerai pouvoir envoyer et recevoir des données via le port USB de mon mac. Les applications envisagées sont l'audio, la domotique et le stockage de masse. Je vais donc poser mes questions générales, je verrai pour affiner un peu par la suite.
Je programme actuellement en C, en ligne de commande mais je connais quelques trucs pour afficher des images etc. Est-ce que je peux utiliser ce langage où va-t-il falloir que je m'oriente vers autre chose? COCOA?
Est-ce que la communication USB est complexe ou c'est relativement simple à  gérer?
Et la dernière, comment indiquer à  l'ordinateur à  quel type de périphérique il à  affaire? Ou formulé autrement, qu'est ce qui différencie une carte son d'un périphérique de stockage?

Merci d'avance pour vos réponses qui j'espère éclaireront un peu ma lanterne!

Réponses

  • dilarogadilaroga Membre
    22:16 modifié #2
    Je programme actuellement en C, en ligne de commande mais je connais quelques trucs pour afficher des images etc. Est-ce que je peux utiliser ce langage où va-t-il falloir que je m'oriente vers autre chose? COCOA?

    Le développement de driver usb se fait en c++.

    Est-ce que la communication USB est complexe ou c'est relativement simple à  gérer?

    Cela dépend si tu as l'habitude de travailler dans le (ou directement avec) le kernel. Si ce n'est pas le cas, courage patience et perseverance :)

    Et la dernière, comment indiquer à  l'ordinateur à  quel type de périphérique il à  affaire? Ou formulé autrement, qu'est ce qui différencie une carte son d'un périphérique de stockage?

    La famille du périphérique cible.

    Plus d'info dans ces doc Apple (les guides sont épais et il y a quelques codes sources d'example) :

    A propos du Kernel
    A propos du IOKit Kext



  • wiskywisky Membre
    22:16 modifié #3
    Il faut aussi que tu recherche du côté des normes USB : http://www.usb.org/home
    Car il y a des "class" qui permette de simplifier la vie et de transférer des données de façon native sur la plus part des systèmes.
    Par exemple MassStorage est une classe qui gère le stockage en utilisant l'USB. C'est grâce à  cette classe que tous les disques externes dialogue avec l'ordinateur évitant ainsi de devoir installer les pilote des clées USB et disque externe. Il y en a d'autre : http://www.usb.org/developers/defined_class

    Il est possible d'éviter de devoir développer le driver sous forme de KEXT sur mac os. Le développement de KEXT est très lourd et difficile. Il demande de mettre le kernel en mode debug. C'est aussi source de plantage de l'ordinateur ;)
    Donc autant l'intégrer dans le programme qui exploite le matériel. Sauf si il faut le rendre le matériel utilisable avec des logiciels tiers ;)
  • denis_13denis_13 Membre
    22:16 modifié #4
    il m'est arrivé de faire ce genre bricolage, mais cela date un peu. De mon point de vue la norme USB est assez complexe, il y a des API, mais cela reste un gros investissement en temps. Comme je n'en avait pas autant que cela, je me suis dirigé vers des circuits USB FTDI qui ont l'avantage d'avoir des drivers ce qui est plus simple et encore plus simple peuvent être exploités via la libusb, que j'avais linké avec une petite interface Cocoa. Selon tes besoins il y a aussi un projet vraiment sympa qui s'appelle Arduino, c'est une petite plaque avec un micro contrôleur ATMega, qui se programme depuis un environnement intégré. Une fois programmé il y a aussi un driver (ftdi ...) qui permet de communiquer depuis le Mac avec la carte, c'est vraiment bien (en plus c'est pas très cher, on peu même en trouver des variantes miniaturisée et...).
    Denis
  • denis_13denis_13 Membre
    22:16 modifié #5
    ceci dit si l'on veut s'y mettre sérieusement, l'API USB fournie par Apple permet d'aller beaucoup plus loin, et rejoint les "vrais" standards de la norme USB, il y a quelques exemple et une liste de discussion officielle. Les options que j'ai présenté dans mon poste précédent corresponde à  un usage "amateur", tout dépend de ce que tu veux faire et du temps que tu as à  y passer.
  • wiskywisky Membre
    22:16 modifié #6
    Il existe aussi des frameworks pour ce genre de connexion. Le truc c'est qu'il faut les trouver et il ne sont rarement gratuit ;)
  • KatKat Membre
    22:16 modifié #7
    dans 1258469904:
    Comme je n'en avait pas autant que cela, je me suis dirigé vers des circuits USB FTDI qui ont l'avantage d'avoir des drivers ce qui est plus simple et encore plus simple peuvent être exploités via la libusb, que j'avais linké avec une petite interface Cocoa.
    Bonjour,
    Je cherche à  commander des LED depuis un Mac.
    Penses-tu que l'utilisation d'un module FTDI (http://www.ftdichip.com/Products/EvaluationKits/DIPModules.htm) permettrait de réaliser cela facilement avec les drivers USB FTDI ?
  • wiskywisky Membre
    22:16 modifié #8
    Il y a une solution avec arduino ou utiliser un PIC (16f4550 ou 16f2550) et les exemples de firmware (HID/CDC) gérant l'USB du langage PICBASIC.
Connectez-vous ou Inscrivez-vous pour répondre.