Table des matières

Se baser sur:

  1. ce que les étudiants connaissent (au moins un peu) déjà.
  2. ce que les étudiants peuvent utiliser par eux même et chez eux
  3. des choses réutilisables en entreprise

Pour utilisation arduino et raspberry en milieu industriel, voir: https://www.industrialshields.com/?gclid=CjwKCAiAg8OBBhA8EiwAlKw3kpWuYSmc776wUvBJwfby8GhTSZIGBZ6L3-76TCbFTYiySTxZN7xztBoCiZAQAvD_BwE

Arduino

Tout un écosystème:

cartes UNO et NANO à 2 ou 3 euros

Utilisable par les étudiants chez eux Outils de développpement minimalistes, simples à installer et à utiliser

Beaucoup de ressources disponibles:

langage C++ simplifié: Programme de haut niveau utilisant des librairies HAL simples à utiliser (la plupart utilisant l'approche objet)

Pas de débuggueur: ce n'est pas vraiment un problème si utilisé pour faire des programmes de haut niveau simples

Architecture matérielle modulaire: Approche lego pour assembler un calculateur (du attiny 8 broches à un gros STM nucléo) et des périphériques

Possibilité d'accés à bas niveau aux ressources du microcontroleur pour illustrer le matériel dans un second temps.

Python

Utilisé partout et pour de bonne raison: de l'automatisme jusqu'à l'apprentissage profond en passant par les statistiques, les IHM, le développement WEB….

Outils de développement

Apprentissage de l'algorithmie

Domaines d'application

Plateformes matérielles

Peut être utilisé sur:

L'apprentissage de l'algorithmie sur PC puis le passage à de l'embarqué sans changer de langage serait bien plus lisse qu'actuellement (C++ puis C au S2)

Les fausses limitations

Concernant les performances

Tests unitaires

Actuellement:

Profiling

Outils de mesure de consommation des ressources (mémoire, temps CPU etc..)

Il faudrait sensibiliser les étudiants à ces concepts (et leur parler un minimum de complexité algorithmique)

Outils de gestion de versions

Actuellement découverte en seconde année de l'outils GIT en bus de communication/ethernet industriel

Utilisation souhaitable dès la première année:

Initialisation d'un suivi:

cd ~/dossieràsuivre
git init
git add *.c*  *.pro
git commit -m'initial version'

Création d'une version:

cd ~/dossieràsuivre
git commit -a -m'exercice 2 fait et validé'

Visualisation des versions

gitk 

Ainsi en seconde année, une utilisation plus poussée serait possible

Outils de documentation de code

Obliger les étudiants à faire de la doc (certains IDE aident en le faisant automatiquement)

Utiliser un outils comme Doxygen

Documentation sur l'outils de documentation Doxygen

https://www.doxygen.nl/manual/starting.html

https://www.doxygen.nl/manual/docblocks.html

https://www.doxygen.nl/manual/doxygen_usage.html

https://www.doxygen.nl/manual/config.html#:~:text=The%20format%20is%20ext%3Dlanguage,free%20formatted%20Fortran%3A%20FortranFree%2C%20unknown

https://franckh.developpez.com/tutoriels/outils/doxygen/

Utilisation de Doxygen pour ce projet

Dans le dossier des fichiers source, taper pour générer le fichier de configuration de la doc:

doxygen -g  

Editer le fichier de configuration Doxyfile

gedit Doxyfile &

Régler:

FILE_PATTERNS          =  *.cpp *.h *.ino
EXTRACT_ALL=YES
EXTENSION_MAPPING      = ino=C++

Pour compiler la doc et l'ouvrir dans un browser

doxygen Doxyfile && chromium-browser html/index.html