Erratum livre Raspberry Pi 4

Merci à Noémie qui m’ a transmis ses observations sur le livre.

Ces remarques et corrections pourront servir à celles et ceux qui rencontrent des soucis avec les programmes du livre

Bonjour,

Je viens de commencer la pratique de votre livre “Raspberry Pi4 Exploitez tout le potentiel de votre nano-ordinateur (inclus: un projet de station météo)”.

J’ai vu que vous aviez des erratum pour vos précédents livres et qu’il n’y a pas ce livre dans votre site web (onglet: publications -> Livres Raspberry Pi chez Editions ENI).
Page 247. J’aurais bien aimer trouver comment enregistrer le fichier avec un nom différent. Je suis novice et je ne voulais pas faire n’importe quoi. J’ai trouvé qu’il fallait taper Ctrl et X pour quitter et il demande si on veut enregistrer puis il demande le nom du fichier.
Page 258 et 258: Mon bouton pression est plus gros que le votre car j’ai dû mettre des câbles Dupont car il est trop large pour la ligne du breadboard. Il existe des boutons pression plus petits qui rentrent directement sur la breadboard ou le schéma est à prendre pour imager les branchements? (mon niveau d’électronique remonte au collège)

Page 260. La ligne 12 du script bouton_03.py donne une erreur. Après recherche, le programme fonctionne en remplaçant bouton.when_released() par bouton.wait_for_release()
Page 261. Avez un endroit où vous fournissez les réponses de ce que vous proposez en plus? Par exemple ici vous proposez d’ajouter une ligne pour informer l’utilisateur que le bouton a été relâché et que le programme continue. Pour ceux qui n’ont jamais fait de Python (et de programmation), je ne suis pas sûr qu’ils trouvent qu’il faut utiliser le def suite(): en mettant à la fin du script suite()

Page 261. Pour l’exercice d’ajouter une ligne, il n’y a pas de correction. Je propose d’indiquer au lecteur de lire le paragraphe suivant (4.3.1) et de revenir sur la question ensuite puisque ce paragraphe aborde les fonctions avec Python. Peut-être faire un script bouton_04.py aussi à télécharger seulement. Pour ma part j’ai rajouté à la fin du script:
suite()
print( » Vous avez relâché le bouton pression »)

Page 261 et 262. Dans le script il faut changer le i majuscule par un i minuscule «  global I » par « global i » . Les scripts à télécharger, compteur.py et compteur2.py, sont corrects avec «  global i » .

Page 271, 272, 274 et 284. Oublie de «  from signal import pause » dans les scripts BlinkLED_01.py, BlinkLED_02.py, PWMLED_01.py et RGBLED_02.py. L’import est bien présent dans le script BlinkLED_01.py  à télécharger. Pas d’import ni d’utilisation de pause() dans les scripts BlinkLED_02.py et PWMLED_01.py à télécharger. Pas d’import mais utilisation de pause() dans le script RGBLED_02.py à télécharger.

Page 282 Dans le schéma Il est indiqué LED orange Pin38 – GPIO20. Je pense qu’il faudrait indiqué LED verte car le fil est relié à la patte verte de la LED RGB

Page 283. Oublie d’un espace après le # à la ligne 11 du script RGBLED_01.py

Page 288 Le script strandtest.py donnait l’erreur suivante: ModuleNotFoundError: No module named ‘rip_ws281x’
J’ai résolu le problème en dés installant et réinstallant rpi_ws281x:
sudo pip3 uninstall rip_ws281x
sudo pip3 install rip_ws281x

Page 289 Le script WS2812_01.py donne l’erreur suivante: ModuleNotFoundError: No module named neopixel
J’ai fais comme pour rip_ws281x mais l’installation ne marche pas (erreur 404)
J’ai remplacé « from neopixel import * » par «  from rip_ws281x import * » et le script marche (dans le livre et ligne 7 du fichier téléchargé)

Page 289 Le script WS2812_01.py donne l’ordre d’allumer: rouge, vert et bleu, il faut donc inverser les commentaires et mettre rouge en premier. (Dans le livre et Lignes 23 et 32 du fichier téléchargé)

Page 290 Il faut changer l’ordre des couleurs.
Dernière ligne du 2nd paragraphe: « commande la LED verte, puis rouge et enfin bleue. » par «  commande la LED rouge, puis verte et enfin bleue. »
Ligne suivante: «  Color(V, R, B) » par «  Color(R, V, B) » 

Page 290 Le script WS2812_02.py donne l’erreur suivante: ModuleNotFoundError: No module named neopixel
J’ai remplacé « from neopixel import * » par «  from rip_ws281x import * »  (dans le livre et ligne 7 du fichier téléchargé)

Page 290. Effacer une phrase de commentaire en double: « # Configuration du ruban/anneau de LED: »

Page 290 Mettre le commentaire « # Attendre 1/10 seconde » à la ligne suivante et non sur la même ligne que « strip.show() » 

Page 291 Le rouge et le vert ont été inversés donc inverser les commentaires du script WS2812_02.py ou inverser les données des Color:
affiche (Color(0, 255, 0)) # LED rouges
affiche (Color(255, 0, 0)) # LED vertes
Doit être:
affiche (Color(0, 255, 0)) # LED vertes
affiche (Color(255, 0, 0)) # LED rouges
Ou par ordre de gauche à droite RGB (red, green, blue):
affiche (Color(255, 0, 0)) # LED rouges
affiche (Color(0, 255, 0)) # LED vertes

Page 290 et 291. Le script marche avec ces modifications. Par contre, j’aurais tendance à ne pas laisser d’espace entre le nom de la fonction et la parenthèse des paramètres.
Ex: « def affiche(couleur): » au lieu de «  de affiche (couleur) »
Ex: «  affiche(Color(0, 255, 0)) » au lieu de «  affiche (Color(0, 255, 0)) » 

Page 291. Les modifications pour le script WS2812_02.py doivent être aussi effectuées pour le fichier WS2812_03.py en téléchargement

Page 292 Ligne 2 de « Création d’un tableau de LED » . L’ordre des couleurs de la LED ne me semble pas correcte.
«  WS2812 (vert, rouge, bleu dans l’ordre) » -> j’aurais mis : «  WS2812 (rouge, vert , bleu dans l’ordre) »

Page 293 Dans le tableau il faut inverser le rouge et le vert

Page 294 Le script WS2812_04.py donne l’erreur suivante: ModuleNotFoundError: No module named neopixel
J’ai remplacé « from neopixel import * » par «  from rip_ws281x import * »  (dans le livre et ligne 6 du fichier téléchargé)

Page 294 Les LED s’allument en vert et non en rouge comme le commentaire le dit pour le script WS2812_03.py (dans le livre et ligne 38 du fichier)

Page 295 Il y a un m de trop dans le commentaire du script (livre et fichier à télécharger)
«  # Eteindre les LED précédemmment allumées » -> « # Eteindre les LED précédemment allumées » 

Page 297. Quand j’ai rebranché le Raspberry pour le mettre sous tension, les 2 premières matrices de LED se sont allumées en rouge. Je ne sais pas si c’est normal. Si c’est normal, il serait intéressant de le mentionner pour qu’on ne se pose pas de question sur le bon fonctionnement de nos matrices.

Page 298. J’ai des erreurs quand je lance le fichier matrix_demo.py
SPI n’est pas activé. Je suis allée en haut à gauche dans « applications menu » puis «  Préférences » et «  Configuration du Raspberry » ; puis l’onglet « Interfaces » où j’ai sélectionné « Activé » pour SPI. Il serait-il intéressant d’indiquer une référence à la page où vous montrer la configuration du Raspberry. Cette référence (mais sans le numéro de la page) a été faite à la page 310 quand vous abordez la carte RasPi0 AnalogZero.
Ensuite le programme a bien fonctionné et les 3 matrices sont éteintes à la fin.

Page 301 et 302. script matrice_01.py
En voyant que dans show_message il y a fill=« white » j’avais pensé que l’affichage se ferait en blanc et non en rouge. L’affichage s’est fait en rouge donc je suis allée voir la documentation pour trouver l’explication. En fait, il n’y a que deux possibilités: white et black; en fait quand on met autre chose que black ça affiche en rouge. La matrice de LED est monochrome, je suis un peu déçue. Tout ça pour dire que j’aurais bien aimé que vous abordiez le sujet.

Pages 301 et 302. script matrice_01.py
Le é de msg n’est pas affiché quand on le lit sur le Shell de Thonny et il s’affiche bien sur les matrices.
C’est la même chose avec \x82 au lieu de chr(130)
J’aurais bien aimé que vous mettiez une petite phrase la dessus après le script.
Cela est-il dû à l’utilisation du ASCII pour l’affichage sur la console et du code 437 pour l’affiche de la matrice de LED?
On ne peut pas afficher les deux pareil?

Pages 303-304. J’ai acheté un servomoteur MG90S (https://www.kubii.fr/composants-raspberry-pi/1971-servo-moteur-tower-pro-180-kubii-3272496008311.html?search_query=Servo+Moteur+Tower+Pro+180°&results=1) et vous utilisé un SG90 dans votre livre. Les scripts servo_01.py et servo_01.py fonctionnent mais entre la position minimal et maximal l’amplitude n’est pas de 180° mais de 90°. Cela est-il normal?

Pages 305-306. Dans le schéma de la page 305 le S1 est relié sur le GPIO24 et S2 sur le GPIO25 mais dans le script incremental_01.py (livre et fichier) c’est l’inverse:
#Déclarer les entrées du codeur comme des boutons
S2 = Button(24)                      
S1 = Button(25)
Page 307 Pour incremental_02.py, j’ai le même commentaire que pour incremental_01.py avec l’inversement de S1 et S2
Page 308 Pour incremental_03.py, j’ai le même commentaire que pour incremental_01.py avec l’inversement de S1 et S2

Page 307 Il manque un retour à la ligne dans le script incremental_02.py après «  # Traitement du front montant de S2 » . Cette erreur est présente dans le livre mais pas dans le fichier à télécharger

Page 308 J’aurais bien aimé avoir le numéro de la page pour aller voir le câblage de la LED RVB avec bouton poussoir (page 282). On pourrait aussi avoir la référence de la page 305 pour le branchement du codeur (broche 2, 18 et 22 directement et la masse sera sur la planche à pain)

Pages 310 et 311 Merci pour les explications.