Faire des groupes et calibration de joysticks (questions)

Re-salut a tous.

ok j,ai plein de petite questions et tant qu'a innondé le forum avec un post pour chaque, je vais tout mettre ici.
J'ai chercher sur google le plus que je pouvais. mais quand tu connais pas le terme exact de ce que tu cherche en anglais, les retour sont plus ou moin aléatoire...

bon commencons avec mon debut de code ca va etre plus simple.

#include <Servo.h>

#define Full_throttle 2000
#define Brake_Rev 700

Servo ESCfrontR;   //Esc Front Right
Servo ESCfrontL;   //Esc Front Left
Servo ESCbackR;    //Esc Back Right
Servo ESCbackL;    //Esc Back Left

int Yaxis1 = A0; // Fwd/reverse
int Xaxis1 = A1; // Horizontal left/right
int Zaxis1 = A2; // Yaw 


void setup()
{
ESCfrontR.attach(2,700,2000);
ESCfrontL.attach(3,700,2000);
ESCbackR.attach(4,700,2000);
ESCbackL.attach(5,700,2000);

}



void loop()
{

}

Question1: Est ce que je peut avoir une variable qui reeunirais tout les ESC ? un genre de moyen de faire des groupe?

genre au lieu de devoir ecrire '' ESCfrontL.writeMicroseconds(Full_throttle);'' pour chaque ESC quelque chose du genre '' allESC.writeMicroseconds(Full_throttle)'' ???

Question2: Mes ESC doivent etres controlé par des Joystick. Si je fait un analogRead de mes potentiometre, les valeur son exemple: MIN= 217 et MAX=820. Comment je fait pour les mappé a 0-1023 ? j'ai lu que je pouvais les calibré mais je comprend pas trop comme le faire pour que la calibration sapplique au 3 potentiometre utilisé des le debut et quelle soit permanente ensuite.

Question3: Jai vu que je pouvais ajouté des fonction void. a quoi ca sert en fait ? Je reprend mon code du debut, les question son en commentaire dans le code:

#include <Servo.h>

#define Full_throttle 2000
#define Brake_Rev 700

Servo ESCfrontR;   //Esc Front Right
Servo ESCfrontL;   //Esc Front Left
Servo ESCbackR;    //Esc Back Right
Servo ESCbackL;    //Esc Back Left

int Yaxis1 = A0; // Fwd/reverse
int Xaxis1 = A1; // Horizontal left/right
int Zaxis1 = A2; // Yaw 


void setup()
{
ESCfrontR.attach(2,700,2000);
ESCfrontL.attach(3,700,2000);
ESCbackR.attach(4,700,2000);
ESCbackL.attach(5,700,2000);

}

void patate()

{
   // quel sera l'incidence de void patate sur le programme ? il s,executera simplement avant le loop ?
}

void loop()
{
  // imaginé que ya des truc d'ecris ici
}

void carotte()
{
     // et a propos de void carotte ?  il s'executera apres la loop avant que celle ci se repete ?
}

bon pour la ces mes questions, mais je sens que je vais en ajouter encore bientot.
Je vous remerci de votre aide d'avance

KArl

Personne ?

Bonsoir,
pour les questions 1 & 3 ce que tu cherche s'appel une fonction : https://www.arduino.cc/en/Reference/FunctionDeclaration

pour la question 2, pour mapper des valeurs il y a la fonction... map() !! https://www.arduino.cc/en/Reference/Map

(attention la fonction map() ne limite pas les valeur, pour ne pas dépasser les mini / maxi il y a Constrain() )

Petite question : il y a 4 moteurs, mais seulement 3 entrées... le but est de faire un drone? il ne manque pas une info "accélérateur" ?

J'ai des connaissances que légère mais je vais essayer de t'apporter des réponses.

question 1: ça doit être possible de faire une fonction ou macro pour ca, sauf que c'est sûrement plus de ligne de code que juste tes 4 lignes de calibrations d'ESC, ce serai valable si tu calibrer un nombre plus conséquent d'ESC. Et encore, c'est hypothétique je suis sur de rien.

Question 2: Je sais pas aucune idée.

Question 3: les fonctions! Il n'y a pas que void, il existe des fonctions char, int, byte etc... Chacune renvoie une valeur du type de la fonction. Donc une void renvoie rien, une char renvoie une donnée de type char etc...
Les fonctions servent a faire des morceaux de codes que tu peux appeler dans la loop selon ce que tu veux faire. Il y a pas mal de tutos la dessus.

Par contre il me semble que même si la fonction est placée avant la loop elle ne sera pas exécutée, il faut l'appeler dans la loop.
Une fois que tu es rentrée dans la loop, tu peux plus en sortir, elle est infinie. La seule option c'est le reset et la le code repart depuis tout le début, void setup y compris.

fablath:
Petite question : il y a 4 moteurs, mais seulement 3 entrées... le but est de faire un drone? il ne manque pas une info "accélérateur" ?

En fait le projet est un ROV a 8 ESC qui vont marché en paires.

Pour le moment il y a 3 entrée, mais pour le controle des ESC il y en aura 6 au total.
Chaque entré controleras 1 axes.

Pour ce qui est de l' ''accelerateur, j'avoue ne pas comprendre ce que tu veux dire.

Merci a vous 2, ca me donne deja plusieur pistes a suivre :slight_smile:

Je continu mon code, et reviens la dessus

Un ROV c'est un véhicule sous marin?
Pour un drone l' "accélérateur" (throttle) permet de décoller et de gérer l'altitude
http://drone-about.fr/2015/09/19/quelques-notions-radio-multicoptere/

C'est pas le même principe pour un ROV?

En fait Oui et Non.

Avec une Bouyancy ui est le plus neutre possible, le ROV se retrouve en genre de situation '' d'apesanteur '' si on peut dire. Je sais que les mec ajoute de la telemetrie mais surtout pour savoir leur direction et si ils ne sont pas la tete en bas haha.

En fait mon plus gros probleme est surtout le codage.... fabriqué les pieces, la circuiterie c'est dans mes cordes.
Travailler avec du code et des micro controleurs, cest une autre histoire....

Mais bon ont apprend tranquilement. Pour la ca va quand meme bien, je pose des question et quand j'ai des reponse comme en ce moment ca avance :slight_smile:

la prochaine etape cest de comprende comment envoyé tout ca en sie entre 2 arduino... la ca va chier...