Pages: [1]   Go Down
Author Topic: Liaison série Processing / Arduino  (Read 456 times)
0 Members and 1 Guest are viewing this topic.
Paris
Offline Offline
Sr. Member
****
Karma: 1
Posts: 366
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: April 09, 2013, 08:07:59 am by UniseV » Logged

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 !

Ales
Offline Offline
Faraday Member
**
Karma: 29
Posts: 3171
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-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).
Logged


Paris
Offline Offline
Sr. Member
****
Karma: 1
Posts: 366
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?
« Last Edit: April 09, 2013, 12:42:51 pm by UniseV » Logged

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 !

France - Normandy
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Paris
Offline Offline
Sr. Member
****
Karma: 1
Posts: 366
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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 !

Pages: [1]   Go Up
Jump to: