Autres arduino et programmation rc

  • Auteur de la discussion cedreatlas
  • Date de début
C

cedreatlas

Ouvrier
bonjour
La nouvelle nano est arrivée, j'attends d'autres RF24L dans le cas ou ceux que j'ai ne fonctionneraient pas, mais toujours pas de communication entres les 2 RF24..:mad:
 
R

Rebus

Compagnon
Bonjour cedreatlas,

Tu as bien fait d'en commander plusieurs ... car il y a des déchets.
A ce prix là, je ne pense pas qu'il y ai un contrôle qualité en bout de chaine de fabrication.
Après des manipulations +/- scabreuses j'en ai un autre HS. Il s'est mis à consommer 250mA et bien sûr .... perte de liaison.
Du coup, comme je fais des essais à courte distance j'ai mis de coté ceux avec antenne pour plus tard.

Il faut que j'essaie les sketchs que tu utilises, car ils sont assez différents des miens, juste pour voir s'il n'y a pas de bug.
Je te tiens au courant.

Bonne journée.
 
C

cedreatlas

Ouvrier
Bonjour
Merci, j'avais aussi commandé des PCF8574 ,que je devrais recevoir sous peu, pour monter le même que toi dans le cas ou ça ne fonctionnerait pas, mais c'est, je pense, un problème de communication; mais étant débutant dans ce domaine, j'en apprends tous les jours mais mon vocabulaire est réduit tout de même,
bon dimanche
 
R

Rebus

Compagnon
Re-bonjour,

Voila, j'ai testé les deux sketches que tu utilises, uniquement avec deux servos, et ça marche !

Par contre j'ai désactivé le test de réception qui, dans mes sketches aussi perturbaient le fonctionnement.
Sur le nombre de trames échangées une grande partie est en erreur, peut être parce que la boucle d'émission envoie plus de trames que le récepteur ne peut en traiter (?).

// }
// erreur_reception = erreur_reception + 1;
// if (erreur_reception > 20)
// {
// val_0 = 90;
// val_1 = 90;
// val_2 = 90;
// val_3 = 90;
// val_4 = 90;
// val_5 = 90;
// val_6 = 90;
// val_7 = 90;
// erreur_reception = 1;
// action();


Avec cette routine en place les servos vibrent sans arrêt, car une fraction du temps ils sont positionnés en fonction des joysticks de l'émetteur, et quelques millisecondes plus tard ils sont ramenés à la position médiane par une erreur réception et ça boucle ...

Les sketches sont ok, à cette routine près.

Des modules qui fonctionnent et un câblage correct, ça doit communiquer !

Bon après-midi
 
Dernière édition:
C

cedreatlas

Ouvrier
J'ai essayé de brancher 2 UNO que j'avais, avec les mêmes sketchs, il se produit la même réaction, le servo pourtant alimenté par une autre arrivée, claque...
 
R

Rebus

Compagnon
Tu as désactivé la routine erreur_reception dans le sketch réception ?
Chez moi, ce sont des tout petits servos SG-50 et ça vibre, sur des gros ça doit faire du bruit !

Il faut que je mesure les durées des boucles, je suis presque sûr que l'émetteur envoie beaucoup plus de trames que le récepteur n'est capable d'en traiter.
En mettant des délais (au pif) dans la boucle d'émission ça ne diminue pas le nombre d'erreurs réception.
 
C

cedreatlas

Ouvrier
oui, j'ai effacé cette partie du sketch, j'ai des servos de 20kg, ça fait un petit cliqueti régulier et chose curieuse, quand je remplace un servo normal par un servo de "robot" et quand je place le signal sur 2(tx) digital PWM de la UNO, il réagit de quelques mm avec le joystick, donc les rf24 sont ok, ce serait un problème de signal, voici celui qui réagit, reste à le régler pour qu'il se mouve d'avantage..
https://fr.aliexpress.com/item/High...-Car-helicopter-airplane-robot/692954479.html

et après, je rebrancherais les nano, il n'y a pas de raison pour que le premier système ne fonctionne pas.
 
R

Rebus

Compagnon
Bonjour,
C'est déja un point important !
As-tu essayé un inter sur les entrées TOR + une led + résistance sur les sorties du récepteur ?
Pour les cartes Uno, Nano ou Pro mini il ne dois pas y avoir de différence.
Le sketch RX tourne chez moi sur une Mega2560, j'ai modifié l'attribution des broches car vu le nombre d'entrées / sorties disponibles, je n'avais plus besoin des modules I2c de ce coté là.
Je reste persuadé que ce système est une bonne base, très souple pour réaliser une radiocommande sur mesure.
Bonne journée.
 
J

jpbbricole

Compagnon
Bonjour @cedreatlas
A ce stade, il ne faut plus travailler en "aveugle". Il serait bon d'afficher les valeurs que tu reçois afin de cerner le problème. Comme une partie du port de communication est utilisée (tx 1), il faut modifier une bricole, le programme afin de pouvoir afficher. Je te prépare ça, si ça peut te rendre service.

Cordialement
Jjbbricole
 
C

cedreatlas

Ouvrier
Bonjour
de retour sur les "ondes", je vois ...

Bien sur que ça me rend service, hier un servo bougeotait avec le joystick, ce matin , plus rien , juste quand je change de servo, il s'affole quelques secondes et puis plus rien, ;
j'ai, les valeurs suivantes : de 55 à 123
je vais remettre les nanos
a+
Ph
 
C

cedreatlas

Ouvrier
Bonjour
en fait, j'aime bien comprendre le pourquoi du comment, je ne comprends pas pourquoi certains servos réagissent et d'autres, non; pourquoi, , avec la UNO, les servos bougent et pas avec la NANO avec le même programme??
 
J

jpbbricole

Compagnon
Sur quoi, dans les 2 cas, tu alimentes les servo en 5v.?

Cordialement
Jjbbricole
 
C

cedreatlas

Ouvrier
J'ai une batterie 12 v et transfo 7.5v 20A
cordialement
 
J

jpbbricole

Compagnon
J'ai repris tes photos, je n'ai vu nulle part que tu alimentes ton nano par le jack d'alimentation. Or, si tu connectes tes servo sur le bord, c'est nécessaire, l'alimentation par L'USB n'est pas suffisante

Cordialement
Jjbbricole
 
C

cedreatlas

Ouvrier
oui, mais j'avais essayé aussi avec des jacks , via batterie 12v et transfo 5v, j'ai 2 transfos, un pour les cartes et l'autre pour les servos..
 
J

jpbbricole

Compagnon
Salut @cedreatlas

Voilà, je suis de retour après une escapade du côté de la Russie, vraiment super!
J'ai un peu modifié le programme du récepteur afin d'afficher, dans le moniteur(9600) de l'IDE Arduino, les valeurs reçues.
En bougeant les manches de l'émetteur, on devrait voire des valeurs changeantes dans le moniteur.
Essaie déjà ça. Je spécifie que je n'ai pas pû tester en réel, mais ça devrait fonctionner.

Cordialement
jpbbricole
 
J

jpbbricole

Compagnon
oui, mais j'avais essayé aussi avec des jacks , via batterie 12v et transfo 5v
Si tu passes par le jack pour alimenter, il ne faut pas mettre 5v. mais jusqu'à 12v. (je n'ai pas trouvé les spécifications de ce shield) l'idéal est 9 v. comme celà le régulateur chauffe moins.
Je n'arrive pas à lire les spécifications de ce régulateur
upload_2017-5-31_12-39-21.png

mais je suppose qu c'est lui qui "fabrique" le 5v. pour les servos.

Cordialement
jpbbricole
 
C

cedreatlas

Ouvrier
Salut
ça sent la vodka..
Mes servos fonctionnent sous 7.4 v, c'est pour ça que j'ai un transfo pour les servos et un autre pour les cartes nano; dans le sérial, je n'ai qu'une valeur 0.0.0, il faut que j'aille bosser un peu , je revois tout ça ce soir
merci
 
C

cedreatlas

Ouvrier
Oui, j'avais remis les 2 nano emeteur -recepteur et j'ai chargé les 2 programmes et que des 0.0.0
Ph
 
J

jpbbricole

Compagnon
et que des 0.0.0
Et ceci dans le moniteur de l'émetteur?
Si oui, on a un sérieur blême ou des fantômes qui faussent les résultats, je ne connais pas ta région:shock:
parce que:
Les valeurs min et max sont:
int posmin = 45; int posmax = 135;

Au dessus de l'endroit où l'on affiche les données lues, il y a:
val_0 = (analogRead(potpin_0)); val_0 = map(val_0, 0, 1023, posmin, posmax);
....
....
//!!!!!!!!!!!!!!!!!!!!! cedreatlas !!!!!!!!!!!!!!!!!!!!!!!!!
Serial.print("Tx 0-5 = " + String(val_0) + "-" + String(val_1) + "-" + String(val_2));
Serial.println("-" + String(val_3) + "-" + String(val_4) + "-" + String(val_5));

Et le résultat donne ça (mes entrées analogiques sont en l'air)

Tx 0-5 = 46-118-124-124-123-45
Tx 0-5 = 50-120-121-122-119-45
Tx 0-5 = 47-119-123-122-120-45
Tx 0-5 = 46-120-124-124-122-45
Tx 0-5 = 50-121-121-122-120-45
Tx 0-5 = 47-120-123-123-121-45
Tx 0-5 = 46-119-125-124-123-45
Tx 0-5 = 50-120-121-122-118-45
Tx 0-5 = 47-119-123-123-121-45
Tx 0-5 = 46-119-125-124-122-45
Tx 0-5 = 45-119-125-124-121-45
Tx 0-5 = 50-121-122-123-121-45
Tx 0-5 = 47-119-123-123-121-45
Tx 0-5 = 45-118-124-123-120-45
Tx 0-5 = 50-120-121-122-119-45
Tx 0-5 = 47-119-125-124-122-45
Tx 0-5 = 46-120-125-125-123-45
Tx 0-5 = 45-119-126-124-122-45

Mais en aucun cas des données à 0, la fonction map( rend la chose impossible. Alors si Sherlock Holmes est ton copain...

Cordialement
jpbbricole
 
C

cedreatlas

Ouvrier
bonjour
j'ai ça dans le serial, si ça te parle..

upload_2017-6-1_0-36-26.png


Philippe
 
J

jpbbricole

Compagnon
j'ai ça dans le serial, si ça te parle..
Un peu(mon neveu:-D) que ça me parle. Visiblement, tes joystick ne sont pas branchés, les valeurs affichées ressemblent à des entrées en l'air.
Branches un joystick et contrôle le changement des valeurs en fonction des mouvements.
Etape suivante: contrôler l'émetteur RF24 en chargeant le programme suivant
le résultat doit ressembler à ça:

RF24/examples/scanner/
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0e1
RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX

Répètes le test sur les 2 modules Rx et Tx et mets les résultats en ligne.

Cordialement
jpbbricole
 
C

cedreatlas

Ouvrier
bonsoir
je n'ai plus que des 00 dans le sérial, je vais attendre de recevoir d'autres RF 24 et tout revoir..
bonne soirée
Ph
 
J

jpbbricole

Compagnon
je vais attendre de recevoir d'autres RF 24 et tout revoir.
Et surtout, fait un schéma, c'est toujours plus facile pour rechercher des erreurs.

As-tu fait le test que je t'ai proposé dane le post #146, à faire dans la partie émission. Et met le résultat em ligne.

Cordialement
jpbbricole
 
C

cedreatlas

Ouvrier
bonjour
oui, j'ai ça comme erreur:
Arduino : 1.8.2 (Windows 10), Carte : "Arduino Nano, ATmega328"

C:\Users\cedreatlas\Documents\Arduino\sketch_jun02c\sketch_jun02c.ino:4:20: fatal error: printf.h: No such file or directory

#include "printf.h"

ou faut il l'inclure?

cordialement
Ph
 

Sujets similaires

A
Réponses
5
Affichages
2 152
jpbbricole
J
J
Réponses
18
Affichages
4 440
jpbbricole
J
V
Réponses
56
Affichages
10 836
vibram
V
Haut