IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

[USB] Questions basiques sur la communication


Sujet :

Raspberry Pi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Par défaut [USB] Questions basiques sur la communication
    Bonjour à tous.
    J'aurai quelque questions basiques concernant le protocole USB.
    Je ne connais rien dans ce protocole, je pose donc ces questions avant de l'apprendre pour savoir si ce que je veux faire est facilement réalisable.

    Je dois réaliser une connexion entre deux carte embarquées de type BeagleBone Black (ce sont des raspberry like) et un ordinateur embarqué de type PC suivant le schéma suivant :

    BeagleBone 1 <-> PC <-> BeagleBone 2

    Première question :

    Je dois faire communiquer des variables entre la BeagleBone 1 et le PC puis entre le PC et la beaglebone 2
    Est-il "facile" de programmer en Java un tel programme ?
    En gros transmettre une DATA ça me prendrai 2000 lignes de codes ou il y a des librairies qui permettent de faire ça en un nombre de ligne raisonnable.

    Par ailleurs, ai-je des limitations liées à du hardware.

    Seconde question :

    Je n'ai pas tout de suite accès au beaglebone du coup je voudrais prendre mes 2 pc portable et effectuer la communication entre elles avec un programme java, et j'aurai juste à installer ce programme sur les beaglebone par la suite.

    Puis-je réellement faire ceci ?
    Le langage Java est multiplateforme du coup à priori si je fais le programme sur mes PC qui tournent sous windows et mac j'aurai juste à le transférer sur les beaglebone (à quelque modifications mineures comme des référence de ports usb par exemple) ???

    Troisième question :

    Je souhaiterai brancher une caméra USB sur deux PC en même temps, l'usb permet il ceci ? (Ce n'est pas brancher deux caméras sur un PC ce qui est faisable mais bien une caméra sur 2 PC).
    En gros existe t'il des cartes dédoublant un signal USB (une entrée et deux sorties).

    Merci.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Pour la 3ème question, c'est non, un périphérique usb ne peut être branché que sur un seul hôte à la fois.

    Pour les autres je vais laisser mes collègues plus pointus répondre.

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je ne sais pas répondre à la question "communication par USB".

    Mais je vais poser une autre question : pourquoi ne pas choisir une communication par Ethernet ?

    En fait, il faut clarifier la phrase
    Je dois faire communiquer des variables entre la BeagleBone 1 et le PC puis entre le PC et la beaglebone 2
    Quelle est l'architecture de communication ? Pourra t-il un jour y avoir 3 BBB ? Une communication avec autre chose que des BBB ? Pourquoi choisir l'USB pour faire cela ? L'ethernet me semble beaucoup plus simple à mettre en place. Un switch, tout le monde s'y branche, le PC est serveur, les clients (qu'ils soient Raspi, BBB ou PC) s'y connectent, le serveur fait les renvois de données, etc. On pourrait même imaginer que les BBB ne soient pas dans la même pièce mais dans des pays différents et on passe par Internet. Ce qui n'est pas possible avec USB. On écrit un code avec sockets rapidement, on a des outils tels Wireshark pour regarder les données échangées, etc.

    Le langage Java est multiplateforme du coup à priori si je fais le programme sur mes PC qui tournent sous windows et mac j'aurai juste à le transférer sur les beaglebone (à quelque modifications mineures comme des référence de ports usb par exemple) ?
    Oui, si tu as un OS pour BBB avec un portage d'une JVM. Regarde aussi si la puissance du BBB est suffisant pour faire tourner une JVM et ton programme (on ne sait pas ce qu"il fait).

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Par défaut
    Tout d'abord merci pour vos réponses.

    En fait je souhaiterai utiliser un protocole de communication courant et rapide (permettant l'envoi de flux vidéos HD 1080p notamment).
    Mais je n'ai aucune expérience dans le domaine (j'ai découvert ce qu'étaient des bus il y a à peine 4 mois).

    Dans l'architecture, il y aura un PC et pas mal de carte électroniques autour de type BBB, mais je peux m'arranger pour que ces cartes aient toutes un port ethernet.

    Ce que vous proposez avec ethernet semble intéressant.

    Il pourrait donc résoudre mon problème de mon point n°3 c'est ça (1 caméras branchée sur 2 hôtes différents, ce que ne permet pas l'USB) ?

    Ensuite, la BBB peut tourner sous linux ( http://elinux.org/Beagleboard:Beagle...ware_Resources ), ça ne devrait donc poser aucun problème avec Java n'est ce pas ? (en fait ce que je souhaiterai aussi savoir c'est si TOUTES les bibliothèques de java sont multi plateformes ou pas ?).

    Enfin j'aurai une question un peu différente de celles précédentes.

    Vous m'avez donc expliqué qu'une caméra ne peut être branchée que sur un hôte d'après le protocole USB.

    Mais je peux toujours brancher cette caméra à une carte (qui joue le rôle d'hote) et faire partir de cette carte deux sorties USB qui sont elles reliées à mes deux PC non ?

    Et le fait de transférer uniquement des données d'un port USB entrant vers 2 ports USB de sorties (aucun calcul, juste du "transfert" de données lourdes telles que de la vidéo) consomme t'il beaucoup de puissance ? (Relativement à une beaglebone par exemple en grosse approximation vous diriez que ça consommerai plutôt 5% ou 40% du CPU par exemple ?
    http://elinux.org/File:Features.jpg

    Enfin, des caméras ethernet pour des dispositifs embarquées (en l’occurrence il s'agit d'un robot, la caméra doit donc pas être trop grosse), c'est courant ou pas ? Car j'ai vu que les caméras industrielles ethernet c'est courant mais des webcam HD avec port ethernet j'en ai pas trouvé.

    Merci beaucoup !

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Je me m'y connais pas assez dans ce domaine pour te dire si les BBB pourront tenir la charge, ni quelque type de connexion il te faut pour faire passer un tel flux vidéo.

    VLC permet de faire la diffusion de vidéos sur le réseau. Tu peux regarder comment ils font. D'ailleurs, tu pourrais avoir un BBB avec la webcam qui fait serveur vidéo et diffuse aux autres.

    Dire que BBB peut faire tourner Linux et qu'il y a des JVM pour Java ne veut pas dire que l'application sera performante. Si tu as déjà utilisé Raspberry dans sa configuration de base avec Raspbian, tu as peut-être remarqué que tu peux aller sur internet mais c'est lent...

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonsoir,

    je précise que je n'ai jamais travaillé sur des BeagleBone ou Raspberry. Donc je ne pourrais pas te dire si ton matériel sera capable de réaliser ce genre d'opérations. En tout cas, le port USB ne permet pas à 2 PC de communiquer entre eux. A une époque (pour l'USB 1.0) il existait des câbles spéciaux qui permettaient de transférer des données d'un PC à un autre par USB, cela nécessitait quand même des drivers. Je ne sais pas si ces câbles existent encore.

    Je te donne simplement mon point de vue sur ton projet.
    Vous m'avez donc expliqué qu'une caméra ne peut être branchée que sur un hôte d'après le protocole USB.
    Mais je peux toujours brancher cette caméra à une carte (qui joue le rôle d'hote) et faire partir de cette carte deux sorties USB qui sont elles reliées à mes deux PC non ?
    ce qui va se passer, à mon avis, c'est que ta carte va d'abord envoyer les données vers ton premier PC puis vers le second. Je ne pense pas qu'elle sera capable (en tout cas le programme qui la pilotera) de transférer les données vers les deux PC en même temps.
    Je viens de trouver ce tutoriel qui pourra t'intéresser :
    http://www.oz9aec.net/index.php/beag...tion-ip-camera

    Je pense que tu peux avoir une carte dédiée pour ta caméra USB, puis tu transferts les données via le port réseau. Cette carte serait ton serveur sur lequel viendraient se connecter les autres PC pour récupérer le flux vidéo. Ca c'est la théorie, je ne sais pas si effectivement cela fonctionnera. Mais à partir du moment où tu as plusieurs PC et si tu prends la solution réseau, il faut un switch.

    Tu vas travailler sur des OS différents : java étant multiplateforme, tu n'auras quasiment aucune modification sur tes programmes à réaliser. Par contre, renseigne toi sur la version de java à utiliser : JSE ? JME ? JEE ?

    Avec l'USB pas sûr que tu puisses accéder à ton matériel avec java. Sans parler des drivers spécifiques aux OS.

    Il existe des caméras avec un connecteur réseau, mais là attention, il faudra sans aucun doute prévoir une alimentation externe, la carte réseau ne pourra peut-être pas fournir la puissance nécessaire au fonctionnement de la caméra (PoE).

Discussions similaires

  1. Question basique sur un while
    Par chrislav dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2009, 19h24
  2. question basique sur la validation d'un fichier xml
    Par waliddib dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/01/2009, 20h01
  3. [Joomla!] Quelques questions basiques sur Joomla
    Par Siguillaume dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/08/2008, 10h02
  4. [tres nouveau] question basique sur DOTNET
    Par ratoso dans le forum Débuter
    Réponses: 2
    Dernier message: 30/05/2008, 11h39
  5. Question basique sur les tableaux
    Par valanagrid dans le forum C++
    Réponses: 8
    Dernier message: 08/11/2006, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo