Bonjour a tous !
Je suis nouveau dans le monde du simulateur dynamique. Mon projet serait de réaliser un simulateur tout mobile (écran compris ).
Je voudrais un 2dof type frex avec moteur AC 220v en guise de vérin.
Malheureusement je suis trop mauvais en langue étrangères, nul en arduino.... nul quoi :/ .
Evidemment ce projet me dépasse beaucoup trop, alors j'ai décider de faire fonctionner dirt3 sur une maquette avec deux servo pour initiation sur x-sim & arduino uno. Petit projet du même type que : https://www.youtube.com/watch?v=AeprKtcF210
Mais voilà, je televerse dans arduino uno le programme ci-dessous et x-sim converter ne vois pas X-pid contrairement a lorsque je televerse le XPID.ino de Sirnoname.
Je vient donc vers vous après de longues heures de recherche et dans une situation ou je ne sais plus avancer. Pourriez-vous peut-être m'aider a avancer dans ce projet de base miniature avec x-sim, arduino uno et deux servo de modélisme?
Le code essayer et celui-ci:
/ *
* 2DOF Motion Platform with 2 Servos
* -------------------------------------
*
* /
include <Servoh>
Servo myservo1;
Servo myservo2;
Degree int;
Gforce int = 0;
Gforce1 int = 0;
Gforce10 int = 0;
Gforce100 int = 0;
kindofdata char;
void setup () {
// Set pins servo
myservo1attach (2);
myservo2attach (3);
// Align servos center postision
myservo1write (90);
myservo2write (90);
// Open connection to serial
Serialbegin (115200);
}
void loop () {
// Wait for serial input (min 3 bytes in the buffer)
while (Serialavailable ()> 0) {
kindofdata = Serialread (); // String from the USO -> L ~ ~ R ~ A02 A01 8bit resolution ~ \ decimal output
if (kindofdata == 'L') {
ReadPos (kindofdata);
}
if (kindofdata == 'R') {
ReadPos (kindofdata);
}
}
}
void ReadPos (char whichservo) {
delay (2);
Serialread Gforce100 = int () - '0';
delay (2);
Serialread Gforce10 = int () - '0';
delay (2);
Serialread Gforce1 = int () - '0';
// Decimal verifica ou se e centena dezena ... =]
if (Gforce1 <0) {= Gforce10 Gforce + 10 * Gforce100; }
if (Gforce1 <0 && Gforce10 <0) {Gforce = Gforce100; }
if (Gforce100 <0) {Gforce = 127; }
if (Gforce1> = 0 && Gforce10> = 0 && Gforce100> = 0) {Gforce + 10 = 100 * * Gforce10 + Gforce1 Gforce100; }
if (whichservo == 'L') {
Degree = map (Gforce, 0, 255, 180, 0);
}
if (whichservo == 'R') {
Degree = map (Gforce, 0, 255, 0, 180);
}
if (whichservo == 'L') {
myservo1write (Degree);
}
if (whichservo == 'R') {
myservo2write (Degree);
}
}
Merci