Go Down

Topic: Liaison série Processing / Arduino (Read 635 times) previous topic - next topic

UniseV

Apr 09, 2013, 12:58 pm Last Edit: Apr 09, 2013, 03:07 pm by UniseV Reason: 1
Bonjour,

Je viens de développer ma première lisaison Arduino/Processing par port COM, dans un seul sens pour l'instant (PC->Arduino) :
http://www.youtube.com/watch?v=nDb30JdpwZc

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
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

B@tto

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 ;)

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).
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

UniseV

#2
Apr 09, 2013, 07:40 pm Last Edit: Apr 09, 2013, 07:42 pm by UniseV Reason: 1
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  :smiley-sweat:

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 ?
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

corsaire50

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

UniseV

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.
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

Go Up