Différences entre versions de « Projets:EncapsArduino »

De wikilab
 
Ligne 280 : Ligne 280 :
 
  echo "Suppression des dossiers dist/ et build/ et du fichier .spec…"
 
  echo "Suppression des dossiers dist/ et build/ et du fichier .spec…"
 
  rm -rf dist build "${BIN_NAME}.spec"
 
  rm -rf dist build "${BIN_NAME}.spec"
echo "Suppression des fichiers .fuse_hidden*..."
+
echo "Suppression des fichiers .fuse_hidden*..."
find dist -name ".fuse_hidden*" -type f -exec rm -f {} \; 2>/dev/null || true
+
find dist -name ".fuse_hidden*" -type f -exec rm -f {} \; 2>/dev/null || true
 
  echo "Nettoyage terminé"
 
  echo "Nettoyage terminé"
  

Version actuelle datée du 22 janvier 2026 à 16:42

EncapsArduino

Encaps Arduino Y2BYpa.jpg

Informations
Description Logiciel d’encapsulage des programmes développés sous IDE Arduino
Catégorie Hors handicap
Etat d'avancement Archivés
Techniques arduino
Durée de fabrication de 0 à 2 h
Coût matériel Moins de 10 euros
Niveau Moyen
Licence by-sa
Date de création 2025-03-07
Équipe
Porteur de projet Elektron, Ylc
Contributeurs
Fabmanager Delphine
Référent documentation Delphine, Ylc
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Complète
Relecture de la documentation Vérifiée

Description

EncapsArduino (Révision du 09/01/2026): Logiciel d’encapsulage des programmes développés sous IDE Arduino (version mise à jour ici le 21/01/2026). cette version remplace l'ancienne page archivée ici:https://wikilab.myhumankit.org/index.php?title=Projets:EncapsArduino_V0


Encapsarduino1.py est la version du programme source compatible Windows et Linux.


Manuel de référence : Yves Le Chevalier & Christian Fromentin pour My Human Kit le 14/03/2025.


Ce programme constitue une « fenêtre  d’accès » aux programme Arduino que ce soit lors de la création d’un nouveau programme ou lors de la modification de ceux-ci. Il vise à conserver l’environnement de développement d’un programme afin de pouvoir modifier celui-ci dans le futur sans avoir à subir les inconvénients des évolutions de cartes et de librairies.


Ce logiciel fonctionne sous Windows et sous Linux en téléchargeant l’exécutable correspondant au système d’exploitation. EncapsArduino.exe est accompagné d’une icône qui permettra d’identifier dans l’explorateur de fichiers, les programmes encapsulés. (CF notes d’installation)

Fichiers source

1 Questions initiales

À la première utilisation du logiciel, trois questions sont posées. Elle ne le seront plus par la suite.


Fenêtre d'initialisation du programme quand il est lancé la première fois



Le première question concerne le fichier d’exécution de l’IDE Arduino (Arduino IDE.exe). On renseigne le champ de saisie par un copier/coller puis on clique sur [OK] ou on fait [Entrée] pour le valider.


Sous Windows, comme sous Linux, c’est le chemin complet, nom d’exe compris, qui est copié depuis la ligne « Cible » ou « Cible du lien » des propriétés de l’icône de lancement de l’IDE Arduino sur le bureau ou dans le Menu. (Clic droit/Propriétés/Ctrl+C puis Ctrl+V).


La seconde question concerne le fichier Yaml utilisé par l’IDE Arduino pour y stocker ses préférences.

C’est le fichier « arduino-cli.yaml » qui se trouve généralement dans le répertoire ..…./Utilisateurs/Nom d’utilisateur/.arduinoIDE. En cliquant sur le bouton, l’explorateur de fichiers et automatiquement ouvert pour permettre de trouver ce fichier. Atttention : Ce fichier « arduino-cli.yaml », est un fichier caché, il faut donc dans vos préférences de dossiers, sous Windows cocher la case « Eléments masqués » ou sous Linux,valider« Afficher les fichiers cachés »)


Sous Windows, comme sous Linux, une fois trouvé le fichier « arduino-cli.yaml », on double-clique dessus et le chemin complet avec le nom de fichier apparaît sur la ligne.


La troisième question concerne le répertoire où seront stockées les versions de cartes utilisées par les programmes. Ce répertoire doit avoir été créé auparavant, et peut se situer n’importe où. C’est dans ce répertoire que seront créés automatiquement un dossier pour chaque version de carte utilisée. Il s’agit donc d’un chemin et non pas d’un nom de fichier. En cliquant sur le bouton, l’explorateur de fichier s’ouvre automatiquement pour permettre de trouver le dossier.


Sous Windows, comme sous Linux, une fois trouvé le dossier que vous avez créé pour vos cartes, on double-clique dessus et le chemin apparaît sur la ligne.


Une fois que vous avez répondu à ces 3 questions, celles-ci ne vous seront jamais redemandées Sauf si vous effacez pour une raison ou une autre le fichier des paramètres (commande située dans la ligne menu de la fenêtre, sous « Param »). En-effet, un fichier Fiparam.json de mémorisation de ces informations a été créé automatiquement à côté de cet exécutable.

2 Chemin du répertoire des applications Arduino

Une nouvelle question est alors posée pour demander le chemin du répertoire dans lequel sont stockés les dossiers des programmes Arduino.


Encaps Arduino 24MJT3.jpg


Ce chemin est mémorisé et sera par la suite automatiquement proposé par défaut. Il sera cependant possible de le modifier en cliquant sur le bouton « Répertoire des applications » qui ouvre l’explorateur de fichiers. Il suffit ensuite de cliquer sur [OK] pour valider la proposition de chemin ou la saisie d’un nouveau chemin.


Sous Windows, comme sous Linux, une fois trouvé le dossier des applications, on double-clique dessus et le chemin apparaît sur la ligne.

Il suffit de cliquer sur le bouton [OK] pour le valider.

3 Nom du programme

Une fois le répertoire des applications validé, on saisit le nom du programme que l’on veut écrire ou modifier. Ce nom de programme est le nom générique, sans numéro de version, ni suffixe « .ino »


Une fois saisi, le nom du programme doit être validé en cliquant sur [OK] ou en faisant [Entrée]. Un nom de programme doit faire au moins 3 caractères pour être accepté.


3.1 Si le programme existe déjà

On demande confirmation à l’aide de 2 « boutons radios » de la modification supposée de celui-ci.

Encaps Arduino biIEzG.jpg



  • Soit on clique sur « Oui » et le programme fait le nécessaire pour permettre à l’IDE Arduino d’accéder à la version de carte et aux librairies spécifiques de ce programme dans leur version d’origine au moment de la création du programme.


L’explorateur de fichier s’ouvre alors sur le dossier du programme choisi et il ne vous reste plus qu’à accéder au code du programme voulu sachant que plusieurs versions du programme peuvent coexister dans ce dossier au fur et à mesure des évolutions, tout en utilisant les mêmes versions de librairies et de carte.

  • Soit on clique sur « Non » et il est proposé de saisir un autre nom de programme.


C’est généralement le cas quand on veut développer un nouveau programme mais auquel on attribue par erreur un nom déjà existant.

3.2 Si c’est un nouveau programme

Lorsque le nom d’un nouveau programme est entré, une fenêtre affiche la liste des cartes déjà connues pour vous demander de choisir parmi celles-ci la carte sur laquelle vous allez développer le programme.


Il suffit de cliquer sur le signe [V] pour voir apparaître la liste des cartes connues, puis de dérouler éventuellement cette liste pour trouver la carte voulue.

La sélection se fait en cliquant sur la version de carte voulue. Il faut ensuite cliquer sur [Valider] pour entériner son choix.


S’il s’agit d’une carte ou d’une version de cartes jamais utilisée, celle-ci ne figure pas dans la liste proposée et il faut cliquer sur « AUTRE CARTE ». Un nouveau champ de saisie apparaît alors pour demander d’entrer le nom et la version de la carte voulue.


Il vous est alors demandé de saisir le nom et le n° de version de la carte dans un nouveau champ de saisie.

Il est important de saisir dans le nom, le numéro de version de cette carte pour la distinguer par la suite des autres versions de cette même carte. (Cf : illustration ci-dessus)


Encaps Arduino Y2BYpa.jpg



Lorsque la carte a été sélectionnée dans la liste, il faut valider son choix en cliquant sur le bouton [Valider].


Si une nouvelle version de carte a été saisie, il faut valider cette saisie en cliquant sur le bouton [Valider] ou en faisant [Entrée].


Des contrôles sont alors effectués pour s’assurer par exemple que la nouvelle carte n’existe vraiment pas dans celles qui sont connues.


Encaps Arduino j3XQT1.jpg



A ce niveau, tous les éléments nécessaires ont été recueillis et le logiciel crée un nouveau dossier du nom du programme saisi, dans le répertoire des applications. Ce dossier est caractérisé par une icône «Application Encapsulée ».

Encaps Arduino iXmwck.png



Dans ce dossier il stocke une copie du fichier de préférence de l’IDE Arduino (arduino-cli.yaml) configurée pour ce programme qu’il ne faudra en aucun cas modifier ou effacer.


Il crée ensuite dans ce dossier un sous-dossier « Docs » qui contiendra les différentes versions du programme au cours des évolutions de celui-ci mais dans lequel on pourra aussi mettre toute la documentation voulue pour ce programme (Schémas électroniques, photos, mode d’emploi, docs techniques, ...etc).


Dans ce dossier « Docs » un sous-dossier est aussi créé avec le même nom de programme mais suffixé par « _V1 » puisqu’il s’agit de la première version de ce programme que l’on veut écrire.


Dans ce sous dossier « NomdeProgramme_V1 », un fichier du nom du programme suffixé par « .ino » est créé. C’est le squelette du nouveau programme dans lequel est déjà écrit en commentaires la date et la version de carte utilisée.


A ce niveau, la fenêtre du logiciel disparaît et ouvre le squelette du programme « Nomdeprogramme_v1.ino » dans l’IDE arduino.


Si une nouvelle carte a été choisie, un message vient s’ouvrir pendant 15 secondes pour rappeler de faire la mise à jour de la nouvelle carte avant même de commencer à écrire le code.

K8yHpQ 3 1 D.jpg



4 Exemple d’arborescence du répertoire des applications

Répertoire des applications					Répertoire général
	ProgrammeX						Dossier programme X
		Docs						Dossier de développement
			ProgrammeX_v1			        Dossier du prog.arduino X_v1
				ProgrammeX_v1.ino		Programme arduino X v1
		arduino-cli.Yaml				Paramètres IDE arduino 
modifiés
		libraries					Librairies spécifiques ajoutées
	Programme Y						Dossier programme Y
		Docs						Dossier de développement
			ProgrammeY_v1			        Dossier du progr.arduino Y_v1
				ProgrammeY_v1.ino		Programme arduino Y_v1
				ProgrammeY_v2.ino		v2 du prog. ci-dessus
			ManuelY				        Mode d’emploi du prog
			SchémaY1				Schéma Kikad de la v1
			SchémaY2				Schéma Kikad de la v2
		arduino-cli.Yaml				Paramètres IDE arduino modifiés
		libraries					Librairies spécifiques  ajoutées

5 Remarques

  • 5.1 Lorsqu’on veut faire une nouvelle version d’un programme Prog_v1 pour y apporter des modifications, il est conseillé de commencer à faire une copie du programme concerné dans le même répertoire et de renommer celui-ci Prog_v2 en incrémentant son numéro de version.


Ensuite il faut lancer l’exécutable EncapsArduino pour accéder au programme.


  • 5.2 Lorsqu’on télécharge la version compilée d’EncapArduino , le dossier « Dist » comtient l’exe du programme. Il est accompagné dans la version Windows d’une icône. Vous pouvez stocker ce dossier où vous voulez dans votre ordinateur.

La première chose à faire ensuite est ce créer un raccourci sur le bureau vers EncapsArduino.exe (Envoyer vers….Bureau)


A l’issue de la première utilisation un fichier « Fiparam.json » sera créé dans ce même répertoire « Dist ». Il ne faut pas le supprimer car il mémorise les chemins des dossiers et fichiers nécessaires à cette application.


  • 5.3 A la création d’un nouveau programme Arduino, le dossier « libraries » figurant dans l’arborescence décrite ci-dessus n’existe pas. Il est automatiquement créé lorsqu’on ajoute des bibliothèques dans l’IDE Arduino (CTRL+Shift+I) et les bibliothèques installées sont automatiquement stockées dans ce dossier « libraries ». Elles resteront donc spécifiques du programme dans leur version d’installation.


5.4 Lorsque l’on clique sur le logo MHK dans le coin inférieur droit de la fenêtre, le navigateur par défaut ouvre le site internet de My Human Kit.


5.5 Lorsque l’on a commencé à développer des programmes Arduino avec ce logiciel d’encapsulage, il est primordial de toujours l’utiliser par la suite, que ce soit pour créer un nouveau programme Arduino ou pour en modifier un autre.

6 Notes d’installation

Il est possible, sous Windows comme sous Linux, d’installer le programme directement en téléchargeant l’exécutable. Mais il est possible aussi de télécharger le source du programme et de le compiler. Bien entendu la procédure n’est pas la même sous Windows et sous Linux.

6.1 Compilation sous Windows

Nota : ceci a été testé avec Windows 10 et Windows 11.

  • 6.11 Créer un dossier pour cette application.
  • 6.12 Télécharger le source et le copier dans un répertoire réservé à l’application.
  • 6.13 Copier aussi l’icône qui accompagne le programme (Encapsule.ico) dans ce même dossier.
  • 6.14 Ouvrir une fenêtre Terminal.
  • 6.15 Se placer dans le dossier de l’application :
    • p.ex. : cd F:\Documents\Python\EncapsArduino
  • 6.16 Installer PyInstaller si cela n’a pas été déjà fait : pip3 install pyinstaller
  • 6.17 Puis lancer la compilation :
python -m PyInstaller --clean --onefile --noconsole --collect-all customtkinter --collect-all CTkMessagebox --add-data "F:\Documents\Python\EncapsArduino\Avec_CustomTkinter\Encapsule.ico;." encapsarduino1.py


6.2 Installation sous Linux (Testé avec Ubuntu, Debian et Linux Mint 22.2 & 22.3)

NB : Le chemin vers le dossier Encapsarduino utilisé dans les exemples ci-dessous peut être modifié à votre convenance.


La première chose à faire est de copier l’icône (Encapsule.png) fournie avec les programme source dans le dossier par défaut des icônes  

~/.local/share/icons
  • 6.21 Pour éviter des conflits entre ancienne et nouvelle version, et bien que ce ne soit pas indispensable, il est conseillé d’exécuter un script de nettoyage (clean_build) avant d’effectuer une nouvelle compilation.

On crée ce script bash (si cela n’a pas été déjà fait) en faisant dans une fenêtre Terminal :

nano clean_build.sh  		 

Si le script a déjà été fait on passe à 6.24


  • 6.22 Ce script contient les commandes suivantes :
#!/bin/bash
echo "Nettoyage du projet Encapsarduino…"
# Dossier du projet
PROJECT_DIR="$HOME/Documents/Appli_Linux/Encapsarduino"
cd "$PROJECT_DIR" || { echo "Impossible d'accéder au dossier $PROJECT_DIR"; exit 1; }
BIN_NAME="encapsarduino1"
echo "Fermeture des instances en cours..."
pkill -f "$BIN_NAME" 2>/dev/null || true
sleep 2
echo "Suppression des dossiers dist/ et build/ et du fichier .spec…"
rm -rf dist build "${BIN_NAME}.spec"
echo "Suppression des fichiers .fuse_hidden*..."
find dist -name ".fuse_hidden*" -type f -exec rm -f {} \; 2>/dev/null || true
echo "Nettoyage terminé"


  • 6.23 On sauvegarde le script (Ctrl O, Entrée, Ctrl X) et on le rend exécutable en faisant
chmod +x clean_build.sh
  • 6.24 On exécute le script en faisant :
./clean_build.sh

6.3 Compilation elle même : on ouvre une fenêtre Terminal si pas déjà ouverte

  • 6.31 On se met dans le dossier du programme :
cd ~/Documents/Appli_Linux/Encapsarduino/
  • 6.32 On crée un environnement virtuel :
python3 -m venv venv
  • 6.33 On active celui-ci :
source venv/bin/activate
  • 6.34 On installe toutes les dépendances Python :
pip install pyinstaller
pip install customtkinter
pip install pillow
pip install pyyaml
  • 6.35 On lance la compilation avec PyInstaller :
 python -m PyInstaller encapsarduino1.py \
 --onefile \
 --noconsole \
 --add-data "Encapsule.png:." \
 --hidden-import customtkinter \
 --hidden-import PIL._tkinter_finder \
 --hidden-import yaml
  • 6.36 On donne les droits d’exécution :
chmod +x dist/encapsarduino1
  • 6.37 L’exécutable est alors disponible dans le dossier dist.

On peut l’exécuter en faisant :

./dist/encapsarduino1

6.4 Ajouter l’application au Menu Linux

  • 6.41 Pour cela on va créer un lanceur desktop avec les paramètres de l’application en faisant :
nano ~/.local/share/applications/encapsarduino1.desktop
  • 6.42 On renseignes les paramètre de l’application avec ceci :
[Desktop Entry]
Name=EncapsArduino 
Exec=/home/yves/Documents/Appli_Linux/Encapsarduino/dist/encapsarduino1
Icon=/home/yves/.local/share/icons/Encapsule.png
Terminal=false
Type=Application
Categories=Development;Utility;
  • 6.43 On sauvegarde le script (Ctrl O, Entrée, Ctrl X)
  • 6.44 Puis on force sa prise en compte en faisant
update-desktop-database ~/.local/share/applications

=> l’application apparaît dans le menu avec son icône spécifique.