Liaison série Processing / Arduino

Bonjour,

Je viens de développer ma première lisaison Arduino/Processing par port COM, dans un seul sens pour l’instant (PC->Arduino) :

J’aimerai l’utiliser en full dupleix.
Ce type de lien est-il sensible au collision ? Que se passe-t-il si les 2 côtés tentent d’émettre simultanément ? Dois-je empêcher ce cas ?

Au niveau de la vitesse, existe-t-il des préconisations (9600-115200) ?

Existe-t-il des bonnes pratiques pour mettre en place un “protocole” de communication entre les 2 ?

UniseV

Il ne peut pas y avoir de collisions puisqu'il y a un fil pour chaque direction du flux de communication (RX et TX). Et de chaque côté il y a un buffer donc si tu n'en demandes pas trop à l'Arduino (puisque avant que tu satures celui du PC) c'est à dire un envoi de 64 char toutes les 100 ms c'est ok :wink:

Pour la vitesse de communication, sauf si la vitesse est un besoin indispensable, reste le plus bas possible, ça évite les erreurs (à 9600 baud dans la plupart des applications c'est invisible pour l'utilisateur).

Merci, je note donc qu’on est bien en “FULL DUPLEX”, et qu’au niveau de la vitesse il faut que je repasse la première :sweat_smile:

Voici le type de “mots” qu’envoi mon programme vers l’Arduino :
R1022t (mettre la valeur ROUGE à 1022)
V20t (mettre la valeur VERT à 20)
B4020t (mettre la valeur BLEU à 4020)
G500t (Lancer le “fade” avec 500 steps)

Le caractère “t”, sert à indiquer la fin du mot.

Pensez-vous que c’est une bonne solution ? Puis-je l’améliorer ?

Pour ma part (sachant que je débute avec Arduino), je suis parti sur l'idée d'utiliser le protocole Firmata. Je l'utilise dans les 2 directions pour envoyer des requêtes de lecture ou des ordres à l'Arduino et pour que l'Arduino me donne des informations sur son état. Côté Processing, je programme une sorte d'oscilloscope incluant des mesures issues de l'Arduino et des états 'logiques' du programme dans l'Arduino (sorte de debug). Si certains ont des retours d'expérience sur Firmata, je suis preneur

Bonjour,

Je ne connaissais pas Firmata, c'est une bonne solution, le protocole qu'il propose est sympa, et très proche du MIDI.

J'aurai du m'en inspirer, ça aurait été plus léger, car le mien est en ASCII, c'est une moins bonne utilisation de chaque caractères.