Le langage le plus largement utilisé sur Raspberry PI est Python mais, étant un micro-ordinateur, il est possible de l’utiliser avec d’autres langages. Si vous connaissez le langage C/C++ ( si vous venez du monde d’Arduino, par exemple) et que vous ne voulez pas apprendre un autre langage de programmation. Il est possible de piloter le Raspberry Pi en C/C++. Nous allons voir dans ce tutoriel comment piloter les entrée/sorties du microcontrôleur en C et comment programmer le Raspberry PI comme un Arduino.
Matériel
- Raspberry Pi3 (ou Zero) + moniteur + clavier
- Câble Dupont F/F x2
- LED x1
Utilisation de Geany
La Raspberry PI est fourni avec le logiciel Geany qui vous permet d’exécuter le programme directement sur la carte. Pour écrire le programme en C ou en C++ :
- Ouvrez Geany
- Créez un nouveau fichier
- Dans Document > Définir le type de fichier > Langages de Programmation > Sélectionnez Fichier source C ou C++
Copier le code suivant:
#include <iostream> using namespace std; int main(int argc, char **argv) { cout<<"Hello World" << endl; return 0; }
Les programmes en C++ doivent être compilés avant de pouvoir être exécutés. Dans le menu « Build » sélectionnez « Build », ou F9 directement, pour compiler le programme. Puis, dans « Build » sélectionnez « Execute », ou F5, pur lancer le programme.
La phrase « Hello World » devrait s’afficher dans le terminal qui s’ouvre sur l’écran.
Programmez votre Raspberry Pi comme un Arduino
Installation de la librairie WiringPi
Un librairie existe pour gérer les entrées/sorties du Raspberry Pi comme le microcontrôleur Arduino: wiringPi.h.
Vérifiez que la libraire est installée en tapant les commandes suivantes dans un terminal:
gpio -v
gpio readall
Si une erreur s’affiche, mettez à jour votre installation Raspbian:
sudo apt-get update
sudo apt-get upgrade
Copier le répertoire GIT:
cd
git clone git://git.drogon.net/wiringPi
Pour compiler la librairie, tapez:
cd ~/wiringPi
./build
Schéma de câblage
La librairie WiringPi utilise sa propre numérotation des pins GPIO:
Vous pouvez retrouver cette configuration en tapant la commande
gpio readall
Code de base pour allumer une LED avec RaspberryPi
Une fois que la librairie est installée, vous pouvez écrire votre programme comme pour Arduino avec la fonction main() et les inclusions de librairies de base en plus.
#include <iostream> #include <wiringPi.h> using namespace std; int ledPin = 29; //Correspond à la pin 40 void setup(){ pinMode(ledPin,OUTPUT); cout<<"Hello World" << endl; } void loop(){ digitalWrite(ledPin,HIGH); delay(100); digitalWrite(ledPin,LOW); delay(100); cout<<"Blink the LED" << endl; } int main(void)//(int argc, char **argv) { if(wiringPiSetup()<0){ cout<<"setup wiring pi failed"<<endl; return 1; } setup(); while(1){ loop(); } return 0; }
Pour que la compilation fonctionne dans Geany, dans le menu Build>Set Build Commands, dans la case Command correspondant à Build tapez : g++ -Wall -o « %e » « %f » -|wiringPi. Le programme pourra alors compiler et s’exécuter correctement.
Attention: Certaines librairies de l’IDE Arduino ne sont pas compatibles avec le Raspberry Pi.
Sources
- Accéder au GPIO en C++
- C++ library WiringPi.h for Raspberry Pi
- Programmer le Raspberry Pi avec le Arduino IDE
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie