1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

Simtools sans simulateur... :-)

Discussion in 'DIY Motion Simulator Projects' started by AntareS-DK, Mar 3, 2018.

  1. AntareS-DK

    AntareS-DK New Member

    Joined:
    Mar 1, 2018
    Messages:
    2
    Location:
    france
    Balance:
    156Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    Arduino
    Salut à tous,

    j'ai un projet de simulateur type 6dof, enfin ca c'est le projet final... je vais certainement passé par des projets plus petits pour commencer.

    Je découvre Sim Tools, et j'aimerais donc commencé simplement...

    Pour débuter j'aimerais donc renvoyer les infos du jeux Project Cars vers plusiseurs petits afficheurs branché sur une Arduino en USB.

    j'ai donc une Arduino Uno...

    Puis un afficheur 7 segments 4 digits et également un afficheur LCD 20x4 en I2C.

    J'ai également commandé un afficheur 7 segments de 1.8"

    L'idée serait de modifier le 4 digits afin d'afficher la vitesse sur seulement 3 digits puis de brancher le gros de 1.8" en // sur le 4eme digit préalablement désactivé...

    Je vais certainement devoir passer par des transistors et résistance car la consommation n'est certainement pas la même...

    J'ai donc réalisé un petit programme sur l'arduino avec différentes fonctions...
    Je débute en programmation donc soyez indulgent avec mon code... :)

    Code:
    //#include <wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x3F, 20, 4); // adressage et taille de l'écran LCD
    
    # define STOPRUN 2 // pin du bouton de stop routine arduino
     
      int RunProg = 1;  //
      
      int rpm = 0;
      int kmh = 0;
      int fuel = 0;
      int ebrake = 0;
      int brake = 0;
      int fuelled = 0;
      int turbo = 0;
      int gear = 0;
      int previous_pos = 10;
      int tour = 0;
      int nbtour = 2;
      int rotate = 0;
      int stoprun = 0;
     
      char kind_of_data;
     
      void setup(){
        lcd.init();
        Serial.begin(115200); // Arduino UNO
      }
     
      void loop(){
     
        lcd.backlight();
        
        RunProg = digitalRead(STOPRUN);
        
        if(RunProg==1){
         
     
          sendkmh(kmh,0,1);
          sendrpm(rpm,0,2);
          sendgear(gear,12,2);
          sendpos(previous_pos,0,3);
          sendtour(tour,nbtour,12,3);
         
        }else{
          lcd.setCursor(0,1);
          lcd.print("SIMULATEUR");
          lcd.setCursor(1,2);
          lcd.print("NON TROUVE");
        }
      }
      void ReadData(){
     
        char carlu = 0; //variable contenant le caractère à lire
        int cardispo = 0; //variable contenant le nombre de caractère disponibles dans le buffer
     
        cardispo = Serial.available();
        while(cardispo > 0){
          carlu = Serial.read(); //on lit le caractère
          lcd.print(carlu);
          Serial.print(carlu); //puis on le renvoi à l’expéditeur tel quel
          cardispo = Serial.available(); //on relit le nombre de caractères dispo
        } 
      }
      void sendkmh(int kmh, int X, int Y){
     
        lcd.setCursor(X,Y);     // Positionnement du cursor en X (Colonne) et Y (Ligne)
        lcd.print("Speed : ");  // Affichage du texte.
        lcd.print(kmh);         // Affichage de votre vitesse.
        lcd.setCursor(X+12,Y);  // Deplacement du curseur LCD.
        lcd.print("km/h");      // Affichage du texte.
         
      }
    
      void sendrpm(int rpm, int X, int Y){
        lcd.setCursor(X,Y);     // Positionnement du cursor en X (Colonne) et Y (Ligne)
        lcd.print("Rpm : ");    // Affichage du texte.
        lcd.print(rpm);         // Affichage du rmp moteur
      }
    
      void sendpos(int pos, int X, int Y){
     
        lcd.setCursor(X,Y);     // Positionnement du cursor en X (Colonne) et Y (Ligne)
        lcd.print("Pos : ");    // Affichage du texte.
        lcd.print(pos);         // Affichage de votre position dans la grille des concurrents
      }
     
      void sendgear(int gear, int X, int Y){
        lcd.setCursor(X,Y);     // Positionnement du cursor en X (Colonne) et Y (Ligne)
        lcd.print("Gear : ");   // Affichage du texte
        if(gear==0){
          lcd.print("N");       // Affichage d'un N à la place de la vitesse 0
        }else{
          lcd.print(gear);      // affichage de la vitesse selectionnée.
        }
      }
    
      void sendtour(int tour, int nbtour, int X, int Y){
     
        lcd.setCursor(X,Y);     // Positionnement du cursor en X (Colonne) et Y (Ligne)
        lcd.print("T : ");    // Affichage du texte.
        lcd.print(tour);         // Affichage de votre position dans la grille des concurrents
        lcd.print("/");
        lcd.print(nbtour);
      }
    IMG_20180302_190903.jpg
    Ceci dans le but de tester et de préparer la mise en page de l'affichage et des informations...

    Ainsi lorsque je coderais la fonction du port série pour récevoir mes données, je n'aurais qu'à parser les données et les envoyées aux différentes fonctions...

    Mes questions sont donc...

    Est il possible d'utiliser simtools sans pour autant avec un simulateur motorisé ?
    Est il possible d'utiliser simtools pour exporter les données des jeux vers une ou plusieurs arduino ?

    Pour débuter, j'aimerais commencer simple sans devoir mettre tout un tas de carte et de moteurs... sachant que la partie mécanique de mon futur projet n'est même pas encore en visu dans ma cervelle !

    Merci d'avance pour vos réponses et éclaircissement...
    Bye @ pluche !
  2. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,194
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,844Coins
    Ratings:
    +10,920 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    You can dual language post but please be aware that it is requirement to include English, as per the forum rules, I have taken the liberty of doing that for you below: https://www.xsimulator.net/community/threads/forum-rules.9527/

    I is possible to test SimTools without a simulator: https://www.xsimulator.net/community/faq/testing-simtools-without-a-simulator.171/

    There is an app to simulate a 2DOF motion rig: https://www.xsimulator.net/community/faq/simulating-a-2dof-simulator.278/

    And another that lets you visualise SimTools settings output: https://www.xsimulator.net/community/faq/axis-analysis-app.282/

    And there various existing code choices available to interface an Arduino with SimTools: https://www.xsimulator.net/community/faq/arduino-code-for-use-with-various-hardware-and-simtools.31/

    All of those and much more can be found in the FAQs: https://www.xsimulator.net/community/faq/


    Google Translate -


    Hi everybody, I have a simulator project type 6dof, finally it's the final project ... I will certainly have gone through smaller projects to start. I'm discovering Sim Tools, so I'd just like to start ... To start I would like to send the Project Cars game info to several small displays connected to an Arduino USB. so I have an Arduino Uno ... Then a 7-segment 4-digit display and also a 20x4 LCD display in I2C. I also ordered a 7-segment display of 1.8 " The idea would be to modify the 4 digits in order to display the speed on only 3 digits then to connect the bulk of 1.8 "in // on the 4th digit previously deactivated ... I will certainly have to go through transistors and resistance because the consumption is certainly not the same ... So I realized a little program on the arduino with different functions ... I start in programming so be indulgent with my code ... :)

    Code:
    //#include <wire.h>
    #include <LiquidCrystal_I2C.h>

    LiquidCrystal_I2C lcd(0x3F, 20, 4); // adressage et taille de l'écran LCD

    # define STOPRUN 2 // pin du bouton de stop routine arduino

    int RunProg = 1; //

    int rpm = 0;
    int kmh = 0;
    int fuel = 0;
    int ebrake = 0;
    int brake = 0;
    int fuelled = 0;
    int turbo = 0;
    int gear = 0;
    int previous_pos = 10;
    int tour = 0;
    int nbtour = 2;
    int rotate = 0;
    int stoprun = 0;

    char kind_of_data;

    void setup(){
    lcd.init();
    Serial.begin(115200); // Arduino UNO
    }

    void loop(){

    lcd.backlight();

    RunProg = digitalRead(STOPRUN);

    if(RunProg==1){


    sendkmh(kmh,0,1);
    sendrpm(rpm,0,2);
    sendgear(gear,12,2);
    sendpos(previous_pos,0,3);
    sendtour(tour,nbtour,12,3);

    }else{
    lcd.setCursor(0,1);
    lcd.print("SIMULATEUR");
    lcd.setCursor(1,2);
    lcd.print("NON TROUVE");
    }
    }
    void ReadData(){

    char carlu = 0; //variable contenant le caractère à lire
    int cardispo = 0; //variable contenant le nombre de caractère disponibles dans le buffer

    cardispo = Serial.available();
    while(cardispo > 0){
    carlu = Serial.read(); //on lit le caractère
    lcd.print(carlu);
    Serial.print(carlu); //puis on le renvoi à l’expéditeur tel quel
    cardispo = Serial.available(); //on relit le nombre de caractères dispo
    }
    }
    void sendkmh(int kmh, int X, int Y){

    lcd.setCursor(X,Y); // Positionnement du cursor en X (Colonne) et Y (Ligne)
    lcd.print("Speed : "); // Affichage du texte.
    lcd.print(kmh); // Affichage de votre vitesse.
    lcd.setCursor(X+12,Y); // Deplacement du curseur LCD.
    lcd.print("km/h"); // Affichage du texte.

    }

    void sendrpm(int rpm, int X, int Y){
    lcd.setCursor(X,Y); // Positionnement du cursor en X (Colonne) et Y (Ligne)
    lcd.print("Rpm : "); // Affichage du texte.
    lcd.print(rpm); // Affichage du rmp moteur
    }

    void sendpos(int pos, int X, int Y){

    lcd.setCursor(X,Y); // Positionnement du cursor en X (Colonne) et Y (Ligne)
    lcd.print("Pos : "); // Affichage du texte.
    lcd.print(pos); // Affichage de votre position dans la grille des concurrents
    }

    void sendgear(int gear, int X, int Y){
    lcd.setCursor(X,Y); // Positionnement du cursor en X (Colonne) et Y (Ligne)
    lcd.print("Gear : "); // Affichage du texte
    if(gear==0){
    lcd.print("N"); // Affichage d'un N à la place de la vitesse 0
    }else{
    lcd.print(gear); // affichage de la vitesse selectionnée.
    }
    }

    void sendtour(int tour, int nbtour, int X, int Y){

    lcd.setCursor(X,Y); // Positionnement du cursor en X (Colonne) et Y (Ligne)
    lcd.print("T : "); // Affichage du texte.
    lcd.print(tour); // Affichage de votre position dans la grille des concurrents
    lcd.print("/");
    lcd.print(nbtour);
    }
    [​IMG]
    This in order to test and prepare the layout of the display and information ... So when I code the function of the serial port to receive my data, I would only parse the data and sent to the various functions ... My questions are ... Is it possible to use simtools without a motorized simulator? Is it possible to use simtools to export game data to one or more arduino? To begin, I would like to start simple without having to put a lot of map and engines ... knowing that the mechanical part of my future project is not even seen in my brain! Thank you in advance for your answers and clarification ... Bye @ pluche!
  3. AntareS-DK

    AntareS-DK New Member

    Joined:
    Mar 1, 2018
    Messages:
    2
    Location:
    france
    Balance:
    156Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    Arduino
    Merci pour votre reponse rapide.

    Je regardes de ce pas les posts que vous m'avez proposé.
    Désolé pour le non respect de la charte, je pensais que de poster sur la partie française pouvait se faire qu'avec le français.

    A l'avenir, j'y placerais l'anglais dans mes posts.
    Je reviendrais ici pour l'avancement de mon tests Arduino / simtools.

    Désolé pour mon anglais qui est très mauvais, j'ai donc utilisé google traduction.

    ENGLISH

    Thank you for your prompt response.

    I'm looking at the posts you've proposed to me.
    Sorry for the non respect of the charter, I thought that to post on the French part could be done only with French.

    In the future, I would put English in my posts.
    I would stay here again for the progress of my Arduino / simtools tests.

    Sorry for my english which is very bad, so i used google translation
  4. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,194
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,844Coins
    Ratings:
    +10,920 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    La section française a été créée dans le but de faciliter les interactions sociales seulement. Si vous avez une question liée à SimTools ou un projet de bricolage, il appartient dans les principales discussions. Vous pouvez poster dans votre langue maternelle sur les principales discussions, mais s'il vous plaît ne comprennent également une traduction en anglais par Google Translate. Il sauve les autres membres de temps à essayer de travailler sur qui peuvent avoir besoin d'aide et qui vient de poster un commentaire. Nous avons des enceintes bi-lingual de nombreux groupe de langue différente si Google Translate vraiment mess it up, ils peuvent aider à clarifier ce qui était prévu.

    The French section was created for the purpose of facilitating social interactions only. If you have a query related to SimTools or a DIY project it belongs in the main threads. You can post in your native language on the main threads but please do also include an English translation via Google Translate. It saves other members time trying to work out who may need help and who is just posting a comment. We have bi-lingual speakers from many different language group so if Google Translate really messes it up they can help clarify what was intended.

    I will ask one of the admins @Pit to move the thread to the appropriate section and tidy it up.