Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

Arduino Tools VS Code start

From Aino Wiki

Jump to: navigation, search

VS Code corredato da opportuna estensione, è una delle più valide alternative che si prestano a sostituire l'IDE di Sviluppo di Arduino fondamentalmente per i seguenti motivi:

  • Gestione separata delle librerie da integrare negli sketch;
  • Disponibilità dell'intellisense direttamente nell'ide;
  • Possbilità di usufruire dell'IA Copilot per lo sviluppo e aiuto alla programmazione.

Estensione - PlatformIO

Video di Paolo Aliverti qui
Presupponendo sia già installato Visual Studio code si installeranno le seguenti tre estensioni;

  • dedicata a C++ "ms-vscode.cpptools*"
Arduino VSCode Extension 01.jpg
  • Per usare il Serial Monitor:
Arduino VSCode Extension 02 Serial Monitor.jpg
  • E soprattutto PlatformIO che è dedicata alla programmazione di microcontrollori come Arduino e compatibili:
Arduino VSCode Extension 03 PlatformIO.jpg

Si installeranno diverse componenti ed al termine chiederà di far ripartire VS Code e dopodiché si avrà una nuova icona di un alieno sulla colonna sinistra dell'IDE VS Code.

Configurazione

  • Converrà scegliere preventivamente una cartella dedicata in cui si organizzeranno tutti i progetti dedicati.
  • NOTARE che gli sketch non avrà più estensione .ino ma come un applicativo C++, ovvero .cpp

Creazione nuovo progetto

Arduino VSCode PlatformIO 05.jpg
Scegliendo di inserire tutti i progetti così creati in una cartella, es VS_Code, notare che si toglie la spunta sulla checkBox accanto a "Location" al fine di averne libertà:
Arduino VSCode PlatformIO 06.jpg

La predisposizione sarà come segue:

Arduino VSCode PlatformIO 07.jpg

NOTA:

  • la prima volta impiega un po' di tempo perché scarica l'ambiente di sviluppo, compilatore.
  • le impostazioni quali ad esempio la scheda Arduino da utilizzare per il progetto, sono nel file "platformIO.ini"

Il codice si trova nella cartella src, notare che non si ha più il file principale con estensione *.ino ma abbiamo main.cpp che avrà la stessa funzione.
Il file main.cpp avrà definito in chiaro il riferimento al file di header/libreria Arduino.h che nell'IDE di Arduino era un default non visualizzato, l'inclusione avviene con la direttiva #include.

Codice di default

Noteremo con piacere l'intellisense su ogni funzione.

#include <Arduino.h>
 
// put function declarations here:
int myFunction(int, int);
 
void setup() {
  // put your setup code here, to run once:
  int result = myFunction(2, 3);
}
 
void loop() {
  // put your main code here, to run repeatedly:
}
 
// put function definitions here:
int myFunction(int x, int y) {
  return x + y;
}
Compilazione\Build
Arduino VSCode PlatformIO 08 compilazione.jpg

Upload su pispositivo
ATTENZIONE, la prima volta installa automaticamente delle librerie e fa altre cose di setup.

Arduino VSCode PlatformIO 09 Upload.jpg

Notare che l'uso del Serial Monitor è garantito dalla finestra in basso "Terminal" o, per chi ha installato l'estensione per VS Code "Serial Monitor" disporrà anche della finestra dedicata.

Serial Monitor

Quindi supponendo di aver installato l'estensione Serial Monitor, disponendo del seguente codice che fa uso dell'output seriale:
#include <Arduino.h>
 
int counter = 0;
 
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}
 
void loop() {
  Serial.print("Counter: ");
  Serial.println(counter);
 
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
  delay(500);
  counter++;
}

Se non si avesse installata questa estensione l'output sarebbe comunque disponibile nella filestra "TERMINAL".
Dopo aver uplodato lo sketch, cliccare sul pannello "Serial Monitor", cliccare su "Start Monitoring":

Arduino VSCode PlatformIO 10 SerialMonitor 01.jpg

Quindi l'output come consueto sarà visibile:

Arduino VSCode PlatformIO 10 SerialMonitor 02.jpg

Gestire Librerie

A differenza di Arduino IDE qui le librerie sono segregate nel progetto corrente.
Ogni progetto sarà legato alle sue librerie e non si corre il rischio di avere improvvisamente un aggiornamento che non fa funzionare più i vecchi progetti, è un sistema più razionele.
Tenere in conto che poi il codice si potrà conservare con Git ed avere sempre una fotografia dello stato del codice sorgente coerente.

Librerie Custom

Il seguente schema dalla documentazione di PlatformIO spiega l'organizzazione di esempio di due librerie incluse in un progetto tipo:

Arduino VSCode PlatformIO 11 Librerie 01.jpg

Ad esempio se si dispone di una libreria custom da aggiungere al progetto corrente non si agirà andando a ricercarla nelle librerie previste (PIO Home\"Libraries") ma sotto la cartella "lib" si creerà una nuova cartella che avrà dei nuovi files che comporranno la libreria (spesso si trovano già organizzati nel progetto scaricabile da GitHub).

Libreria Custom Platformio 01.jpg

Il riferimento nello sketch, #include, non deve neanche includere il percorso basta seguire quanto è indicato in un file di esempio della libreria custom che si importa.

Libreria Custom Platformio 02.jpg

Librerie Standard

Nel caso si debba aggiungere una libreria di quelle autorizzate e censite in PlatformIO:

Arduino VSCode PlatformIO 11 Librerie 02.jpg

La pagina che si apre ha persino un codice di esempio per dare una idea della libreria che si fa ad installare, selezionarla e cliccare su "Add to project":

Arduino VSCode PlatformIO 11 Librerie 03.jpg

Si può ancora scegliere a quale progetto aggiungerla, nella DDL c'è l'elenco di opzioni già compilate basate sulla storia delle attività.

Arduino VSCode PlatformIO 11 Librerie 04.jpg

Si apre di default sul file platformIO.ini perché questo ha la configurazione delle librerie necessarie per il progetto.

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:uno_r4_wifi]
platform = renesas-ra
board = uno_r4_wifi
framework = arduino
lib_deps = marcoschwartz/LiquidCrystal_I2C@^1.1.4
Percorsi

La cartella dove sono collocate queste librerie appena installate è:

    Path_CartellaApplicazione\.pio\libdeps\nomeDeviceNomeLibreria

TIPS Un trucco per accedervi velocemente è quello di posizionarsi sul testo del metodo\funzione\oggetto e poi premere il tasto F12, arirà un nuovo tab con il file sorgente in cui è implementato il metodo\funzione\oggetto e così se ne può visualizzare\modificare il contenuto.

Avanzate

PlatformIO ha le risorse principali di Arduino installate qui:
C:\Users\utenteCorrente\.platformio\packages\framework-arduinorenesas-uno
Molti degli #include principali sono nella seguente cartella:
C:\Users\utenteCorrente\.platformio\packages\framework-arduinorenesas-uno\cores\arduino

Arduino VSCode PlatformIO 11 Librerie 06.jpg

Le librerie principali sono lella seguente sottocartella:
C:\Users\utenteCorrente\.platformio\packages\framework-arduinorenesas-uno\libraries

Arduino VSCode PlatformIO 11 Librerie 05.jpg

Alcuni esempi fondamentatli son qui:
C:\Users\utenteCorrente\.platformio\platforms\renesas-ra\examples

Arduino VSCode PlatformIO 11 Librerie 07.jpg

Boards supportate

Sono tantissime le schede supportate alcune non trovano corrispondenza mnemonica ma è perché si chiamano in altro modo.

Nome scheda ufficiale o compatibile Nome Board in PlatformIO etc
Arduino Uno R3 Arduino Uno -
Arduino Uno R4 WiFi Arduino Uno R4 WiFi -
Arduino Uno Mini
Arduino Mini ATmega168
Arduino Mini ATmega328
Arduino Micro
Arduino Nano ATmega168
Arduino Nano ATmega328
Arduino Mega or Mega 2560 ATmega1280
Arduino Mega or Mega 2560 ATmega2560 (Mega 2560)
Arduino Yun
Arduino Yun Mini

Mappa e Link


Arduino Tools di sviluppo | Arduino indice | Arduino | Arduino C++


Domotica | Dizionario di Elettronica | IDE VS Code


Parole chiave:

Author