Bonjour à tous,
Je viens vers vous car j'ai découvert depuis peut de temps l'univers de l'arduino et depuis j'y suis accro et à la vue de toutes les possibilités offertes par ce dernier je me suis lancé dans un petit projet qui en fera surement rire certain par sa simplicité pour quelqu'un qui si connait super bien.
Mon projet est d'utilisé une plateforme à 4 roue motrice commandé à distance par une radiocommande 2,4Ghz de modélisme.
J'ai déjà plutôt bien débuter, en fait, j'ai commencé petit avec le "Châssis Cherokee 4WD" disponible à cette adresse:
http://www.gotronic.fr/art-chassis-cherokee-4wd-20595.htm
Je l'ai ensuite connecter à une carte Arduino UNO et un ProtoShield pour la connexion du récepteur 2,4Ghz à 6 canaux.
Jusque la rien de bien compliqué et j'ai aussi travailler un peu, dans le sens ou j'ai cherché à apprendre le codage Arduino depuis le début( Merci à "http://www.mon-club-elec.fr") et grace à quelque recherche sur le net j'ai pu trouver un code pour se châssis mais que j'ai du modifier pas mal pour que tout fonctionne sur mon projet.
Le voici, mais je n'arrive pas à le modifier pour le Chassis Hercules:
int ch1; // Here's where we'll keep our channel values
int ch2;
int ch3;
int ch4;
int ch5;
int ch6;
int move; // Forward/Back speed
int turn; // Turning Factor
int pwm_a = 5; //PWM control for motor outputs
int pwm_b = 6; //PWM control for motor outputs
int dir_a = 4; //direction control for motor outputs
int dir_b = 7; //direction control for motor outputs
int lampe = 13;
void setup() {
pinMode(8, INPUT); // Set our input pins as such
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(14, INPUT);
pinMode(13, OUTPUT);
Serial.begin(115200); // Pour a bowl of Serial (for debugging)
pinMode(pwm_a, OUTPUT); //Set control pins to be outputs
pinMode(pwm_b, OUTPUT);
pinMode(dir_a, OUTPUT);
pinMode(dir_b, OUTPUT);
analogWrite(pwm_a, 0);
analogWrite(pwm_b, 0);
}
void loop() {
ch1 = pulseIn(8, HIGH, 25000); // Read the pulse width of
ch2 = pulseIn(9, HIGH, 25000); // each channel
ch3 = pulseIn(10, HIGH, 25000);
ch4 = pulseIn(11, HIGH, 25000);
ch5 = pulseIn(12, HIGH, 25000);
ch6 = pulseIn(14, HIGH, 25000);
//if(ch6>1000){Serial.println("Left Switch: Engaged");}
//if(ch6<1000){Serial.println("Left Switch: Disengaged");}
if(ch6>1000){digitalWrite(lampe, 1);}
if(ch6<1000){digitalWrite(lampe, 0);}
//Serial.print("Right Stick X:");
//Serial.println(map(ch3, 1000,2000,-500,500));
//Serial.print("Right Stick Y:");
//Serial.println(map(ch2, 1000,2000,-500,500));
//Serial.println();
//delay(100);
//clearAndHome();
move = map(ch2, 1000,2000, -500, 500); //center over zero
move = constrain(move, -255, 255); //only pass values whose absolutes are
//valid pwm values
/*What we're doing here is determining whether we want to move
forward or backward*/
if(move>0){digitalWrite(dir_a, 1);digitalWrite(dir_b, 1);};
if(move<0){digitalWrite(dir_a, 0);digitalWrite(dir_b, 0); move=abs(move);};
/*Here we're determining whether a left or a right turn is being
executed*/
turn = map(ch4,1023,1915,-500,500);
turn = constrain(turn, -255, 255);
/*This is where we do some mixing, by subtracting our "turn"
variable from the appropriate motor's speed we can execute
a turn in either direction*/
if(turn>0){analogWrite(pwm_b, move-turn); analogWrite(pwm_a, move);};
if(turn<0){turn=abs(turn); analogWrite(pwm_a, move-turn); analogWrite(pwm_b, move);};
Serial.print("move:"); //Serial debugging stuff
Serial.println(move);
Serial.print("turn:"); //Serial debugging stuff
Serial.println(turn);
Serial.print("move-turn:"); //Serial debugging stuff
Serial.println(move-turn);
Serial.println(); //Serial debugging stuff
Serial.println();
Serial.println();
}
Enfin voici mon souci:
Je viens de recevoir un "Châssis Skeleton 4WD Hercules" disponible à cette adresse:
http://www.gotronic.fr/art-chassis-skeleton-4wd-hercules-20641.htm
Je voudrais le commandé de la même façon que mon premier châssis, mais je n'arrive pas à trouvé sur le net une réponse,
quels serait le code à utilisé et comment connecter la carte Arduino à la carte de commande?
J'ai le code à utilisé avec se châssis pour le commander avec le module RFBee, je cherche en se moment même comment le modifier et l'adapter pour non pas le commander avec un module RFBee mais avec une radiocommande 2,4GHz.
(Je n'arrive pas à le postez car mon message dépasse les 9500 caractères si je le mets, mais au besoin je peu le postez dans un autre message.)
En tout cas je mets et pièces jointes une photo de la carte de commande et l’explication des connections.
Si jamais quelqu'un possède cette plateforme et la commande déjà par Arduino, son aide serait vraiment la bienvenue.
Sinon toute aide sera la bienvenue et bien sur si vous avez des questions n'hésitez surtout pas.
Merci de m'avoir lu et à très vite j’espère.