Nouvelles:

Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!: 
https://forum.bidouilleur.ca/index.php?action=signup Les demandes d'inscription sont révisées quotidiennement.

Menu principal

La bibliothèque MODULE pour vos projets en électronique

Démarré par sylvainmahe, Août 04, 2024, 07:53:03 PM

« précédent - suivant »

sylvainmahe

Bonjour les amis,

Je partage une bibliothèque logicielle qui s'appelle MODULE.



Vous pouvez la télécharger ici :
https://sylvainmahe.site/download/cpp/module.zip

La documentation de MODULE.pdf
https://we.tl/t-SoThjrxUuv
(doc tronquée en largeur pour les codes sources, privilégier la documentation sur le site Web voir en bas de page)

Comprendre ce qu'est MODULE :

MODULE est une bibliothèque logicielle écrite en langage C++, spécialement conçue pour être un outil de programmation de huit calculateurs de la marque Microchip et de quelques périphériques associés.

Voici la liste des huit calculateurs supportés par la bibliothèque MODULE :
ATmega48P
ATmega88P
ATmega168P
ATmega328P
ATmega164P
ATmega324P
ATmega644P
ATmega1284P


Ces calculateurs sont des microcontrôleurs qui équipent mes automates programmables utilisés dans plusieurs projets afin de réaliser des tâches d'automatisation :


La bibliothèque MODULE est accompagnée des routines de compilation et de téléversement pour Linux, macOS, et Windows.

Les principes de MODULE :

La bibliothèque MODULE repose sur un ensemble de paradigmes énoncés ci-après :
- La mécatronique du système embarqué.
- L'artisanat pluridisciplinaire.
- Le bricolage commun.
- L'esthétique logicielle et matérielle.
- Le minimalisme fonctionnel.
- L'indépendance logicielle.
- La cohérence logicielle et matérielle.
- La conceptualisation alternative.
- La simplicité utilisateur.
- La rédaction technique et littéraire.
- Le partage pédagogique documenté.
- La liberté de droit d'auteur.
- Le code source ouvert et modifiable.


Ces paradigmes sont des grands principes qui régissent la façon dont est conçu la bibliothèque MODULE.

La bibliothèque MODULE est une bonne alternative à d'autres plates-formes de développement pour programmer plus efficacement les calculateurs énoncés.

Que peut-on faire avec MODULE ?

Voici une liste simplifiée de ce qu'il est possible de faire avec MODULE :
- Lire l'état d'un bouton avec la classe GpioRead.
- Allumer une del avec la classe GpioWrite.
- Lire un potentiomètre avec la classe AnalogRead.
- Les interruptions avec la classe InterruptRead.
- Lire les voies PWM d'un récepteur de modélisme avec la classe PwmRead.
- Les servo-moteurs avec la classe PwmWrite.
- Jouer des sons avec la classe SoundWrite.
- La gestion du temps avec la classe Timer.
- Les délais simplifiés avec la classe Delay.
- Mesurer une période avec la classe Period.
- Les fonctions mathématiques avec la classe Math.
- Incrémenter des nombres avec la classe Iteration.
- Les moyennes avec la classe Average.
- Filtrer des valeurs avec la classe Filter.
- Créer des seuils avec la classe Hysteresis.
- Générer des nombres aléatoires avec la classe Random.
- Quelques outils avec la classe Tool.
- Lire et écrire dans la mémoire du microcontrôleur avec la classe Eeprom.
- Un réseau d'automates programmables avec la classe UsartNetwork.
- Une comunication vers les ordinateurs personnels avec la classe UsartRs232.
- Le pilotage des instruments de musique avec la classe UsartMidi.
- Afficher des caractères avec la classe SpiMax7219.
- Une radiocommande avec la classe SpiNrf24l01p.
- Lire et écrire dans une mémoire externe de 1Mio avec la classe Spi25aa1024.
- Mesurer des mouvements avec la classe TwiMpu6050.
- Créer un horizon artificiel avec la classe TwiBno055.
- Une station météorologique avec la classe TwiBme280.
- Une caméra thermique avec la classe TwiAmg88.


Pour plus d'informations vous pouvez consulter la section "La documentation de MODULE" en page d'accueil du site Web :
https://sylvainmahe.site/index.html#documentationGpioRead

Libre à vous de programmer d'autres fonctions dans MODULE si vous le souhaitez !

Quelques exemples de projets réalisés avec MODULE :


Vous avez aussi des exemples en vidéo de projets réalisés avec MODULE :
Contrebasse électromécanique : https://youtu.be/d8sucBMTplQ?feature=shared
Radiocommande + quadri-hélicoptère : https://youtu.be/hUdqMPo67GA?si=Nh1-WAC0jYt7Z5qD

J'aimerais vos questionnements si possible.

Fab6657

Merci beaucoup pour ce partage avec la communauté; moi qui suis plutôt sur PIC, va comme même falloir un jour que j'essaie les AVR !

sylvainmahe

Bonjour, je n'ai pas créé d'outils pour PIC. J'avais hésité à l'époque, mais j'avais trouvé la logique des ATmega davantage cohérente pour mon cerveau en comparent des fiches techniques aux fonctions similaires et en effectuant des essais. C'est vraiment une appréciation subjective relative à comment je fonctionne.

Ensuite cet outil MODULE j'ai mis 8 ans environ à l'écrire, disons 4 ans presque à plein temps parfois, 2 ans en cassant certaines fois toute la logique, 2 ans de plus pour optimiser des choses et revoir à nouveau des fonctions, rajouter des fonctionnalités, et écrire une documentation qui elle aussi a subie de nombreuses passes de réédition.

C'est au fil des projets que tout ça s'est construit. J'avais besoin d'un outil efficace pour programmer les petits microcontrôleurs que je voyais en vitrine chez le revendeur d'électronique de ma ville.

philchamp51

Merci Sylvain pour ce partage,
Je vais regarder ça avec intérêt !

sylvainmahe

#4
Citation de: philchamp51 le Août 05, 2024, 10:30:31 PM
Merci Sylvain pour ce partage,
Je vais regarder ça avec intérêt !

Bonjour Phil,

Si tu as besoin d'informations en plus n'hésites pas.

Dans l'ordre tu peux avoir besoin des pages suivantes.

Comprendre ce qu'est MODULE (déjà vu) :
https://sylvainmahe.site/understandWhatIsModule.html

Comment installer MODULE : https://sylvainmahe.site/howToInstallModule.html

Comment programmer avec MODULE :
https://sylvainmahe.site/howToProgramWidthModule.html

Les outils complémentaires de MODULE :
https://sylvainmahe.site/complementaryToolOfModule.html

Je dois faire une mise à jour de la bibliothèque vers la fin de l'année, c'est un rajout de fonctionnalité pour la classe interruptRead, et quelques optimisations, mais comme je n'ai plus d'ordinateur personnel depuis deux ans j'attends d'en racheter un prochainement. Pendant deux ans, depuis que j'ai subit un vol de beaucoup de mes outils, je réfléchis et je code avec papier crayon, comme ça on ne peut plus rien me voler, et de façon temporaire avec mon téléphone portable éventuellement.

Mais ça n'empêche pas aux fichiers d'être sur le serveur et d'être valides c'est ce qui compte.