Forum général.cherche-matériel Piloter une carte E/S par USB

Posté par  .
Étiquettes : aucune
4
1
oct.
2009
Bonjour,

J'aimerai utiliser avec un PC une carte comprenant des entrées et sorties Tout Ou Rien, voir analogiques, reliée au PC par exemple en USB.

J'aimerai piloter ces E/S via un programme C.

Y'a-t-il sur le marché des cartes de ce type ?
Sont-elles compatibles avec Linux ?
  • # Un port parallèle sur usb

    Posté par  (site web personnel) . Évalué à 2.

    Au moins 8 bits dispos, vu dans des revues électroniques, ( elektor, ... )

    Système - Réseau - Sécurité Open Source

    • [^] # Re: Un port parallèle sur usb

      Posté par  . Évalué à 2.

      8 E/S c'est un peu juste.

      Le but est de remplacer un automate par une carte PC + carte E/S, ce qui donne un ensemble pas cher et commandé par PC.


      Ca devrai être utilisé en domotique, mais je ne connais pas trop ce domaine.
  • # Un microcontroleur sur port USB ?

    Posté par  . Évalué à 2.

    Tu as des microcontroleurs PIC, et peut être même des AVR. Ca se programme facilement en C, et je suis sur qu'il existe des petites cartes toutes faites .....
  • # Arduino

    Posté par  . Évalué à 2.

    Le projet Arduino doit correspondre à ce besoin, non ? Connexions par port série, USB :

    http://www.arduino.cc/
    http://fr.wikipedia.org/wiki/Arduino
    • [^] # Re: Arduino

      Posté par  . Évalué à 1.

      Les cartes Arduino ont l'air intéressantes, pas très chère, E/S TOR, analogiques et PWM.

      Mais je ne suis pas sûr du fonctionnement :

      - Est-ce une carte dans laquelle on envoi un programme et qui est par la suite autonome?

      - Ou est-ce qu'on peut piloter directement les E/S par un programme C sur un PC branché en USB sur la carte ?
      • [^] # Re: Arduino

        Posté par  (site web personnel) . Évalué à 1.

        Ce sont des microcontroleurs (AT Mega), tu dois donc les programmer.

        Cela dit tu peux aussi créer un programme très simple qui communique via l'interface série (Serial over USB) avec ton PC grâce à un petit protocole maison qui permettra de lire/écrire sur les IO.

        L'IDE et le langage sont très simple à prendre en main, surtout si tu programmes déjà un peu.

        D'autre part, si tu veux rendre ton automate autonome, avec cette solution c'est du coup possible en gardant le matériel (il faut juste réécrire le programme pour l'ATMega)...

        Enfin, pour environ 40€ (Arduino Mega) tu peux avoir 50 IO numériques (donc 14 PWM) et 16 entrées analogiques... Comparé au prix des cartes d'IO que l'on trouve, je pense que c'est plutôt bon marché :).
  • # Phidgets

    Posté par  (site web personnel) . Évalué à 1.

    Les cartes Phidgets : http://www.phidgets.com/products.php?category=0

    Programmable sous GNU/Linux, il existe un driver pour cela : http://www.phidgets.com/drivers.php

    Et il est possible de trifouiller leur produits à l'aide de plusieurs langages de programmation (C, Java, Python, etc...)

    Les modules sont disponibles chez Gotronic depuis peu :
    http://www.gotronic.fr/catalog/micro/micro-frame.php?page_ci(...)

    Mes 0.02 Ampères
    • [^] # Re: Phidgets

      Posté par  . Évalué à 1.

      Ca à l'air de convenir, supporté par linux, lib C et autre languages, fournie avec code source pour piloter, bonne doc, par contre elles sont chères.

      Question :

      Je programme avec Qt, je sais qu'il y'a des classes pour gérer les E/S (QIODevice ), est-ce possible/facile de gérer une carte sans se servir du driver ?
      L'intéret aussi est que Qt est multiplateforme
  • # E/S déportées ?

    Posté par  . Évalué à 1.

    As-tu pensé à des entrées et sorties déportées genre Wago ? Tu en as des purement passives et d'autres ayant un comportement autonome programmable. Il y en a même qui sont livrées avec un système d'exploitation RT-Linux.

    Pour celles qui sont passives (série 750-3xx) l'USB n'est pas disponible directement mais tout le reste est OK (Ethernet, RS232, RS485, Profibus, Can, etc.). Avec un module de tête RS232 (de tête 750-312 ou750-316) si tu utilises un convertisseur USB/série ça correspond à ta description. Attention, c'est du matériel professionnel, donc assez cher. Il faudra aussi te trouver ou te faire un soft exploitant le protocole Modbus sous Linux, mais ça ne doit pas être la mer à boire, vu que les specs sont publiques.

    http://www.wagocatalog.com/okv3/index.asp?lid=3&cid=13&a(...)

    Ce genre de matériel est proposé par plein d'autres fournisseurs, comme Phoenix Contact, par exemple.
  • # --> AVR Atmel & linux

    Posté par  . Évalué à 1.

    Bonjour,
    finalement j'ai récupéré une carte Atmel ATMEGA32,

    j'ai déjà programmé dessus sur Windows avec un logiciel payant d'Atmel "Caviar" qui permet une cross-compilation et un envoi du programme sur la carte.

    apparement le cross-compilateur est open source sur linux :
    sur debian j'ai installé
    - gcc-avr
    - avr-libc
    - binutils-avr
    - avrprog

    donc j'ai compilé un prog simple :
    avr-gcc main.c

    mais je ne sais pas comment l'envoyer sur la carte.


    Sinon j'aimerai que la carte gère le protocole Modbus par port série avec le PC, mais comme la carte ne gère pas le multi-tâche, je sais pas trop comment faire.
    Faut faire une boucle qui scrute le port COM ? ou utiliser une interruption ?


    • [^] # Re: --> AVR Atmel & linux

      Posté par  . Évalué à 1.

      J'ai trouvé comment programmer la carte Atmel
      mais j'ai un soucis pour charger le programme.

      Pour charger le programme dans la carte on peut utiliser avrdude :

      avrdude -p m32 -c stk500 -P /dev/ttyS0 -p m32
      (options pour AtMega32)

      J'obtiens :
      avrdude: ser_open(): can't set attributes for device "/dev/ttyS0": Inappropriate ioctl for device

      Donc je me dit que la carte n'est pas reconnue par mon linux

      lorsque je la branche au PC par un cable USB, le dmesg me donne :

      [ 8997.352073] usb 5-2: new full speed USB device using uhci_hcd and address 12
      [ 8997.552158] usb 5-2: configuration #1 chosen from 1 choice

      La carte est elle reconnue ou faut il ajouter des modules en dur dans le kernel ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.