PlatformIO

Présentation, installation et premier projet

1 - Introduction

PlatformIO est une alternative à l’IDE Arduino permettant de développer des objets connectés ou du code pour micro-contrôleur d’une manière plus générale. PlatformIO n’est pas un éditeur de code : c’est un ensemble d’outils (toolchains) sous la forme de plugin pour Visual Studio Code (ou VSCode) de Microsoft et Atom de GitHub (également Microsoft !).

Atom étant en perte de vitesse en terme de développement, nous vous conseillons de vous orienter vers VSCode. VSCode est un éditeur de code léger et gratuit pour Windows, macOS, Linux. Il permet de réaliser des projets de développement sur quasi n’importe quel support.

Télécharger VSCode

VSCode à l’avantage de s’intégrer parfaitement dans une multitude de projet de développement et d’être entièrement personnalisable via des extensions.

2 - VSCode

Visual Studio Code est un éditeur de code extensible développé par Microsoft pour Windows, Linux et macOS. Les fonctionnalités incluent la prise en charge du débogage, la mise en évidence de la syntaxe, la complétion intelligente du code, les snippets, la refactorisation du code et Git intégré.

2.1 - Installation classique

L’installation de VSCode est très simple il vous suffit de télécharger l’installateur VSCode puis de lancer l’installation.

Il est possible de se créer un compte VSCode afin de pourvoir retrouver sur différentes machines son envirronnement favoris.

Par la suite, à vous d’installer les extensions que vous désirez en fonction des projets que vous réalisez. Dans notre cas, nosu allons surtout nous focaliser sur l’installation de PlatformIO poru l’utilisation avec des µC.

2.2 - Installation portable

Il est également possible d’installer VSCode en version portable. Ceci vous permet de stocker et de garder avec vous une version spécifique et personnelle de VSCode sans avoir à l’installer sur un ordinateur. Ceci peut être utile dans le cas d’utilisation sur des machines de l’école (droit admins) ou pour des projets spécifiques.

Pour ce faire, la documentation en ligne de VSCode explique la marche à suivre.

3 - PlatformIO

3.1 Installation

Que ce soit sur la version classique ou portable, la procédure est la même :

Etape 1 : installer PlatformIO

image

Dans VSCode, allez dans Extension dans la barre de menu à gauche

image

Recherchez l’extension PlatformIO et cliquez sur Installer

image

Une fois installé, l’icone PlatformIO apparait sur la barre de menu gauche.

A ce stade, PlatformIO est installé. On va maintenant terminer l’installation en ajoutant les extensions necessaire à l’utilisation d’une carte Arduino.

Etape 2 : ajouter la platform AtmalAVR

image

Cliquez sur le menu PlatformIO, un nouveau menu apparait. cliquez sur Open.

image

La fenêtre de démarrage de PIO s’affiche. On va commencer par rajouter un Platform. Cliquez sur Platforms dans la barre de menu de gauche.

image

Cliquez sur Embedded et recherchez AtmelAVR et cliquez sur le lien AtmelAVR.

image

Cliquez sur Install et attendez la fin de l’installation.

Vous pouvez maintenant créer votre premier projet.

3.2 Premier Projet

Etape 2 : ajouter la platform AtmalAVR

image

Allez dans le menu Home de PIO, et cliquez sur New Project. Dans la fenêtre qui s’affiche (Project Wizard), indiquez

  • un nom de projet
  • la carte que vous souhaitez programmer (Board)
  • Le Framework à utiliser (Arduino) Vous pouvez spécifier un chemin pour votre projet ou garder celui par défaut. Cliquez ensuite sur Finish.

Votre projet est créé. Vous pouvez voir sur le bandeau de gauche l’arborescence du proejt et sur le panneau de droite les onglets avec le contenu des fichiers ouverts (pour le moment seul le platformio.ini est ouvert).

Dans l’arborescence, dans le dossier src, vous trouverez le fichier main.cpp qui continent déja la structure minimale pour la compilation du code avec le framework Arduino.

Si votre carte est connectée en USB à votre ordinateur, vous pouvez cliquez en bas à droite sur PlatformIO: Build puis sur PlatformIO: Upload.

La compilation ne devrait pas afficher d’erreur :

Et le transfert dans la carte devrait se faire sans soucis

Si vous disposez d’une carte Arduino UNO standard ou d’une carte Maker UNO, une led d’état est disponible sur la pin 13 de la carte. Vous pouvez donc tester le code ci-dessous afin de faire clignoter la led sur la pin 13 :

#include <Arduino.h>

const int pinLed = 13;

void setup() 
{
  pinMode(pinLed,OUTPUT);
}

void loop() 
{
  digitalWrite(pinLed,HIGH);
  delay(500);
  digitalWrite(pinLed,LOW);
  delay(500);
}

3.3 Installation d’un librairie

Si vous avez besoins d’installer une librairie pour votre projet, vous pouvez le faire directement depuis l’interface de PlatformIO. Pour ce faire :

image

Dans le menu Libraries de PIO, tapez la librairie que vous recherchez et cliquez dessus. Une fois ce ci fait, cliquez sur Add to Project. Note que vous pouvez choisir qu’elle version de librairie vous souhaitez installer.

image

Choisissez le projet auquel vous souhaitez ajouter la librairie, puis cliquez sur add.

image

De retour dans votre projet, vous pouvez retrouver votre librairie dans .pio\libdeps\uno\nomDeLib.

3.4 Usage du port série

La majorité des cartes “type Arduino” sont capables de communiquer en série via l’USB (c’est le cas des cartes arduino UNO). Il est donc possible de recevoir et d’envoyer des instructions via ce port et de les afficher sur un terminal de l’ordinateur hôte.

Pour se faire nous allons établir une communication série entre le µC et le PC. Dans notre exemple, nous allons envoyer une trame (un sinus) et nous allons l’afficher sur le moniteur série.

La liaison série permet une communication point-à-point grâce à deux voies:

  • TX : La transmission - C’est la voie qui transmet le message à son interlocuteur
  • RX : La réception - C’est la voie qui va recevoir un message de l’interlocuteur

Etant donné que les voies sont spécifiques et associées à des pins du µC (sur une UNO : RX = pin0 et TX = pin1) il ne faut pas oublier de croiser le fils de communication comme montré dans cet exemple :

Afin de communiquer, les deux périphériques doivent être synchronisés sur la même vitesse de transmission appelée bauds.

Si vous souhaitez en savoir plus sur la liaison série : La liaison série - Zeste de savoir

Pour tester le port série, on pourra utiliser le code suivant :

#include <Arduino.h>
float i=0;

void setup() 
{
  Serial.begin(115200);
}

void loop() 
{
  i+=0.1;
  Serial.print(">sin:");
  Serial.println(sin(i));
  delay(10);
}

  • Serial.begin(115200) : Initialise une communication série à 115200 bauds
  • Serial.print(">sin:") : Envoi sur le porte série la chaine de caractères ">sin:"
  • Serial.println(sin(i)) : Envoi sur le porte série le résultat de l’opération sin(i) avec un retour à la ligne à la fin

En savoir plus sur l’utilisation du port série dans le Framework arduino : référence Arduino - Serial

Pour que le moniteur série puisse lire le porte série, il faut donner à platformIO l’information de vitesse de la communication en ajoutant la ligne suivante monitor_speed = 115200 dans le fichier de configuration platformio.ini

Vous pouvez ensuite Serial Monitor dans la barre de menu en bas à gauche :

Le moniteur série s’ouvre et vous affiche l’ensemble des données transmises entre votre carte et votre ordinateur.

Problème : les données sont transmises toutes les 10ms. Elles sont donc difficilement visibles et descriptibles dans le terminal série.

Vous pouvez utiliser d’autres solutions pour visualiser plus efficacement les données transmises via le port série. Pour une description des ressources afin d’interagir avec le port série, suivez ce lien :