Raspberry B et écran 5110

Un lieu pour discuter des composants et de leur utilisation. Un passage obligé si vous devez interfacer votre Raspberry Pi avec le monde extérieur. On y trouvera aussi les cartes type commande de moteur pas à pas, continu, servo...

Modérateurs : Francois, smba38

Répondre
didier_b
Messages : 21
Enregistré le : sam. 10 déc. 2016 19:19

Raspberry B et écran 5110

Message par didier_b » lun. 11 sept. 2023 20:03

Bonjour,
Je cherche à faire fonctionner un écran de Nokia 5110 sur mon Raspberry B (connecteur de 26 broches, j'espère ne pas me tromper dans la dénomination du Raspberry).
J'ai utilisé le tuto du site suivant : https://electroniqueamateur.blogspot.co ... ry-pi.html
Tout se passe bien à l'installation des bibliothèques.
Mais quand j'exécute un des scripts en exemple livrés avec les bibliothèques, j'ai un message d'erreur dans Thonny, qui met en cause la ligne du script qui initialise l'objet LCD, et un deuxième (cause du premier) qui indique un problème dans un fichier .egg (donc je ne peux pas alelr voir dedans).
Et donc, pour valider mon montage, je cherche un exemple de script très simple (juste un affichage de texte par exemple), avec la biliothèque qui va avec.
J'ai passé quelques heures à chercher, mais je ne trouve pas.
Si une bonne âme avait ça sous la main ...
Merci par avance.
Didier.

jelopo
Raspinaute
Messages : 310
Enregistré le : mer. 11 oct. 2017 10:23

Re: Raspberry B et écran 5110

Message par jelopo » mar. 12 sept. 2023 08:04

Bonjour,

Reprendre et vérifier ligne à ligne, le tuto, en essayant de comprendre ce qui est fait.
Ensuite, merci de poster les messages d'erreur, ça donnera potentiellement des pistes.

A+

didier_b
Messages : 21
Enregistré le : sam. 10 déc. 2016 19:19

Re: Raspberry B et écran 5110

Message par didier_b » mar. 12 sept. 2023 18:01

Bonjour, et merci.
J'ai refait le tuto ligne à ligne, je pense comprendre ce que je fais : téléchargement des deux bibliothèques zippée ensemble, dézippage (ok confirmé par la création du bon répertoire sous mon home), puis exécution du script d'installation, qui semble se terminer comme il faut (pas de message d'erreur).
Voici les messages d'erreur lors du lancement dand Thonny d'un des exemples fournis :
Run 'Ecran 5110.py'
Traceback (most recent call last):
File "/home/pi/Desktop/Ecran 5110.py", line 18, in <module>
disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
File "/usr/local/lib/python3.7/dist-packages/Adafruit_GPIO-1.0.4-py3.7.egg/Adafruit_GPIO/SPI.py", line 46, in __init__
self._device.cshigh = False
SystemError: error return without exception set
Je peux ouvrir le premier fichier Ecran 5110.py, voici le code jusqu'à la ligne 18 incriminée (je l'ai soulignée) :
#!/usr/bin/python
import time # pour le chronométrage des délais
import Adafruit_Nokia_LCD as LCD
import Adafruit_GPIO.SPI as SPI
import subprocess # pour aller chercher l'adresse IP
import datetime # pour l'affichage de la date
# PIL : Python Imaging Library
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# Définition des broches utilisées
DC = 23
RST = 24
SPI_PORT = 0
SPI_DEVICE = 0
# déclaration d'un objet PCD8544
disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
Quant au deuxième fichier incriminé, celui qui se termine en .egg, ce n'est pas du texte, donc je ne peux pas aller voir dedans, à supposer que je sois capable d'y comprendre quelque chose.
Peut-être pourrais-je trouver un exemple plus simple, pour mettre au point l'usage de cet écran via SPI ?

Encore merci de t'intéresser à mon problème.

Didier.

jelopo
Raspinaute
Messages : 310
Enregistré le : mer. 11 oct. 2017 10:23

Re: Raspberry B et écran 5110

Message par jelopo » mar. 12 sept. 2023 22:41

Bonjour,

Avez-vous bien activé le SPI?
Peut-être pourrais-je trouver un exemple plus simple, pour mettre au point l'usage de cet écran via SPI ?
Oui c'est bien précisé dans le tuto :

Code : Tout sélectionner

    shapes.py affiche une image statique constituée d'un cercle, un carré, un triangle, un X et l'inévitable expression "Hello World!"

A+

didier_b
Messages : 21
Enregistré le : sam. 10 déc. 2016 19:19

Re: Raspberry B et écran 5110

Message par didier_b » mar. 12 sept. 2023 22:55

Bonsoir,
Oui, j'ai bien activé le SPI à l'aide de raspi-config.
Je vais essayer les autres exemples demain, et je reviens ici pour dire le résultat.
Merci !
Didier.

<edit le 13/09>J'ai essayé shapes.py, il semble que j'aie la même erreur :
>>> %Run shapes.py
Traceback (most recent call last):
File "/home/pi/Adafruit_Nokia_LCD/examples/shapes.py", line 60, in <module>
disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
File "/usr/local/lib/python3.7/dist-packages/Adafruit_GPIO-1.0.4-py3.7.egg/Adafruit_GPIO/SPI.py", line 46, in __init__
self._device.cshigh = False
SystemError: error return without exception set

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: Raspberry B et écran 5110

Message par piper » sam. 16 sept. 2023 10:05

Bonjour, l'installation de toutes bibliothèques du tuto s'était bien passé ?
Le tuto s'applique à python3 (pip3 installe des modules pour python3)
C'est bien python3 que vous utilisez pour lancez le script ?

Enfin, il est possible de bien s'assurer que le spi est bien activé :
la commande

Code : Tout sélectionner

 ls -l /dev/spidev*
doit fournir en sortie

Code : Tout sélectionner

crw-rw---- 1 root spi 153, 0 14 sept. 13:17 /dev/spidev0.0
crw-rw---- 1 root spi 153, 1 14 sept. 13:17 /dev/spidev0.1
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

didier_b
Messages : 21
Enregistré le : sam. 10 déc. 2016 19:19

Re: Raspberry B et écran 5110

Message par didier_b » sam. 16 sept. 2023 17:32

Bonjour,
Oui, c'est bien python 3.
Et la commande ls -l /dev/spidev* donne bien la sortie attendue conforme à ce que vou avez indiqué.
Je vais être absent au moins une semaine, merci de ne pas m'en vouloir de ne pas répondre pendant cette période.
Merci.
Didier.

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: Raspberry B et écran 5110

Message par piper » dim. 17 sept. 2023 02:28

OK, une petite recherche sur google m'a ammené ici :
https://github.com/adafruit/Adafruit_Python_GPIO

Et on tombe là-dessus :
This library has been deprecated in favor of our python3 Blinka library. We have replaced all of the libraries that use this repo with CircuitPython libraries that are Python3 compatible, and support a wide variety of single board/linux computers!

Autrement dit : Adafruit_GPIO.SPI est dépréciée et abandonné au profit de Blinka (c'est expliqué sur la page)
Le lien amène au tuto suivant d'installation de blinka
Image

A supposé (et c'est le cas si vous avez quivi le précédent tuto) que vous utilisez python3 avec pip3 (pip pour python 3)
Alors il suffit de faire

Code : Tout sélectionner

cd ~
sudo pip3 install --upgrade adafruit-python-shell
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/raspi-blinka.py
sudo python3 raspi-blinka.py
En suivant pas à pas les étapes décrites sur les copies d'écran

Ensuite, il y a un programme tout simple pour faire un test :

Code : Tout sélectionner

import board
import digitalio
import busio
print("Hello blinka!")
# Try to create an SPI device
spi = busio.SPI(board.SCLK, board.MOSI, board.MISO)
print("SPI ok!")
print("done!")
Mais après il faudra adapter le code initial pour utiliser import busio au lieu de import Adafruit_GPIO.SPI as SPI
et du coup :
disp = LCD.PCD8544(DC, RST, spi=busio.SPI(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
devient
disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(board.SCLK, board.MOSI, board.MISO))

en s'assurant que les broches utilisées sont bien celles par défaut du port SPI de votre Raspberry
et voir s'il est nécessaire et possible de préciser la fréquence max de 4 Mhz grâce à
configure
comme documenté ici

https://docs.circuitpython.org/en/lates ... index.html
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

didier_b
Messages : 21
Enregistré le : sam. 10 déc. 2016 19:19

Re: Raspberry B et écran 5110

Message par didier_b » dim. 17 sept. 2023 18:55

Bonsoir, et merci beaucoup pour cette recherche.
Désolé, je suis passé complètement à côté de cet avertissement de dépréciation de la librairie.
Je vais être absent toute la semaine, je vois ça dès mon retour.
Pour les bonnes broches GPIO, c'est vrai qu'on aurait voulu y mettre du flou on n'aurait pas pu mieux s'y prendre, alors qu'elle ont un numéro physique qui est sans ambiguïté. Mais je devrais l'en sortir.
Encore merci, je reviens ici pour faire un compte-rendu.
Didier.

Répondre

Retourner vers « L'électronique et le Raspberry Pi »