Communication Arduino tcp/ip
Comme nous l’avons dit, les broches 0 et 1 sont utilisées par le port USB. Pour éviter les conflits avec le moniteur série, nous allons nous intéresser à la bibliothèque SoftwareSerial qui utilise d’autres broches du microcontrôleur. Les exemples suivants sont également possibles avec le port série matériel. Pour cela, il suffit de remplacer “ArduinoSlave” et “ArduinoMaster” par “Serial” dans les codes suivants.
Il est possible de communiquer entre différents dispositifs en utilisant le port série, par exemple deux cartes Arduino. L’une sera programmée comme “Maître” (donne des ordres) et l’autre comme “Esclave” (reçoit des ordres et réagit).
Un port série est défini par deux fils et une vitesse de communication. La bibliothèque SoftwareSerial.h est utilisée pour définir les ports série. Dans cet exemple, nous choisissons les broches 2 et 3 comme broches de réception (RX) et de transmission (TX) respectivement (SoftwareSerial ArduinoSlave(2,3) ;). La vitesse de communication est de 9600bps (ArduinoSlave.begin(9600) ;).
ATTENTION : Nous utilisons ici, les broches 2 et 3 de l’Arduino UNO. En fonction du microcontrôleur utilisé, les broches utilisées pour la communication série peuvent être différentes. En particulier pour les cartes Arduino Mega, Micro, Leonardo. Consultez la documentation.
Communication série entre arduinos
Je ne suis pas vraiment sûr à 100% de savoir comment faire mais j’essaie de faire communiquer mon arduino UNO avec mon arduino MEGA. La raison pour laquelle j’avais besoin de faire cela était que j’utilisais le module RFID avec un écran TFT et le problème que j’ai rencontré est que sur l’arduino MEGA, ils avaient tous deux besoin de la broche 53. Heureusement, j’ai un arduino UNO et je l’ai choisi pour l’écran. J’essaie d’utiliser la fonction analogWrite() pour envoyer des signaux analogiques de mon MEGA vers l’UNO afin que l’écran TFT de l’UNO puisse afficher les résultats. L’UNO lirait également les entrées analogiques provenant de la MEGA. Cela n’a pas très bien fonctionné. Les entrées analogiques sont envoyées par la MEGA mais l’UNO ne les reçoit pas. J’utilise une broche PWN sur la MEGA pour envoyer la sortie analogique à l’UNO.
La broche 53 est juste la broche par défaut “slave select”. Il n’y a rien de spécial à son sujet. Vous pouvez utiliser n’importe quelle autre broche comme sélection d’esclave, tant que les bibliothèques de vos appareils le permettent (vérifiez la documentation et les tutoriels de ces bibliothèques).
Connecter deux arduinos via usb
Il est possible d’enchaîner des Arduinos ensemble de manière à obtenir une communication entre les deux. Avoir une communication Arduino-Arduino peut être utile pour de nombreux projets, comme avoir un Arduino pour faire tourner des moteurs et un autre pour détecter l’environnement et relayer les commandes à l’autre Arduino. Cela peut être fait de plusieurs façons, en utilisant I2C et Serial, pour en citer quelques-unes.
Le schéma ci-dessous montre comment connecter les deux Arduinos ensemble. Il s’agit de deux Unos, mais si un Mega est utilisé, il peut être connecté à n’importe quel port série du Mega, à condition que cela soit pris en compte dans le code.
Lorsque l’on envoie des choses par série, tout est envoyé en octets. Ces octets sont ensuite lus un par un par l’autre Arduino. Lorsque ce ne sont que des caractères qui sont envoyés par la série, il est relativement facile de convertir les caractères en octets. Cependant, si des caractères et des nombres sont envoyés, cela peut entraîner un désordre dans les données, car un nombre et un caractère peuvent avoir la même valeur d’octet, mais cela ne les rend pas identiques. Les nombres sont également délicats car ils peuvent ne pas tenir dans l’octet.
Communication avec plusieurs arduino
Tout d’abord, je vais vous expliquer rapidement ce qu’est la communication série. Ensuite, vous verrez comment configurer votre matériel et votre logiciel, et nous nous plongerons dans le code Python (Cpp pour Arduino). Un exemple basique au début, menant à une application plus complète utilisant un Raspberry Pi, un Arduino, et d’autres appareils électroniques.
Ce tutoriel fonctionnera avec une carte Raspberry Pi 4 (et précédentes : 3B, 3B+), et n’importe quelle carte Arduino. J’utiliserai principalement l’Arduino Uno mais je donnerai plus de détails sur les différences entre les cartes Arduino en ce qui concerne la communication série.
Lorsque l’on travaille avec des appareils électroniques, la communication est essentielle. Chaque appareil – en plus de bien faire ce qu’il est censé faire – doit être capable de communiquer clairement avec les autres appareils. C’est l’une des choses les plus importantes à travailler pour passer d’une application très basique à des applications plus complexes.
La communication en série est simplement un moyen de transférer des données. Les données sont envoyées séquentiellement, un bit à la fois (1 octet = 8 bits), contrairement à la communication parallèle, où plusieurs bits sont envoyés en même temps.