Arduino tarkvara asemel VS Code + PlatformIO kasutamine

1. Eesmärk

Käesoleva juhendi eesmärk on anda õppejõududele ja tudengitele alternatiiv Arduino IDE kasutamisele olukorras, kus Arduino tarkvara kasutamine administratiivsete õigustega ei ole soovitav või võimalik. Alternatiivse lahendusena kasutatakse Visual Studio Code’i ja selle laiendust PlatformIO IDE, mis toetab Arduino raamistikku ning võimaldab kirjutada, kompileerida, laadida üles ja jälgida jadaporti ühest keskkonnast. PlatformIO ametlik dokumentatsioon kirjeldab VS Code’i põhiseks IDE-ks ning märgib, et PlatformIO Core on VS Code’i laienduse töövoogu sisse ehitatud. VS Code ametlik Windowsi paigaldusjuhend kirjeldab ka kasutajapõhist installi (VSCodeUserSetup), mis paigaldatakse kasutaja profiili alla. (docs.platformio.org)


2. Miks kasutada VS Code + PlatformIO lahendust?

VS Code + PlatformIO sobib õppetöös hästi, sest:

  • võimaldab kasutada kaasaegset koodiredaktorit;

  • toetab Arduino-põhiseid projekte;

  • haldab teeke ja projektiseadeid projektipõhiselt;

  • sisaldab kompileerimise, üleslaadimise ja jadapordi tööriistu;

  • ei eelda PlatformIO Core eraldi käsitsi paigaldamist, kui kasutatakse VS Code’i laiendust. (PlatformIO Documentation)

VS Code on tasuta ja töötab Windowsi, macOS-i ja Linuxi peal. Windowsi puhul on olemas kasutajapõhine installer, mis paigaldab programmi vaikimisi kasutaja kodukataloogi alla. (Visual Studio Code)


3. Sihtgrupp

Juhend on mõeldud:

  • õppejõududele, kes koostavad labori- või projektijuhendeid;

  • tudengitele, kes programmeerivad Arduino või Arduino-ühilduvaid mikrokontrollereid;

  • IT-toele, kes soovib pakkuda Arduino IDE asemel hallatavamat alternatiivi.


4. Vajalik tarkvara

Paigalda järgmised komponendid:

4.1 Visual Studio Code

Laadi alla ja paigalda Visual Studio Code ametlikult veebilehelt. Windowsi puhul kasuta eelistatult kasutajapõhist paigaldajat VSCodeUserSetup. Microsofti ametlik juhend ütleb, et see paigaldatakse vaikimisi kausta C:\Users\{kasutaja}\AppData\Local\Programs\Microsoft VS Code. (Visual Studio Code)

PS Klassiarvutites paigaldatakse VS Code süsteemi kontekstis, kasutades paigaldajat VSCodeSetup. Sellisel juhul paigaldatakse programm vaikimisi kausta C:\Program Files\Microsoft VS Code.

4.2 PlatformIO IDE laiendus

Pärast VS Code’i paigalda PlatformIO IDE laiendus VS Code’i Extensions vaatest. PlatformIO ametliku juhendi järgi toimub paigaldus VS Code’i laienduste halduris ning eraldi PlatformIO Core install ei ole tavakasutuse jaoks vajalik. (PlatformIO Documentation)


5. Paigaldusjuhend

5.1 VS Code’i paigaldamine

  1. Ava VS Code’i ametlik allalaadimisleht.

  2. Laadi alla Windowsi kasutajainstaller.

  3. Käivita installer.

  4. Lõpeta paigaldus vaikeseadetega.

Microsofti juhendi kohaselt lisab paigaldus soovi korral VS Code’i ka PATH muutujasse ning install toimub kasutajapõhiselt, mitte süsteemitasemel. (Visual Studio Code)

5.2 PlatformIO IDE paigaldamine

  1. Ava VS Code.

  2. Vali vasakult Extensions.

  3. Otsi: PlatformIO IDE.

  4. Vajuta Install.

  5. Oota, kuni laiendus lõpetab vajalike komponentide seadistamise.

PlatformIO dokumentatsiooni järgi on just see soovitatud paigaldusviis VS Code’i kasutajatele. (PlatformIO Documentation)


6. Esimese Arduino projekti loomine

6.1 Uue projekti loomine

  1. Ava VS Code.

  2. Ava PlatformIO avaleht.

  3. Vali New Project.

  4. Sisesta projekti nimi.

  5. Vali sobiv plaat, näiteks:

    • Arduino Uno

    • Arduino Nano

    • Arduino Mega 2560

  6. Vali raamistikuks Arduino.

  7. Vajuta Finish.

PlatformIO kasutab projektipõhist seadistust failis platformio.ini, kus määratakse ära platvorm, plaat ja raamistik. (PlatformIO Documentation)

6.2 Projekti struktuur

Tüüpilises PlatformIO projektis on:

  • src/ – lähtekood

  • include/ – päisefailid

  • lib/ – projekti teegid

  • platformio.ini – projekti seadistus

See projektipõhine ülesehitus on üks peamisi erinevusi võrreldes klassikalise Arduino IDE sketši-põhise töövooga. (PlatformIO Documentation)


7. Näidisprogramm

Faili src/main.cpp võib lisada näiteks järgmise programmi:

#include <Arduino.h> void setup() { Serial.begin(115200); pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(500); }

Näide kasutab Arduino raamistikku PlatformIO projektis. PlatformIO ametlik quick start juhend kasutab sama tööpõhimõtet: lähtekood paigutatakse src kausta ning projekt ehitatakse ja laaditakse üles IDE kaudu. (PlatformIO Documentation)


8. Projekti seadistusfail platformio.ini

Näiteks Arduino Uno jaoks võib platformio.ini välja näha järgmine:

[env:uno] platform = atmelavr board = uno framework = arduino monitor_speed = 115200

See fail määrab ära:

  • kasutatava platvormi,

  • sihtplaadi,

  • raamistiku,

  • jadapordi kiiruse.

PlatformIO dokumentatsioon kirjeldab platformio.ini faili keskse projektikonfiguratsioonina. (PlatformIO Documentation)


9. Programmi kompileerimine ja üleslaadimine

9.1 Kompileerimine

Vali PlatformIO menüüst Build või kasuta alumisel tööriistaribal vastavat nuppu.

9.2 Üleslaadimine mikrokontrollerile

Ühenda plaat USB kaudu arvutiga ja vali Upload.

9.3 Jadapordi jälgimine

Vali Monitor, et avada serial monitor.

PlatformIO IDE for VS Code dokumentatsioon kirjeldab kogu seda töövoogu ühe integreeritud lahendusena. (PlatformIO Documentation)


10. Teekide lisamine

Teeke saab lisada kahel viisil:

  1. PlatformIO graafilise Libraries vaate kaudu;

  2. lisades sõltuvused faili platformio.ini.

Näiteks:

lib_deps = adafruit/Adafruit Unified Sensor adafruit/DHT sensor library

PlatformIO haldab teeke projektipõhiselt, mis aitab vältida olukorda, kus ühe projekti teegiversioon mõjutab teist projekti. PlatformIO dokumentatsioon rõhutab deklaratiivset ja korduvat töövoogu. (PlatformIO Documentation)


11. Võrdlus Arduino IDE ja VS Code + PlatformIO vahel

Teema

Arduino IDE

VS Code + PlatformIO

Teema

Arduino IDE

VS Code + PlatformIO

Kasutusmudel

lihtne sketši-põhine

projektipõhine

Koodi haldus

sobib väiksematele töödele

sobib hästi suurematele töödele

Mitme faili tugi

piiratum

tugev

Teekide haldus

globaalne/IDE-keskne

projektipõhine

Laiendatavus

piiratud

väga hea

Kasutajapõhine paigaldus

sõltub paketist

VS Code toetab ametlikult user installi

Arduino IDE ametlik dokumentatsioon keskendub lihtsale alustamisele ja sketšide kasutamisele, samas kui PlatformIO dokumentatsioon rõhutab projektipõhist arendust ja töövoogu. (PlatformIO Documentation)


12. Soovitus õppetööks

Õppetöös on soovitatav:

  • kasutada VS Code + PlatformIO lahendust laborites ja projektides;

  • hoida iga ülesanne eraldi projektina;

  • lisada kursuse materjalidesse valmis platformio.ini näited;

  • anda tudengitele ette minimaalne projekti struktuur.

See vähendab seadistuse erinevust tudengite arvutite vahel ja muudab projektid paremini hallatavaks.


13. Võimalikud probleemid

13.1 Jadaport ei avane

Kontrolli:

  • kas seade on ühendatud;

  • kas õige COM-port on kasutusel;

  • kas draiver on olemas.

13.2 Laiendus ei paigaldu

Kontrolli:

  • internetiühendust;

  • kas VS Code’i laienduste paigaldamine on asutuse arvutites lubatud.

13.3 Projekt ei kompileeru

Kontrolli:

  • kas board väärtus on õige;

  • kas kõik vajalikud teegid on lisatud;

  • kas kasutatakse Arduino jaoks sobivat raamistikku.

PlatformIO ametlikud juhendid käsitlevad nii paigaldust kui ka IDE töövoogu ning on esmased abimaterjalid probleemide lahendamisel. (PlatformIO Documentation)


14. Kokkuvõte

Kui Arduino IDE kasutamine ei ole sobiv administratiivsete õiguste või haldusnõuete tõttu, on VS Code + PlatformIO tugev ja tänapäevane alternatiiv. See lahendus toetab Arduino raamistikku, pakub projektipõhist töökorraldust ning kasutab VS Code’i, millel on ametlik kasutajapõhine Windowsi paigaldus. PlatformIO integreerub VS Code’i sisse ning ei nõua tavakasutuses eraldi Core’i käsitsi paigaldamist. (PlatformIO Documentation)


15. Kasulikud viited

Soovi korral võin järgmisena teha sellest ka lühema Confluence-versiooni koos nummerdatud sammudega või ametlikuma juhendi kujul, sobivana õppeasutuse siseveebi jaoks.