Go Down

Topic: [Tuto] Implémenter un protocole de communication (Read 16799 times) previous topic - next topic

68tjs

<troll du lundi>
Vive les logiciels libres aux formats normalisés ISO, qui tournent sur plusieurs systèmes d'exploitation et qui de surcroît sont gratuits comme libreoffice (traitement de texte + tableur + dessins + présentation + base de donnée[->là pas terrible] ).
Merci de toujours avoir à l'esprit que Windows n'est pas une obligation et que Linux, Mac, Androïd, existent aussi.
Penser aussi que si vous n'avez pas Linux, par symétrie celui qui a Linux (Mac) n'a pas Windows.
</troll>

Le format pdf n'est pas une aussi bonne idée qu'il parait. Un pdf est fait pour ne pas être modifié.
Sur ce forum nous délivrons des documents "libres", AMHA il faut donc laisser à chaque utilisateur la possibilité de l'adapter et/ou de le compléter suivant ses besoins personnels.

alex38

Très bon tuto dans l'ensemble en tout cas !

Je suis entrain d'essayer de comprendre le code (le C est mon "am"i mais le C++ pas z"encore mais bon apparemment la seule chose du C++ que tu/vous utilise"s/z" sont les bool qui ne sont pas présent dans le C)


NimaG42

Je viens de dévorer votre code ! Bravo je le trouve super bien codé.

Ca m'inspire pas mal pour améliorer le mien, mais pour le petit système que je fais, je ne sais pas si séparer les deux "couches" de message comme vous le faites est une bonne idée.
En tout cas bravo pour le travail fourni !

barbudor

Si la couche basse de transport des messages convient, autant la garder telle quelle et travailler sur la couche supérieure.
C'est le but de la séparation des couches.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

psyko

Bonjour,

Je viens de parcourir le code et suis assez content, car il se rapproche de ce que j'ai fait. Félicitation pour ton travail.
Je serai assez intéressé par un article sur un protocole binaire (celui que j'utilise), notamment la façon dont on peut éviter les erreurs de détection entre les tokens de début et les données. C'est toujours dans les tuyaux ?

Merci à toi.

barbudor

Pffff
Faudrait que je m'y mette mais je traine la patte
On va y réfléchir :D

Merci de tes encourragements
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Ce tuto est très bien rédigé et très complet. Cependant, il y a quelque chose que je ne comprend pas... Vous découpez les tâches pour la clarté, mais en réalité, est-il possible d'avoir plusieurs fichiers dans un programme Arduino ?

Merci d'avance
AntoineOnTheWeb

barbudor

Oui, puisque j'y arrive....

On peut avoir un INO qui est la partie principale (setup, loop)
Et des modules CPP+H

Dans l'IDE Arduino, une fois que tu as un INO tu peux ajouter les fichier supplémentaires par l'icône sur la droite. En cliquant dessus tu auras un menu avec 'ajouter un fichier'.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?


cutprod

#24
Nov 20, 2012, 09:21 pm Last Edit: Nov 21, 2012, 06:28 am by cutprod Reason: 1
Bonjour, merci et félicitations pour ton tuto, j'y retrouve les élément auxquels je me suis heurté en développent un protocole de communication a base de module 433Mhz.
Et d'autres que je n'avais pas pris en compte.
Grâce a toi je vais améliorer tout ça!!

barbudor

Avec des modules 433MHz, tu as intérêt à utiliser la lib VirtualWire qui va prendre en charge la couche basse :
- structure de message (synchro de début, longueur, ...)
- détection d'erreur
Un peu comme le protocole UDP sur réseau IP.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Jean-François

Le lien vers le document ne fonctionne plus.....  :smiley-mr-green:
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

barbudor


Le lien vers le document ne fonctionne plus.....  :smiley-mr-green:


Apparemment il y a pas mal de problèmes avec les pièces jointes sur le forum ces temps ci.  ]:)
Peut être font-ils du nettoyage et les suppriment après un certains temps ?
Peux tu te renseigner ?

J'ai mis un 2eme lien direct qui marchera toujours (dans l'historique).
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

@ Barbudor:

Quote
Le code n'implémente que le coté esclave sur Arduino. En fonction de l'intérêt je pourrais proposer aussi (...) une version du maître sur Arduino pour une communication Arduino/Arduino.


Oui, moi je voudrais bien, si c'est accessible à un touriste comme moi!  XD


  • Pourquoi? http://arduino.cc/forum/index.php?topic=151848.new;topicseen#new (en français)
    et http://arduino.cc/forum/index.php?PHPSESSID=ba3edac5d42177cdfd859939764d07fc&topic=152130.0 (en anglais)

  • Comment? Sur le conseil de l'excellent Skywodd (je comprends pas bien tout ce qu'il m'écrit là, mais au point où j'en suis  :smiley-mr-green: ...):
    Quote
    Regarde si tu peux faire du broadcast UDP avec la RedFly, ça te simplifierait grandement les choses.
    L'UDP c'est pratique car ça utilise la notion de datagramme, soit le datagramme arrive soit le datagramme arrive pas, mais dans tous les cas s'il arrive c'est forcément en entier.

    Donc en gros tes serveurs (note de MichelNimes: que moi j'appelle clients, et que toi, Barbudor appelle maîtres) avec les capteurs auraient juste à "balancer" un paquet suivant un format que tu définis.
    Les clients (note de MichelNimes: que moi j'appelle serveurs, et que toi, Barbudor appelle esclaves) eux tendent l'oreille sur le réseau et interceptent ce qui passe.

    Si tu peut utiliser le broadcast UDP il te suffira de faire un format (= protocole) pour tes datagrammes.
    Tu as un trés bon tuto justement sur l'implémentation d'un protocole de communication dans la partie cours/tutoriel du forum arduino (partie francophone).


www.michelglaize.com

Et quid de Firmata ? Avez vous une opinion sur ce protocole ASCII ? Je cherche à l'utiliser entre Arduino et Processing mais j'en arrive à modifier les sources de base !

Go Up