Frédéric habite en Haute-Vienne (87). Il a découvert le Raspberry Pi il y a seulement quelques mois. Comme beaucoup, il a commencé par du Retropie et du RecalBox ! Et puis il a commencé à utiliser son RasPi comme PC d’appoint et à bidouiller…
Au sommaire :
Indicateur de charge CPU et de RAM pour Raspberry Pi
Pas de bol, il est maintenant contaminé et a commencé à découvrir l’électronique grâce à sa framboise 🙂 Du coup je crois qu’il a définitivement rejoint les rangs des makers et on sait tous que c’est comme pour les scouts : « Maker un jour, maker toujours !«
Une vidéo sur twitter
C’est une vidéo sur Twitter qui a attiré mon attention.
J’ai demandé à Frédéric s’il voulait partager sa réalisation avec les lecteurs du blog et il a accepté.
Soyez indulgent(e)s, c’est sa toute première réalisation mais c’est déjà un beau projet qui regroupe de l’électronique, du Python et un Raspberry Pi. Comme quoi un débutant passionné peut créer des réalisations intéressantes
Le schéma
Le schéma de base est classique. Un transistor est commandé sur sa base par une sortie GPIO et allume une LED quand le GPIO passe à 1.
La partie haute du schéma s’occupe de la RAM (GPIO 12 = Broche 32 etc.) et la partie basse affiche l’état du CPU
Le programme
Voici le début du programme Python de Frédéric. Pour cause d’incompatibilité d’humeur entre WordPress et les indentations de Python, vous le voyez sous forme d’une image mais vous pouvez télécharger le code source en cliquant sur ce lien.
Le montage
Frédéric a choisi une plaquette Veroboard pour monter son afficheur. Bien entendu tout type de support conviendra, depuis la breadboard pour tester le montage jusqu’à un CI sur mesure.
Il ne reste qu’à connecter tout ça sur les ports GPIO du Raspberry Pi
Et à l’habiller pour lui donner belle allure.
Conclusion
Une réalisation pour démarrer avec l’électronique. Il y a un peu de tout :
- identifier les valeurs de résistances
- lire un schéma
- Souder les composants et les fils
- allumer des LED (le HelloWorld du Maker)
- Écrire un programme en Python
Si vous parcourez le programme, vous verrez qu’il est « propre ». Lancé dans un terminal il se termine avec CTRL + C et arrête proprement l’utilisation des GPIO.
Vous pouvez aussi lancez ce script automatiquement au démarrage du Raspberry Pi pour être informé en temps réel de l’utilisation des ressources de votre framboise.
Merci à Frédéric pour ce partage et bonne continuation avec le RasPi 😉
Bonjour.
Pourquoi mettre des transistors plutôt que LED + résistances en direct sur les GPIO ?
Cordialement
Benoît
je laisse Frédéric répondre mais…
ça apprend à lire un schéma, à câbler une platine, à utiliser des transistors tout ça tout ça 😉
Parce que les GPIO n’ont pas vocation à driver des leds. Un montage comme ça sans les transistors, c’est 30 à 40 mA de pompé au travers du soc et sur l’étage de régulation du PI. Avec les transistors c’est à peine 1mA sur le SoC et aucune conso sur la régule si on prend soin de câbler les anodes des leds en amont (sur le 5v ou une source extérieure). C’est donc un bon choix fait par l’auteur (meme si il y en avait d’autres plus simple).
Coté code, il y a beaucoup à redire, mais je ne veux pas jeter la pierre à un débutant. Ceci dit, si l’auteur le souhaite, il peut poster une demande dans la rubrique Python du forum (ou pour un autre langage si ça le tente) et je me ferais un plaisir de lui expliquer comment il peut réduire de 80% la taille de son code tout en consommant moins de ressources et pour un meilleurs résultat (tout ça gardant une approche très basic du problème, c’est a dire sans poo ou de librairies compliqués. Juste du raisonnement logique).
Super article François, merci!
Bonjour, ce schema comporte des transistors car au debut je souhaitais que si une led s allume, les precedentes aussi. Il fallait donc que l alim soit détachée des gpios. Puis j ai galéré 😅 et ai fais ce montage avec leds « indépendantes ». Mais c est vrai que l on peut se passer de transistors.
@Bud ‘Robert’ Spencer 80% ça devient interressant 😉
J’ai écrit 80%, mais c’est à la louche au premier coup d’œil. Cela dit, je pense que 80% me laisse encore de la marge . Si je ne rentre pas trop tard ce soir j’écrirais un topic sur le forum pour ça. Je ferais peut-être en 2 fois parce que le but n’est pas d’écrire un bout de code (ca il y en a pour 10 minutes) mais surtout de l’expliquer, sinon ça ne sert a rien.
@Bud ‘Robert’ Spencer cela m interresse, j ai « su » programmer un peu mieux que ça, mais ayant une mémoire courte et n ayant pas programmer depuis longtemps, j ai oublié pas mal de trucs. J ai même dû demander a google comment créer une variable, c est dire! Sinon avec des listes, des boucles foreach, il y a moyen de faire qqch. Mais je suis curieux d apprendre, donc de lire votre topic. Cdlt
J’ai commencé. J’espère ne pas avoir fait trop compliqué pour que cela soit compréhensible par ceux qui débutent. Je continuerais demain si je ne rentre pas trop tard du boulot. Pour les itérations dans des listes, c’est vrai que c’est très utile mais je vais déjà tenir ma promesse d’optimiser ce programme de façon très simple et ensuite, je monterais d’un cran 😉
Le post ce trouve ici : https://forums.framboise314.fr/viewtopic.php?f=38&t=5397