Pages: 1 [2]   Go Down
Author Topic: [Tuto] Implémenter un protocole de communication  (Read 13202 times)
0 Members and 1 Guest are viewing this topic.
France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1904
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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)

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
"Oui, je suis un criminel. Mon crime est celui de la curiosité."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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 ?

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pffff
Faudrait que je m'y mette mais je traine la patte
On va y réfléchir smiley-grin

Merci de tes encourragements
Logged

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 ?

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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 ?

Offline Offline
Newbie
*
Karma: 0
Posts: 20
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok je ne savais pas smiley
Merci pour cette info
Logged

Sud-Ouest
Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!!
« Last Edit: November 21, 2012, 12:28:00 am by cutprod » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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 ?

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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 ?

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ 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!  smiley-lol

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


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

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

Pages: 1 [2]   Go Up
Jump to: