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 

petit projet dashbord

 
Poster un nouveau sujet   Répondre au sujet    PCSHM (Playseats, cockpits et simulateurs home-made) Index du Forum -> Cockpits, simulateurs, addons ... -> Les projets de réalisations
Sujet précédent :: Sujet suivant  
Auteur Message
addes
Débutant
Débutant

Hors ligne

Inscrit le: 25 Sep 2017
Messages: 6
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Franche-Comté
Département (France): 25- Doubs
Ville: montbeliard
09/02/1979 Masculin Verseau (20jan-19fev)
Point(s): 114
Moyenne de points: 19,00

MessagePosté le: Lun 25 Sep - 21:58 (2017)    Sujet du message: petit projet dashbord Répondre en citant

Bonjour, 



Suite à la présentation sur ce forum . je viens présenter le projet que j'aimerai "créer" .
quand je vois vos simulateur je rêve d'avoir le même.



Avant de me lancer dans un simulateur dynamique j'aimerai déjà construire un petit afficheur avec un écran TFT et une carte arduino .
Si j'y parviens je me lancerais surement dans un simulateur dynamique.



Ce que je voudrais faire :


---programmer une carte arduino uno pour faire afficher différents paramètre de télémetrie .

---si je touche 'écran de bas en haut ou inverse le skin de la page change 

---si je touche l'écran de droite a gauche ou inverse les différent paramètre afficher change.

---pouvoir rajouter éventuellement des skin d'affichage..

---pourvoir rajouter si les pin sur la carte le permette un ou deux élément (bouton , led changer de vitesse ) pas très bien définie encore.

--- que le background de l écran change de couleur en fonction du régime moteur.

--- que cela fonctionne pour plusieurs jeux 



Ce que je possède :

--- une carte arduino uno 
--- un écran TFT 2.8 pouce touch screen  avec port SD
--- le datasheet de l'écran ILI9341
--- une imprimante 3d pour les divers support  (étape 700 !!)



Ce que je sais :

--- programmation basique sur la carte arduino
--- survole de x-sim et simtool : je me suis acharnée à faire marcher x-sim et visiblement ce n'était pas le bon choix ..
--- en ce qui concerne simtool .. Wainegaine m'a dit qu'il fallait prendre la version pro .



Ce que je ne sais pas :

--- si avec la version pro de simtool .. j'arriverai a réaliser mon projet ?
--- Pour le peu d'information que je veux extraire n'y a t'il pas moins honnéreux que simtool ?
--- comment faire communiquer le tout 
--- et a peu près tout le reste que je n'ai pas penser .

c'est un premier jet j'aimerais savoir déjà si ce projet et réalisable .. par ou commencer , qu'elle direction prendre ...

je possède également un écran lcd 1602 .. un afficheur 1 digit 7 segment  et 4 digit 7 segment entre autre pour revoir mon projet a la baisse si l'écran TFT n'est pas faisaible.

et je mets la charrette avant les bœufs . mais admettons que j'y parvienne et que je me lance dans mon simalteur dynamique .. est ce que les deux pourron fonctionner ensemble avec exemple deux carte arduino séparer ou il faudra tout revoir ?



 




 


Revenir en haut
Publicité






MessagePosté le: Lun 25 Sep - 21:58 (2017)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
momoclic
Concepteur
Concepteur

En ligne

Inscrit le: 23 Sep 2014
Messages: 2 770
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Pays-de-la-Loire
Département (France): 49- Maine-et-Loire
10/06/1948 Masculin
Point(s): 4 792
Moyenne de points: 1,73

MessagePosté le: Mar 26 Sep - 09:29 (2017)    Sujet du message: petit projet dashbord Répondre en citant

Normalement avec la version 2 de SimTools il me semble que l'on a toujours accès à la version gratuite fonctionnant avec un seul jeu, en version elle aussi gratuite : LFS.Ca te permettra de mettre au point ta réalisation en attendant une version plus ouverte.
_________________
L'imagination est plus importante que le savoir (Albert Einstein)
3DOF effet houle
Règles pour 2DOF
Projet évolutif 2DOF/3DOF


Revenir en haut
Wanegain
Administrateur
Administrateur

En ligne

Inscrit le: 08 Mai 2012
Messages: 14 606
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 617
Moyenne de points: 10,52

MessagePosté le: Mar 26 Sep - 09:57 (2017)    Sujet du message: petit projet dashbord Répondre en citant

Le soucis avec la version gratuite de Simtools c'est qu'il n'y a pas le Game Dash pour gérer les dashboard et la télémétrie des jeux (rpm, speed, gear, fuel, t°, etc...).

Tu peux très bien utiliser X-Sim aussi, à partir du moment où tu arrives à faire un format de data en communication série et tu pourras alors basculer sur Simtools aussi facilement. Le plus dur n'est pas dans la réception des données mais plutôt dans l'affichage.
Je vais regarder la doc pour voir comment tu peux interfacer ça avec l'Arduino
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
momoclic
Concepteur
Concepteur

En ligne

Inscrit le: 23 Sep 2014
Messages: 2 770
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: France
Régions (France): Pays-de-la-Loire
Département (France): 49- Maine-et-Loire
10/06/1948 Masculin
Point(s): 4 792
Moyenne de points: 1,73

MessagePosté le: Mar 26 Sep - 10:01 (2017)    Sujet du message: petit projet dashbord Répondre en citant

Ah ok, j'ignorais ce "détail" qui n'est pas sans importance, autant pour moi Wink
_________________
L'imagination est plus importante que le savoir (Albert Einstein)
3DOF effet houle
Règles pour 2DOF
Projet évolutif 2DOF/3DOF


Revenir en haut
francois38200
Pilote PCSHM
Pilote PCSHM

En ligne

Inscrit le: 10 Fév 2014
Messages: 5 064
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Rhône-Alpes
Département (France): 38- Isère
Ville: vienne
06/08/1988 Masculin
Point(s): 68 153
Moyenne de points: 13,46

MessagePosté le: Mar 26 Sep - 11:19 (2017)    Sujet du message: petit projet dashbord Répondre en citant

Il y a simdash mais je sais pas si c'est compatible avec ça
_________________
i5 3570k / Gigabyte d3h / ram 8go / Windows 10 64bit / gtx980 ti inno3d / hdd 1to/ ssd 120go / CV1

SAAB Supérieur Aux Autres Bagnoles !!!


Revenir en haut
Wanegain
Administrateur
Administrateur

En ligne

Inscrit le: 08 Mai 2012
Messages: 14 606
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 617
Moyenne de points: 10,52

MessagePosté le: Mar 26 Sep - 11:24 (2017)    Sujet du message: petit projet dashbord Répondre en citant

il faut un logiciel qui récupère la télémétrie et qui la converti pour un port COM
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
addes
Débutant
Débutant

Hors ligne

Inscrit le: 25 Sep 2017
Messages: 6
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Franche-Comté
Département (France): 25- Doubs
Ville: montbeliard
09/02/1979 Masculin Verseau (20jan-19fev)
Point(s): 114
Moyenne de points: 19,00

MessagePosté le: Mer 27 Sep - 14:15 (2017)    Sujet du message: petit projet dashbord Répondre en citant

plus j'étudie le truc plus

....je me dit que ça va être long et compliqué ..

dû faite que la partie de programmation à été effectué, modifier, adapté par de talentueuse personne je me rend compte qu'il est effectivement plus facile de réaliser un simulateur dynamique avec un peu  d 'huile de coude que de développer un programme entièrement..
N'ayant pas de grande connaissance dans le domaine de la communication et a peine plus dans le domaine de la programmation , je ne crains que mon projet reste à l'état de projet ..

Je ne baisse pas les bras mais je vais prendre le temps d'en apprendre plus sur la communication et la programmation .
Dans l'état actuelle des choses il est clair que je n'ai pas les compétences.

J'avais une vision simpliste c'est a dire..

on récupère des valeurs via un logiciel (x-sim ou simtool) , on les renvoies a l'arduino, on les transformes pour les faires correspondres à des valeur gérable par l'arduino et ensuite on ce sert de ces valeurs comme simple variables dans un programme d 'affichage ou on print ces valeurs..
après plusieurs heure de lecture et diverse essai, je me suis rendue compte que ma vision était digne d'un amateur pur souche !!!
Wanegain tu a un meilleur vision de moi vu t'es compétences que j'ai pu aprécié en parcourant le forum , mais pour moi le plus dur était  la réception des donnés alors si tu me dis l'inverse.. je sors ma corde !!! Razz Razz

Je vais pour l'instant retourner la tête dans mes bouquins et mes pdf..   !!
et rouler un peu !!


Revenir en haut
Wanegain
Administrateur
Administrateur

En ligne

Inscrit le: 08 Mai 2012
Messages: 14 606
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 617
Moyenne de points: 10,52

MessagePosté le: Mer 27 Sep - 15:16 (2017)    Sujet du message: petit projet dashbord Répondre en citant

La communication est très simple, je l'ai utilisée avec x-sim et maintenant simtools (pour le projet de ventilateur par exemple). Avec ces logiciels je sais comment Ça fonctionne.Pour la programmation c'est pas compliqué non plus, comme tu dis il suffit de convertir.
C'est plus la gestion de cet affichage que je ne connais pas mais il doit y avoir plein de tutoriel sur le web
_________________
Profils Converter et Codes Arduino
Tuto : simulateur pour moins de 450€
KIT pour créer son simulateur 2DOF


Revenir en haut
addes
Débutant
Débutant

Hors ligne

Inscrit le: 25 Sep 2017
Messages: 6
Dégagement de responsabilité: J'accepte
Lecture et respect de la charte: J'accepte
Pays: france
Régions (France): Franche-Comté
Département (France): 25- Doubs
Ville: montbeliard
09/02/1979 Masculin Verseau (20jan-19fev)
Point(s): 114
Moyenne de points: 19,00

MessagePosté le: Jeu 28 Sep - 10:27 (2017)    Sujet du message: petit projet dashbord Répondre en citant

j'ai des exemple de programme pour mon afficheur ça me parait pas très compliqué.

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library
#include <TouchScreen.h>

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
//   D0 connects to digital pin 8  (Notice these are
//   D1 connects to digital pin 9   NOT in order!)
//   D2 connects to digital pin 2
//   D3 connects to digital pin 3
//   D4 connects to digital pin 4
//   D5 connects to digital pin 5
//   D6 connects to digital pin 6
//   D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).

// Assign human-readable names to some common 16-bit color values:
#define    BLACK   0x0000
#define    BLUE    0x001F
#define    RED     0xF800
#define    GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

// Color definitions
#define ILI9341_BLACK       0x0000      /*   0,   0,   0 */
#define ILI9341_NAVY        0x000F      /*   0,   0, 128 */
#define ILI9341_DARKGREEN   0x03E0      /*   0, 128,   0 */
#define ILI9341_DARKCYAN    0x03EF      /*   0, 128, 128 */
#define ILI9341_MAROON      0x7800      /* 128,   0,   0 */
#define ILI9341_PURPLE      0x780F      /* 128,   0, 128 */
#define ILI9341_OLIVE       0x7BE0      /* 128, 128,   0 */
#define ILI9341_LIGHTGREY   0xC618      /* 192, 192, 192 */
#define ILI9341_DARKGREY    0x7BEF      /* 128, 128, 128 */
#define ILI9341_BLUE        0x001F      /*   0,   0, 255 */
#define ILI9341_GREEN       0x07E0      /*   0, 255,   0 */
#define ILI9341_CYAN        0x07FF      /*   0, 255, 255 */
#define ILI9341_RED         0xF800      /* 255,   0,   0 */
#define ILI9341_MAGENTA     0xF81F      /* 255,   0, 255 */
#define ILI9341_YELLOW      0xFFE0      /* 255, 255,   0 */
#define ILI9341_WHITE       0xFFFF      /* 255, 255, 255 */
#define ILI9341_ORANGE      0xFD20      /* 255, 165,   0 */
#define ILI9341_GREENYELLOW 0xAFE5      /* 173, 255,  47 */
#define ILI9341_PINK        0xF81F

/******************* UI details */
#define BUTTON_X 40
#define BUTTON_Y 100
#define BUTTON_W 60
#define BUTTON_H 30
#define BUTTON_SPACING_X 20
#define BUTTON_SPACING_Y 20
#define BUTTON_TEXTSIZE 2

// text box where numbers go
#define TEXT_X 10
#define TEXT_Y 10
#define TEXT_W 220
#define TEXT_H 50
#define TEXT_TSIZE 3
#define TEXT_TCOLOR ILI9341_MAGENTA
// the data (phone #) we store in the textfield
#define TEXT_LEN 12
char textfield[TEXT_LEN+1] = "";
uint8_t textfield_i=0;

#define YP A3  // must be an analog pin, use "An" notation!
#define XM A2  // must be an analog pin, use "An" notation!
#define YM 9   // can be a digital pin
#define XP 8   // can be a digital pin

//Touch For New ILI9341 TP
#define TS_MINX 120
#define TS_MAXX 900

#define TS_MINY 70
#define TS_MAXY 920
// We have a status line for like, is FONA working
#define STATUS_X 10
#define STATUS_Y 65



Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;

Adafruit_GFX_Button buttons[15];
/* create 15 buttons, in classic candybar phone style */
char buttonlabels[15][5] = {"Send", "Clr", "End", "1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "0", "#" };
uint16_t buttoncolors[15] = {ILI9341_DARKGREEN, ILI9341_DARKGREY, ILI9341_RED,
                             ILI9341_BLUE, ILI9341_BLUE, ILI9341_BLUE,
                             ILI9341_BLUE, ILI9341_BLUE, ILI9341_BLUE,
                             ILI9341_BLUE, ILI9341_BLUE, ILI9341_BLUE,
                             ILI9341_ORANGE, ILI9341_BLUE, ILI9341_ORANGE};
                            
void setup(void) {
  Serial.begin(9600);
  Serial.println(F("TFT LCD test"));

#ifdef USE_ADAFRUIT_SHIELD_PINOUT
  Serial.println(F("Using Adafruit 2.4\" TFT Arduino Shield Pinout"));
#else
  Serial.println(F("Using Adafruit 2.4\" TFT Breakout Board Pinout"));
#endif

  Serial.print("TFT size is "); Serial.print(tft.width()); Serial.print("x"); Serial.println(tft.height());

  tft.reset();

  uint16_t identifier = tft.readID();
  if(identifier == 0x9325) {
    Serial.println(F("Found ILI9325 LCD driver"));
  } else if(identifier == 0x9328) {
    Serial.println(F("Found ILI9328 LCD driver"));
  } else if(identifier == 0x4535) {
    Serial.println(F("Found LGDP4535 LCD driver"));
  }else if(identifier == 0x7575) {
    Serial.println(F("Found HX8347G LCD driver"));
  } else if(identifier == 0x9341) {
    Serial.println(F("Found ILI9341 LCD driver"));
  } else if(identifier == 0x8357) {
    Serial.println(F("Found HX8357D LCD driver"));
  } else if(identifier==0x0101)
  {    
      identifier=0x9341;
       Serial.println(F("Found 0x9341 LCD driver"));
  }else {
    Serial.print(F("Unknown LCD driver chip: "));
    Serial.println(identifier, HEX);
    Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
    Serial.println(F("  #define USE_ADAFRUIT_SHIELD_PINOUT"));
    Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
    Serial.println(F("If using the breakout board, it should NOT be #defined!"));
    Serial.println(F("Also if using the breakout, double-check that all wiring"));
    Serial.println(F("matches the tutorial."));
    identifier=0x9341;
  
  }

  tft.begin(identifier);
  tft.setRotation(2);
  tft.fillScreen(BLACK);
 
  // create buttons
  for (uint8_t row=0; row<5; row++) {
    for (uint8_t col=0; col<3; col++) {
      buttons[col + row*3].initButton(&tft, BUTTON_X+col*(BUTTON_W+BUTTON_SPACING_X),
                 BUTTON_Y+row*(BUTTON_H+BUTTON_SPACING_Y),    // x, y, w, h, outline, fill, text
                  BUTTON_W, BUTTON_H, ILI9341_WHITE, buttoncolors[col+row*3], ILI9341_WHITE,
                  buttonlabels[col + row*3], BUTTON_TEXTSIZE);
      buttons[col + row*3].drawButton();
    }
  }
 
  // create 'text field'
  tft.drawRect(TEXT_X, TEXT_Y, TEXT_W, TEXT_H, ILI9341_WHITE);

 
}
// Print something in the mini status bar with either flashstring
void status(const __FlashStringHelper *msg) {
  tft.fillRect(STATUS_X, STATUS_Y, 240, 8, ILI9341_BLACK);
  tft.setCursor(STATUS_X, STATUS_Y);
  tft.setTextColor(ILI9341_WHITE);
  tft.setTextSize(1);
  tft.print(msg);
}
// or charstring
void status(char *msg) {
  tft.fillRect(STATUS_X, STATUS_Y, 240, 8, ILI9341_BLACK);
  tft.setCursor(STATUS_X, STATUS_Y);
  tft.setTextColor(ILI9341_WHITE);
  tft.setTextSize(1);
  tft.print(msg);
}
#define MINPRESSURE 10
#define MAXPRESSURE 1000
void loop(void) {
  /*TSPoint p;
  p = ts.getPoint();
  */
  digitalWrite(13, HIGH);
  TSPoint p = ts.getPoint();
  digitalWrite(13, LOW);

  // if sharing pins, you'll need to fix the directions of the touchscreen pins
  //pinMode(XP, OUTPUT);
  pinMode(XM, OUTPUT);
  pinMode(YP, OUTPUT);
  //pinMode(YM, OUTPUT);

  // we have some minimum pressure we consider 'valid'
  // pressure of 0 means no pressing!
 
 // p = ts.getPoint();
  /*
  if (ts.bufferSize()) {
   
  } else {
    // this is our way of tracking touch 'release'!
    p.x = p.y = p.z = -1;
  }*/
 
  // Scale from ~0->4000 to tft.width using the calibration #'s
  /*
  if (p.z != -1) {
    p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width());
    p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());
    Serial.print("("); Serial.print(p.x); Serial.print(", ");
    Serial.print(p.y); Serial.print(", ");
    Serial.print(p.z); Serial.println(") ");
  }*/
   if (p.z > MINPRESSURE && p.z < MAXPRESSURE) {
    // scale from 0->1023 to tft.width
    p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
    p.y = (tft.height()-map(p.y, TS_MINY, TS_MAXY, tft.height(), 0));
   }
  
  // go thru all the buttons, checking if they were pressed
  for (uint8_t b=0; b<15; b++) {
    if (buttons[b].contains(p.x, p.y)) {
      //Serial.print("Pressing: "); Serial.println(b);
      buttons[b].press(true);  // tell the button it is pressed
    } else {
      buttons[b].press(false);  // tell the button it is NOT pressed
    }
  }

  // now we can ask the buttons if their state has changed
  for (uint8_t b=0; b<15; b++) {
    if (buttons[b].justReleased()) {
      // Serial.print("Released: "); Serial.println(b);
      buttons[b].drawButton();  // draw normal
    }
   
    if (buttons[b].justPressed()) {
        buttons[b].drawButton(true);  // draw invert!
       
        // if a numberpad button, append the relevant # to the textfield
        if (b >= 3) {
          if (textfield_i < TEXT_LEN) {
            textfield[textfield_i] = buttonlabels[b][0];
            textfield_i++;
        textfield[textfield_i] = 0; // zero terminate
           
           // fona.playDTMF(buttonlabels[b][0]);
          }
        }

        // clr button! delete char
        if (b == 1) {
         
          textfield[textfield_i] = 0;
          if (textfield > 0) {
            textfield_i--;
            textfield[textfield_i] = ' ';
          }
        }

        // update the current text field
        Serial.println(textfield);
        tft.setCursor(TEXT_X + 2, TEXT_Y+10);
        tft.setTextColor(TEXT_TCOLOR, ILI9341_BLACK);
        tft.setTextSize(TEXT_TSIZE);
        tft.print(textfield);

        // its always OK to just hang up
        if (b == 2) {
          status(F("Hanging up"));
          //fona.hangUp();
        }
        // we dont really check that the text field makes sense
        // just try to call
        if (b == 0) {
          status(F("Calling"));
          Serial.print("Calling "); Serial.print(textfield);
         
          //fona.callPhone(textfield);
        }
       
      delay(100); // UI debouncing
    }
  }
 
}



moi c'est la com qui me pose énormément de souci .. a vrai dire pour l'instant je n'arrive pas a comprendre comment faire dialoguer x*sim ou simtool avec ma carte
je suis entrain pour l'instant de me bouffer le pdf que j'ai recupèrer sur le forum ...


Revenir en haut
Wanegain
Administrateur
Administrateur

En ligne

Inscrit le: 08 Mai 2012
Messages: 14 606
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 617
Moyenne de points: 10,52

MessagePosté le: Jeu 28 Sep - 11:00 (2017)    Sujet du message: petit projet dashbord Répondre en citant

Si tu veux comprendre facilement, reprends par exemple mon code pour le ventilateur ou ceux des simulateurs...

La communication entre les deux se fait en série. Il faut d'abord définir la vitesse de communication (choisi 115200 bauds dans ton cas par exemple), le nombre de bits de données (8 en général), si tu actives le bit de parité (pas nécessaire) et le nombre de bits de stop (1 en général). En général on simplifie ces données en écrivant 8N1, c'est un détail...

Par exemple pour mon simulateur de vent, voici le bout de code après initialisation dans la fonction setup. C'est dans la fonction loop, il y a aussi la conversion de la vitesse de la voiture en angle pour piloter un servomoteur sur 180° :

while (Serial.available()) //données sur le port série disponibles
{

if (buffercount == -1)
{
buffer = Serial.read(); //lecture des données du port série
Serial.println(buffer); //éventuellement affichage de la donnée pour faire du diagnostic si cela ne fonctionne pas
if (buffer != 'S') buffercount = -1; //tant que le premier caractère n'est pas un S on jette les infos.
else buffercount = 0;
}
else
{
buffer = Serial.read();
commandbuffer[buffercount] = buffer; //stockage des données dans un tableau
buffercount++;

if (buffercount > 3)
{
if (commandbuffer[3] == 'C') //vérification de la fin de trame avec le caractère C sinon on jette
{
//conversion des données
vitesse = (commandbuffer[0]-48)* 100 + (commandbuffer[1]-48)*10 + commandbuffer[2]-48;
if (vitesse > vitesse_max) vitesse = vitesse_max;
Serial.print("vitesse : ");
Serial.print(vitesse);
angle = map(vitesse, 0, vitesse_max, 0, 180);
angle = constrain(angle, 0, 180);
Serial.print(" angle : ");
Serial.println(angle);
myservo.write(angle);
}
buffercount = -1;
}
} //buffercount != -1
} //while(Serial.available)
_________________
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 à 21:15 (2017)    Sujet du message: petit projet dashbord

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 -> Cockpits, simulateurs, addons ... -> Les projets de réalisations 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