Je ne pense pas qu'on peut parler de triche.
Le but de cet exercice n'est probablement pas de délivrer un diplome de codeur en C mais de vérifier les capacités d'adaptation et de réflexion.
Générateur de code automatique ou pas le plus important sera la qualité des informations qui auront été extraites.
En plus ce qui attend la programmation de demain ce ne sera plus la qualité du code mais bien l'assemblage de boîtes noires
Exactement comme en électronique il ne viendrait plus à personne l'idée de faire son propre ampli opérationnel avec une vingtaine de boîtiers de transistors.
Regardez comment ardublock est de plus en plus utilisé en collège et lycée : priorité au raisonnement.
notamment pour écrire une librairie rien que pour les timers, pwm etc ?
Remarque préalable : sujet scolaire donc il faut que tu nous dise quel niveau : bac, BTS/DUT, prépa, école d'ingénieur?
Je pense qu'il faudrait faire préciser à ton prof ce qu'il veut vous faire faire exactement.
Il y a deux niveaux :
- les fonctions de base pour interfacer avec le microcontroleur.
- les bibliothèques (ici c'est un forum francophone, library c'est de l'anglais) pour gérer les composants externes comme les capteurs.
Réinventer la roue pour satisfaire au petit "1" n'est pas infaisable mais il faut une bonne lecture des 600 pages de la datasheet du micro et deux bonnes années devant soi.
Donc je pense que vous pourrez utiliser la fonction analogWrite pour la PWM sans la réécrire (quoique j'y suis arrivé (une fois) donc c'est simple), mais c'est à faire préciser.
Pour les composants externes comme les capteurs c'est largement plus faisable.
Il y a deux choses à faire.
-
Commencer par lire la datasheet du capteur et comprendre son fonctionnement et comment le commander.
-
Trouver des bibliothèques existantes et comprendre ce qui a déjà été fait.
Je pense que ton prof ne veut pas que vous utilisiez du pré-maché mais il ne s'agit pas non plus de réinventer la roue . En même temps on apprend beaucoup en décortiquant les bibliothèques
Ensuite il faudra bien identifier ce dont vous avez réellement besoin et écrire à votre façon le code qui va bien. Fais bien attention à ne pas ajouter des fonctions qui ne vous servent pas --> ce sera la preuve que vous avez copié sans réfléchir.
Pour écrire "une bibliothèque" qui n'est en fait que du code qui peut être réutilisé dans plusieurs projets il faut écrire un fichier code (.cpp) et un fichier d'entête (.h)
Plutôt qu'une mauvaise explication de ma part je te conseille de trouver des tutos de C/C++ qui expliquent :
- comment est constitué un fichier C/C++ , le préprocesseur, etc.
- comment gérer un développement avec plusieurs fichiers (cpp,.h) --> c'est très général ce n'est pas réservé aux bibliothèques, cela évite d'avoir à gérer des fichiers de plusieurs centaines ou milliers de lignes.
Arduino c'est du C/C++ très classique et rien d'autre.
L'Interface de Developement Intégrée Arduino (IDE) elle est particulière : elle dispense d'écrire la fonction main() et fait elle même les déclarations de fonctions, tu n'as juste qu'a écrire au minimum une fonction setup et une fonction loop.
Mais l'IDE ajoute tout en tache de fond et transmet au compilateur un VRAI fichier C/C++
C'est pour cela que les fichiers *.h et *.cpp qui ne sont pas "traités par le robot de l'IDE" doivent satisfaire aux règles du C/C++