View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Les différents "réseaux" possibles Arduino/PC

Par X. HINAULT - 05/04/2011

Le plus simple : 1 carte Arduino seule

  • C'est le mode d'utilisation de base d'une carte Arduino. Le PC n'est utilisé que pour programmer la carte.

1 carte Arduino connectée à 1 PC avec 1 interface Processing

  • C'est le principe d'utilisation de la carte Arduino avec le Terminal série ou une interface Processing et qui permet de réaliser des programmes comme l'oscilloscope numérique.
  • Dans une utilisation "standard" d'Arduino, on peut en rester là, et c'est ce que j'ai fait jusqu'à il y a peu... Mais on peut aller beaucoup plus loin !

2 cartes Arduino connectées à 1 PC avec 1 interface Processing

  • Ce "réseau" utilise l'interface Processing comme un "switch" entre 2 ports série différents du PC. L'intérêt de cette façon de faire est probablement limité. On peut imaginer contrôler plusieurs cartes Arduino avec le même PC sur ce principe.

2 cartes Arduino connectées à 1 PC avec 2 interfaces Processing (l'une Client réseau, l'autre Serveur réseau)

  • Ici, on utilise le réseau local interne de la machine (adresse ip 127.0.0.1) pour "simuler" un accès distant entre les 2 cartes qui utilisent chacune un port série différent.
  • Le très grand intérêt de ce mode de communication est de pouvoir mettre au point en local sur la même machine les 4 logiciels de la chaine de communication. C'est essentiel de pouvoir le faire sur la même machine tant que tout ne fonctionne pas encore... Et çà permet de tester son code sans que le réseau distant soit actif. Un outil incontournable donc pour la mise au point du vrai réseau distant.

2 cartes Arduino connectées avec 2 interfaces Processing (l'une Client réseau, l'autre Serveur réseau) sur 2 PC (l'un client, l'autre serveur) en réseau wifi avec un routeur (ou ethernet..)

  • Ce schéma correspond au réseau distant opérationnel en wifi permettant :
    • de contrôler la carte serveur distante à partir de la carte client fixe (un joystick qui contrôle le robot sans fil par exemple ou une webcam distante sur servomoteurs pan-tilt..)
    • mais aussi de récupérer des données envoyées par la carte distante sur la carte ou le pc client : par exemple, obtenir une télémétrie à distance sans fil des capteurs du robot
  • Mais ce n'est pas tout ! Ce schéma permet également :
    • de créer un accès au bureau du PC distant (serveur) sur le PC fixe (client) : on a donc ainsi totalement le contrôle du système embarqué sans fil depuis son poste fixe. Notamment on dispose du retour vidéo de la webcam du PC embarqué mais on peut également programmer la carte distante directement depuis le poste fixe... Idem pour l'interface processing distante... En pratique, c'est très efficace ! Par exemple, avec un programme Processing utilisant la reconnaissance faciale, on va avoir sur le PC fixe (client) l'image renvoyée par le PC embarqué (serveur) et voir comment le robot détecte les visages en situation réelle !! Et çà marche très bien... !
    • on peut aussi envisager de diffuser la webcam sur un port séparé de l'accès au bureau à distance...

Variante : 1 carte Arduino connectée avec 2 interfaces Processing (l'une Client réseau, l'autre Serveur réseau) sur 2 PC (l'un client, l'autre serveur) en réseau wifi avec un routeur (ou ethernet..)

  • Ici, on n'utilise pas de carte Arduino fixe, mais on se limite à utiliser un PC fixe pour contrôler le couple Arduino/PC embarqué. Tout se passe ici comme si on étendait simplement le schéma associant 1 Arduino et 1 PC avec 1 interface Processing sur un réseau distant.
  • En pratique, c'est cette formule qui sera probablement la plus utilisée, car potentiellement la plus intéressante.

Variante : 3 cartes Arduino "serveur" connectée à 1 carte Arduino "client" via 2 interfaces Processing (l'une Client réseau, l'autre Serveur réseau) sur 2 PC (l'un client, l'autre serveur) en réseau wifi avec un routeur (ou ethernet..)

  • Ce cas de figure pourra apparaître bien complexe... mais pourrait s'avérer utile notamment dans le cas d'un robot associant de nombreux capteurs, moteurs, servomoteurs... L'interface Processing côté PC embarqué permet sans difficulté de communiquer avec plusieurs cartes Arduino via autant de port série USB ayant chacun leur numéro. Dès lors, on peut imaginer une carte Arduino chargée des capteurs, une autre chargée des moteurs, une autre chargée du positionnement d'une webcam, etc... Ceci pourrait avoir un intérêt notamment en terme de mise au point du code "poste par poste"...

Conclusion

  • Voilà présentées les principales configurations possibles...
  • Ensuite, de nombreuses variantes et combinaisons sont possibles : remplacer le réseau wifi par un réseau ethernet filaire, utiliser un shield ethernet au lieu d'un PC distant, etc...
  • A adapter donc à ses besoins... mais "qui peut le plus peut le moins"...