2 010
modifications
Modifications
aucun résumé de modification
* la communication à partir d'un réseau local pour les fichiers personnels des autres sous-répertoires de /home/leruste.
==Développement logiciel==
===Environnement de developpement===
L'[https://fr.wikipedia.org/wiki/Environnement_de_d%C3%A9veloppement environnement de développement] '''« intégré »''' (abrégé EDI en français ou [https://en.wikipedia.org/wiki/Integrated_development_environment IDE] en anglais, pour '''integrated development environment'''). Cet [https://en.wikipedia.org/wiki/Integrated_development_environment IDE] peut être réalisé à partir soit de :
* l'[https://blog.arduino.cc/?ie=UTF-8&oe=UTF-8&s=IDE&domains=&sitesearch= arduino IDE]
* l'[https://blog.arduino.cc/2020/03/13/arduino-cli-an-introduction/ arduino CLI] qui offre la possibilité d'utiliser l'éditeur de son choix, celui d'Eclipse en particulier. Après son [https://arduino.github.io/arduino-cli/latest/installation/ installation], voir le :
** [https://arduino.github.io/arduino-cli/ la documentation]
** [https://github.com/arduino/arduino-cli github]
** [https://arduino.github.io/arduino-cli/getting-started/ getting started].
* [https://fr.wikipedia.org/wiki/Eclipse_(projet) Eclipse].
===Les plateformes===
Dans le contexte de cet atelier logiciel, les [https://fr.wikipedia.org/wiki/Plate-forme_(informatique) plateformes] sont des [https://fr.wikipedia.org/wiki/Environnement_de_d%C3%A9veloppement environnements de développement] '''« intégré »''' (abrégé EDI en français ou [https://en.wikipedia.org/wiki/Integrated_development_environment IDE] en anglais, pour '''integrated development environment''').
Une plateforme est généralement constituée d'un ordinateur et d'un [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur] raccordé par un câble USB.
Le [https://fr.wikipedia.org/wiki/D%C3%A9veloppement_de_logiciel développement du logiciel] dédié au [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur] se réalise selon les phases suivantes :
* au sein de l'[https://en.wikipedia.org/wiki/Integrated_development_environment IDE] installé sur l'ordinateur :
** saisie du programme
** vérification
** téléversement de l'ordinateur vers le [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur]
* au sein du [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur] exécution du programme.
Les phases décrites ci-dessus peuvent être exécutées autant de fois que nécessaire jusqu'à obtention du fonctionnement souhaité.
A partir du moment où le câble USB est déconnecté, le [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur], si son alimentation est autonome (batterie), va exécuter en permanence le dernier programme téléversé.
====Plateformes Arduino et Teensy====
Les deux plateformes sont constituées à partir du même ordinateur complété, soit d'un [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur] de la famille [https://fr.wikipedia.org/wiki/Arduino Arduino], soit d'un [https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur microcontrôleur] [https://www.pjrc.com/teensy/ Teensy]. Les deux plateformes utilisent le même [https://en.wikipedia.org/wiki/Integrated_development_environment IDE].
L'[https://en.wikipedia.org/wiki/Integrated_development_environment IDE] est :
* soit l'Arduino web editor (disponible uniquement pour Linux 64 bits en date du 14/03/2018)
* soit l'Arduino IDE (Linux '''32 bits''' et 64 bits)
les deux sont accessibles par ce [https://www.arduino.cc/en/Main/Software lien].
La [http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf documentation].
Dans le cas du [https://www.pjrc.com/teensy/ Teensy], il est complété de [https://en.m.wikipedia.org/wiki/Library_(computing) librairies spécifiques].
Prenons l'exemple de l'installation de l'IDE arduino-1.8.8
*sur le site arduino, télécharger l’archive arduino-1.8.8-linux64.tar.xz
*la décompresser puis installer avec les commandes :
**tar Jxvf arduino-1.8.8-linux64.tar.xz
**./arduino-1.8.8-linux-setup.sh $USER
**reboot
**lancement arduino.
====Plateforme Microchip====
Elle est traitée en un projet séparé accessible par le lien [http://fablabo.net/wiki/PIC PIC].
===Organisation des fichiers Arduino===
En référence à l'article [http://www.didel.com/coursera/GererFichiers.pdf Gérer vos fichiers Arduino] et selon l'exemple du fichier volumineux [https://github.com/AIREL46/SCAO/blob/master/Arduino/e-p-wifi/e-p-wifi.ino e-p-wifi.ino], une organisation en plusieurs fichiers devient nécessaire. Le principe est de mettre les définitions, fonctions, modules dans des fichiers [https://en.wikipedia.org/wiki/Include_directive "header"] séparés, par exemple '''a.h''', et de l'appeler avec l'ordre :
<code>#include a.h</code>.
Le programme Arduino peuta être divisé en 5 paragraphes :
# Introduction
# Initiation des paramètres
# Fonctions spécifiques
# Fonction setup
# Fonction loop
Supposons que nous voulions organiser notre fichier .ino en 2 fichiers séparés, la procédure est la suivante :
* créer dans le même répertoire un nouveau fichier, par exemple a.h
* concernant les paragraphes 1, 2 et 3 :
** dans le fichier .ino sélectionner puis couper les lignes que vous souhaitez transférer dans le fichier a.h
** coller ces lignes dans le fichier a.h
** répéter l'opération pour chaque paragraphe
* au paragraphe 2 le déclarer par <code>#include a.h</code>
* concernant le paragraphe 4 setup :
** procéder au transfert des lignes de code comme précédemment (couper puis coller)
** dans le fichier .ino appeler le fonction <code>setup_a ();</code>
** dans le fichier a.h créer la fonction void setup_a () {lignes de code précédemment copier}
* concernant le paragraphe 5 loop limiter au strict minimum le nombre de lignes de code en appelant les fonctions spécifiques qui se trouvent au paragraphe 3.
===Gestion de versions ===
Un [https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions logiciel de gestion de versions] est un logiciel qui permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus. Il permet notamment de retrouver les différentes versions d'un lot de fichiers connexes.
====Git et Git-hub====
Il en existe de nombreux, [https://fr.wikipedia.org/wiki/Git Git] est le logiciel créé par Linus Torvald, auteur du Kernel Linux. Il utilise des commandes comme commit, branches, merge... L'hébergement des fichiers sources s'effectue sur [https://fr.wikipedia.org/wiki/GitHub GitHub], ce qui permet de collaborer facilement sur des projets qui utilisent des logiciels libres.
La formation recommandée est [https://openclassrooms.com/courses/gerer-son-code-avec-git-et-github Gérer son code avec git et github sur Openclassroom].
Pour installer git taper dans un terminal :
* <code>sudo apt install git</code>
Pour créer une copie du projet SCAO en provenance du site github, taper dans un terminal la commande :
* <code>git clone https://github.com/AIREL46/SCAO</code>.
====Git-lfs====
Un message de warning est affiché :
'''File Plan-de-management/plan de management.odt is 53.71 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB'''
La préconisation est :
'''You may want to try Git Large File Storage - https://git-lfs.github.com.'''
Après l'installation du paquet, lors de l'exécution de la commande :
*sudo git lfs install
une erreur survient :
/usr/local/bin/git-lfs: 1: /usr/local/bin/git-lfs: Syntax error: '''Unterminated quoted string'''
Malgré l'erreur, je teste :
*sudo git add Plan-de-management/plan-de-management.odt
*sudo git commit "Ajouter fichier > 50MO plan-de-management.odt"
*sudo git push origin master
Dans Github, je retouve le fichier avec les commentaires :
<big>View raw</big>
(Sorry about that, but we can’t show files that are this big right now.)
Je clique sur View raw, la fenêtre suivante s'ouvre :
[[fichier:Git-lfs-sup-50MO.png |thumb|center|upright=2 | Ouvrir en lecture seule un fichier de plus de 50MO]]
Si :
*je choisis ''Ouvrir avec LibreOffice Writer'', le fichier est visualisé.
*je choisis ''Enregistrer le fichier'', le fichier est téléchargé et disponible dans le répertoire '''Téléchargements'''.
Je fais le même test avec le fichier plan de management_old.doc qui n'a pas fait l'objet d'un nouveau "push", le résultat est le même.
Conclusion : les fichiers de plus de 50 MO sont mémorisés, par contre, ils sont visualisables qu'après un téléchargement. Donc, le paquet git-lfs n'est pas opérationnel.
Je laisse tomber git-lfs et j'en profite pour faire un peu de nettoyage.
Je supprime des fichiers inutiles, le premier :
Plan-de-management/plan de management.odt avec la commande :
*sudo git rm Plan-de-management/plan de management.odt
ça ne marche pas parce que Ubuntu n'aime pas les espaces, je contourne la difficulté avec :
*sudo git rm Plan-de-management/'''<big>"</big>'''plan de management.odt'''<big>"</big>'''
Les suivants :
*Plan-de-management/plan de management_old.doc
*BOINC/BOINC.odt.
====Synchronisation des 2 ordinateurs====
Pour les 2 ordinateurs, le fixe et le portable, l'objet est d'assurer la conformité des contenus de leur répertoire SCAO respectif selon la règle de [https://fr.wikipedia.org/wiki/Synchronisation_de_fichiers synchronisation de fichiers].
Une fois par semaine, sur l''''ordinateur fixe''', dans le répertoire SCAO :
* sudo git status
* En fonction du résultat, effectuer l'ajout des nouveaux fichiers et terminer par :
** sudo git commit -a, cette commande va ouvrir fichier SCAO/.git/COMMIT_EDITMSG, dans ce fichier indiquer la raison du commit
** ctrl x
** sauver l'espace modifié ? Oui
* sudo git push origin master
* sur l''''ordinateur portable''' :
** sudo git pull origin master.
===Compacter des fichiers avec la commande zip===
Pour regrouper le contenu d'un répertoire en vue de l'envoyer à un correspondant.
'''zip - package and compress (archive) files'''
Ouvrir un terminal et taper la commande (exemple) :
* zip quiet-cook.zip tp_quiet-cook
===Libraries===
En bon français, il faut dire [https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle bibliothèque logicielle].
En anglais [https://en.wikipedia.org/wiki/Library_(computing) Library_(computing)].
Une bibliothèque logicielle est une collection de routines, qui peuvent être déjà compilées et prêtes à être utilisées par des programmes.
Pour éviter toute confusion linguistique, l'appellation utilisée par la suite sera celle issue de l'anglais : '''"library"'''.
Au fur et à mesure des besoins ces libraries, installées sur le disque dur de l'ordinateur, se multiplient.
Sur l'ordinateur fixe ASUS, ces libraries sont présentent dans les répertoires :
* /home/leruste/Téléchargements/teensy/avr/libraries
* /home/leruste/Téléchargements/arduino-1.6.9/libraries
* /root/Arduino/libraries.
====Installation des libraries====
La plupart des librairies se trouve sur le site github, un exemple :
la librarie [https://github.com/PaulStoffregen/Time '''Time''' publié par Paul Stoffregen].
Pour trouver une librarie sur le site github, il convient d'utiliser le [https://github.com moteur de recherche] à gauche du logo. En tapant "Chrono" on trouve :
[https://github.com/SofaPirate/Chrono Chrono publié par Sofian Audry and Thomas Ouellet Fredericks]
Pour installer ces libraries sur un ordinateur, dans notre exemple, sur l' '''ASUS''', [https://github.com Github] propose deux méthodes :
# le [https://fr.wikipedia.org/wiki/Clonage_(programmation) clonage]
# le [https://fr.wikipedia.org/wiki/Clonage_(programmation) téléchargement].
D'autre part, le répertoire privilégié par le compilateur de l'arduino IDE est :
'''/root/Arduino/libraries'''
Dans le cas du clonage et dans l'exemple de la library '''Chrono''', dans un terminal, tapez successivement :
* cd /root/Arduino/libraries
* Sudo git clone https://github.com/SofaPirate/Chrono
Dans le cas du téléchargement, sur le site Github, effectuer le téléchargement, sur l'ordinateur, il en résulte le fichier '''~Téléchargements/Chrono-master.zip''', 2 méthodes d'installation s'offrent à vous :
* Pour [https://www.arduino.cc/en/Guide/Libraries installer des nouvelles libraries sous l'Arduino IDE].
La copie d'écran ci-dessous donne l'exemple de la sélection du fichier '''Chrono-master.zip''' :
[[Fichier:librarie-download.png|vignette|centré|upright=2 | Sélection du fichier .zip]]
* Décompresser les fichiers puis les déplacer dans le répertoire /root/Arduino/libraries.
====Arduino Wrapper library====
J'ai rencontré pour la première fois cette terminologie de
[https://en.wikipedia.org/wiki/Wrapper_library "wrapper library"] en installant la librairie
[https://github.com/Overdrivr/Telemetry-arduino Telemetry Arduino].
===Pytelemetry Command Line Interface===
Le [https://github.com/Overdrivr/pytelemetrycli "Pytelemetry Command Line Interface"] est complémentaire de la fonction réalisée par [https://github.com/Overdrivr/Telemetry-arduino "Telemetry"].
Il permet, à partir de l'ordinateur, la réception des données envoyées par le microcontrôleur ainsi que leur visualisation.
Pour installer ce module, il faut disposer de :
* du langage de programmation [https://www.python.org/ Python] '''3.3''' + PyQt4 and numpy
* du [https://fr.wikipedia.org/wiki/Gestionnaire_de_paquets gestionnaire de paquets][https://pypi.org/project/pip/ pip] spécifique à [https://www.python.org/ Python].
* le paquet [https://pypi.org/project/pytelemetrycli/1.1.0/ Pytelemetry Command Line Interface]
Une installation de ce module a été entreprise, 2 problèmes ont été rencontrés :
* Ubuntu 16.04 LTS permet l'installation de python des versions '''2.7.x''' (2.7.12 sur l'ordinateur ASUS) mais pas au delà
* le [https://fr.wikipedia.org/wiki/Gestionnaire_de_paquets gestionnaire de paquets][https://pypi.org/project/pip/ pip] génère une erreur : cannot import name main.
'''Conclusion''' : ce module [https://github.com/Overdrivr/pytelemetrycli "Pytelemetry Command Line Interface"] semble avoir été développé pour le monde de Windows sans préoccupation de sa compatibilité au monde de Linux.
Néanmoins, cette expérience aura permis d'explorer le langage de programmation [https://www.python.org/ Python] qui semble être, en complément du langage BASH, un langage adapté pour développer des programmes dédiés au PC qui pourraient dialoguer avec le microcontrôleur.
==Les logiciels==
===DFINITY Foundation===
===Logiciel de téléassistance et réunions en ligne===
[https://www.teamviewer.com/fr/ Team Viewer]
=== Iphone 5 ===
Voir le paragraphe "matériel" pour les généralités.