Accueil » Contrôle du GPIO : Led en Java

Contrôle du GPIO : Led en Java

Contrôle d’une LED sur un Raspberry avec le GPIO en Java

Le but final de cette partie de projet est de développer une interface Java pour piloter un robot. Après avoir fait le nécessaire au niveau des installations sur le Raspberry (voir page ici) et sur le PC Windows (voir page précédente), nous pouvons maintenant faire un premier test en essayant de contrôler en Java une LED qui est branchée au Raspberry sur un port GPIO.

Ce premier test nous familiarisera avec les notions principales que nous allons aborder dans ce projet.

Montage de la LED sur le GPIO du Raspberry

Nous allons donc dans un premier temps faire le montage d’une LED sur un Raspberry. Nous avons utilisé une LED branchée sur le port #18 du GPIO (pin numéro 12) avec une résistance de 330 Ohms entre la patte la plus longue de la LED et le Raspberry. La patte la plus courte de la LED est branchée sur la masse du Raspberry (GND : Ground). Le port GPIO du Raspberry est relié à la platine d’essai par une nappe.

Montage d'une LED sur une platine

Il faudra faire attention lors de la déclaration de cette LED notamment dans la nomenclature utilisée pour les pins du GPIO. En Java, nous utilisons les librairies WiringPi. Le nom des ports GPIO est donc spécial à cette librairie. La correspondance est obtenue sur le lien suivant « https://pi4j.com/1.2/pins/model-3b-rev1.html ».

Ports GPIO du Raspberry
Correspondance du numéro des ports en WiringPi

Par exemple, la LED est branchée sur la pin numéro 12, elle est marquée d’un #18 (GPIO 18 (PCM_CLK)) sur notre T qui relie la platine à la nappe mais elle correspond au port numéro 01 de la librairie WiringPi.

Code en Java selon la méthode MVC pour controler le GPIO du Raspberry

Afin de commencer à coder, nous avons créé un projet « TestGPIOLibrairies » sur Eclipse. Nous y avons ajouté un package nommé « mvcRobot ». Ensuite, nous créons 4 classes selon la méthode MVC (voir page précédente) :

  • AppInterfaceLED.java

  • Controller.java

  • Robot.java

  • View.java

 Ces 4 fichiers sont téléchargeables ci-dessous. L’archive contient les 4 fichiers au format java.

mvcRobot

4 files     2.44 KB     29/01/2021

Nous commençons le développement par la création de l’interface. Elle est facilitée par l’utilisation de l’extension WindowBuilder que nous avons installé sur Eclipse à partir du lien suivant  » https://www.eclipse.org/windowbuilder/download.php ».

Interface développée avec les librairies Java Swing

Java

Ensuite, nous passons à la classe Robot. Elle sera ici notamment constituée des attributs gpio et led18.

Java

Il s’en suit la création classe Controller qui met en forme les actions sur les boutons par exemple.

Java

Enfin, tout cela est coordonné dans un main.

Java

Compilation et exécution du code Java

Maintenant, nous compilons le main sur Eclipse en l’exécutant, toujours sur le PC Windows. Evidemment, des erreurs apparaissent parce que ce fichier ne peut pas s’exécuter sur Windows sans les ports GPIO. Mais ce package apparait cette-fois dans le répertoire /bin du projet. En effet, les fichiers « .class » compilés sont ajoutés dans ce répertoire. Avec WinSCP, nous transférons le dossier du package compilé sur le Raspberry. Il ne nous reste plus qu’à lancer le programme avec la commande suivante :

Execution de notre programme "Controle d'une LED"

Terminal

Le résultat de ce premier test est visible sur la vidéo ci-dessous : 

Nous pouvons donc commencer le développement de notre application Java pour piloter un robot et afficher le contenu d’une caméra thermique placée à l’avant.