VsCode et Arduino

vscode-arduino


L'IDE Arduino est une excellente approche pour la programmation en langage C++ sur Arduino.

Visual Studio Code offre une autre approche de la programmation C++ sur Arduino


Si vous n'avez pas installé VsCode voir la page Visual Studio Code


Extension "Arduino"

vscode-arduino-install


Pour utiliser VsCode pour la programmation d'un Arduino, il faut installer l'Extension "Arduino"

Cliquer sur l'icône "Extension"

Rechercher "Arduino"

Installer l'Extension "Arduino for Visual Studio Code Microsoft"

Redémarrer VsCode



Configurer l'IDE Arduino

  • arduino-windows
  • arduino-linux
  • arduino-editeur-externe
  • arduino-grisé


Connecter votre Arduino sur un port USB de votre ordinateur

Ouvrir l'éditeur IDE Arduino

Relever la configuration de la carte Arduino  # Pour comparer avec VsCode

Type de carte: Arduino Uno

Port: COMx  # Exemple Com5  pour Windows
Port: /dev/ttyACLM0  # Exemple pour Linux

Programmateur: AVRISP mkII


Puis Fichier/Préférences

Cocher "Utiliser un éditeur externe"

Valider le cliquant sur [OK]


L'éditeur IDE Arduino est "grisé". Impossible de modifier un code


Configurer Visual Studio Code

  • arduino-config-board
  • arduino-uno-board
  • barre-etat
  • port-acm0-linux
  • port-com5-windows
  • programme-AVRISP_mkII
  • barre-etat-ok


Configuration de VsCode pour votre carte Arduino

Ctrl + Maj + P
Saisir "Arduino"
Puis sélectionner votre carte Arduino  
# Exemple Arduino Uno


Fermer l'onglet "Arduino Board Configuration"


Dans la barre d'état   # En bas/droite de VsCode

Configuration du Port

Cliquer sur <Select Sérial Port> et sélectionner le "Port Com"  # ComX pour Windows / /dev/ttyACM0 pour Linux

Configuration du logiciel

Cliquer sur <Select Programmer> et sélectionner le programme "AVRISP mkII"


La barre d'état doit afficher votre configuration

AVRISP mkII  # Programmateur
Arduino Uno  # Type de carte
Com5 ou /dev/ttyACM0  # Port de communication



Fichier exemple - Arduino

  • exmple
  • blink-exemple


Ouvrir un fichier exemple

Crtl + Maj + P
Saisir "Arduino"
Cliquer sur "Arduino Examples"
Ouvrir "Built-in Examples / 01-Basics / Blink"


Une autre fenêtre VsCode s'ouvre avec le code Blink






Présentation de la fenêtre VsCode - Arduino sous Windows

 Sous Windows 

Présentation de la fenêtre VsCode

Configurer:

Type de carte: Arduino Uno
Port: COM5 
# Port COM5 pour Windows - Ou votre port COM
Programmeur: AVRISP mkII


Pour présenter la fenêtre VsCode, ouvrir le fichier <Arduino - Examples / Built-in Examples / 01-Basics / Blink>

L'arborescence du code dans l'explorateur

BLINK_2  # Dossier contenant tout le code Blink (sous-dossier et fichier)
.vscode  # Dossier contenant les fichiers .json
{} arduino.json  # Fichier de configuration de la carte Arduino
{} c_cpp_properties.json  # Fichier de configuration des paramètres C et C++
Blink.ino  # Fichier .ino
Blink.txt  # Fichier .txt contenant les explications du code


Les boutons [Verify] et [Upload] sont en haut/droite  # Voir image ci-dessous

vscode-windows


{} arduino.json

Configuration:

Board: Arduino Uno
Port: COM5
Programmateur: AVRISP mkII
arduino-json-windows


{} c_cpp_properties.json

includePath et forcedInclude sont configurés automatiquement

Ecriture spécifique à l'environnement Windows: c:\\xxxx\\xxx\\etc ...

c_cpp_properties-json-windows


Blink.txt

Turn an LED on and off


blink-txt-windows

Présentation de la Fenêtre VsCode - Arduino sous Linux

 Sous Linux 

Présentation de la fenêtre VsCode

Configurer:

Type de carte: Arduino Uno
Port: /dev/ttyAMC0
# Port Com pour Linux
Programmeur: AVRISP mkII


Pour présenter la fenêtre VsCode, ouvrir le fichier <Arduino - Examples / Built-in Examples / 01-Basics / Blink>

L'arborescence du code dans l'explorateur

BLINK_2  # Dossier contenant tout le code Blink (sous-dossier et fichier)
.vscode  # Dossier contenant les fichiers .json
{} arduino.json  # Fichier de configuration de la carte Arduino
{} c_cpp_properties.json  # Fichier de configuration des paramètres C et C++
Blink.ino  # Fichier .ino
Blink.txt  # Fichier .txt contenant les explications du code


Les boutons [Verify] et [Upload] sont en haut/droite  # Voir image ci-dessous

 SI ERREUR ... 

Lorsque le fichier .ino est en  rouge  , cela indique qu'il y a des erreurs

Le chiffre indique le nombre d'erreur  # 8 erreurs dans l'exemple ci-dessous

Le nombre d'erreurs est aussi indiqué dans la barre d'état en bas/gauche 

Les erreurs sont repérées dans le code pas les ~~~~~~~~~~~~~~~~~ en rouge


vscode-presentation


{] arduino.json

Configuration:

Board: Arduino Uno
Port: /dev/ttyACM0
Programmateur: AVRISP mkII


arduino-json-linux


{} c_cpp_properties.json

includePath et forcedInclude configuré automatiquement

Ecriture est spécifique à l'environnement Linux: /home/user/xxxxx/etc ...

c_cpp_properties-json-linux


Blink.txt

Turn an LED on and off


blink-txt-linux

Correction des erreurs

erreur-non-defini


Glisser la souris sur l'erreur, un message s'ouvre indiquant le type d'erreur

identificateur "pinMode" non défini

Cela veut dire de VsCode ne reconnait pas cette commande ( Oups !)


Lorsque vous programmez avec l'IDE Arduino, il faut en fonction de votre code inclure des librairies.

Avec IDE Arduino, la librairie <Arduino.h> est inclue automatiquement

Mais avec VsCode, vous devez inclure la librairie <Arduino.h>

#include <Arduino.h>  # En debut de code

Mais ce n'est pas tout, vous devez indiquer à VsCode ou se trouve la librairie <Arduino.h>

Chemin Linux: /home/user/.arduino15/packages/arduino/hardware/avr/1.xx_version_IDE_Arduino/core/Arduino/

Pour cela, il faut modifier le fichier c_cpp_properties.json et dans section "includePath", ajouter la ligne de localisation de la librairie <Arduino.h>

"/home/claude/.arduino/**"  # Sous Linux

ou

"/home/claude/.arduino15/packages/arduino/hardware/avr/1.8.2/**"  # Sous Linux


"includePath": [
                "${workspaceRoot}",
                "/home/claude/Téléchargements/Arduino/arduino-1.8.12/hardware/tools/**",
                "/home/claude/Téléchargements/Arduino/arduino-1.8.12/libraries/**",
                "/home/claude/Documents/Arduino/hardware/tools/**",   
                "/home/claude/Documents/Arduino/libraries/**",   # Ajouter une virgule à la fin de cette ligne
"/home/claude/.arduino15/**"    # Ajouter cette ligne (sans la virgule à la fin
 ],                                            # ../.arduino15/** => tout le chemin après .arduino15


c-cpp_properties-OK

Verify

Verifier du code

Cliquer sur l'icône "Verify"

Le message "Finished verify sketch: Blink.ino" lorsque la vérification est terminée


arduino-uno-verify

Upload

Téleverser le code

Cliquer sur l'icône "Upload"

Le message "Uploaded the sketch: Blink.ino" lorsque le téléversement est terminé


arduino-uno-upload

Configuration pour un Esp32

  • esp32
  • esp32-ide-arduino
  • esp32-vscode
  • esp32-config


Assurez-vous que l'Esp32 soit correctement reconnu sous Windows ou Linux

Informations et configuration Esp32 voir les pages


Connecter l'Esp32 à votre ordinateur (Port USB)

Configuration de la carte

Ctrl + Maj + P
Saisir "Arduino Config Board"
Renseigner "Esp32"
Sélectionner "Esp Dev Module"


Configurer la carte Esp32  # Voir image ci-contre

Select board: ESP32 Dev Module
PSRAM: Disabled
Partition: Default 
CPU Frequency: 240 Mhz
Flash Mode: QIO
Flash Frequency: 80Mhz
Flash Size: 4Mb (32Mb)
Upload Speed: 115200  
# Modifier
Core Debug Level: None


Configurer le port

Port: /dev/ttyUSB0  # Modifier


Configurer le Programmeur

Programmeur: AVRISP mkII


Blink led pin23 - Esp32

  • esp32-blink-code
  • esp32-verify
  • esp32-upload


Test de Blink avec un Esp32
Connexion d'une led et une resistance de 220 Ohms sur la pin 23 de l'Esp32


Sélection le code Blink

Le code

/* Test Blink sur Esp32 */
#include <Arduino.h>

/* Led sur pin 23 */
int led=23;   #  Ajouter Pin 23 de l'Esp32

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

void loop() {
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}


Vérifier et téléverser dans l'Esp32

La led sur pin 23 clignote