PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum PCSHM (Playseats, cockpits et simulateurs home-made)
Discussions à propos des cockpits et simulateurs faits maison, dédiés aux jeux de courses automobiles.
 
 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Branchements Arduino - Moto Monster - MEG

 
Poster un nouveau sujet   Répondre au sujet    PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum -> Les tutoriels -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Mer 12 Aoû - 07:49 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Bon, j'ai réussi à faire fonctionner mon banc de test avec un arduino Uno, une Moto Monster et un MEG.
Je rencontre malheureusement quelques problèmes (ce ne serait pas drôle sinon  ).
  • le moteur a parfois du mal à trouver sa position, arrivé près de sa valeur de consigne il se met à osciller autour de sa position désirée comme si il ne la trouvait jamais. Il y a un paramètre à modifier dans le code (provenance Racing Mat) pour éviter cela. Lorsque je mets une valeur suffisamment grande, cela supprime le problème mais je perds beaucoup en précision.

  • j'ai fait des tests dans Simtools Output Settings, le moteur va à peu près où il veut que j'aille sur des grandes amplitudes (curseur tout à fait à gauche ou tout à fait à droite) mais il a parfois des comportements erratiques lorsque je demande d'autres positions.

Dans un premier temps je soupçonne un problème sur le potentiomètre. C'est un 10kohm 320° relié en direct au MEG.  Pour mes tests cela ne devrait pas poser de pb, l'amplitude de mouvement est plus grande que nécessaire mais cela doit fonctionner.
Je vais donc essayer de lire les valeurs de consignes et la valeur retournée par le potar. A ce propos, il me semblait avoir vu un logiciel qui permettait de monitorer les valeurs de consignes VS valeurs rélles, quelqu'un aurait-il ça dans un coin ?
Sinon je vais écumer les forums pour essayer de retrouver ça.

EDIT: j'ai retrouvé, il s'agit de SMC3: http://www.xsimulator.net/community/threads/smc3-arduino-3dof-motor-driver-and-windows-utilities.4957/

Bon dsl pour le blabla, mais les phases de débuggage sont toujours chiantes mais finalement intéressantes, et je préfère le poser par écrit afin de m'en rappeler pour plus tard 
_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Publicité






MessagePosté le: Mer 12 Aoû - 07:49 (2015)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Mer 12 Aoû - 10:01 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Qu'est-ce que tu as modifié dans le code de RacingMat ? Parce qu'au lieu de changer ce paramètre (j'ai une bonne idée de ce que tu as changé  ) tu devrais isoler la masse de tes moteurs (il y a un post pour ça). Je pense que déjà ça changera pas mal de choses (à confirmer évidemment)...
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Mer 12 Aoû - 10:12 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

J'ai modifié la valeur "int Tol". Il a fallu que je l'augmente à presque 140 pour obtenir une stabilité. Donc forcément, c'est pas précis  Confused
Sinon je n'ai pas précisé mais j'ai bien isolé les masses moteurs, comme dans le tuto de Stéphane (même moteurs). Je vais redémonter ce soir pour vérifier mais au multimètre j'étais bien isolé.


On est bien d'accord que l'un des deux fils de commande du moteur doit être relié au charbon qui était auparavant relié à la masse ?


Citation:
////////////////////////////////////////////////////////
void motorMotion(int numMot,int actualPos,int targetPos)
////////////////////////////////////////////////////////
{
  int Tol=20; // no order to move will be sent to the motor if the target is close to the actual position
  // this prevents short jittering moves
  //could be a parameter read from a pot on an analogic pin
  // the highest value, the calmest the simulator would be (less moves)


  int gap;
  int pwm;
  int brakingDistance=30;

_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Mer 12 Aoû - 12:08 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

140  Shocked


Cette valeur correspond à la zone morte. Sur les codes que je fournis je suggère de la mettre au maximum à 10...


Ton potentiomètre sur 320° a une plage de 1024 valeurs (10 bits en lecture des entrées analogiques de l'Arduino). Tu l'utilises sur 180°, donc une plage de 576 valeurs. A celà tu mets une zone morte de 140, ce qui représente plus de 25% de ton mouvement !!


A titre de comparaison sur les codes que je fournis pour la Sabertooth je conseille une zone morte entre 5 et 10, ce qui représente entre 0.5% et 1% de perte de précision, ce qui est négligeable...


Fais la manip des moteurs et descend cette valeur à 20 (ou moins si tu peux), tu verras la différence car je suis persuadé que ça vient de là.
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Mer 12 Aoû - 12:26 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

J'avais testé le potentiomètre à part avec un code tout simple et il donnait bien les 1024 points de butée à butée, je confirme ce point.


Par contre je ne suis pas d'accord pour le coup des 180°, dans l'état actuel je l'utilise bien à 320° ! Etant relié en direct, le moteur tourne également sur une plage de 320°, je ne suis pas limité mécaniquement puisque le montage est "à vide". Je ne sais pas si je suis bien clair ?

Oui la valeur est énorme, j'en suis conscient et c'est bien pour cela que je pense qu'il y a un pépin quelque part  Confused


J'espère vraiment découvrir quelque chose sur les moteurs, car avec la valeur à 20 c'est clair que c'est pas gérable en l'état actuel, j'ai déjà testé.
_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Mer 12 Aoû - 12:33 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Je pense à truc bête mais qui a peut-être son importance. Le potentiomètre dispose d'un corps métallique et il est monté sur un support en métal lui-même fixé sur le MEG directement. J'ai peut-être du parasitage à cause de tout ça.
Je vais l'isoler pour en être certain, et je vais aussi bien séparer les fils. Je crois même que je vais prendre du câble réseau blindé pour le potar.
_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Mer 12 Aoû - 12:41 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Et ton moteur tu ne l'utilises pas que sur 180° peut être ? :B
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Mer 12 Aoû - 12:46 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

A terme oui bien sûr, mais là non pour les tests ! Il n'est limité que par le degré de rotation du potar donc 320 ! 
_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Mer 12 Aoû - 12:58 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Ah oui comme ça... Mais bon ça ne représente pas vraiment le simulateur.
L'isoler ne sera que mieux évidemment, d'ailleurs du câble blindé est recommandé !
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Ven 14 Aoû - 17:51 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Ok, j'ai progressé dans la résolution de ce problème.
J'ai modifié le code pour que ce soit un potentiomètre qui donne l'info de la position cible, et j'ai pu m'apercevoir que cela fonctionnait nickel.
J'ai juste eu quelques ajustements à faire sur les vitesses, mais c'est réglé de ce point de vue, j'ai même une valeur de zone morte à 10.  Cool


Donc c'est bien simple, si ça marche avec un potar, c'est que l'info envoyée par Simtools et reçue par l'Arduino n'est pas bonne.
Et J'ai compris mon erreur, j'ai renseigné la partie "interface settings" en me basant sur ton tuto Wanegain, or il est adapté à ton code, pas à celui de RacingMat !  D'oh !


Donc je pense que l'info reçue est délirante, d'où le positionnement complètement erratique quand je fais des essais "Output testing"


Le hic c'est que je ne sais pas quel paramètre mettre pour que l'arduino reçoive la bonne info.  Neutral


Voilà ce que j'ai actuellement, et c'est pas bon (sauf pour le 9600, c'est bien ce que j'ai dans le code):



_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Ven 14 Aoû - 18:45 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

J'ai fini par trouver un paramètre qui fonctionne: Bit range à 8 et Type Hexa  Okay
_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Sam 15 Aoû - 00:12 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Si je me souviens bien effectivement c'est du 8 bits en Hexa. T'as le code que je valide ? Il me semble que c'était L et G à la place de G et D je ne sais pas
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Sam 15 Aoû - 12:26 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Oui c'est normal pour G et D, c'est moi qui est modifié lorsque je cherchais à comprendre le fonctionnement du code vis à vis de Simtools.  Okay


Voilà le code:


#define BRAKEVCC 0
#define RV  2 //beware it's depending on your hardware wiring
#define FW  1 //beware it's depending on your hardware wiring
#define STOP 0
#define BRAKEGND 3


////////////////////////////////////////////////////////////////////////////////
#define pwmMax 255 // or less, if you want to lower the maximum motor's speed


// defining the range of potentiometer's rotation
const int potMini=100;
const int potMaxi=924;


////////////////////////////////////////////////////////////////////////////////
#define motLeft 0
#define motRight 1
#define potL A5
#define potR A4


////////////////////////////////////////////////////////////////////////////////
//  DECLARATIONS
////////////////////////////////////////////////////////////////////////////////
/*  VNH2SP30 pin definitions*/
int inApin[2] = {
  7, 4};  // INA: Clockwise input
int inBpin[2] = {
  8, 9}; // INB: Counter-clockwise input
int pwmpin[2] = {
  5, 6}; // PWM input
int cspin[2] = {
  2, 3}; // CS: Current sense ANALOG input
int enpin[2] = {
  0, 1}; // EN: Status of switches output (Analog pin)
int statpin = 13;  //not explained by Sparkfun
/* init position value*/
int DataValueL=512; //middle position 0-1024
int DataValueR=512; //middle position 0-1024


////////////////////////////////////////////////////////////////////////////////
// INITIALIZATION
////////////////////////////////////////////////////////////////////////////////
void setup()
{
  // serial initialization
  Serial.begin(9600);


  // initialization of Arduino's pins
  pinMode(statpin, OUTPUT); //not explained by Sparkfun
  digitalWrite(statpin, LOW);


  for (int i=0; i<2; i++)
  {
    pinMode(inApin[i], OUTPUT);
    pinMode(inBpin[i], OUTPUT);
    pinMode(pwmpin[i], OUTPUT);
  }
  // Initialize braked for motor
  for (int i=0; i<2; i++)
  {
    digitalWrite(inApin[i], LOW);
    digitalWrite(inBpin[i], LOW);
  }
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Main Loop ////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void loop()
{
  int sensorL,sensorR;


  readSerialData();   // DataValueR & L contain the last order received (if there is no newer received, the last is kept)
  // the previous order will still be used by the PID regulation MotorMotion Function


  sensorR = analogRead(potR);  // range 0-1024
  sensorL = analogRead(potL);  // range 0-1024


  motorMotion(motRight,sensorR,DataValueR);
  motorMotion(motLeft,sensorL,DataValueL);
}
////////////////////////////////////////////////////////////////////////////////
// Procedure: wait for complete trame
////////////////////////////////////////////////////////////////////////////////
void readSerialData()
{
  byte Data[3]={
    '0','0','0'          };
  // keep this function short, because the loop has to be short to keep the control over the motors


  if (Serial.available()>2){
    //parse the buffer : test if the byte is the first of the order "R"
    Data[0]=Serial.read();
    if (Data[0]=='G'){
      Data[1]=Serial.read();
      Data[2]=Serial.read();
      //  call the function that converts the hexa in decimal and that maps the range
      DataValueR=NormalizeData(Data);
    }
    if (Data[0]=='D'){
      Data[1]=Serial.read();
      Data[2]=Serial.read();
      //  call the function that converts the hexa in decimal and maps the range
      DataValueL=NormalizeData(Data);


    }
  }
  if (Serial.available()>16) Serial.flush();
}
////////////////////////////////////////////////////////
void motorMotion(int numMot,int actualPos,int targetPos)
////////////////////////////////////////////////////////
{
  int Tol=20; // no order to move will be sent to the motor if the target is close to the actual position
  // this prevents short jittering moves
  //could be a parameter read from a pot on an analogic pin
  // the highest value, the calmest the simulator would be (less moves)


  int gap;
  int pwm;
  int brakingDistance=30;


  // security concern : targetPos has to be within the mechanically authorized range
  targetPos=constrain(targetPos,potMini+brakingDistance,potMaxi-brakingDistance);


  gap=abs(targetPos-actualPos);


  if (gap<= Tol) {
    motorOff(numMot); //too near to move     
  }
  else {
    // PID : calculates speed according to distance
    pwm=20; 
    if (gap>20)  pwm=40;
    if (gap>30)  pwm=80;
    if (gap>40)  pwm=120;
    if (gap>50)  pwm=255;
    pwm=map(pwm, 0, 255, 0, pwmMax);  //adjust the value according to pwmMax for mechanical debugging purpose !


    // if motor is outside from the range, send motor back to the limit !
    // go forward (up)
    if ((actualPos<potMini) || (actualPos<targetPos)) motorGo(numMot, FW, pwm);
    // go reverse (down)   
    if ((actualPos>potMaxi) || (actualPos>targetPos)) motorGo(numMot, RV, pwm);


  }
}






////////////////////////////////////////////////////////////////////////////////
void motorOff(int motor){ //Brake Ground : free wheel actually
  ////////////////////////////////////////////////////////////////////////////////
  digitalWrite(inApin[motor], LOW);
  digitalWrite(inBpin[motor], LOW);
  analogWrite(pwmpin[motor], 0);
}
////////////////////////////////////////////////////////////////////////////////
void motorOffBraked(int motor){ // "brake VCC" : short-circuit inducing electromagnetic brake
  ////////////////////////////////////////////////////////////////////////////////
  digitalWrite(inApin[motor], HIGH);
  digitalWrite(inBpin[motor], HIGH);
  analogWrite(pwmpin[motor], 0);
}


////////////////////////////////////////////////////////////////////////////////
void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)
////////////////////////////////////////////////////////////////////////////////
{
  if (motor <= 1)
  {
    if (direct <=4)
    {
      // Set inA[motor]
      if (direct <=1)
        digitalWrite(inApin[motor], HIGH);
      else
        digitalWrite(inApin[motor], LOW);


      // Set inB[motor]
      if ((direct==0)||(direct==2))
        digitalWrite(inBpin[motor], HIGH);
      else
        digitalWrite(inBpin[motor], LOW);


      analogWrite(pwmpin[motor], pwm);


    }
  }
}


////////////////////////////////////////////////////////////////////////////////
void motorDrive(uint8_t motor, uint8_t direct, uint8_t pwm)
////////////////////////////////////////////////////////////////////////////////
{
  // more readable function than Jim's (for educational purpose)
  // but 50 octets heavier ->  unused
  if (motor <= 1 && direct <=4)
  {
    switch (direct) {
    case 0: //electromagnetic brake : brake VCC
      digitalWrite(inApin[motor], HIGH);
      digitalWrite(inBpin[motor], HIGH);
      break;
    case 3: //Brake Ground (free wheel)
      digitalWrite(inApin[motor], LOW);
      digitalWrite(inBpin[motor], LOW);
      break;
    case 1: // forward : beware it's depending on your hardware wiring
      digitalWrite(inApin[motor], HIGH);
      digitalWrite(inBpin[motor], LOW);
      break;
    case 2: // Reverse : beware it's depending on your hardware wiring
      digitalWrite(inApin[motor], LOW);
      digitalWrite(inBpin[motor], HIGH);
      break;
    }
    analogWrite(pwmpin[motor], pwm);
  }
}
////////////////////////////////////////////////////////////////////////////////
// testPot
////////////////////////////////////////////////////////////////////////////////
void testPot(){


  Serial.print(analogRead(A4));
  Serial.print(";");
  Serial.println(analogRead(A5));
  delay(250);


}
////////////////////////////////////////////////////////////////////////////////
void testpulse(){
  int pw=120;
  while (true){


    motorGo(motLeft, FW, pw);
    delay(250);       
    motorOff(motLeft);
    delay(250);       
    motorGo(motLeft, RV, pw);
    delay(250);       
    motorOff(motLeft);     


    delay(500);       


    motorGo(motRight, FW, pw);
    delay(250);       
    motorOff(motRight);
    delay(250);       
    motorGo(motRight, RV, pw);
    delay(250);       
    motorOff(motRight);     
    Serial.println("testpulse pwm:80");     
    delay(500);


  }
}
////////////////////////////////////////////////////////////////////////////////
// Function: convert Hex to Dec
////////////////////////////////////////////////////////////////////////////////
int NormalizeData(byte x[3])
////////////////////////////////////////////////////////////////////////////////
{
  int result;


  if ((x[2]==13) || (x[2]=='R') || (x[2]=='L'))  //only a LSB and Carrier Return or 'L' or 'R' in case of value below 16 (ie one CHAR and not 2)
  {
    x[2]=x[1];  //move MSB to LSB
    x[1]='0';     //clear MSB
  }
  for (int i=1; i<3; i++)
   {
    if (x[i]>47 && x[i]<58 ){//for x0 to x9
      x[i]=x[i]-48;
    }                       
      if (x[i]>64 && x[i]<71 ){//for xA to xF
      x[i]=(x[i]-65)+10;       
    }
  }
  // map the range from Xsim (0 <- 255) to the mechanically authorized range (potMini <- potMaxi)
  result=map((x[1]*16+x[2]),0,255,potMini,potMaxi);
  return result;
}
 

_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Dim 16 Aoû - 00:49 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Essaie aussi de mettre en start et stop G7FD7F
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Aurelien
Habitué
Habitué

Hors ligne

Inscrit le: 20 Mai 2015
Messages: 155
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Ile-de-France
Département (France): 77- Seine-et-Marne
01/06/1980 Masculin
Point(s): 2 060
Moyenne de points: 13,29

MessagePosté le: Mar 18 Aoû - 13:48 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Je n'ai pas encore eu le temps de tester ce code, tout mon install est démontée car je suis en pleine fabrication/soudure du playseat.  wip


Par contre peux tu m'expliquer à quoi sert cette commande ? Car visiblement ça fonctionne bien sans ?
_________________
i5 4460 3.2ghz / Asus Z97-pro gamer / 8go DDR3 / Radeon R9 280x Dual-X 3Go / 3x Acer 24" / Logitech G25
Assetto Corsa / Dirt Rally / Iracing


Revenir en haut
Wanegain
Administrateur
Administrateur

Hors ligne

Inscrit le: 08 Mai 2012
Messages: 14 287
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: Belgique
Régions (France): Autre
Département (France): Autre
Ville: Bruxelles
17/04/1982 Masculin Bélier (21mar-19avr)
Point(s): 153 297
Moyenne de points: 10,73

MessagePosté le: Mer 19 Aoû - 11:00 (2015)    Sujet du message: Branchements Arduino - Moto Monster - MEG Répondre en citant

Ca permet de mettre le simu en position moyenne lors du démarrage et quand tu l'arrêtes.


Normalement le jeu te mettra le simu dans cette position mais on ne sait jamais.
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 16:47 (2017)    Sujet du message: Branchements Arduino - Moto Monster - MEG

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum -> Les tutoriels -> Questions Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2017 phpBB Group
Traduction par : phpBB-fr.com powered by ArgenBLUE free template