Giter VIP home page Giter VIP logo

tgp_ecran's Introduction

Librairie TGP

Permet l'utilisation d'un écran OLED, construite sur la librairie Adafruit SSD1306.

Détails

L'écran offre quelques méthodes simplifiées pour afficher du texte à l'écran. Pour davantage de possibilités graphiques, elle expose également les méthodes primitives déjà présentes dans la librairie Adafruit GFX.

Notes de version

1.3.1 :

  • correction pour une instruction non rejoignable après un return.

1.3.0 :

  • Ajout de setWrapLine(bool) et getWrapLine(), pour permettre le retour automatique à la première ligne lorsque le texte déborde par le bas.

1.2.1 :

  • Retiré des Serial.print() temporaires pour débogage.

1.2.0 :

  • Les chaînes codées UTF-8 par Arduino sont maintenant décodées: si le caractère Unicode existe dans l'ASCII étendue, il sera correctement affiché;
  • La méthode effacer() permet maintenant d'effacer une seule ligne de taille voulue, à l'image de la méthode écrire();
  • Les exemples ont été modifiées en conséquence.

1.1.0 :

  • Support des String et const char* dans la méthode ecrire().

1.0.0 :

  • Première version officielle.

Utilisation

La classe peut s'utiliser de manière non-bloquante:

#include "Ecran.h"

Ecran monEcran;

void setup() {
  monEcran.begin();
}

void loop() {
  monEcran.refresh(); //La méthode s'occupe d'appeler la méthode primitive display(), lorsque nécessaire  
                      //(quand des éléments graphiques ont été modifiées au cours du loop() ).

  if(millis() % 1000 < 10){ //Condtition temporelle
    monEcran.effacer();               //Effacer l'écran
    
    monEcran.ecrire("Bonjour!");       //Écrire un texte
    monEcran.ecrire("Salut!", 1);      //Écrire un texte sur la 2e ligne
    monEcran.ecrire("Au revoir!",2,3); //Écrire un texte sur la 3e ligne avec une taille de 3

    monEcran.dessinerPixel(10,10);     //Dessiner un pixel à la coordonnée (10,10);
  }
}

La classe peut s'utiliser aussi de manière bloquante:

#include "Ecran.h"

Ecran monEcran;

void setup() {
  monEcran.begin();
}

void loop() {

  monEcran.ecrire("Bonjour!");       //Écrire un texte
  monEcran.ecrire("Salut!", 1);      //Écrire un texte sur la 2e ligne
  monEcran.ecrire("Au revoir!",2,3); //Écrire un texte sur la 3e ligne avec une taille de 3
  monEcran.display();
  delay(1000);


  monEcran.dessinerPixel(10,10);     //Dessiner un pixel à la coordonnée (10,10);
  monEcran.display();
  delay(1000);

  monEcran.effacer();
  monEcran.display();
  delay(1000);
}

Constructeurs

Ecran()
Ecran(int8_t reset_pin)

Au besoin, on peut préciser le numéro de la broche pour le reset (par défault, -1 ).

Méthodes disponibles

void setSplashVisible(bool value)
bool getSplashVisible()

Permet de lire et écrire l'apparition ou non de l'écran de démarrage (splash screen) au moment du lancement de l'écran. Cette méthode doit être appelée AVANT l'appel de la méthode begin(). L'image affichée ne peut pas être changée: il est mise en mémoire par la librairie Adafruit GFX.


void begin()
void begin(uint8_t switchVCC, uint8_t i2cAddress )

Doit être appelée dans la fonction setup(). Initialise l'écran, on peut facultativement préciser les valeurs de switchVCC et i2cAddress (voir documentation Adafruit SSD1306).


 void refresh()

Cette méthode doit être placée en début de boucle loop(): elle permet de mettre à jour l'état de l'écran sans bloquer l'exécution du reste de la boucle.


void ecrire(char *str)
void ecrire(char *str, int line)
void ecrire(char *str, int line, int textSize)

Permet d'afficher une chaîne de texte à l'écran, à ligne voulue (0 à 7, par défault 0) et de taille voulue (facteur entier entre 1 et 4, par défaut 1). Les deux derniers paramètres sont facultatifs.


void dessinerPixel(int16_t x, int16_t y)

Permet de dessiner un seul pixel à la coordonnée (x,y).


void effacer()
void effacer(int line)
void effacer(int line, int textSize)

Permet d'effacer l'écran tout l'écran (si aucun paramètre n'est fourni), ou seulement une ligne spécifique (0 à 7, ou -1 pour effacer tout l'écran) et de taille spécifique (facteur entier, par défaut 1).


void setWrapLine(bool value)
bool getWrapLine()

Permet de lire et écrire le retour (ou le non-retour) automatique à la première ligne lorsque le texte déborde de l'écran par le bas.

Remarque

Toutes les méthodes primitives déjà présentes dans la librairie Adafruit GFX sont disponibles.

tgp_ecran's People

Contributors

dualb avatar technophyscal avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tgp_ecran's Issues

Code not reached in ecran.cpp

In ecran.cpp, _unicode is set to 0 after a return statement.

size_t Ecran::write(uint8_t c)
{
  if (_utf8 > 0)
  {
    _utf8--;
    if (!_utf8_error)
    {
      _unicode = (_unicode << 6) + (c & 63);
    }
    if (_utf8 == 0)
    {

      Ecran::wrapLine();
      return Adafruit_SSD1306::write(mapUnicodeToExtASCII(_unicode));
      _unicode = 0;
    }

Exemple en cours ne compile pour architecture ESP32

Lorsque l'on cut&paste l'exemple à partir du github (raw copy de ecran_simple.ino) et que l'on compile dans l'environnement 2.3.2 avec la version 1.3.0 de la librairie, nous obtenons une erreur de compilation pour un l'arch ESP32 (DOIT).

Le cas semble etre relié entre la version 1.3.0 qui est installé par l'IDE Arduino et l'exemple de code le plus récent "commit" sur github.

C:\Users\08041\AppData\Local\Temp.arduinoIDE-unsaved2024413-36652-vdhyl9.mg57p\sketch_may13a\sketch_may13a.ino:16:48: error: no matching function for call to 'Ecran::Ecran(int, TwoWire*, int)'
Ecran monEcran(OLED_RESET,&Wire,DEFAULT_ADDRESS); //Création de l'objet 'ecran' de classe Ecran

Faudrait p-ê que les développement se fasse sur une autre branche que la master?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.