Raspberry PI ~ 11 : Relier à un écran et afficher du texte

Ce post est le onzième d’une liste de tutoriels sur le raspberry PI, cliquez ici pour accéder au sommaire ! :D

Aujourd’hui nous allons apprendre à faire ça :

2012-12-10 18.10.05

Mais non pas la boite bande de péquenauds incultes (wink wink nudge nudge), mais ce magnifique écran LCD, à l’origine utilisé sur les vieux téléphones nokia (ben oui on est pas des nouilles molles).

Le but de ce tuto sera donc de brancher un petit écran LCD rétro éclairé (a 2,50€ sur ebay cela dit) et d’y afficher un texte choisis.

Je suis partis du principe que je voulais, lorsque je branche mon raspberry au labo ou autre part, récupérer l’adresse ip qui lui est automatiquement attribué par le réseau sur lequel je me connecte, et l’afficher sur l’écran afin que je puisse me connecter au rpi en ssh sans avoir a demander a l’admin du réseau cette fameuse ip.

image

(oui je sais la ça n’est pas une IP réseau mais j’ai perdu l’autre photo alors on vas s’en contenter Tire la langue)

Ce sera donc notre fil rouge Sourire, je vous rassure tout de suite, l’intro est longue, mais le tuto lui est très court, je m’en voudrait de vous tuer une seconde fois après le tuto sur la réception radio Rire.

Le matériel

  1. Un raspberry Pi (holala quelle surprise ! Rire)
  2. Un écran LCD nokia 5110 à 10€ sur sparkfun, 4,89 € sur ebay, voir même à 2,50€ si vous cherchez encore sur ebay et peut être moins cher ailleurs
  3. Quelques fils qui trainent, un peu d’étain, et un fer à souder Sourire

Les branchements

Notez que l’écran possède deux rangée de 8 Trous à l’opposée l’une de l’autre, vous pouvez utiliser l’une ou l’autre des rangées ça ne fais aucune différence, nous utiliserons celle avec les inscriptions de chaque pin afin d’être sûr de ne pas faire d’erreurs.

003

Les 4 trous sur les coins sont uniquement la a titre de fixation, ils ne sont reliés à rien

Voila le branchement en image, fiez vous aux couleurs pour le fils qui sont un peu cachés :

ATTENTION : sur mon écran l’alimentation principale est en 5V, cependant il semble que plusieurs sous modèle de la même référence n »acceptent que du 3v en entrée, aussi ne reliez comme ci dessous qu’après avoir regardé la fiche technique de votre écran.

Si votre écran n’accepte que du 3V, reliez le fil rouge coté rpi au pin 1 et non au pin 2.

RaspiModelB

Le programme

Pour installer le programme , ouvrez la console SSH de votre rpi, et tapez les commandes suivantes :

Téléchargement du programme

nb: la source est dans le zip pour ceux qui voudraient comprendre plus en détail le fonctionnement du script :).

Décompression

Déplacement

Le programme est installé

 

Utilisation

En ligne de commande

Options

  • -hcommande d’aide
  • -iaffiche l’ip LAN de la machine courante à l’écran
  • -naffiche le nom de la machine courante (hostname) à l’écran
  • -p[text] affiche le texte spécifié à l’écran
  • -p [text] [0-10] affiche le texte spécifié à l’écran et définis le contraste de l’écran

Obtenir son IP sur l’écran lorsqu’on se connecte a un réseau

Comme vous avez u le voir dans les options, la commande

Il nous suffit donc de lancer un CRON (une tâche planifiée) qui vas lancer cette commande toutes les x minutes (moi j’ai mis toutes les 1 minutes, mais bon c’est mieux d’augmenter un peu histoire de ne pas flooder non plus).

Ouvrez votre crontab

Ajoutez la ligne

Enregistrez, fermez et hop ! Tuto terminé Sourire

A voir aussi
La même chose, avec un écran couleur et tactile de 36€ pour ceux qui ont les moyens Sourire

Encore la même chose, avec un écran moins cher (mais du coup de moindre capacité) a base de librairie python, très bien expliqué par notre amis Zem

 

Article rédigé par Idleman

169 réflexions au sujet de « Raspberry PI ~ 11 : Relier à un écran et afficher du texte »

  1. Anael

    Vu au labo, expliqué sur le blog ! Merci !

    Par contre je trouve ta solution en C un peu lourde pour le coup, pas moyen de faire ça uniquement en script avec python comme avec l’article sur zem.fr ?

    Ça serait plus léger (pas besoin de compiler toussa), pourquoi a tu choisis C ?

    Répondre
    1. Idleman Auteur de l’article

      C’est pourtant difficile de faire plus rapide et léger que le C ^^, après si tu parle en terme de compilation c’est certain que c’est plus chiant, mais bon le but du programme est surtout de pouvoir l’appeler depuis une ligne de commande et donc pas forcement de toucher aux sources (même si je les ai laissées au cas ou), de cette manière il est possible d’utiliser le programme depuis python, PHP, shell, C etc… sans se prendre la tête avec du code supplémentaire.

      Bref, c’est tout à fait possible de le faire en n’importe quel langage :), j’ai choisis le C pour sa performance, sa portabilité et sa facilité d’utilisation, après c’est relativement simple d’adapter en python si tu es plus python :), quelques noms de fonctions à changer tout au plus

      Répondre
    2. Anael

      Ha oui c’est sûr que les performances de C ne sont plus a prouver. Je te parlais surtout de la simplicité du langage ^^. On va dire qu’on s’en fiche un peu des performances brutes d’une application qui affiche une IP sur un écran non ? ^^

      Enfin ça reste mon avis, je pense que je ferai du full python quand je recevrai le mien … Que j’attends … Toujours …

      Répondre
      1. Idleman Auteur de l’article

        C’est certain :), après comme je te l’ai dis je ne compte pas vraiment le recompiler 10 000 fois ^^, il y a aussi un avantage a utiliser le C : on peux utiliser la librairie wiring Pi qui simplifie pas mal la vie sur les fonctions types shiftOut ou pulseIn, cela dis mon argument n’est pas très valable puisque visiblement quelqu’un a sortie un équivalent python ^^’

        Courage, l’attente est longue, mais ça vaut le coup :), ça fait plusieurs mois que je l’ai, et je ne m’en suis toujours pas lassé, j’ai acheté des trucs a bien plus de 30€ qui m’ont tenu bien moins longtemps en haleine ^^

        Répondre
    1. Idleman Auteur de l’article

      Je bosse dans l’informatique, comme beaucoup ici ^^, je parle du l@bx, aussi nommé labo, labo sauvage, lab, hackerspace, ou encore hacklab (ben oui les fondateurs du principes arrivaient pas a se décider sur une seule dénomination ^^), j’aime l’idée du labo sauvage, ça fait très repaire de savants fous, c’est très adapté au décor et à la population qui l’habite :p

      Répondre
      1. galendel

        Merci, encore ^^

        Je peux savoir dans quel ville ce trouve ton labo?

        Répondre
        1. Idleman Auteur de l’article

          Le l@bx se trouve à Bordeaux ^^, mais pour ce qui est des hackerspace il y en a un peu partout en France (moins qu’aux E-U évidemment, mais ça reste honorable)

          Répondre
          1. qwerty

            Je croyais un labo de sciences :( (je fantasmais déjà son implication dans des calculs scientifique génial style SF)
            Sinon http://korben.info/35918.html, ça devrais te plaire ;)

          2. Idleman Auteur de l’article

            Sympa le rpi store ^^, faudra que je mate ça.

            Le hacklab est on ne peux plus scientifique, bien qu’il y ai aussi des artistes qui y passent, les domaines majeurs évoqué sont électronique, physique, et informatique.

            Après c’est plus proche de la pratique à taton que de la pure théorie si c’est ce que tu entends par labo scientifique ^^

  2. tony

    arp -a ?

    Ok je sors :p

    Bien sympa, je vois que tu progresses vite en électronique. J’ai chopé un CottonCandy cette semaine, intéressante bestiole.

    @+

    Répondre
    1. Idleman Auteur de l’article

      Je ne connaissais pas cette commande ^^, cela dit je l’ai testé hier au lab par curiosité, ça m’a sortis une 20 aine d’ip différente dont aucune ne correspondait au PI ^^, c’est sensé retourner quoi?

      Sympa la cottonCandy, dommage qu’il n’y ai pas un peu plus d’accès bas niveau ça aurait presque pu se substituer au rpi :)

      Répondre
  3. tony

    Ah bizarre, normalement ça devrait sortir les IP du LAN. J’utilise ça depuis toujours mais j’avoue que j’ai pas trop creusé le fonctionnement. Sinon essaye un ping en broadcast avant puis arp -a.

    Répondre
    1. Idleman Auteur de l’article

      Ça dois beaucoup dépendre du niveau de sécurité du réseau, je tenterais ça a ma prochaine visite au labx :)

      Répondre
  4. falimero

    Salut,

    Déjà, c’est mon premier commentaire, je tennais a te dire que tes articles sont excellent.

    Maintenant j’ai une question. cet écran pourrait me plaire mais une chose me chagrine :
    le GPIO4 que j’utilise pour le senseur de température DS18B20. je suis débutant avec le raspberry et je voudrais savoir s’il n’y aurais pas un moyen de combiner les deux ?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Salut :) !!

      Qu’entends tu par combiner les deux ? Si tu veux dire par la : utiliser le gpio4 pour le lcd ET pour le senseur, non ce n’est pas possible (enfin techniquement c’est possible mais c’est tellement tordu que même moi (qui suis pourtant bien tordu) je ne m’y risquerais pas) mais bon rien ne t’empêche de changer les pin du lcd :).

      Si tu entendait juste : afficher la température du senseur sur le lcd, la c’est tout a fait possible, il suffit juste de rcuperer ta temperature et d’exécuter mon programme via la commande /etc/lcd/screen -p « ta_temperature »

      Répondre
  5. falimero

    ce que j’entends c’est utiliser le capteur de température pour mesurer la température ambiante et l’ecran pour afficher d’autre information. peut-on en editant les sources par exemple deplacer le gpio4 de l’ecran ?

    Répondre
    1. Idleman Auteur de l’article

      Oui tout à fait :), c’est juste une constante en début de fichier à changer :) (la seule qui est a 4) puis recompiler le programme (en oubliant pas de lier la librairie wiringPi)

      Répondre
      1. falimero

        Super, je te remercie grandement. j’ai commander cet ecran a cause (ou grace) a toi :) dès que je le reçois je regarderais ca :)

        Mille merci et continu comme ca

        Répondre
        1. darkvodka

          Salut falimero,

          Ton capteur m’intéresse. Peux-tu m’en dire plus sur son fonctionnement ?
          D’après ce que j’ai pu voir, on ne peut récupérer que des 0 ou 1 avec un port gpio.
          Donc comment ça marche pour récupérer par exemple 20° ?

          Répondre
          1. Idleman Auteur de l’article

            Je ne connais pas son capteur, mais je suppose que les informations se transmettent de la même manière que celle utilisée par les protocole radio etc…

            A savoir qu’il n’utilise qu’un pin GPIO et transmet un signal de « n » bits (0/1) avec un écart de temps entre chaque bits.

            Bref le 0/1 permet d’envoyer n’importe quelle information a partir du moment ou le transmetteur et le récepteur sont d’accord sur le protocole

          2. Idleman Auteur de l’article

            Merci, je l’ai vu, mais mon raspian ne comprend pas oneWire ^^, et puis comme je fais tous ça via la radio, j’utilise un arduino de transition :)

    1. Idleman Auteur de l’article

      Les deux questions sont bien distinctes :)

      Mais oui il semble que cet afficheur convienne tout à fait pour le rapsberry PI, il te faudra en revanche coder toi même la gestion des registres de données pour afficher tes données a l’écran (comme je l’ai fait pour le nokia) bref tu ne peux pas réutiliser mon code avec cet afficheur (mais je suppose que tu t’en doutais ^^).

      Pour ce qui est d’augmenter le nombre de pin GPIO, tu peux utiliser un shift register, c’est une petite puce qui permet de transformer 3 pin en 7 pin , sachant qu’il est possible de les monter en série et donc de disposer d’un nombre quasi infinis de pin avec seulement 3 pins du raspberry réellement prises.

      Tu peux trouver une très bonne doc en français sur la question ici : http://www.zem.fr/decouverte-du-composant-74hc595-8-bit-shift-register/

      Répondre
  6. Eswal

    Salut,

    Pas con l’astuce de l’écran pour afficher l’IP, c’est vrai que c’est bien pratique.

    Je compte également domotiser un peu mon appartement, la programmation c’est mon truc mais l’électronique pas du tout (études d’ingé en informatique) alors je me retrouve beaucoup dans les posts que tu rédiges.
    Ton blog est une véritable source d’informations pour les gens qui veulent se mettre au « bricolage électronique » comme moi, et même si je commente rarement sur les blogs je n’ai pas pu me retenir de te féliciter pour ce site.
    Merci encore, ce site est super, je te souhaite bon courage pour le continuer :)

    PS: Comment comptes tu relier le reste des équipements de ta maison à ton Rasp ? j’ai bien saisi le principe de la carte relais mais bon si faut passer des cables dans les murs autant faire du KNX ^^ Par radio justement ? Je vois que tu as commencé à travailler avec.

    Sinon pour la bibliothèque de reconnaissance vocale, plutôt que de dépendre d’un PC fixe avec Windows (même si l’api speech de microsoft est vraiment pas mal du tout) tu peux utiliser la bibliothèque Sphinx 4 qui fonctionne en java et peut donc être lancée directement sur le Raspberry Pi :)

    Répondre
    1. Idleman Auteur de l’article

      Je suis content d’être utile aux mêmes informaticiens éléctro(nico)-handicapés de mon genre :D

      Je compte effectivement passer par la radio avec une solution maison et donc peu couteuse (bien que je puisse encore réduire le prix, j’y travaille), mon tuto est en préparation (en fait il est fait mais je dois vérifier que le code que je met en ressource est bien à jour), la future présentation de ce tuto est déjà en ligne ici si ça t’intéresse : https://vimeo.com/56237967.

      Concernant sphinx, je l’avais testé mais, même en anglais, il n’est pas parvenu a comprendre un seul de mes mots sur les 10 premiers essais, je suis donc resté sur la solution microsoft qui, malgrès toutes ses tares, fonctionne étonnamment bien ! Je n’ai pas encore essayé avec un micro adapté mais avec un micro standard inclus dans le portable, le taux de réussite est d’approximativement de 19/20, ce qui est admirable :), après c’est peut être juste ma voix qui passe bien a l’analyseur XD

      Répondre
  7. Gat

    Bonjour
    Super le tuto! Peut on afficher la température des composants. Les vitesse cpu ou la durée de la battrie ?

    Répondre
    1. Idleman Auteur de l’article

      On peut afficher n’importe quel type de texte, donc si tu récupere ces valeurs quelque part il te suffit de les transmettre à la commande :
      ./etc/lcd/screen -p "Vitesse du PU xxx"

      Répondre
  8. gat

    merci poir l info
    perso j ai recuperer un vieiller ecran 7 pouce tactile qui avai les cables vga /rca ect mai decouper je me suis pris la tete mais ca marche en rca

    Répondre
    1. Idleman Auteur de l’article

      Bien joué :), ça n’a pas du être simple ^^

      Répondre
  9. colin jeremy

    bonjour j ai reçus mon ecran et j avoue etre perdu ….
    j ai c pin la
    vss
    vdd
    vo
    rs
    rw
    e
    D0
    D1
    D2
    D3
    D4
    D5
    D6
    D7
    A
    K

    Répondre
    1. Idleman Auteur de l’article

      Oui, comme je te le disais la dernière fois, la gestion d’un écran LCD varie d’un écran a l’autre, si tu n’es pas trop balèze en électronique, mieux vaut prendre le même modèle que moi et suivre le tuto a la lettre.

      Il faut que tu te réfère a la datasheet de l’écran comme je l’ai fait pour le mien, la comme ça ça ne m’évoque pas grand chose non plus a part peut être :

      vdd = alimentation de l’écran
      vss = alimenation de la backlight ?
      e = ground?
      rs = reset?
      rw = read/write : définis si on veux lire la valeur de l’écran ou écrire une valeur ?
      D0-D7 = pins de données?

      Répondre
  10. falimero

    salut a toi. j’ai une question. j’ai reçu mon écran et par contre a chaque commande que je tape il incrémente les caractère, j’ai pas l’impression que le reset fonctionne :( as-tu ce problème .

    Répondre
    1. Idleman Auteur de l’article

      Non, ca provient peut être de ton branchement?

      Répondre
        1. Idleman Auteur de l’article

          Avec le même branchement ? Si tu tape un espace tout court ça donne quoi?
          Au pire utilise l’autre librairie qui fonctionne, je ne me vexerais pas ^^

          Répondre
    1. Idleman Auteur de l’article

      Can’t find this page 404 error ,you will be redirected to home page after 5 seconds!

      Répondre
  11. Thierry

    Hello,

    Je me demandais a quoi servaient les deux connecteurs plats et verticaux, qui ressemble a des prises SATA mais plus larges.
    D’apres http://elinux.org/RPi_Hardware il s’agit de prise DSI (http://www.mipi.org/specifications/display-interface) et CSI (Camera) qui sont prévus pour faire ce genre de d’affichage.

    Bon, certes, c’est beaucoup moins rigolo et plus facile que de tout reverser soi même :-)
    L’avantage de cette interface, c’est quelle n’utilise pas les (rares) pin GPIO.

    La liste des panels « supportés » est decrite ici:
    http://elinux.org/Rpi_Screens#interfacing_to_Raw_LCD_panels

    Répondre
    1. Idleman Auteur de l’article

      Nice, sinon pour augmenter le nombre de pin il y a les shift registers

      Répondre
    1. Idleman Auteur de l’article

      C’est un peu court comme doc, tu n’arrivera a rien avec ça a mon avis, il doit y avoir une datasheet plus complète ailleurs sur le web…

      Répondre
  12. matt

    salut j ai recu mon ecran hier http://snootlab.com/adafruit/295-nokia-5110-3310-monochrome-lcd-fr.html
    j ai tout bien brancher (et verifier) aujourdhui je vient vers toi car j ai un message d erreur mon ecran est celui du portable nokia

    pi@raspberrypi / $ /etc/lcd/screen -p « Hello world »
    -bash: /etc/lcd/screen: Permission non accordée
    pi@raspberrypi / $ sudo /etc/lcd/screen -p « Hello world »
    sudo: /etc/lcd/screen: command not found
    pi@raspberrypi / $

    c est grave docteur Idleman ???

    Répondre
    1. Idleman Auteur de l’article

      Vous survivrez Mr Matt, mais vous serez peut être impuissant, soyez fort !!

      Conneries à part, essaye :

      sudo ./etc/lcd/screen -p "hello world"

      Répondre
      1. Matt

        ./
        car c est un scripte ???
        Sa ne fonctionne toujours pas …

        Répondre
        1. Idleman Auteur de l’article

          ./ parce que c’est un programme a executer et non une commande linux native, essaye :

          su
          cd /etc/lcd
          chmod 7777 screen
          ./screen -p "Hello world"

          Répondre
          1. matt

            ( le mot de pass root avant ca n etait pas cree je vient de le faire a l instant même .
            plus d erreur mais mon écran est tout noir ..)

          2. Idleman Auteur de l’article

            essaye de regarder l’ecran sous différents angles, c’est peux être juste un problème de contraste trop élevé, ça m’arrive parfois mais je n’ai pas encore trouvé d’ou ça viens

          3. matt

            j ai débrancher re brancher et c ok par contre c est clair le contraste moyen aller encore merci byby

          4. Idleman Auteur de l’article

            J’ai re-compilé ma version pour avoir un meilleur contraste si ça t’intéresse

        2. gat

          j ai le meme probleme

          pi@raspberrypi:~$ sudo unzip lcd.zip
          Archive: lcd.zip
          creating: lcd/
          inflating: lcd/LICENCE
          inflating: lcd/README
          inflating: lcd/screen
          inflating: lcd/screen.cpp
          pi@raspberrypi:~$ sudo mv lcd /etc/lcdsudo mv lcd /etc/lcd
          mv: la cible « /etc/lcd » n’est pas un répertoire
          pi@raspberrypi:~$ sudo ./etc/lcd/screen -p « hello world »
          sudo: ./etc/lcd/screen: command not found

          Répondre
          1. Idleman Auteur de l’article

            Salut,

            Visiblement tu as un problème de commandes linux basique la ^^

            Essaye avec sudo mv -R lcd /etc/lcd

        3. gat

          voila je suis bloquer la

          pi@raspberrypi:~$ sudo wget http://projet.idleman.fr/domopi/data/piScreen/lcd.zipsudo wget http://projet.idleman.fr/domopi/data/piScreen/lcd.zip
          –2013-01-22 20:45:52– http://projet.idleman.fr/domopi/data/piScreen/lcd.zipsudo
          Résolution de projet.idleman.fr (projet.idleman.fr)… 85.68.150.50
          Connexion vers projet.idleman.fr (projet.idleman.fr)|85.68.150.50|:80…connecté.
          requête HTTP transmise, en attente de la réponse…404 Not Found
          2013-01-22 20:45:53 ERREUR 404: Not Found.

          –2013-01-22 20:45:53– http://wget/
          Résolution de wget (wget)… échec: Nom ou service inconnu.
          wget : impossible de résoudre l’adresse de l’hôte «wget»
          –2013-01-22 20:45:53– http://projet.idleman.fr/domopi/data/piScreen/lcd.zip
          Réutilisation de la connexion existante vers projet.idleman.fr:80.
          requête HTTP transmise, en attente de la réponse…200 OK
          Longueur: 13764 (13K) [application/zip]
          Sauvegarde en : «lcd.zip.4»

          100%[======================================>] 13 764 –.-K/s ds 0,06s

          2013-01-22 20:45:53 (241 KB/s) – «lcd.zip.4» sauvegardé [13764/13764]

          FINISHED –2013-01-22 20:45:53–
          Total wall clock time: 1,7s
          Downloaded: 1 files, 13K in 0,06s (241 KB/s)
          pi@raspberrypi:~$ sudo unzip lcd.zipsudo unzip lcd.zip
          unzip: cannot find or open lcd.zipsudo, lcd.zipsudo.zip or lcd.zipsudo.ZIP.
          pi@raspberrypi:~$ sudo mv lcd /etc/lcd
          mv: impossible d’évaluer « lcd »: Aucun fichier ou dossier de ce type
          pi@raspberrypi:~$

          Répondre
          1. Idleman Auteur de l’article

            Yop, je pense que tu devrait utiliser des utilitaires types winScp ou regarder la doc d’ubuntu concernant les commandes SSH, car tous tes problemes viennent de mauvaises manip fichiers avec les commandes.

  13. myko

    Salut Idleman, j’ai le même écran que matt, seulement moi mon ecran n’est pas noir au contraire il est ultra lumineux, mais rien ne s’affiche, la question s’adresse donc aussi à matt, comment à tu fait les branchement (qui ne sont pas identique que celui de idleman) et commment puis-je faire pour essayer d’eteindre l’écran (histoire de voir si celui-ci est bien connecté a mon Rpi? )

    Merci

    Répondre
  14. Kin

    Salut Idleman,

    super tuto. J’ai tout suivi à la lettre et mon écran n’affiche rien.
    Mon branchement : http://www.imagebam.com/image/a48dc5231763690
    La LED de l’écran est allumée au bleu, j’ai testé la continuité du Pi Header à l’écran : tout est bon.

    Vois-tu quelque chose ?

    Merci @+

    Kin.

    Répondre
    1. Idleman Auteur de l’article

      La continuité « super tuto –> mon écran n’affiche rien » m’a beaucoup faite rire :D

      Je note que ton écran n’a pas l’air d’être similaire au mien, quelle est ta référence? Sympa le Pi Header, je ne connaissait pas (mais j’aurais du me douter qu’un truc comme ça existait :p)

      Quelle est la commande que tu tape dans le ssh ? Il y a une erreur?

      Nb: Tu devrais prendre du noir pour le ground et du rouge pour le vcc, ça t’aiderais (et moi aussi au passage ^^) a distinguer les branchements plus simplement

      Répondre
      1. Kin

        Ca charie ? ;) Je voulais dire que ton tuto était exactement ce que je cherchais. A voir les comms je me doute bien que tout est suffisamment bien expliqué pour que ça marche, mais je rencontre quand même un problème.

        J’ai testé un peu tout ce que ton prog fournissait :
        sudo /etc/lcd/screen -i
        sudo /etc/lcd/screen -p « test »

        Aucun message d’erreur. Je retourne au prompt après l’exécution de la commande donc à priori elles passent.

        J’ai également testé avec une autre source, celle qu’a testé falimero : http://binerry.de/post/25787954149/pcd8544-library-for-raspberry-pi
        Et que dalle.

        Pour l’écran je l’ai commandé sur un site qui proposait le même que le tien (le rouge) et cette version bleue m’a été livrée. Après recherche c’est bien le même écran (Nokia 5110). Les pins sont juste à un endroit différent. C’est pour cette raison que je t’ai fourni une photo de mon circuit, pour que tu puisses voir les quelques changements.

        Pour les couleurs de câble, c’est pas faux ;-)

        Kin.

        Répondre
        1. Idleman Auteur de l’article

          Oh non je ne me permettrais pas ^^, mais on est samedi soir, j’ai trois ou quatres pelforth dans le nez, un rien me fait rigoler :D

          tu tu fait :

          su

          puis

          cd /etc/lcd

          puis

          ./screen -p "coucou"

          Il ne se passe rien du tout nulle part ? Si c’est le cas, ça doit effectivement venir tu branchement mais le fait que tu utilise un header PI, une carte avec des pin mélangés et que je vois double ne m’aide pas beaucoup ^^

          As tu wiringi d’installé sur la machine ?

          Répondre
          1. Kin

            Salut Idle,

            bien décuvé ?

            Non aucun message, ni d’erreur, ni de rien.

            oui j’ai installé WiringPi, pour pouvoir compiler des sources utilisant cette librairie.

            Les pins sont nommés différemment mais elles sont bien toutes là.

            Je vais fouiner côté constructeur ou sur le net pour déceler une éventuelle différence entre ton écran est le mien, alors que je rappelle que sur le site l’écran était rouge (le tien) et que j’ai reçu cette version (bleue).

            Si tu as des idées où creuser je prends.

            Merci @+

            Kin.

          2. Kin

            Autre chose, j’ai un Raspberry Revision 2. Il semblerait qu’il y ait des différences avec leur GPIO.

          3. Idleman Auteur de l’article

            Un rpi modèle B tu veux dire ? J’ai le modèle B perso donc ça ne devrait rien changer…

            regarde dans le code source de mon application sir les numéro de pins correspondent bien à tes branchements :)

    1. Idleman Auteur de l’article

      Oui, mais difficilement, les gpio du rpi sont digitaux et ne peuvent faire que du 0 ou 1 donc tu ne peux pas faire varier la vitesse ça sera du on ou du off.

      Après tu dois pouvoir acheter un convertisseur digital/analogique, genre une potentiometre digital qui varie en fonction du code serie que tu lui envoie.

      Sinon tu peux passer par une carte arduino, un peu moins cher que le rpi et qui possede des sorties analogiques, en revanche pas d’os installable dessus ni de connexion ethernet (sauf avec un shield ethernet a acheter en plus)

      Répondre
  15. Gat

    Merci pour les précisions j attend avec impatience ton prochain billet,sur le pi

    Répondre
  16. Guillaume C

    Bonjour,
    j’ai réaliser votre cablage et télécharger vos sources / exe.
    C’est triste a dire, mais ca ne fonctionne pas :(
    L’écran reste désespérément vierge.
    Si je fais :
    pi@toto /etc/lcd$screen -i
    J’obtiens wiringPiSetup: Unable to open /dev/mem : permission denied
    Librairie Wiring PI introuvable, veuiller lier cette librairie…

    Et si je l’exécute par un sudo ./screen -i ca bronche pas, mais pas mieux niveau LCD.
    ou est le souci, si souci il y a sur le code (ou le cablage, j’ai un modèle B rev 2)

    Merci de vos lumières

    Répondre
    1. Idleman Auteur de l’article

      As tu pensé a installer la librairie wiring PI?

      Lance tout toujours en sudo pour tester, ta première erreur viens de la.

      Pense a bien revérifier ton cablage, la correspondance pin wiring pi/pin physiques, etc…

      Regarde aussi l’écran sous différents angles voir si ce n’est pas un pb de contraste

      Répondre
      1. Guillaume C

        Bonsoir,
        merci de la réponse.
        Wiring Pi a bien été installé.
        Je lance toujours par sudo, sauf pour test ou oubli :)
        Le cablage est vérifié OK.
        Si la version de wiring Pi est la même que la tienne, alors tout doit correspondre…
        La mienne, je l’ai téléchargée hier, avant de faire le test.
        Effectivement, en regardant en rasant, on aperçoit quelque chose.
        Je vais mettre un potar sur la led…
        Merci !

        Répondre
        1. Guillaume C

          Re,
          enfin, ceci dit, cela fonctionne que quand ca veut….
          A mon avis, j’ai acheter 3 écrans HS…..
          Car pour 1 :
          Ca affiche, un peu, pas longtemps, et l’écran devient noir et blop, plus rien de rien, pour un autre, il ne se passe rien (pourtant lui, je lui ai refait une connectique directe, vérifiée et tout et tout, et meme avec un autre RPi).
          Pour le troisième écran, je dis ca au pif, « jamais 2 sans 3″….
          :/
          Ou alors, c’est les 4.85V qui sont pas suffisant…

          Répondre
          1. Idleman Auteur de l’article

            4.85 me parait assez, je serais toi je conserverais le premier et je réglerais le contraste :)

          2. Guillaume C

            Par contre,
            j’ai remarquer quelque chose.
            Je vais fouiller le code, mais les caractères spéciaux et accentués font planter l’affichage.
            Genre :
            « C’est génial ça marche » ne s’affiche pas mais  » c est genial ca marche » si.

        2. Idleman Auteur de l’article

          Dans ce cas c’est très certainement un problème de contraste, tu peux regler la valeur dans le fichier cource et le recompiler pour qu’il s’adapte a ton écran :)

          La valeur se règle en hexadécimal (la calculette windows fait très bien la conversion decimale/hexa)

          Répondre
          1. Guillaume C

            Bonsoir,
            je n’avais pas vu dans le code que l’on pouvait régler le constraste (en fait, comme je rentre tous les soirs tard du boulot, l’électronique et l’informatique chargent bien une honnete journée, c’est mon métier ;) je n’ai pas encore eu le temps de regarder en détail le code source, honte à moi :(
            Je vais voir ca.
            Merci !

          2. Guillaume C

            Salut,
            J’ai recompiler le source, et avec une valeur de A5 pour le contraste et ca fonctionne avec un de mes écran.
            L’autre doit etre mal soudé ou alors HS.
            Merci ;)

  17. Gianninou

    Salut,
    ton tuto est terrible (les autres aussi d’ailleurs ^^).
    Je voulais savoir comment on peux faire des retours a la ligne ?
    \n ne fonctionne pas.

    Et je sais pas si c’est normal, mais l’écran change légèrement de contraste constamment, c’est peux être un problème de soudure ?

    Répondre
    1. Gianninou

      Et c’est possible que tu m’explique a quoi servent les fonctions sheduler s’il te plait.
      Je débute le C++ donc je suis pas encore a la gestion des processus, …

      Répondre
      1. Idleman Auteur de l’article

        A prioriser le processus du programme sur tous les autres afin de simuler le temps réel, ceci permettant d’effectuer des opération très rapides comme l’envoie d’un signal radio (à la micro seconde prée) etc…, dans le cas du tuto 11, cette fonction ne sert à rien, elle est restée par historique mais il est tout a fait possible (théoriquement, je n’ai pas testé) de l’enlever afin d’alléger la tâche du rpi.

        Répondre
        1. Gianninou

          Haa d’accord merci, par contre pour les retours a la ligne, je peux faire comment ?
          Et lorsque je veux afficher un text, celui ci est décalé de 1 caractère, le premier est un espace en fait.

          Répondre
    2. Idleman Auteur de l’article

      Pour les retours à la ligne, il faudra mettre des caractères blancs ou programmer un caractères retour ligne toi même ^^, ce sont les joies du bas niveau :)

      J’ai également le même soucis de contraste, j’ignore si cela viens du fait que le rpi n’est pas en temps réel ou d’un mauvais voltage/soudage du truc… mystère et boule de gommes :)

      Répondre
      1. Gianninou

        D’accord, je vais plancher la dessus. C’est possible d’avoir ton mail ou te pouvoir parler avec toi sur gmail si j’ai des questions ?
        En tout cas merci encore pour ton travail :D

        Répondre
  18. Gianninou

    Bonjour,
    Je voulais savoir s’il était possible de mettre un bouton on/off sur le 5V pour allumer ou éteindre l’écran. Ainsi qu’un potentiomètre sur le 3.3 ?

    Merciiii

    Répondre
    1. Idleman Auteur de l’article

      Salut !! Oui c’est complètement possible, c’est d’ailleurs ce que j’ai fait sur le mien :) (enfin j’ai juste mis le potars sur le 3.3 j’ai eu la flemme de mettre l’interrupteur on/off)

      Répondre
      1. Gianninou

        D’accord merci, au final j’ai mis un interrupteur sur le 3.3 seulement.
        Je voulais savoir aussi comment régler le contraste ?
        Au début t’avais mit un 3eme argument du style ./screen -p « texte » 5
        A un moment tu met 0x98 dans LCD_C mais je sais pas comment le faire varier.
        La je fais une class en c++ pour contrôler l’écran ainsi qu’une led et un bouton poussoir et je serais ravis de partager par la suite via ton site.

        Répondre
        1. Gianninou

          De plus je voulais ajouter un boutton et une led, mais il me reste qu’un port GPIO, je peux brancher l’un des deux sur une autre broche ? comme sur la MOSI, MISO, SCLK, CE0, CE1 ou sur les SDA0 et SCL0 ?

          Répondre
          1. Idleman Auteur de l’article

            Je te déconseille l’utilisation des autres ports en tant que simple GPIO, même si c’est possible.

            En revanche, il est possible de multiplier de manière conséquente les pins GPIO en utilisant une puce de type « shift register ».

            Ce genre de puce très simple à utiliser et peu coûteuse permet de transformer 3 pin en 7 pin, et elle peux se monter en série sur ses congénères, par exemple avec seulement 3 puces, on arrive à 3 pins de perdues pour 12 pin de gagnées.

            Evidemment il existe plusieurs modèles de shift register avec plus de pattes encore, cependant l’utilisation des shif registrer pose quelques inconvénients sur la table :

            – Ça ne fonctionne qu’en sortie (donc utilisable dans notre cas que pour les prises/écran et autres actionneurs mais pas pour les capteurs)
            – Plus il y en a montées en série, moins l’ouverture/fermeture sera réactive (mais bon c’est du bas niveau, donc ça depotte quand même) donc il faut faire attention a ne pas en monter trop pour les transmissions radio qui doivent être très réactives par exemple
            – Ça complique (très legerement) le code

            Un bon tuto la dessus : http://www.zem.fr/decouverte-du-composant-74hc595-8-bit-shift-register/

        2. Idleman Auteur de l’article

          Oui j’ai enlevé l’argument parce qu’en fonction des branchements /ecran, la valeur min et la valeur max n’etait plus du tout appropriée :)

          0×98 est une valeur hexadecimal qui influe sur le constraste, tu dois la faire varier (utilise la calculette windows en mode programmeur pour faire la conversion décimale/hexa) puis recompiler le code et tester. Il te faudra recommencer la manip jusqu’a avoir un contrast qui te convient :)

          Je suis intéressé pour ta classe, je n’ai pas pris le temps de la faire mais ça serait une bonne idée :)

          Répondre
          1. Gianninou

            D’accord pour le shift register, mais a quoi servent les autres pin ? on peux quand même en faire quelques chose ?
            Pour le contraste, cç va de quelle valeur a quelle valeur ? Sinon je vais y aller un peu au pif et je verrais.
            Et pour la classe ca avance mais je vais avoir un problème avec le bouton, pour créé une sorte de thread qui ce déclenche lorsqu’on appuie dessus. Ca sera donc un peu long mais bon.

            Merci pour ton aide en tout cas

          2. Idleman Auteur de l’article

            Oui tu peux en faire quelque chose, théoriquement (je dis théoriquement car je ne maîtrise pas spécialement le sujet) il y a 17 pins utilisables en tant que GPIO simple.

            8 pins seulement sont purement voué au bête 0/1, les autres sont initialement plus dédiées aux communications I2C (pin 3 et 5), SPI(pin 24,19,21,23 et 26), UART(pin 8 et 10) etc… mais peuvent être utilisé en tant que GPIO simple.

            Seules quelques pin ne peuvent vraiment pas être utilisée tel que les pin 1,2,4,6,9,14,17,20,25 (respectivement : alimentation 3.3v,5v,5v et ground pour toutes les autres).

            Je n’en sais rien pour le contraste, comme je te dis, ça semble varier en fonction du montage et de l’ecran, chez moi c’est entre 160 et 180 (vas savoir pourquoi…)

            Bonne chance pour ta classe :)

          3. Gianninou

            Et est ce que je peux mettre un arduino sure le raspberry pi ? je pourrai le commander via du c++ ou php ?

          4. Idleman Auteur de l’article

            C’est possible oui, via un shield arduino/raspberry PI ou simplement en communiquant via les ports série ou gpio

          5. Gianninou

            Oké, merci pour ton aide.
            Je vais voir si je vais acheter un shift register ou directement un arduino et voir ce que je peux en faire.
            Je vais aussi tester les autres pins, je vais voir la doc du raspberry et puis voila.

            Une dernière question, quand je veux afficher un texte, la première lettre est décalé d’un rang, comme s’il y avait un espace devant. Tu sais d’où ça vient ?

          6. Idleman Auteur de l’article

            Nop :), mais ça viens probablement de mon code de porko :p

          7. Geo

            Salut :)
            Peut on compiler directement sur la Rasp?
            J’ai essayé gcc screen.cpp -o screen
            Mais je me fais insulter par le compilateur… Je suis pas certain qu’il y ai les librairies… Puis moi et l’info…
            On peut le faire directement ou faut bouriner avec un cmake blabla?

          8. Idleman Auteur de l’article

            Ah t’y étais presque !! (mais t’y était pas :p) :

            g++ screen.cpp -o screen -lwiringPi

  19. dominique

    Heu? c’est une interface soft spi ou hardware spi ou pas spi?

    Répondre
    1. Idleman Auteur de l’article

      De ce que j’en sais, ce n’est pas du spi, mais je peux me tromper, les divers protocoles de communication ce n’est pas mon fort (moiyenapetitdéveloppeur), voir la datasheet de l’écran pour plus d’infos.

      Répondre
      1. dominique

        moiyenateremercier,
        Je vais biensur au début, commencer d’abord en premier à essayer tel que décrit ici mais…
        à priori il serait éventuellement peut-être possible d’interfacer toussa en utilisant du hardSPI. J’attends mes cables pour essayer toussa.

        Répondre
  20. olivierdrueuil

    Bonjour idleman
    j’avais une question rapide, j’ai cet écran :
    http://cgi.ebay.fr/1PCS-84X48-84-48-Nokia-5110-LCD-Module-with-blue-backlight-adapter-PCB-/261034182941?pt=LH_DefaultDomain_0&hash=item3cc6d9891d
    sur la 2eme photo on voit que les points de montage sont un peu différents de ton LCD.
    Par exemple LED sur le tien devient LIGHT sur le mien, or quand je branche le LIGHT sur le 3v le rétro éclairage ne s’allume pas, pareil en le branchant sur le 5v. Par contre en le branchant sur une GPIO gérant le 1 ou le 0 il s’allume. C’est pas très gênant sauf que ça me bouffe une gpio pour rien … une idée du pourquoi du comment ? :)
    merci

    Répondre
    1. Idleman Auteur de l’article

      Je ne parvient pas a acceder à la fiche ebay, le service bloque la france visiblement …

      Malheureusement, l’accès à cet objet a été bloqué en raison de restrictions légales en vigueur dans certains pays. Conformément à ces restrictions, nous nous efforçons de bloquer l’affichage des objets concernés. Nous regrettons de vous informer que pour des raisons techniques, certaines annonces ne rentrant pas dans le cadre de ces restrictions peuvent ne pas être accessibles aux utilisateurs. Nous vous prions d’accepter nos excuses pour tout désagrément et nous espérons que vous trouverez d’autres objets intéressants sur eBay.

      Répondre
        1. Idleman Auteur de l’article

          Visiblement ton écran ne s’alimente qu’en 3v3 (ce qui est tout à fait possible) en revanche pour le rétro éclairage je t’avoue que je ne comprend pas grand chose à ton schéma non plus ^^, visiblement il est constitué de 4 led à alimenter en reliant l’anode de chacune (pin 10,12,14,16) au VCC (3.3v) et la cathode (pin 11,13,15,17) à la masse via une résistance R1 18 R

          Répondre
          1. olivierdrueuil

            vi c’est bizzard… enfin ca fonctionne, c’est juste que ca bouffe une gpio pour rien.
            merci .. :)
            a+

  21. Mike

    salut,
    Merci pour l’excellent tuto, avec le même matériel cela fonctionne parfaitement!

    j’ai par contre un souci, le contenu s’affiche dès la moitié de la première ligne uniquement, alors que sur les images du tuto, le texte commence bien sur le 1er digit.
    – Est-ce que j’ai loupé un paramètre quelque part? comment commencer au début de la ligne?

    – comment envoyé un saut de ligne? le traditionnel \n n’est pas interprété et s’affiche…

    j’aimerais pouvoir écrire sur 2 lignes (ainsi si je ne parviens pas à commencer à écrire au début de la première ligne, je commencerai sur la 2e ligne de l’écran)

    merci d’avance pour ta réponse

    Répondre
    1. Idleman Auteur de l’article

      Si tu regarde dans le code il y a un moment ou j’ai mis deux blanc avant de commencer une phrase parce que mon écran était mal calibré, si tu les enlève ça devrait résoudre ton pb de départ en milieu de ligne.

      Pour le saut de ligne ce n’est pas aussi simple ^^,a ma connaissance ya pas de caractères miracles il te faut calculer le nombre de lettre restantes pour terminer la ligne et la remplir par des espace :p

      Répondre
      1. Mike

        je vais enlever ces blancs et commencer à compter les caractères pour terminer ma lignes!

        merci pour tes réponses

        Bonne continuation

        Répondre
  22. Fred

    Bonjour,

    Je me lance dans l’univers du RPI et de linux en même temps (pas facile). J’ai eu les même problème que matt mais après avoir appliqué la solution du chmod (encore aucune idée de ce que ça fait) ça fonctionne pas mal. Comme déjà signalé, un caractère blanc en début d’affichage et la gestion des caractères spéciaux ne fonctionne pas.

    Merci pour tout tes tutos.

    Fred

    Répondre
    1. Idleman Auteur de l’article

      Sous linux tous les fichiers sont soumis à des droits (lecture, modification, supression, execution) représentés par des chiffres
      Le chmod permet de modifier les droits des utilisateurs sur un fichier ou un groupe de fichiers de manière à autoriser ou à interdire certains type de droits (lecture, modification, supression, execution) à certains types d’utilisateurs (créateur du fichier, utilisateurs du même groupe, autres utilisateurs..).

      Faire un chmod 777 -R sur un dossier c’est un peu la fête du slip pour tous les monde, tous les utilisateurs ont tous les droits sur tous les fichiers de ton dossier, c’est donc un bon moyen de temporairement tester un script sans se faire chier avec des droits, mais c’est pas sécurisé du tout, les barbus de linux deviennent généralement tout rouge quand tu évoque ça tout haut :)

      Concernant les ptits bugs d’affichage, le code est encore améliorable, c’est pour ça que je fournis la source :)

      Répondre
  23. Fr3n3z1

    Salut Idleman et un grand merci pour ce sublime tuto.

    J’ai exactement le même souci que Mike, et je ne trouve pas l’endroit ou tu as mis les deux blanc (pour les retirer). C’est bien dans le screen.cpp? Et quelle ligne dois-je modifier? Merci d’avance et encore bravo.

    Répondre
    1. Idleman Auteur de l’article

      C’est dans le screen.cpp, je les avais mis dans lcdwrite mais il semblerais qu’entre temps j’ai modifié mes sources, car visiblement ils n’y sont plus…

      Répondre
  24. Fr3n3z1

    Merci pour ce rapide retour.

    Donc apparemment y’a pas vraiment de soluce pour retirer les blanc en début de 1ère ligne sur l’écran du nokia? A part reprogrammer l’ensemble du script ou modifier une ou des valeurs quelque part. Ouille j’vais en chier avec mon niveau en C. :-)

    Bon ok je vais tenter… Et là impossible de compiler. Impossible de lier la librairie wiringPi je pense, j’ai un beau message à la con, en tapant:

    g++ screen.cpp -o screen -lwiringPi

    Résultat:

    pi@raspberrypi /etc/lcd $ cc screen.cpp -o screen -lwiringPi screen.cpp:24:22: fatal error: wiringPi.h: Aucun fichier ou dossier de ce type
    compilation terminated.

    idem avec sudo

    Heu c’est quoi le pb?
    Y’a quelqu’un qui a une soluce, j’y comprend s plus rien moi.

    Libraire WiringPi pourtant installée…

    Snif!

    Répondre
    1. Idleman Auteur de l’article

      visiblement il te manque le fichier wiringPi.h, l’installation ne doit pas être complete, mais je ne saurait t’en dire plus, la commande de compilation est pourtant bonne, donc le soucis doit veir de l’install de wiring pi, essaye de regarder les manips sur le site de l’auteur (https://projects.drogon.net/raspberry-pi/wiringpi/)

      Répondre
      1. Fr3n3z1

        Merci Idleman, en effet j’avais zappé de faire un sudo ./build, forcement maintenant ça a l’air de marcher beaucoup mieux, du coup je vais tenter de modifier le code avec mes pauvres notion en C ou je pourrais tester d’autres scripts… C’est cooool! Merci pour tout. ;-)

        Répondre
        1. Idleman Auteur de l’article

          Ya pas de quoi, bonne continuation :)

          Répondre
  25. Joris

    Salut,
    Tout d’abord félicitation pour tes tutos, ils sont pas mal du tout (top quoi!). Je cherche à utiliser le SPI de mon RPI mais plutôt pour recevoir. J’ai vu qu’il y a une lib dans wiringPi qui est wiringPiSPI. J’ai regardé ton code, tu n’a pas l’air de l’utiliser. Pourquoi? (rien d’inquisiteur dans la question, je cherche juste à me familiariser avec l’utilisation des GPIO du RPI: je suis en train de construire un chauffe eau solaire à base de vieux radiateur et j’aimerai bien utiliser le RPI pour le contrôle et le monitoring via internet <- ça, c'est mon graal, ce n'est pas pour de suite! :p )
    Merci!
    +

    Répondre
    1. Idleman Auteur de l’article

      Et pourquoi ne pas utiliser l’UART, ou les autres protocoles de transmissions proposés ? Tout simplement parce qu’il fallait bien choisir quelque chose, que les gpio simple me suffisaient, et que c’est plus simple à aborder dans un tuto pour les novices :), après cette etit bête offre tellement de possibilités qu’il faut bien faire un choix à un moment ou à un autre ^^.

      Pour le chauffe eau solaire il y a des ds18b20 (cf tuto 18) qui sont waterfproof je crois pour la partie monitoring ça peux le faire.

      Pour l’allumage/eteignage du radiateur un simple relais et hp !! roulez jeunesse !! :D

      Répondre
  26. Tom

    Salut !
    Penses-tu qu’il est possible d’afficher sur ce petit écran la vitesse d’upload/download du raps ? J’aimerais peut être en faire une seedbox, et ça pourrait être sympa d’y coller un petit écran avec ces infos si c’est pas trop compliqué :)
    Merci d’avance !

    Répondre
    1. Idleman Auteur de l’article

      C’est tout à fait possible, il faut en revanche développer le programme pour l’affichage du download/upload, perso je n’en ai pas le temps mais ce n’est pas ultra compliqué en bidouillant tu devrait vite y arriver, il te suffit de toper la commande système pour récupérer les émission/réception de la carte réseau, de parser la ligne de résultat pour avoir les données brutes, puis de les afficher :)

      Répondre
      1. Tom

        Bon bah je m’y essaierais quand je serais un peu plus avancé dans mes bidouilles :)
        Merci !

        Répondre
    1. Idleman Auteur de l’article

      Un câble est un câble ^^, tant que ça conduit tu peux prendre ce que tu veux :p, tu pourrait faire tes connexions avec un trombone si tu le souhaitais, c’est juste moins facile :p

      Répondre
    1. Idleman Auteur de l’article

      C’est possible mais ça vas te bouffer masse de PIN, il est préférable de passer par un shift register :)

      Répondre
      1. lawiss

        Moi je serai tenté de dire que ca bouffe une seule pin en plus.
        Si tu branches les deux ecrans en parallèle sauf pour la pin SCE; la tu leur mets une commande SCE à chaque écran, ca doit pouvoir marcher non?

        Répondre
        1. Idleman Auteur de l’article

          Très sincèrement je pense qu’il vas y avoir conflit quelque part, mais après je ne suis pas une référence en la matière :)

          Répondre
  27. Chris57100

    Salut,
    Un grand merci pour ton tuto ! C’est lui qui m’a motivé pour me lancer dans la partie électronique :-)
    J’ai donc un écran comme le tien je pense (Arduino Compatible 1.6″ LCD Nokia 5110 LCD Module with White Backlit – Red + Silver). J’ai fait les soudures (une grande première) et j’ai utilisé ton programme mais malheureusement rien ne se passe à l’écran. Je peux le recompiler, le lancer sans erreur mais rien à l’écran.
    Une idée ? Les branchements ? J’ai vérifié les câbles ça me parait bon, les 4 diodes aux bords de l’écran sont bien allumés mais rien de plus.
    Merci encore

    Répondre
    1. Idleman Auteur de l’article

      Su un ecran autre que le mien je peux difficilement t’aider :),as tu essayé de régler le contraste comme indiqué dans les commentaires ? :)

      Répondre
    1. Idleman Auteur de l’article

      L’ecran m’a l’air assez similaire oui :) , après il y aura forcement quelques différences à adapter :), fie toi à la fiche technique

      Répondre
  28. lawiss

    Bonjour,

    Bravo pour les tutos, c’est toujours sympa de trouver des gars qui ont transpiré des neurones à ma place!

    en attendant de recevoir mon RPI (chez materiel.net livré sous 48h en relais colis, j’ai pas attendu longtemps) j’ai démonté mon vieux 3110 qui trainait dans un tiroir pour recuperer l’écran.

    J’ai tout branché impeccable et ca marche (presque) parfaitement.
    cad que la commande screen -p « ca marche bien merci » affiche correctement « ca marche bien merci ».
    le « (presque) » c’est que l’affichage ne commence pas au début de la premiere ligne, mais au milieu; c’est bizarre non?

    j’ai essayé de comprendre ce qui se passe.
    Je vais tester en ajoutant dans la fonction LcdInitialise() deux instructions pour initialiser X=0 et Y=0, pour lui spécifier de bien commencer en haut à gauche
    ca devrai etre :
    LcdWrite(LCD_C,0x80); //X=0
    LcdWrite(LCD_C,0x40); //Y=0

    ma vrai question c’est que je ne comprends pas le role de l’instruction dans la fonction LcdInitialise():
    LcdWrite(LCD_C,0x0c);
    je parle de la premiere; celle entre le 0x14 et le 0x20.
    j’ai regardé dans le datasheet et, sachant que à ce moment la on est en mode etendu, pour moi le 0x0c correspond à 00001XXX qui est marqué « do not use ».

    est-ce une erreur de ma part ou bien y a t’il un probleme? peux tu me dire ce qu’est censé faire cette instruction?

    J’ai un autre souci, je n’arrive pas à faire fonctionner le retro eclairage, quand je le branche (en 3.3 ou en 5v) l’ecran n’affiche plus rien du tout. tu as une idée du pourquoi?

    Une derniere question, dans les parametres, on doit parametrer le « mode bias ». sais tu ce que c’est? personnellement, je n’en ai aucune idée

    Merci d’avance pour tes reponses et encore merci et bravo pour ton travail.

    GC

    Répondre
    1. Idleman Auteur de l’article

      Je t’admet que le code date et que je ne le maîtrisait déjà pas bien à l’époque, je serait donc bien en peine de te fournir une explication cohérente désolé ^^, au final tu es parvenu à recaler correctement avec ton correctif ? Même chose pour le mode bias :p

      Pour le rétro éclairage, essaye avec une alim externe, le rpi gère très mal l’alim de composant externes un peu gourmand.

      Répondre
  29. Ping : Connexion d'un écran LCD au Raspberry Pi : le grand saut à moins de 10€ ! | Raspberry Pi Home Server

  30. Walslayer

    Salut Idle !

    J’ai acheté il y a quelque temps deux écrans LCD nokia 5110 sur ebay.
    REF : http://www.ebay.com/itm/261034182941?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

    Ce n’est pas le même que toi, mais les entrées sorties se ressembles.
    L’éclairage (BackLight) fonctionne correctement, mais rien ne s’affiche sur l’écran.
    J’ai changé les pins dans le code (puis recompilé) et j’ai aussi changé les broches physiquement, mais cela n’a aucun effet.
    Cela se produit sur les deux écrans. Je ne pense pas qu’ils soient hors service.

    As tu une explication ?

    PS : la biblio WiringPi est bien installée, ainsi que Spidev.

    Merci de ta réponse.

    Répondre
  31. Richard

    Bonsoir,
    J’ai eu comme certains un souci de contraste que j’ai réussi à régler mais au niveau de l’écran l’affichage est pas génial.
    Je m’explique ; parfois le texte commence en bas à droite de l’écran puis la suite est en haut à gauche.
    Parfois tout est bien en haut mais la fin du texte est souvent bizarre.
    Est-ce que quelqu’un a déjà rencontré ce type de souci et comment l’a-t-il solutionné.
    Sinon super ton site je m’amuse à tester tes tutos ça me rappelle le temps des études :-)

    Répondre
  32. Zzaa

    Bonjour !
    Tout d’abord merci à toi Idle, de nous offrir de bon tuto qui nous poussent à acheter un raspberry et bidouiller ^^.
    Grace à la commande suivante
    sudo ./screen -p ta commande linux
    il est possible d’exécuter n'importe quelle commande linux (pour ma part je cherchais un moyen d'afficher la température sur mon écran de nokia)

    En espèrent que cela serve à des personnes

    Répondre
    1. Zzaa

      problème d’affichage, il faut utiliser les (la touches 7 ou è du clavier)

      Répondre
  33. clm

    Bonjour,
    Merci pour ces super tutoriels !
    Malheureusement, je bloque sur l’utilisation de l’écran… j’ai fais le montage, installé les fichiers nécessaires en recompilant le code avec les emplacements des pins de sortie (je n’ai pas utilisé les même que dans le tuto). Et rien ne se passe. Les leds de rétroéclairage ne s’ éclairent même pas. Une idée pour comprendre d’où vient le problème ?

    Répondre
    1. Idleman Auteur de l’article

      Est ce le même écran que sur le tuto ? Que se passe t’il lorsque tu branche uniquement le retro au rpi?

      Répondre
  34. Florian

    Bonjour, est-ce normal que je ne parvienne pas a récupérer le lcd.zip ? Il me met expiration du délai…

    Répondre
    1. Idleman Auteur de l’article

      Normalement c’est réglé, le serveur avait crash :)

      Répondre
  35. antoine9298

    juste il ne serait pas possible de s’en servir pour avoir un visuel sur la console?
    je pense qu’il faudrait un programme type
    quand la touche T est est appuyée, alors on rajoute un T sur l’ecran
    mais ca reste un peu galere (surtout pour les reponses de la console…)

    Répondre
  36. Pilume

    Salut Idle,

    je viens de faire ma première soudure, j’étais plutôt content jusqu’à ce que je me rende compte que j’ai soudé le truc à l’envers. Tu penses qu’il y a moyen de rattraper ça :/ ? En même temps je me voyais pas souder sur l’espèce de bout de plastique noir. Tu crois que je peux l’enlever, le mettre sur les broches du côté que j’ai soudé pour pouvoir brancher les cables du côté écran ? Même si c’est moche tant pis.

    Ci-joint une photo pour que tu vois bien : http://hpics.li/6778388

    Répondre
  37. Yoann

    Salut,

    Super tuto, j’ai fait mes soudures et tout, mais quand j’ai voulu installer le programme, bim, 404 : l’adresse n’existe plus.
    Est-ce que tu pourrais nous relinker les sources s’il te plait ?
    Merci :)

    Répondre
    1. Idleman Auteur de l’article

      Coucou :), normalement les liens sont remis d’applombs, je suis en phase de déménagement du coup le serveur de ressource à du mal à suivre :)

      Répondre
      1. Yoann

        Ho ! Trop bien ! Merci boukou :D

        Répondre
  38. neoselen

    Dis-mois, selon toi, ça te semble faisable, quand on a seulement l’écran lcd ? j’ai fait un peu de récup’ sur une imprimante HP qui partait à la poubelle.
    L’écran a ça comme dénomination: A018AN03 V3.
    c’est un petit 1.8″, résolution de 280×220, 8bits de couleurs, bref ça peut être joli et utile.
    Y’a une petite carte qui y est reliée ayant le doux nom de Q5786-60151 Xo

    Donc ma vraie question est: existe-t-il des PCB qui permettent d’adapter un lcd vers la sortie (soit hdmi, soit RCA Vidéo du Rpi) ?

    Répondre
    1. Idleman Auteur de l’article

      Très sincèrement je n’en sais rien, je pense que tous les écrans sont adaptables mais le protocole d’affichage ainsi que les branchements varient pas mal d’un écran à l’autre, il te faut essayer de trouver la datasheet de la reference de ton ecran voir comment fonctionne l’engin et si tu peux simplement l’adapter au rpi.

      Répondre
  39. Rinty35

    Bonjour,

    Merci pour ce tuto.
    En regardant le code je suis interrogatif sur la valeur d’initialisation du LCD Vop : oO
    LcdWrite(LCD_C, 0x98 ); // Set LCD Vop (Contrast).
    Quand on lit le manuel http://skpang.co.uk/catalog/images/lcd/graphic/docs/User_Manual_ET_LCD5110.pdf page 11-17, ce paramétrage laisse pensez que nous précisons l’emplacement mémoire plutôt que le contraste T_T

    A quoi sert le paramétrage Bias mode à 1:40 – 1:34 ?

    As tu essayés de modifier ces paramètres faire LCD vop pour faire varier le contraste ?

    Répondre
  40. charly

    Bonjour, tout d’abord, super tutoriel, bravo.
    Cependant, j’ai un problème, l’écran affiche bien ce que je lui demande, mais n’importe où. Parfois en haut à gauche, parfois en bas a droite…

    Répondre
  41. JL

    Tu aurais pu faire en sorte d’attribuer une ip fixe à ton raspberry, ça t’aurais éviter de faire tout ce développement…

    Autrement, super tuto !!

    Répondre
    1. Idleman Auteur de l’article

      Impossible car l’architecture du réseau peux varier d’un endroit à un autre, si j’attribue une ip fixe en 192.168.0.15 à mon pi et que je vais au hacklab par exemple, leur passerelle qui n’attribute que des adresse en 192.168.1.* m’ejectera avec une ip fixe.

      De même si l’ip fixe que j’attribue est déja prise, mon rpi ne pourra pas non plus se connecter au réseau, bref c’est généralement une mauvaise idée d’attribuer une ip fixe.

      Répondre
  42. Dakeyras

    Salut,

    Super tuto mais ton lien « http://projet.idleman.fr/domopi/data/piScreen/lcd.zip » est dead :(.

    Tu pourrais me les envoyer?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Le lien à été mis à jour merci de l’avoir signalé :)

      Répondre
      1. Dakeyras

        Merci à toi de l avoir mis à jour :-)

        Répondre
  43. Claude

    Hello
    Impossible de télécharger le fichier ! message ERREUR 403 ! :-(
    Je ne retrouve plus mon précédent message a ce sujet, merci pour votre aide.
    :mrgreen:

    Répondre
      1. Idleman Auteur de l’article

        Nb : ton problème viens peut être d’un proxy/firewall qui te bloque quelque part

        Répondre
  44. Claude aka papygeo

    Hello
    D’abord Merci pour les tuto’s, sympa …. même si pour moi ce n’est pas « évident » ….
    Donc effectivement cela concerne bien le lien cité :http://idleman.fr/ressources/PHP/piScreen/lcd.zip
    1°) en SSH depuis mon PC sous LinuxMint 17 j’ai ce message d’erreur
    2°) en ligne de commande depuis le Raspy idem
    Cela pourrait donc venir de la configuration de ma 9Box ? T_T
    Là je viens d’installer depuis ce site (http://mchobby.be/wiki/index.php?title=Pi-WiringPi-Installation) wiringPi avec succès
    Mon écran est un Nokia 5510 made in China plus connu sous le doux nom de PCD 8544, j’ai un câblage différent a savoir, de gauche a droite : RST-CE-DC-DIN-CLK-VCC-LIGHT-GND
    Je continue l’install depuis le site deja évoqué …j’vous tiens au courant
    Merci de votre aide …..
    PS: le précédent message évoquait ce même problème … j’ai cru ne pas l’avoir validé :siffle: :)

    Répondre
  45. Claude

    Hello
    Oui j’ai téléchargé le fichier .zip depuis le lien, merci, mais toujours la même erreur si je suis le tuto
    Depuis j’ai : reformaté la SD, réinitialisé la NeufBox, et …… que dalle Nada, des nèfles …. je désespère, je tourne en rond !
    J’ai voulu mettre le fichier dé-zippé dans le répertoire du raspi mais il ne me les reconnais pas ! :evil:
    Quelqu’un a une corde T_T

    Répondre
    1. Idleman Auteur de l’article

      essaye de dezipper sous windows avec 7zip, puis d’envoyer directement sur le rpi avec winscp

      Répondre
      1. Claude

        Merci pour la réponse
        Sorry je suis sous LinuxMint17, et revenir sous Crosoft m’obligerais a reconfigurer mon poste de travail :evil:
        Je regarde la commande sous Linux …….

        Répondre
  46. khabarakh

    Bonjour, merci pour ce tuto fort utile, petite question, j’ai regarder les sources mais je ne comprends pas , j’aimerai afficher l’adress ip mais pas en eth, celle sur le wlan. malheureusement mes compétences sont limités. pourrais tu me donner un petit coup de main ?
    merci a toi.

    Répondre
  47. Julien Guerder

    J’ai tout installer a la lettre mais lorsque je tape : /etc/lcd/screen -i
    j’obtiens des caractères complètement foireux.
    Quelqu’un a deja eu ce soucis ?

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »