Besoin d'aide - communication sans fil bidirectionnelle

Bonjour,

Je “sèche” :frowning: sur un problème depuis quelques temps déjà - du temps qui me manque de plus en plus d’ailleurs - pour un projet “tout simple” de télécommande 4 canaux bidirectionnels, sans fil.

J’ai commencé avec des NRF24L, mais sans succès véritable (j’suis une bille en code, il faut le dire…)

J’ai donc besoin que 4 IN d’un arduino micro commandent 4 OUT d’un autre arduino micro et que 4 IN de ce deuxième arduino commandent 4 OUT du premier. Duplex ou semi-duplex. ON/OFF.

Quelqu’un pourrait me donner un exemple de code pour réaliser cela ?

Merci de votre aide.

Stéphane

bonjour, si tu donnais ce que tu as déjà fait.

du temps qui me manque de plus en plus d'ailleurs

autant dire projet exam

TSTELECTRO: J'ai commencé avec des NRF24L, mais sans succès véritable (j'suis une bille en code, il faut le dire...)

Un seul canal, pas besoin de 4 avec des des NRF24 qui sont en plus bi-directionnel.

Un coup de google et tu as tout ici

Jambe:
Un seul canal, pas besoin de 4 avec des des NRF24 qui sont en plus bi-directionnel.

Un coup de google et tu as tout ici

Merci pour la réponse.

Désolé pour ma mauvaise explication : 4 entrées + 4 sorties par arduino

De tous les exemples que j’ai trouvé sur Google, je n’ai rien trouvé qui corresponde plus ou moins à mes besoins. J’ai cherché un qqn de compétent dans mon entourage pro, mais personne pour me faire le développement d’un tel projet, pourtant rémunéré… :frowning:

infobarquee: bonjour, si tu donnais ce que tu as déjà fait.autant dire projet exam

mais personne pour me faire...........pourtant rémunéré... :-(

Eh oui l'argent n'achète pas tout. Il existe encore des "retardés mentaux" qui ont des valeurs morales. Pas de chance.

68tjs: Eh oui l'argent n'achète pas tout. Il existe encore des "retardés mentaux" qui ont des valeurs morales. Pas de chance.

Euh, je ne suis pas vraiment dans l'amusement, là. J'essaye de développer un truc pour un pote paraplégique pour lui simplifier la vie. Une télécommande simple et efficace, avec 4 entrées pushbutton d'un côté et 4 "retours" pour lui confirmer que les commandes sont bien passées.

J'ai "besoin" de faire ça pour lui car il s'est adressé à l'électronicien que je suis depuis plus de 25 ans, mais qui avoue sans détour qu'il est une bille totale en codage (arduino et autres).

Derrière ces arduinos et cette commande, il y a encore énormément d'électronique développée (ça c'est mon truc) et d'électromécanique et oui, si en rémunérant qqn, je peux gagner du temps et "enfin" fournir à ce pote ce qu'il attend de moi, je n'ai "aucune honte" à faire de telles demandes.

Maintenant, si c'est trop compliqué pour ceux qui préfèrent commenter infantilement que de chercher à aider, je peux le comprendre. Quand je suis confronté à ma propre incapacité, perso, j'évite d'en de faire la morale aux autres. Je demande. Ou je me tais ...

Bonne soirée.

Eh bien pourquoi tu ne dis pas tout directement.

Nous sommes à quelques jours des oraux de sujets bac et envahis de lycéens qui n'ont rien fichu et qui se réveillent au dernier moment.

A lire le message épinglé qui explique le fonctionnement : Bienvenue sur le forum de la communauté francophone

Si tu es une "bille" en code j'en suis une en "radio" mais ici il y a du monde qui connait. Explique mieux ce que tu veux faire : 4 entrées et 4 sorties c'est bien mais c'est quoi les entrées, c'est quoi les sorties.

Tu veux de la radio "indépendante" ou du Wifi ?

Quelle carte arduino vise-tu : Micro famille avr 8 bits La famille UNO : - UNO - Nano (UNO en petit format) - Mini-pro ( Nano sans interface USB série --> consomme moins donc meilleure autonomie - Micro /Léonardo USB intégré au microcontrôleur

La Méga (grosse carte)

Les cartes à base de micro 32 bits ARM Micro plus puissant mais plus délicat et moins d'utilisateurs.

bonjour, +1 avec 68tjs on a eu il y a peu, une demande perso, qui soit disant n'était pas pour un exam. mais au fil des questions/réponses, il a été démasqué. il faut nous comprendre et ce n'est pas de l'infantilisme dans les remarques, mais juste des vérifications, pour ne pas pondre un sujet bac dans l'urgence.

Maintenant, si c'est trop compliqué pour ceux qui préfèrent commenter infantilement que de chercher à aider, je peux le comprendre. Quand je suis confronté à ma propre incapacité, perso, j'évite d'en de faire la morale aux autres. Je demande. Ou je me tais ...

rien est compliqué a partir du moment où tout est expliqué concrètement.

Un problème bien posé est un problème à moitié résolu. Henri Poincaré

si j'ai bien compris, tu veux envoyer 4 valeurs d'un maitre à un esclave pour 4 actions et que l'esclave renvoie les mêm valeurs pour dire qu'il a bien comprit et les a fait.

pas trop compliqué tu envoie une trame des 4 valeurs, encore faut il savoir quelles sont elles, par exemple A1B12C5D0 l'esclave recoit la trame, la parse et extrait les données avec leur valeur A1 B12 C5 D0

il effectue ces actions et renvoie la même chose au maitre. le maitre va vérifier que la trame envoyée correspond à celle recue.

donc, on ne connait ni les détails, ni la distance de communication, ni ce que tu as déjà fait en code/organigramme et tu veux que l'on réponde correctement.

répond aux questions et on fera le maximum pour répondre.

On peut aider - donnez nous des détails sur le matériel dont vous disposez et les contraintes (distance entre émetteur / récepteur par exemple et type d'obstacle pour les ondes éventuellement)

Merci de la suite donnée :slight_smile:
Je comprends mieux l’appréhension face aux étudiants en mal de code tout fait pour réussir leurs exams. Je confirme : ce n’est pas mon cas. J’ai passé 40 piges (et je m’identifie volontiers pour ceux qui auraient encore des doutes :wink: Je ne cherche pas un code tout fait. Enfin, si, quand même un peu. Enfin, un base, si possible.

Je vais essayer d’être aussi “clair” que possible, malgré l’heure ^^
(les pin sont données pour exemple)

Sur le PREMIER ARDUINO ( micro ) :


4 entrées digitales D2/D3/D4/D5
4 sortie digitales D6/D7/D8/D9

Sur le DEUXIEME ARDUINO ( micro ) :


4 entrées digitales D2/D3/D4/D5
4 sortie digitales D6/D7/D8/D9

Le but :

L’entrée D2 du premier board commande la sortie D6 du deuxième board (et ainsi de suite pour D3-D7, D4-D8, D5-D9 )

et, en half-duplex ou en full-duplex, les commandes du deuxième board font la même chose sur le premier.

Le deuxième ne renvoie pas une “quittance” logique au niveau du board, mais reçois bien une commande extérieure pour quittancer une action (pour la plupart des cas électromécanique : palpeur de fin de course, notamment)

  • Le temps de réponse n’a pas besoin d’être de l’ordre de la nanoseconde. Mais il ne faut pas que la boucle fasse 3 minutes non plus, on est d’accord.

  • La portée utile est de quelques (dizaines) de mètres. Mes “tests” avec des NRF24L01+ sont concluants à ce niveau. Surtout avec la possibilité d’utiliser la version avec antenne externe. Pas de perturbants ou d’obstacles. On est presque à vue directe.

  • Je devrai temporiser les sorties, émettre une petite tonalité pour confirmer le feedback de la commande mais ça, je gère ^^

Le choix du matériel :

  • Arduino Micro, principalement pour des raisons d’encombrement et de conso.
  • NRF24L01+ pour son rapport consommation/portée/duplex/encombrement.

Ce que j’ai fait jusqu’à maintenant : RIEN ! Ou presque. Bidouillé avec des exemples des lib MIRF, mais sans jamais de résultat concluant en terme de (half)duplex. Encore une fois, le code (enfin ce code…), ce n’est pas mon “dada”. Ce projet me tient à coeur et pourtant - ce qui n’est pas dans mes habitudes - je n’arrive pas à “crocher”. Trop “impacté” par la situation de mon pote et ses attentes, j’en sais rien…

Donc, merci d’avance pour vos éclairages aussi “vulgarisés” que possible.

Pour 68tjs : vous/tu as raison : l’argent n’achète pas tout et j’en suis le premier convaincu au point d’avoir fait des choix de vie “tout autres”. Donc, loin de l’idée d’être le “fils à papa blindé qui veut s’acheter une bonne note à un exam technique en présentant un projet auquel il ne comprendrait rien puisque fait par un autre”, je reste un poil dans l’idée que, même communautairement parlant, la notion que “tout travail mérite salaire” garde bon écho … tant que la prime valeur reste le respect mutuel avant toute autre chose… (théories de vieux con en devenir, à 3 plombes du mat’ …)

MERCI POUR TOUT !

ma proposition est donc pas la meilleur, mais l'une des plus simple, envoyer une trame avec toutes les infos. A1B100C2D65 A1 représentant un contact, lumière par exemple B100 une vitesse de ventilo C2 ouverture du store à moitié D65 une note sur un piezo

mais tu ne répond pas comme il faut

Sur le PREMIER ARDUINO ( micro ) :


4 entrées digitales D2/D3/D4/D5 4 sortie digitales D6/D7/D8/D9

Sur le DEUXIEME ARDUINO ( micro ) :


4 entrées digitales D2/D3/D4/D5 4 sortie digitales D6/D7/D8/D9

c'est quel style d'entrée et sortie sur le 1er et aussi sur le deuxième.

on ne va pas coder de la même facon un simple bouton par rapport à un timer.

J'aurais du préciser que pour moi, des entrées et des sorties digitales, sans précision particulière, c'était du tout ou rien, ou 0/1, c'était de l'ordre du poussoir.

(Le deuxième ne renvoie pas une "quittance" logique au niveau du board, mais reçois bien une commande extérieure pour quittancer une action (pour la plupart des cas électromécanique : palpeur de fin de course, notamment)

Merci.

le système doit-il être totalement asynchrone ? comment voyez vous les "quittances" (ack) ?

par exemple: je pousse le bouton B1 sur l'Arduino A1, la commande est envoyée sur l'Arduino A2

A2 reçoit l'ordre B1, déclenche une action qui va prendre du temps

1/ voulez vous que A2 réponde immédiatement à A1 "commande B1 reçue" ou attende que l'action liée à B1 soit entièrement terminée (par exemple palpeur de fin de course activé) pour confirmer?

2/ l'utilisateur peut il émettre une autre commande tant que la première n'a pas été confirmée ?

Dans un premier temps - il s'agit de bien définir la machine à état de chacun des 2 systèmes

TSTELECTRO: J'aurais du préciser que pour moi, des entrées et des sorties digitales, sans précision particulière, c'était du tout ou rien, ou 0/1, c'était de l'ordre du poussoir.

(Le deuxième ne renvoie pas une "quittance" logique au niveau du board, mais reçois bien une commande extérieure pour quittancer une action (pour la plupart des cas électromécanique : palpeur de fin de course, notamment)

Merci.

il serait bon de dire exactement ce que tu veux faire, au lieu que l'on te tire les vers du nez. donc, papier crayon pour faire un dessin de ce que doit contenir le 1 et le 2 organigramme pour expliquer le déroulement de la procédure.

@J-M-L :

"Le deuxième ne renvoie pas une "quittance" logique au niveau du board, mais reçois bien une commande extérieure pour quittancer une action (pour la plupart des cas électromécanique : palpeur de fin de course, notamment)"

Quant à votre question : 2/ l'utilisateur peut il émettre une autre commande tant que la première n'a pas été confirmée ? => Oui, il n'y a pas besoin d'attendre une confirmation pour passer à l'action suivante.

@infobarquee :

4 boutons poussoirs (0/1) commandent 4 sorties 0/1 sur un arduino distant.

4 boutons poussoirs (0/1) commandent 4 sorties 0/1 sur le premier arduino.

chaque poussoir est indépendant au niveau logique des 7 autres. Il n'y a pas besoin de temporisation (je m'en occupe), ni de feedback logique (il se fera de manière matériel). Les commandes peuvent être envoyées "en même temps" (dans la limite de la séquence d'envoi (donc de la boucle du code qui read l'état et balance la salve), bien sûr.

Pour faire "simple", 8 télécommandes avec 8 récepteurs totalement indépendants les uns des autres, sans la moindre fioriture.

4 boutons poussoirs (0/1) commandent 4 sorties 0/1 sur un arduino distant.

4 boutons poussoirs (0/1) commandent 4 sorties 0/1 sur le premier arduino.

ca on avait comprit

toi tu sais ce que tu veux faire, mais nous non. donc explique clairement ce que tu veux faire avec un exemple.

pour le moment on est rendu à appuie sur un bouton du maitre qui envoie sur l'esclave donc en suivant ma logique on peut faire maitre esclave action A1 ou A0 recoit A1 ou A0 allume ou etiend lumiere 1 B1 ou B0 recoit B1 ou B0 allume ou etiend lumiere 2 C1 ou C0 recoit C1 ou C0 allume ou etiend lumiere 3 D1 ou D0 recoit D1 ou D0 allume ou etiend lumiere 4

infobarquee: ca on avait comprit

toi tu sais ce que tu veux faire, mais nous non. donc explique clairement ce que tu veux faire avec un exemple.

pour le moment on est rendu à appuie sur un bouton du maitre qui envoie sur l'esclave donc en suivant ma logique on peut faire maitre esclave action A1 ou A0 recoit A1 ou A0 allume ou etiend lumiere 1 B1 ou B0 recoit B1 ou B0 allume ou etiend lumiere 2 C1 ou C0 recoit C1 ou C0 allume ou etiend lumiere 3 D1 ou D0 recoit D1 ou D0 allume ou etiend lumiere 4

Voilà ! C'est ça.

Voilà ! C'est ça.

c'est bien, mais une fois de plus si tu pouvais dire concrètement ce que tu veux faire au lieu que ce soit nous qui devinions. on gagnerais ENORMEMENT de temps pour ton projet qui a l'air urgent.

sers toi de l'exemple ping pong ICI

Je ne sais pas comment expliquer plus clairement ce que j'ai besoin.

Quant à l'exemple ping-pong, j'avais essayé. Mais je me répète : je ne suis pas familiarisé avec ce code, si simple soit-il à vos yeux avertis. J'ai envie de dire "si je savais, je ne poserais pas la question..."

On peut donc clore le sujet. Désolé de vous avoir fait perdre du temps avec tout ça.