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