Ik kreeg hier laatst het verzoek eens op te schrijven hoe ik mijn ontwikkelomgeving heb ingericht met Platform IO, in plaats van het gebruik van de Arduino IDE. Ik wil graag proberen aan dit verzoek te voldoen. Omdat ik het idee heb dat het publiek op dit forum nogal gevarieerd is voor wat betreft achtergrondkennis en interesse is dat eigenlijk nog best moeilijk. Dus ik hoop op wat feedback, in de geest van "nuttig, kun je dat en dat ook eens uitleggen" tot "kompleet zinloos dit, stop er maar mee" en alles ertussenin.
Editor vs IDE
Het lijkt mij goed om eens te beginnen met het verschil tussen een "editor" en een "IDE" uit te leggen. Op het moment dat je iets gaat programmeren, en je hebt bedacht hoe dat moet, moet je de code die je bedacht hebt gaan intypen. Die code is over het algemeen in een taal die de processor in je computer niet begrijpt. Je hebt dus een stukje software nodig wat die taal wel begrijpt, en het kan omzetten in iets waar je processor wel mee overweg kan, een "compiler" of "interpreter". Tenslotte zul je die code naar je Arduino moeten sturen, zodat je Arduino er mee aan de slag kan.
Een "editor" is een programmaatje waarmee je die eerste taak, het intypen van die code, voor elkaar kunt krijgen, en niets meer. Een simpel voorbeeld van een editor is "notepad", wat iedereen met een Windows computer wel kent. De mogelijkheden daarvan zijn vrij beperkt, dus er er bestaan ook editors die wat meer mogelijkheden, comfort en luxe bieden, zoals "wordpad", "notepad++", en voor de dinosauriers onder ons "vi" en "emacs". Het voordeel van zo'n editor is dat je er elke willekeurige tekst mee kunt intypen, alle programmeertalen, simpele briefjes, Engels, Nederlands, Duits, etc, alles wat je maar kunt bedenken, het kan allemaal in dezelfde editor, handig, want je hoeft alleen maar te leren hoe die ene editor werkt.
Maar, het nadeel is natuurlijk dat het daar bij blijft. Allerlei andere taken die je moet uitvoeren om je programma op de Arduino te laten werken kun je niet met zo'n editor uitvoeren. Die zal je op een andere manier moeten aanpakken, vaak middels het intypen van ingewikkelde commando's in cmd of powershell. Het kan, maar iets voor de echte diehards. Dat is waar een "IDE" oftwel een "Integrated Development Environment" om de hoek komt kijken. Zo'n IDE bevat alles wat je nodig hebt om voor een bepaald systeem je ontwikkelwerk te doen. Met behulp van de Arduino IDE kun je dus alle taken uitvoeren die nodig zijn, intypen van je code, compileren, en naar je Arduino sturen en genieten van het resultaat. Maar, de Arduino IDE is wel specifiek gemaakt voor het programmeren van Arduinos en Arduino-achtigen. Als je ook nog wel eens iets anders programmeert zul je daar een andere IDE voor moeten gebruiken.
VS Code
Dat is waar voor mij Visual Studio Code, in het vervolg afgekort tot VSCode, om de hoek komt kijken. Dit is in principe een editor, maar deze is middels het toevoegen van extensies uitbreidbaar. Er zijn onnoemelijk veel extensies beschikbaar, waaronder een flink aantal welke de editor omvormen tot een echte IDE. Dus met een "C" extensie wordt het een ontwikkelomgeving voor de taal C, met een "LaTeX" extensie wordt het een omgeving om technisch wetenschappelijke publicaties mee te schrijven, en met de "Platform IO" extensie wordt het een IDE voor de Arduino. Verder kun je de editor uitbreiden met extensies waarmee je aan versiebeheer kunt doen met behulp van "git" (ook gebruikt door de makers van DCC++EX), extensies waarmee je spellingscontrole kunt uitvoeren, etc.
Dus hoewel VSCode wat ingewikkelder is dan de Arduino IDE, hoef je eigenlijk maar een keer te leren hoe het werkt, onafhankelijk van wat je op een bepaald moment wil gaan doen. Als je veel extensies hebt geladen zal de editor in de meeste gevallen zelf wel herkennen wat de bedoeling is, aan de hand van het soort bestand of project waar je mee aan de slag gaat.
Samengevat tot hier:
- Om met een Arduino aan de gang te gaan heb je een IDE nodig
- Arduino IDE: Simpel, beperkt tot het programmeren van Arduino's, weinig "luxe", uitstekend geschikt voor beginners en mensen die geen al te ingewikkelde dingen willen doen
- VSCode: Ingewikkelder, maar ook veel veelzijdiger. Met behulp van de Platform IO extensie wordt het een Arduino IDE, maar wel met meer mogelijkheden dan de originele Arduino IDE
Als jullie denken dat dit interessant genoeg is zal ik over een paar dagen eens laten zien hoe dit geinstalleerd kan worden, en zal ik het maken van een eerste Arduino sketch laten zien. Verzoekjes zijn uiteraard ook welkom.
Met vriendelijke groeten, Peter