Modifications

Sauter à la navigation Sauter à la recherche
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{TFT-TOUCH-SHIELD-v2-NAV}}
 
{{TFT-TOUCH-SHIELD-v2-NAV}}
  −
{{traduction}}
      
== Démo Paint ==
 
== Démo Paint ==
Ligne 36 : Ligne 34 :  
  if (! ts.bufferEmpty())
 
  if (! ts.bufferEmpty())
   −
ce qui permet de vérifier qu'il y a des données dans le buffer (mémoire tampon) du contrôleur. {{traduction}} The touchscreen driver will store touchpoints at all times. When you're ready to get the data, just check if there's any data in the buffer. If there is, you can call
+
ce qui permet de vérifier qu'il y a des données dans le buffer (mémoire tampon) du contrôleur. Le pilote tactile stockera constamment les points de touche. Vérifiez si le buffer (mémoire tampon du controleur) contient des données lorsque vous êtes prêt à les lires. S'il y en a, alors vous pouvez appeler
    
  TS_Point p = ts.getPoint();
 
  TS_Point p = ts.getPoint();
   −
To get the oldest point from the buffer. TS_Point has '''.x''' '''.y''' and '''.z''' data points. The x and y points range from 0 to 4095. The STMPE610 does not store any calibration data in it and it doesn't know about rotation. '''So if you want to rotate the screen you'll need to manually rotate the x/y points!''' The z point is 'pressure' and ranges from 0 to 255, we don't use it here but you can experiment with it on your own, the harder you press, the lower the number.
+
Pour obtenir le plus vieux point contenu dans le buffer. La structure TS_Point dispose des données de localisation '''.x''' '''.y''' et '''.z'''. Les valeurs de x et y évoluent entre 0 et 4095. Le STMPE610 ne stocke pas les données de calibration et ne s'occupe pas de gérer la rotation. '''Donc, si vous voulez utiliser la rotation d'écran, vous devrez permuter les axes x et y dans votre programme!'''. Les points z représentent la 'pression' dont la valeur évolue entre 0 et 255. Nous n'utiliserons pas les coordonnées Z ici mais rien ne vous empêche de faire vos expérimentations. Plus vous pressez et plus bas est la valeur.
 +
 
 +
Puisque les données provenant du STMPE610 évolue de 0 à 4095, mais que l'écran ne dispose que de 320 pixels par 240 pixels, nous pouvons utiliser la fonction '''map''' pour convertir les valeur de 0-4095 à 0-320 ou même 0-240.  
   −
Since data from the STMPE610 comes in 0-4095 but our screen is 320 pixels by 240 pixels, we can use '''map''' to convert 0-4095 to 0-320 or 0-240. Something like
+
L'appel à '''map''' ressemble à
    
  <nowiki>p.x = map(p.x, 0, 4095, 0, tft.width());
 
  <nowiki>p.x = map(p.x, 0, 4095, 0, tft.width());
 
p.y = map(p.y, 0, 4095, 0, tft.height());</nowiki>
 
p.y = map(p.y, 0, 4095, 0, tft.height());</nowiki>
   −
However, the touchscreen is a bit bigger than the screen, so we actually need to ignore presses beyond the touchscreen itself. We found that these numbers reflected the true range that overlaps the screen
+
Cependant, la partie tactile est un peu plus grand que l'écran lui-même. Par conséquent, vous aurez besoin d'ignorer les pressions hors de bord physique de l'écran (à moins d'y trouver une utilité). AdaFruit propose les valeurs suivantes qui reflètent assez fidèlement l'étendue des valeurs TS_POINT utiles correspondant à l'écran physique
    
  <nowiki>#define TS_MINX 150
 
  <nowiki>#define TS_MINX 150
Ligne 54 : Ligne 54 :  
#define TS_MAXY 4000</nowiki>
 
#define TS_MAXY 4000</nowiki>
   −
So we use
+
Nous utilisons donc le code suivant à la place de la proposition précédente
    
  <nowiki>p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width());
 
  <nowiki>p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width());
 
p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());</nowiki>
 
p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());</nowiki>
   −
instead.
     −
One last point (pun intended!) since the touchscreen driver stores points in a buffer, you may want to ask the driver "is the touchscreen being pressed RIGHT NOW?" You can do that with
+
Un dernier point (jeu de mot!), puisque le pilote tactile stocke les points de touche dans un buffer (mémoire tampon), vous pourriez trouver utile de savoir "si l'écran est touché JUSTE MAINTENANT". Vous pouvez demander au pilote "Dis-moi, y a t'il quelqu'un qui touche l'écran là maintenant?"  
    
  if (ts.touched())
 
  if (ts.touched())
    
{{TFT-TOUCH-SHIELD-v2-TRAILER}}
 
{{TFT-TOUCH-SHIELD-v2-TRAILER}}
29 917

modifications

Menu de navigation