IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Programme sur carte type RPI : écriture texte spécifique (chinois)


Sujet :

Raspberry Pi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut Programme sur carte type RPI : écriture texte spécifique (chinois)
    Bonjour,

    J'ai un projet qui consiste à constituer une matrice LED mettons 8x32 afin d'écrire pour le moment 4 lettres mais c'est des caractère en chinois.

    J'aimerais écrire un mot donc en chinois mais également avoir la possibilité de pas faire défiler mais plutot écrire chaque lettre de facon progressivement.

    Je débute totalement mais déjà il faudrait quoi comme matériel ?

    - une matrice LED (https://www.amazon.fr/gp/product/B06...A2N58YCCQNSUNR)
    - une carte RPI ? (j'ai OrangePi)

    Comment aussi écrire et faire fonctionner le code depuis la carte vers la matrice ?

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir Paul

    Le module LED utilise la puce MAX7219 qui permet tout ce que tu demandes, suffit juste d'envoyer les bons codes. Et vu que c'est une variante du SPI, cela n'est pas compliqué.
    Reste le problème que c'est un module pour fonctionner en 5V, la tension d'entrée pour un 1 doit être de 3.5V minimum, et vu que les sorties du Pi sont 3.3V c'est ricrac. En pratique, il y a quand-même 95% de chance que cela marche. (Le vendeur qui le donne compatible Arduino et Pi, c'est quand-même un peu gros )

    Quand au code, je laisse à des collègues plus expérimenté.

    Delias

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Bonjour

    Donc il faudrait quel équipement pour faire un truc qui marche et simple ?

    Merci

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Es-tu certain que 8*32 est suffisant ? As-tu essayé avec un affichage sur PC que tu as une résolution qui te convient ?

    Pour ce qui est des niveaux de tensions, il existe d'autres modules du même constructeur avec des plages de tensions compatibles. Exemple https://www.maximintegrated.com/en/d...ex.mvp/id/3195 qui pour des "Serially Interfaced, +2.7V to +5.5V, 5- and 8-Digit LED Display Drivers". Dans la recherche de ton panneau de LED, ce sera mieux d'avoir un driver avec la bonne plage de tension pour ton OrangePi.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Bonjour
    Comment rester sur PC ?

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Tu auras sans doute des fonctions ledOn() et lefOff(). Il suffit d'afficher quelque chose. Des carrés de couleur par exemple.

    Tu peux utiliser Qt avec http://doc.qt.io/qt-4.8/qpainter.html et ses méthodes drawRect() ou drawCircle().



    Édition - Voici un exemple :
    LedPanel.pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = LedPanel
    TEMPLATE = app
    
    
    SOURCES += main.cpp
    
    HEADERS  += LedPanel.hpp]
    LedPanel.hpp
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #ifndef LEDPANEL_HPP
    #define LEDPANEL_HPP
     
    #include <QWidget>
     
    #include <cassert>
    #include <QPainter>
     
    class LedPanel : public QWidget
    {
        Q_OBJECT
     
    public:
        LedPanel(QWidget *parent = 0)
            : QWidget(parent)
        {
            for (int x = 0; x < 32; ++x)
            {
                for (int y = 0; y < 8; ++y)
                {
                    states[y][x] = false;
                }
            }
        }
     
        void on(unsigned int x, unsigned int y)
        {
            assert(x < 32);
            assert(y < 8);
            states[y][x] = true;
        }
     
    protected:
        void paintEvent(QPaintEvent*) override
        {
            QPainter painter(this);
     
            // Background
            QBrush background(QColor(23, 23, 34));
            painter.setBrush(background);
            painter.drawRect(0, 0, width(), height());
     
            // LED
            int w = width() / 32;
            int h = height() / 8;
     
            for (int x = 0; x < 32; ++x)
            {
                for (int y = 0; y < 8; ++y)
                {
                    if (states[y][x])
                    {
                        QBrush led(QColor(0, 125, 110));
                        painter.setBrush(led);
                        QRect rect(x*w, y*h, w, h);
                        painter.drawRect(rect);
                    }
                }
            }
        }
     
    private:
        bool states[8][32]; // 8 lines of 32 LEDs each
    };
     
    #endif // LEDPANEL_HPP

    main.cpp
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include "LedPanel.hpp"
    #include <QApplication>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        LedPanel w;
     
        w.on(0, 0);
        w.on(1, 1);
     
        w.show();
     
        return a.exec();
    }

    Si tu n'es pas familier de Qt, tu trouveras des tuto sur Developpez

    L'idée ici, sans aller jusqu'à te dire de choisir ou d'apprendre Qt, est de te monter qu'on peut facilement utiliser des frameworks pour simuler du matériel. Dans cet exemple, je crée une fenêtre qui ne contient qu'un seul widget, mon LedPanel. Il a une méthode on() pour allumer une LED sur le panneau. Je présume que ton code qui affiche du chinois va avoir une matrice représentant le caractère et que pour chaque point de la matrice, tu vas où éteindre la LED correspondante. Plutôt que d'attaquer du matériel, tu peux ainsi attaquer un simulateur en Qt.

    Voici ce que le code ci-dessus affiche :
    Nom : led panel.png
Affichages : 475
Taille : 31,6 Ko

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/04/2011, 06h30
  2. Replace sur un type de donnée text
    Par zut94 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/11/2008, 21h32
  3. Programmation sur carte a puce: Questions
    Par kedare dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 07/09/2008, 14h37
  4. [c/linux] Programmation sur carte à puce
    Par MonsieurAk dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 03/10/2006, 10h52
  5. limite de caractère sur un type="texte"
    Par auduma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/03/2005, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo