Quel est votre niveau scolaire?
Pour l’OS (ou plutôt, la distribution) je vous conseillerai, au moins pour commencer, la distribution officielle, RpiOS (stable, supportée: si vous developpez du logiciel, vous n’avez pas à gérer les éventuels défauts d’une distribution et vous pouvez être amenés à demander de l’aide: tant qu’à faire, vaut mieux passer par une distribution populaire).
Nota: une définition d’OS est dans wikpedia, une des déités des cancres -et tout le monde l’est plus ou moins- Operating system - Wikipedia; une distribution englobe un OS, et des tas de programmes, ainsi que les utiltaires pour en telecharger des tas -10E4 au moins pour Debian instable- d’autres; si votre prof est un puriste (à mon sens, il aura raison), il sera traumatisé par la confusion.
Pour le langage: avez vous appris python ? Si c’est le cas, c’est le langage idéal pour RPi, car le distributeur a mis tout ce qu’il faut pour développer simplement: des éditeurs (geany et nano), un interpréteur récent , python3 , deux environnements de developpement -si vous aimez_
Si vous venez du monde Arduino, vous avez aussi tout ce qu’il faut pour developper en C(+++): les compilateurs, make (+ les paquets Debian). Sachez que C
++ est plus compliqué que la version simplifiée supportée par Arduino .
dans tous les cas, vous avez peut être interet -surtout pour un projet scolaire- à expliquer que vous avez choisi de decouper votre projet en petites briques, bien testées (au démarrage, c’est lent et pas du tout sexy: mais, si vous testez méthodiquement, vous n’aurez pas d’inquietudes de savoir si vous avez construit sur des bases saines.
Certains utilitaires permettent de savoir si :
- un (bout de) programme C(++) est trop compliqué pour être lu/relu/testé : pmccabe Cyclomatic complexity - Wikipedia (sudo apt get install pmccabe vous l’installe)
- un (bout de) programme C(++) est laid : cpplint Cpplint - Wikipedia dit s’il peut être lu … par des ingenieurs de google (et quelles sont les lignes à corriger Edité: si les messages sont incompréhensibles, demandez à stackoverflow -voir plus bas- )
ou présente des risques de mauvais comportement à l’éxécution : splint Splint (programming tool) - Wikipedia permet de detecter quelques horreurs… C’est toujours ça de moins.
Ces utilitaires peuvent aussi guider, dans une certaine mesure, votre choix si google vous ramène trop de trucs ayant la même fonction…
Une autre bonne source pour comprendre et corriger ses erreurs de programmation est stackoverflow (mettre un message d’erreur , prefixé par stackoverflow et laisser faire google est assez efficace)… Normalement, les types d’erreurs sont assez restreints, et il suffit de lire (et les correcteurs bénvoles n’aiment pas les travaux monotones,et peuvent donc être féroces s’ils trouvent qu’un autre a vu la même erreur corrigée)
Nota: pour un langage à préconiser, je pense que vous devez approfondir vos connaissances dans un lagage déjà appris, plutôt que vous disperser… (en apprendre un autre est alors assez facile, une fois maîtrisées toutes les notions du premier)