CLion et PateformIO au lieu d'Arduino IDE

Si vous êtes habitué à utiliser les IDE (Environnement de Développement Intégré) d'IntelliJ, comme Android Studio, PHPStorm, PyCharm, et que vous programmez aussi sous Arduino IDE, vous sentez bien la différence.

L'éditeur proposé pour programmer des Arduino, ESP8266, ESP32 et autres microcontrôleurs (uC), même s'il est gratuit, ne propose vraiment pas d'outils modernes comme l'affichage syntaxique, la complétion des mots, les templates...

Plateforme IO est un environnement libre et indépendant des fabricants de microcontrôleurs (uC)(Microchip, Texas Instruments, Arduino, STmicroelectronic,...) qui permet de compiler, de programmer (flasher) les uC et de debugger, dans un environnement unifié et sans les outils propriétaires des fabricants.

Il permet donc d'avoir un seul environnement pour différentes plateformes.

Il ne dispose pas de son propre éditeur (IDE) et utilise pour ça un plugin dans un IDE.
Le plus utilisé est Visual Studio Code (VSCode) de Microsoft et qui est gratuit.

Pour l'intégrer, il faut télécharger un plugin et suivre les étapes indiquées ici :

L'intégration est très bien faite.

Cependant, pour ceux qui préfèrent les IDE d'IntelliJ, il y a un IDE pour langage C/C++ qui s'appelle CLion.
Il permet d'éditer des programmes en C/C++, de les compiler, debugger, éditer une BDD MySQL ou autres, des fichiers JSON, html, JS,...
Il utilise les compilateurs installés sur le PC (GCC, MS Visual Studio,...).

Il y a aussi un plugin pour PlatformIO à installer afin qu'on puisse utiliser CLion pour compiler pour Arduino ou tout autre uC qui est supporté par PlatformIO.
Cependant, cette intégration est moins bien faite que celle avec VSCode.

Le but de cet article est de vous aider à faire cette installation.
On se base sur ce qui est dit dans la documentation officielle :

mais il y a quelques astuces que j'ai découvertes pour que cela puisse marcher correctement.

Il faut donc suivre les étapes décrites ici mais à chaque fois, je dirai ce que j'ai du ajouter ou modifier pour que ça marche pour moi.
N'hésitez pas à laisser des commentaires pour m'indiquer si vous avez trouvé une solution différente.

J'utilise les versions à ce jour, c'est à dire :
CLion-2020.1  (la version pro pour enseignants est gratuite)
PlateformIO 4.3.3 (libre)

Mon but est de programmer des Wemos (ESP8266), Lolin32 (ESP32) et des Arduino nano avec CLion / PlatformIO (pio)

Un fois qu'on a installé CLion et le plugin PlatformIO, malheursement, il n'a pas téléchargé les utilitaires PlatformIO (pio)

J'installe et utilise alors VSCode pour faire la même chose, donc installer le plugin et j'essaye de créer un projet PlatformIO.
Il télécharge ainsi toute la bibliothèque et les utilitaires nécessaires : 
c:\Users\moncompte\.platformio\
et les exécutables sont dans :
c:\Users\moncompte\.platformio\penv\Scripts\

Si vous ne voulez pas utiliser VSCode, vous pouvez installe les utilitaires PlatformIO (pio) à la main si vous avez Python.exe déjà installé :
c'est expliqué ici : https://docs.platformio.org/en/latest/core/installation.html#local-download-mac-linux-windows

Il suffit de télécharger le fichier https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
puis de lancer la commande
python.exe get-platformio.py

[
Si vous voulez utiliser VSCode, libre à vous, vous créez un projet, cherchez par exemple Wemos D1 et alors il va passer du temps à télécharger et installer les outils de compilation Espressif8266 et de flashage des Wemos / ESP8266
De même si vous choisissez ESP32 ou Lolin32 ou Arduino Nano, VSCode va télécharger et installer dans :
c:\Users\moncompte\.platformio\platforms\     les configurations disponibles
et
c:\Users\moncompte\.platformio\packages\    les outils de compilation et de flashage
]

J'avais essayé d'installer les plateforme avec CLion, ça ne marchait pas, donc je les ai installées sous VSCode.

A chaque fois que je voulais créer des projets avec CLion sur ces plateforme, il ne les trouvait pas les configurations / plateformes de uC.
La solution était (une fois que les outils de PIO étaient installés via VSCode) d'ajouter au chemin de recherche (path de Windows) de l'utilisateur moncompte : 
c:\Users\moncompte\.platformio\penv\Scripts\ 

A partir de ce moment, tout allait bien sur CLion
Donc on peut créer des projets.
Il faut tout de suite modifier le fichier source, du répertoire src en .cpp et non pas .c
Comme indiqué sur :
https://docs.platformio.org/en/latest/integration/ide/clion.html

il faut éditer les configruations d'exécution et supprimer le Build, pour qu'il ne compile pas deux fois, car pio va déjà appeler la compilation

Il y a donc les outils de compilation et de programmation (flashage ou upload).
Je n'ai pas encore essayé le debuggage qui ne marchait pas sur ESP32, peut être qu'il marche sur Arduino nano.

Pour pouvoir ajouter des librairies, il faut utiliser le serveur web de PIO mais comme, il y a encore un bug d'intégration dans CLion, il faut lancer à la main le serveur à partir de la fenêtre Terminal de CLion 

platformio -c clion home

ou alors du menu de CLion / Tools / PlateformIO / Home
une fois qu'on a fini on fait Tools / PlateformIO / Re-Init

il lance alors une fenêtre de navigateur web sur le serveur de PIO et on peut chercher les librairies Arduino de notre choix pour les installer :


L'installation se fait dans :
c:\Users\moncompte\.platformio\lib\

On peut alors comparer avec celles d'Arduino IDE dans :
c:\Users\moncompte\Documents\Arduino\libraries\

Pour compiler on clique sur le marteau vert
et pour Uploader (flasher ou programmer la mémoire flash du uC pour être plus correct), il faut cliquer sur le bouton vert Play, en veillant à ce que la configuration PlatformIO Upload soit activée dan le rectangle à gauche.

On peut se servir du moniteur Série de CLion, en choisissant la vitesse et le port en bas à droite et en cliquant sur l'icone de connexion..


Voilà une capture de l'IDE pour ESP32 avec les fenêtre d'édition du code, de la page HTML du serveur Web que je suis entrain d'implanter sur l'ESP32 : https://github.com/blotfi/e-nefs
On a donc un vrai environnement intégré digne de ce nom.

[Edit]
Pour la reconnaissance syntaxique, CLion utilise un compilateur installé sur le PC, MS Visual Studio ou MinGW+GCC
et il vaut mieux installer ce dernier (suivre ce lien https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html)
pour ne pas avoir ce problème :
https://youtrack.jetbrains.com/issue/CPP-20192

Bonne programmation et restez confiné !



Commentaires

Posts les plus consultés de ce blog

Position du Soleil et SalatTime pour Arduino

RTC, SalatTime et Arduino

Mod DJT FrSky pour Telemetry via Bluetooth / Android Phone