Quel langage de programmation utiliser pour un Raspberry Pi ?

Raspberry Pi Programming Languages Title Image

Si vous êtes nouveau sur le Raspberry Pi, vous pouvez vous trouver à la croisée des chemins pour choisir un langage de programmation à apprendre.

Il existe de nombreux langages et ce que vous décidez d'apprendre aura un effet profond sur ce que vous pourrez faire. Jetons donc un coup d'œil aux langages que vous pouvez utiliser avec le Raspberry Pi.

Langues préchargées sur le Raspberry Pi

L'indice le plus important que vous pouvez tirer de Raspberry Pi est peut-être les langues qui sont préchargées dans le système d'exploitation de Raspberry Pi.

Sur chaque installation, Python, Scratch et C ou C++ sont préinstallés.

Examinons donc d'abord ces trois langues.

Python : un excellent langage généraliste pour Raspberry Pi

pi dht22
Code Python écrit en Thonny

Pour :

  • Facile à apprendre
  • De nombreuses bibliothèques pour les composants
  • De nombreux tutoriels pour vous aider à vous mettre à niveau.
  • Peut être utilisé sur les micro-ordinateurs Raspberry Pi et la série Pico

Cons :

  • Ne convient pas au développement de sites Web (front-end, en particulier).
  • Plus lent que C ou C++

Si vous partez de zéro, Python est probablement le moyen le plus rapide et le plus efficace pour vous lancer.

Tout d'abord, Python est l'un des langages les plus faciles à maîtriser.

Une autre raison est qu'il existe un grand nombre de bibliothèques écrites en Python pour divers capteurs et composants. Par conséquent, une bonne partie des scripts pour les tutoriels et les projets seront écrits en Python.

Si vous deviez utiliser un autre langage, par exemple JavaScript (via NodeJS), vous pourriez vous retrouver coincé sans bibliothèque pour un capteur commun.

Enfin, l'apprentissage de Python vous aidera à interagir avec toutes les cartes de la gamme Raspberry Pi. Vous pouvez créer des projets pour le Raspberry Pi 4 ainsi que pour le Raspberry Pi Pico.

Les fabricants du Raspberry Pi facilitent également la création de projets en Python. D'une part, tous les micro-ordinateurs Raspberry Pi (par exemple, le Pi 4) sont livrés avec Thonny qui est un IDE Python et tous les Raspberry Pi Picos lisent MicroPython par défaut.

Thonny rend Python facile sur le Raspberry Pi

Le système d'exploitation Raspberry Pi est également préchargé avec Thonny, qui facilite l'exécution de scripts Python.

Thonny facilite la programmation en Python car vous pouvez facilement lancer et arrêter des scripts en appuyant sur le bouton " RUN " ou " STOP " dans l'IDE.

En revanche, si vous utilisez un autre éditeur, vous devrez probablement taper le script dans le Terminal afin de l'exécuter.

MicroPython pour Raspberry Pi Pico

Il est particulièrement utile d'apprendre Python si vous souhaitez utiliser le Raspberry Pi Pico.

Contrairement aux micro-ordinateurs Raspberry Pi, le Raspberry Pi Pico ne prend en charge que trois langages par défaut : C ou C++ et MicroPython.

Cela signifie que si vous avez appris Python, vous pourrez passer à l'écriture de MicroPython, puisque la syntaxe est la même.

La principale différence entre Python et MicroPython est que ce dernier possède une bibliothèque standard plus petite.

CircuitPython

En plus de MicroPython, CircuitPython est un autre dérivé de Python qui est utilisé dans le Raspberry Pi Pico. CircuitPython est créé par Adafruit.

Python est-il un bon langage pour les utilisateurs de Raspberry Pi ?

OUI. Absolument.

Vous devrez absolument connaître Python si vous souhaitez réaliser des projets pour le Raspberry Pi.

J'ai commencé mon parcours de programmation avec JavaScript. En dehors de la sphère Raspberry Pi, JavaScript est un langage très efficace car vous pouvez créer des programmes et des sites web.

Une horloge à quatre chiffres
Un affichage à quatre chiffres et sept segments

Cependant, un jour, j'ai dû créer un programme pour un affichage à sept segments et il n'y avait aucun moyen de le faire en JavaScript.

J'ai trouvé un script en ligne mais il était en Python et cela m'a mis sur la voie de l'apprentissage de Python.

Si vous voulez le moyen le plus efficace, le plus rapide et le plus facile de créer des projets Raspberry Pi, l'apprentissage de Python est la solution.

Où apprendre Python pour la programmation sur Raspberry Pi ?

Parcours d'apprentissage - Ces ressources compilent des liens où vous pouvez apprendre des parties spécifiques de Python. Il s'agit de parcours d'apprentissage généraux et non spécifiques au Raspberry Pi.

Learney

Feuille de route

Harvard OpenCourseWare, Introduction à la programmation avec Python (CS50)

YouTube vidéos

Liste de lecture des tutoriels Python pour débutants de Corey Schafer

Cours spécifiques à Raspberry Pi - Ce sont des cours destinés aux débutants

Fondation Raspberry Pi - ce cours vous donnera un aperçu général de la programmation en Python et il plonge dans la programmation de jeux et l'interaction avec des capteurs et des composants.

Python réel, Créer des projets physiques avec Python sur le Raspberry Pi - Il s'agit d'un excellent guide pour les personnes qui disposent d'un kit de capteurs et de composants et qui souhaitent se plonger dans le code qui interagit avec le GPIO. Contrairement aux tutoriels généraux sur Python, ce guide vous enseignera comment câbler des capteurs simples et comment interagir avec eux avec un Raspberry Pi 4.

Scratch pour Raspberry Pi

Un de mes amis m'a montré son feu de signalisation à DEL qu'il a réalisé avec son Raspberry Pi 4.

Il s'agit d'un développeur expérimenté qui possède de nombreuses connaissances en matière de programmation en Java et en JavaScript, et je m'attendais donc à ce qu'il l'ait écrite dans un langage de programmation.

Mais non...

Il a utilisé Scratch.

Quoi ?

Pourquoi un spécialiste des logiciels utilise-t-il Scratch ?

Scratch se décrit comme "la plus grande communauté de codage pour enfants au monde et un langage de codage doté d'une interface visuelle simple qui permet aux jeunes de créer des histoires, des jeux et des animations numériques".

Mon ami n'était définitivement pas un enfant.

Lorsque je lui ai demandé pourquoi, il m'a donné une réponse aussi utile qu'un message de validation Git : "c'est simple à programmer".

scratch at raspberry pi store

Pour être honnête, lorsque j'ai visité le Raspberry Pi Store à Cambridge, au Royaume-Uni, ils avaient également un Pi exécutant Scratch.

Donc, ça doit être bon pour quelque chose !

Scratch est-il un bon langage de programmation pour les utilisateurs de Raspberry Pi ?

Je suppose que c'est bon pour gratter la surface de la programmation.

Le principe de base de Scratch est de rendre la programmation facile pour les enfants et les adolescents. Au lieu d'écrire du code abstrait, Scratch vous permet de créer des programmes en assemblant des blocs.

Pour faire clignoter une LED avec Scratch, il faut assembler ces blocs :

Grattez
Séquence Scratch pour faire clignoter la LED. Photo tirée du site YouTube d'Aaron Maurer.

Maintenant, comparez cela à un script Python pour faire clignoter la LED,

import RPi.GPIO as GPIO 
from time import sleep 

GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.OUT, initial=GPIO.LOW) 

while True: 
 GPIO.output(8, GPIO.HIGH) 
 sleep(1) 
 GPIO.output(8, GPIO.LOW)
 sleep(1) 

C'est peut-être la même raison pour laquelle certaines personnes préfèrent utiliser une interface graphique plutôt qu'une ligne de commande. Au lieu de modifier la valeur d'une variable à l'aide de plusieurs retours en arrière, de touches fléchées et d'autres pressions sur les touches, il suffit de cliquer et de choisir.

Pour les projets simples, l'apprentissage et l'enseignement, Scratch est un excellent choix.

Inconvénients de Scratch pour Raspberry Pi

Si vous avez manqué le jeu de mots dans la section précédente, le voici à nouveau : Scratch ne fait qu'effleurer la surface.

Inévitablement, lorsque votre projet prendra de l'ampleur, vous voudrez utiliser un langage plus courant, comme Python, C ou C++, car vous aurez accès à une multitude de codes, de bibliothèques et de scripts disponibles en ligne.

Apprendre Scratch

Si vous êtes curieux de savoir comment fonctionne Scratch, vous pouvez rapidement vous faire une idée du fonctionnement de sa méthode des "blocs de construction". sur son environnement en ligne.

IDE Scratch

C ou C++ pour Raspberry Pi

Les langages de programmation qui vous donnent le contrôle ultime sont aussi parmi les plus difficiles à apprendre et à maîtriser.

Quelle est la différence entre C et C++ ?

Le C++ est en quelque sorte une version étendue du C, qui comprend de nombreuses fonctionnalités telles que la prise en charge native de la programmation orientée objet. Le ++ est un jeu de mots sur la façon dont les opérateurs peuvent être incrémentés en C et en C++ lui-même. Par exemple, si vous avez une variable cats et que vous voulez lui ajouter un, vous pouvez simplement écrire cats++ ;

Le C++, en particulier, est très dynamique et est constamment mis à jour. C'est un langage complexe à apprendre. Pour les débutants, le C pourrait être un langage plus approprié à choisir.

Quelle est la principale différence avec les autres langues utilisées pour le Pi ?

Ces langages sont compilés, c'est-à-dire que vous écrivez du code, puis utilisez une application spéciale appelée compilateur pour produire un code machine en octets que le processeur de votre architecture cible comprend de manière native. En d'autres termes, si vous souhaitez exécuter une application à la fois sur le Pico W et le Raspberry Pi, et sur votre ordinateur de bureau (basé sur x86), vous devrez exécuter un compilateur spécifique pour chacun d'eux.

Un autre exemple de langage compilé est Rust, qui présente de gros avantages. En effet, le C et le C++ exigent que vous vous occupiez de certaines choses, comme le ramassage des déchets. Ou l'ordinateur tout entier peut se planter si vous écrivez des pilotes de périphériques. Avec Rust, le développeur dispose de protections supplémentaires.

Un autre langage compilé populaire développé par Google s'appelle Go. Vous remarquerez peut-être des références à ce langage de temps en temps.

Si vous n'avez jamais codé auparavant, je vous suggère de commencer par les langages interprétés. Ils ne nécessitent pas d'étape de compilation, mais sont lus par une application qui exécute ensuite la bonne commande. Un bon langage pour débuter est Python (ou MicroPython).

Cependant, si jamais vous voulez créer des projets époustouflants comme jouer à Doom sur un Raspberry Pi Pico alors vous devrez connaître le C, ou le C++.

C ou C++ sont généralement l'un des trois langages les plus utilisés sur le Raspberry Pi, l'autre étant Python. Par conséquent, une bonne partie de cette section portera sur les avantages et les inconvénients de ces deux langages.

Commençons par comparer les trois :

C et C++MicroPython
VitessePlus rapidePlus lent
Courbe d'apprentissagePlus durPlus facile
Gestion de la mémoireManuelAutomatique (garbage collection)
Compilé ? Interprété ?CompiléInterprété
Utilisation par la communautéLargement utilisé, notamment dans les projets avancés où un contrôle minutieux est nécessaire.Largement utilisé par les débutants et les utilisateurs avancés.
Bibliothèques pour les composantsGénéralement disponibleGénéralement disponible

Un débutant doit-il apprendre le C ou le C++ ?

Rien ne vous empêche de passer par une épreuve du feu.

Parce que ce qui ne vous tue pas vous rend plus fort.

La plupart des projets peuvent être réalisés aussi bien avec Python qu'avec C ou C++. La disponibilité des bibliothèques pour les trois langages est également très répandue et il est peu probable que vous soyez bloqué par l'absence d'une bibliothèque.

Êtes-vous tenace ?

Le C ou le C++ peuvent être un peu moins amusants pour le programmeur débutant, car il y a beaucoup d'aspects auxquels il faut penser, ce qui n'est pas le cas en Python.

Par exemple, en C et C++, vous devrez gérer votre mémoire. Vous devrez également réfléchir au type de données à attribuer à une variable. Cela peut devenir fastidieux si vous n'êtes pas conscient des implications des avantages et des inconvénients du choix d'un type.

Par exemple, si vous voulez assigner un nombre entier en C et C++, vous devrez décider si vous voulez :

  • int
  • char
  • char non signé
  • caractères signés
  • int non signé
  • court
  • court non signé
  • long
  • long non signé

Le choix de l'une d'entre elles aura des répercussions sur la vitesse de votre programme et l'utilisation de la mémoire.

Et bien que Python soit moins efficace, vous n'aurez besoin de le faire que pour déclarer un entier :

integer = 999999999999999

Mais on ne gagne rien sans rien, n'est-ce pas ?

Une fois que vous serez familiarisé avec le fonctionnement du C ou du C++, vous commencerez à en récolter les fruits. Le Raspberry Pi n'étant pas un ordinateur très puissant selon les normes actuelles, la capacité d'écrire un code efficace vous aidera à tirer le meilleur parti de son matériel limité.

La mise en place de C et C++ prend plus de temps

Lorsque les cartes Raspberry Pi Pico sont sorties, j'ai dû écrire sur la configuration du Pico pour Python et C et C++.

Python était super facile. Téléchargez Thonny. Brancher le Pico. Flash MicroPython. C'est fait.

Le C et le C++ étaient beaucoup plus difficiles et fastidieux. C'est évident - Raspberry Pi publie un PDF sur le thème de la configuration C/C++.. Disons que vous avez dû interagir avec la ligne de commande pour le configurer.

Tu seras toujours C la lumière

C a environ 40 ans et est toujours utilisé aujourd'hui.

Qu'est-ce que ça veut dire ?

C'est l'un des langages les plus dynamiques que vous puissiez apprendre, qui peut être utilisé pour créer des logiciels et manipuler du matériel.

Ainsi, si vous souhaitez apprendre un langage extrêmement utile et puissant, le C pourrait être le meilleur premier langage à apprendre.

Psst... Le C et le C++ peuvent être utilisés sur d'autres tableaux.

J'écris ceci en 2022 où le stock de Raspberry Pi est un gros problème.

L'une des principales questions que les gens se posent est la suivante : " Quelles sont les cartes alternatives qui existent ? Je ne peux pas construire des projets avec un Raspberry Pi inexistant".

Il existe de nombreux conseils alternatifs, et vous pouvez les consulter ici.

Si vous avez appris le C ou le C++, vous pourrez vous plonger directement dans l'utilisation d'une carte Arduino ou ESP32 ou ESP8266, dont les programmes sont presque exclusivement écrits en C ou C++.

Ces cartes ne prennent pas forcément en charge Python. Par conséquent, si la raison pour laquelle vous vous intéressez au Raspberry Pi est de créer des projets avec des microcontrôleurs, vous trouverez peut-être que le C ou le C++ est un langage plus facile à transférer.

Apprendre le C ou le C++ pour Raspberry Pi

MagPi publie gratuitement un magazine pour les débutants.

MagPi publie également une liste d'endroits où apprendre le langage C (non spécifique au Raspberry Pi).

Raspberry Pi publie un PDF qui vous enseigne comment utiliser C/C++ avec le Raspberry Pi Pico

Voici les dragons

Dans la section ci-dessus, nous avons parlé des langages de programmation que vous devriez envisager d'apprendre.

La section suivante traite des langages potentiels qui peuvent également être utilisés avec le Raspberry Pi, mais les cas d'utilisation et la communauté ne sont pas aussi importants que pour Python, C, C++ et Scratch.

JavaScript (y compris NodeJS)

Un programme JavaScript qui enregistre les données d'un capteur de température/humidité DHT22 sur le Raspberry Pi (et affiche une page web montrant les données).

JavaScript est l'un des langages les plus utiles pour le programmeur amateur, car il permet de créer des applications, des sites web (avec HTML et CSS) et des backends.

L'une des plus grandes avancées dans la sphère JavaScript s'appelle NodeJS. Auparavant, JavaScript était principalement basé sur le navigateur, mais avec NodeJS, vous pouvez exécuter un backend et créer des applications pour votre Raspberry Pi et d'autres ordinateurs.

En ce qui concerne spécifiquement le Raspberry Pi, il existe des bibliothèques qui vous permettent de manipuler les broches GPIO du Raspberry Pi. Ainsi, si vous voulez construire un projet simple, vous n'aurez aucun problème à exécuter un programme JavaScript.

Cependant, le plus grand goulot d'étranglement de votre projet est l'absence d'une communauté où Raspberry Pi et JavaScript se croisent.

Cela devient évident lorsque vous visitez le Github de quelqu'un et que, inévitablement, son projet est écrit en Python ou en C, C++. Très peu de programmeurs utilisent JavaScript avec le Raspberry Pi.

Alors, JavaScript est-il une annulation ?

Non, pas vraiment.

Il a toujours son utilité.

Un cas d'utilisation où le simple fait d'apprendre JavaScript peut vous aider à atteindre vos objectifs est celui où vous voulez utiliser votre Raspberry Pi comme serveur Web. Vous pouvez écrire le backend en ExpressJS (un framework de backend) et le frontend en React/Angular/Vue (des frameworks de frontend), puis vous utiliserez PM2 (un gestionnaire de processus) pour fournir les backends et les frontends. Dans ce scénario, vous pouvez le faire entièrement en JavaScript.

Raspberry Pi Pico W a besoin de JavaScript

Il y a quelque temps, lors d'une rencontre React, quelqu'un m'a taquiné parce que j'écrivais du JavaScript classique. Il m'a dit : "En quelle année sommes-nous ? Les années 2000 ?"

Si vous disposez d'un Raspberry Pi Pico W, vous aurez éventuellement besoin de savoir comment écrire vanille JavaScript.

Regardez qui rit maintenant ?

Alors que le monde du développement web a évolué vers l'utilisation d'un framework frontal tel que React, Angular ou Vue, servir des sites web sur le Raspberry Pi Pico nécessite généralement de savoir écrire du JavaScript pur. Si vous consultez nos tutoriels dans notre section Pico W méga article, vous verrez.

Le curseur en haut à droite contrôle le servo à l'aide de JavaScript.

L'un des principaux avantages du Pico W est qu'il vous permet de servir une page Web, que vous utiliserez probablement pour contrôler quelque chose. Par exemple, vous pouvez demander au Pico W de servir une page Web contenant un curseur qui contrôle un servomoteur. Pour communiquer la valeur du curseur au Pico W, vous devez connaître JavaScript.

Apprendre le JavaScript

Je ne peux que recommander la page web qui s'est avérée être la meilleure ressource pour moi pour apprendre JavaScript :

https://javascript.info/

Cette ressource est TRES bonne pour les utilisateurs de Pico W car elle vous enseigne tous les aspects de la vanille JavaScript ainsi que les événements du navigateur. Vous devrez connaître ces derniers afin de contrôler efficacement le Pico W et l'interface utilisateur de la page Web que vous servirez.

HTML + CSS

HTML et CSS ne sont pas vraiment des langages de programmation, mais ils sont étroitement liés à la section JavaScript. Ils sont utiles si :

  • Vous envisagez de faire quelque chose sur le web
  • Vous prévoyez de servir une page web en utilisant le Pico W

Ce site m'a beaucoup aidé : L'Internet est difficile

Il est un peu dépassé. Par exemple, il ne couvre pas la grille CSS ou le rapport d'aspect.

Mais Interneting is Hard a une méthode d'enseignement efficace et peut vous apprendre suffisamment pour construire une page web pour le Pico W.

Recommandations si vous voulez...

Obtenez des résultats rapidement: Python ou Scratch

Apprenez aux enfants à programmer : Grattez

Obtenez le contrôle ultime de votre matériel : C ou C++

Construire des projets de matériel informatique: Python ou C ou C++, ne vous occupez pas d'autre chose.

Héberger un serveur web et créer des sites web: HTML, CSS, JavaScript

Créez un projet IoT avec le Pico W : Python, HTML, CSS, JavaScript

Devenir un dieu (avec un investissement en temps impensable): C ou (surtout) C++

4 commentaires

  1. Doug sur janvier 29, 2023 à 5:07 pm

    Ne faites pas référence à "C/C++" comme à un seul langage. Cela ne fait qu'embrouiller les débutants. Ce sont DEUX langages très différents avec des courbes d'apprentissage et des capacités différentes.

    • raspi berry sur février 4, 2023 à 11:46 am

      Merci pour vos commentaires. J'ai modifié l'article et développé un peu plus la différence entre les langues.

    • NADEEM INAMDAR sur juillet 4, 2024 à 9:48 am

      Je ne suis pas d'accord avec l'affirmation "Ce sont DEUX langages très différents". Le C est un sous-ensemble du C++. Bien entendu, le C++ est beaucoup plus difficile à apprendre que le C.

  2. Pedro sur avril 9, 2023 à 3:20 pm

    Merci pour cet article

Laissez un commentaire