Close

Vývojové prostředí PlatformIO IDE

V tomto článku si ukážeme jednu z dalších možností pro Arduino programování, a to vývojové prostředí PlatformIO IDE. V tomto prostředí si ukážeme jednoduchý příklad „Hello World“. Kromě programování Arduino ho lze použít i pro další podobné vývojové desky. IDE je volně stažitelné na internetové stránce PlatformIO a je podporované většinou operačních systémů.

POZOR! Ke správnému fungování programu je třeba Python v. 2.7.x! Návod k instalaci nalezneme zde

Po stažení a instalaci si můžeme začít hrát. Pojďme si tedy ukázat, jak začít programovat v PlatformIO. 


Po spuštění programu se nám otevře následující úvodní okno:

Úvodní obrazovka PlatformIO

Úvodní obrazovka PlatformIO

Nyní si vytvoříme nový projekt, na kterém si prostředí ukážeme.

Začneme tím, že si v počítači vytvoříme složku “Projekty”, do které budeme všechny projekty ukládat. Naším prvním projektem bude klasický „Hello World“, takže pro něj vytvoříme složku ve složce „Projekty“.

Dále se budeme pohybovat pouze v prostředí PlatformIO, v počítači bude vystupovat pod názvem Atom.

Začneme

  •  na horní liště máme několik záložek, jediná která nás nyní bude zajímat je PlatformIO. Zvolíme možnost „Initialize new Projekt or update existing“. Pokud jste vše udělali správně otevře se následující okno:

    Vytvoření nového projektu v PlatformIO

    Vytvoření nového projektu PlatformIO

  • V prvním řádku se volí platforma, na kterou budeme chtít projekt nahrát. V našem případě zvolíme Arduino UNO (můžeme jich zvolit i více). V druhém řádku využijeme tlačítko „Other“, pomocí kterého se nám otevře adresář, kde najdeme naší složku „Hello World“. Pomocí tlačítka „Initialize“ vytvoříme nový projekt. Po vytvoření projektu, by se měla objevit následující obrazovka:

    Obrazovka po vytvoření nového projektu v PlatformIO

    Nový projekt v PlatformIO

Nyní se nám na levé straně otevřel adresář, který je zde poměrně důležitý. V naší složce „Hello World“ se vytvořily další tři složky. Nás bude nejvíce zajímat složka „lib“ a složka „scr“. Ve složce „.pioenvs“ jsou složky pro kompilaci a další věci běžící na pozadí. Do složky „lib“ budeme vkládat knihovny, které budeme v našem programu potřebovat. Ve složce „scr“ se pak bude nacházet soubor s naším programem (můžeme jich mít i více, ale to až příště).

Ve složce „scr“ vytvoříme pomocí pravého tlačítka a „New File“ soubor main.cpp, do kterého budeme psát kód.

Vytváření nového listu v PlatformIO

Vytváření nového souboru PlatformIO

Tento soubor je základem všeho. Spouští se vždy při nahrání a spuštění programu (soubor s jiným názvem by se nespustil). Do tohoto souboru začneme psát náš program.


Program

Programovací prostředí je určené pro jazyk C++, ne pro Wiring, kterým programujeme Arduino, ale to se dá jednoduše změnit. Stačí na začátek programu naincludovat “Arduino.h”. Program pro náš zkušební projekt pak bude vypadat takto:

#include <Arduino.h>  //"knihovna" pro arduino

void setup(){
    Serial.begin(9600); //spuštění sériové komunikace
}

void loop(){
    Serial.println("Hello World");  //vytiskne na sériovou linku "Hello World"
    delay(1000);  //počká 1 sekundu
}
//------------KONEC----------------------

Ovládání IDE

V PlatformIO se všechny důležité funkce a nástroje nachází v levém sloupci. Nyní si je jednu po druhé představíme. Funkce, které jsou stejné jako u Arduino IDE, přeskočíme.

První tlačítko, stejně jako v Arduino IDE, slouží pro kompilaci projektu. Pomocí druhého lze program nahrát. Třetí tlačítko „clean“ slouží k vymazání všech dočasných souborů, které si program vytvořil. Pro nás je tu prakticky zbytečně. Čtvrté je zkratka pro vytvoření nového projektu tak, jak jsme si ukázali na začátku. Další slouží k otevření již vytvořeného programu. Tlačítko v podobě lupy slouží k vyhledávání slov nebo frází v programu. Následující otevírá příkazový řádek, kterým lze všechna tlačítka nahradit, stačí znát jen správné příkazy. Tlačítko „</>“ otevírá příkazový řádek, pomocí kterého se dají hledat knihovny pro naše programy. Třetí tlačítko odspodu slouží k otevření sériové linky mezi počítačem a Arduino. Poslední tlačítka jsou pro nastavení a online nápovědu.

Náš program stačí už jen nahrát a otevřít sériovou linku pro ověření jeho funkčnosti.

Závěrečné zhodnocení a porovnání s Arduino IDE

Největší výhody prostředí PlatformIO IDE oproti klasickému Arduino IDE jsou následující:

  • možnost kompilace pro více druhů desek
  • nápověda a dokončování příkazů – program vám bude při psaní kódu nabízet spoustu možností jak dokončit daný příkaz
  • více desek, na které lze program nahrát (je zde i spousta jiných platforem, ne jen Arduino)
  • lze programovat i pomocí C++ bez přidání “Arduino.h”, a nebo jejich kombinací, což nabízí nové možnosti
  • jednoduché stahování knihoven a jejich vkládání

Mě toto prostředí vyhovuje, doporučuji vyzkoušet!

Honza Czapek

27 Comments on “Vývojové prostředí PlatformIO IDE

Čamo
2.10.2016 at 12:54

No tak podľa recenzií z diskusie to nevyzerá moc slávne. Je to celé čudné, že Arduino IDE nevie zvýrazňovať a našepkávať…. a ja aby som zisťoval ako na Windows nainštalovať Python 2 a 3 zároveň a aj to nakoniec nenašepká metódy z extra knihovní… Šialenéé. Veľa kriku pre nič!

Petr Šourek
16.10.2016 at 17:37

Nakonec ono to docela umí, jenom je to specifické. Po přidání knihovny #include je třeba vybrat menu PlatformIO -> Rebuild C/C++ Project Index a samozřejmě je nutné mít soubor typu C/C++, tzn. přípona .h, .cpp, pokud použijete .ino, tak se můžete rozkrájet, ale prostě ne. Existuje možnost, jak to změnit, ale znamená to upravit konfiguráky, aby Atom akceptoval .ino jako C/C++ zdroják.

Oproti tomu Eclipse Plugin, o kterém jsem se zmiňoval, umí automaticky načítat obsah knihoven, takže našeptávač funguje prakticky ihned, ale má jiné mouchy. Například je třeba, zjistit si zařízení, které se vygeneruje po připojení do USB (na OSX mám 2 USB a každé vygeneruje jiný záznam v /dev, nevím jak na Windowsech) a tak, musím mít 2 nastavení pro levé a pravé USB a následně dát kompilovat s daným nastavením, což PlatformIO si slízne a neřeší (případně lze nastavit per projekt, ale většinou není nutné). Další blbost Eclipse je v tom, že jsem ve zdrojáku a nemám „označený“ projekt, tak mi napíše, ať označím projekt, nestačí mu aktuálně otevřený soubor, to napíše, že nemá co kompilovat. Je pravdou, že oproti PlatformIO má grafickou správu knihoven, ale některé knihovny, například DigitalIO.h tam prostě není,t akže je třeba stáhnout a nalinkovat z GITu.

To je jen malý zlomek. Uznávám, moje nadávání na PlatformIO je velké, ale tím, že jsem na OSX jsem dost omezen. Použitelné jsou jenom: PlatformIO, Eclipse, Arduino Studio a prakticky mezi slepými jednooký králem, zajímalo by mne, jak je to na Windows, ale viděl jsem tam pár zajímavých „projektů“. Ano mohu si udělat vlastní, ale na to bohužel nemám čas, jsem rád, že se dostanu k hraní s Arduinem a moduly, jinak toho moc nestíhám 🙁

Aiphee
7.9.2016 at 10:25

Platformio se nemusí používat s Platformio IDE.
Já ho pužívám pro přípravu projektu pro Clion, což je pak skvělý. Nádherně to doplňuje.

LuBoss
5.9.2016 at 20:42

Tak jsem již po několikáté vyzkoušel PlatformIO a je to takové „čím dál tím stejné“. Pěkně to dle mě vystihl ve svém příspěvku Petr Šourek: „Je to takové nedodělané“ 🙁

Petr Šourek
29.8.2016 at 9:12

PlatformIO používám, protože jsem pro OSX nenašel lepší editor, ale přiznám se, že jako uživatelská přítulnost nic extra, sice o trochu lepší než plugin pro eclipse, ale stejně…

– Knihovny se instalují přes CLI (nevadí mi to, jenom mi to přijde zvláštní),
– Linter sice doplňuje kód, ale ne tak jak bych si představoval, doplní mi proměnné z programu, ale aby dotáhl metodu z knihovny, na to je docela malý pán,
– Nenašel jsem možnost kompilovat a nahrát pouze pro připojený přístroj, vždy kompiluje a snaží se nahrát pro všechny desky v projektu, což je takové matoucí, když mi tam 3x vyskočí error a jednou success, to aby člověk nejdřív kompiloval a pak teprv nahrával,
– Použití příkladů z jednotlivých knihoven je také takové škrabání levou rukou za pravým uchem pod levým kolenem, zkonvertovat projekt do platformio a pak ho mít jako projekt, což je v hlavním okně dost nepřehledné

Pokud mi někdo doporučí něco lepšího pro OSX, budu mu vděčen 🙂

Petr Šourek
29.8.2016 at 9:13

A nebo mi doplní moji neznalost, protože něco může být způsobeno právě jí…

Petr Šourek
29.8.2016 at 21:41

Novinka. Při tvorbě projektu pro Arduino Nano, LillyPad a Uno se do Nano nahraje verze pro LillyPad a rozhází to Serial… :-/

Matěj Suchánek
1.9.2016 at 16:05

Zajímavé, doporučil bych rád, ale jsem Windows user, tak vám asi moc nepomůžu..

Petr Šourek
4.9.2016 at 23:05

V pohodě, jako PlatformIO se mi líbilo, ale přijde mi takové nedodělané. Momentálně testuju Eclipse plugin, který mi také připadal divný, ale chlapci zapracovali a momentálně funguje docela rozumně.

Dokonce i instalace je rychlejší, než bývala.Uvidíme po chvíli používání.

http://eclipse.baeyens.it

Petr Šourek
16.10.2016 at 13:21

Prošel jsem pár programů, pár nastavení a PlatformIO je lepší než Eclipse Plugin pro Eclipse. Teoreticky bych se mohl pokusit to sepsat, v jakém formátu to bude pro Vás nejlepší?

Jirka
29.8.2016 at 7:20

Používám Atmel Studio s Visual.Micro. Atmel Studio je Microsoft Visual Studio, které i používá a mají společné části. Visual.Micro je pouze dolněk o Arduino. Používá pro překlad standartní Arduino IDE, jen volá funkce přímo z Atmel Studia. Je zde 100% kompatibilata – jak jinak, když používa přímo Arduino IDE.
Umožňuje psaní a programování i bez knihoven Arduina pro všechny procesory Atmel.
Programuju v .NET (C#) a tak si nemusím zvykat na jiné prostředí – Atmel i Microsoft jediné prostředí. Pokud Arduino spolupracuje s PC, píšu SW pro PC v C#, tedy jedno prostředí.
Detaily jako dokončování příkazů a nabízení možností jsou v obou stadartem.
Zkuste a uvidíte. Oboje je zdarma a profesionální.

jirkaptr
29.8.2016 at 11:48

Také jsem experimentoval, co zvolit:
MS Visual Studio Community 2015 a Atmel Studio 7 používají shodné prostředí a shodný doplněk VisualMicro pro ARDUINO. Rozdíl je v preferencích zaměření.

Každý si představí, že ATMEL do „mrtě“ podporuje své produkty prostřednictvím svých programárorů, HW debuggerů i SW debuggeru a simulátoru. Nicméně již před lety jsem se rozhodl, že v assembleru už dělat nebudu!

Také MS podporuje své produkty, takže Arduino/ATMEL jsou pro něho jen okrajové záležitosti prostřednictvím zmíněného VisualMicro.

Existují dále prostředky na bázi Eclipse. Experimentoval jsem s ARDUINO Eclipse (http://eclipse.baeyens.it/index.shtml). Dost zajímavá věc zmíněná i níže. Od verze 3.0 se instaluje jako jeden celek poté, co si nainstalujete JAVA JRE. Instalace Arduino IDE není nutná – vše nutné potřebné si „jantje“ natáhne sám. Systém má také debugger a simulátor, ale ovládání je děsně komplikované. (Ani autorovi se to na prezentacích nepovede spustit napoprvé). Pro citlivost na nekulturní zacházení jsem věc celkem s lítostí opustil.

Sparkfun informuje o některých dalších zajímavostech: https://learn.sparkfun.com/tutorials/alternative-arduino-interfaces

LuBoss
30.8.2016 at 13:49

Visual Micro jsem 2x zkoušel a bylo to stráášně pomalé i na slušném PC.
Jak to zvládá našeptávání kódu z knihoven, které se přidají ručně do Arduino IDE?

martin
28.8.2016 at 16:25

První instalace a funguje normalně. Zkompilovano a uploadnuto.
Bohužel mi nezapadá do konceptu a zustávám u SublimeTextu se Stino pluginem.
Archlinux.

LuBoss
29.8.2016 at 6:54

Sublime Text 3 + Stino jsem také používal. Není to špatná kombinace, jenom je trochu komplikovanější zrušit klávesové zkratky pro ALT+něco, které se běžně používají např. pro psaní hranatých závorek, ale Sublime je používá k jinému účelu. Jenže docela často se mi stávalo, že vypadla část arduino menu a nebo některé volby prostě nefungovaly. Kdyby to umělo našeptávání kódu, tak bych to asi překousl, ale takhle z toho mám smíšené pocity. Asi jediné plus tedy vidím barevné formátování kódu a označení všech výskytů proměnné, pokud se na jeden z nich pokliká.

Co opravdu pěkně našeptává kód je Eclipse Arduino IDE, ale instalace a zprovoznění nebylo zrovna na 3 kliknutí 🙁

PeSi
26.8.2016 at 14:08

Podle screenshotů to vypadá na atom editor. Ten znám a používám už dlouho pro aplikace v node.js Určitě vyzkouším. Dosud se mi ale nejvíce osvědčilo staré dobré NetBeans. To původni arduino IDE je zcela nepoužitelné.

Honza Czapek
26.8.2016 at 20:53

Ano jedná se o Atom editor. NetBeans moc neznám, ale už jsem s ním měl tu čest, ale ne na tolik, abych mohl soudit zda je nebo není dobré.

LuBoss
26.8.2016 at 13:36

…abych byl konkrétní – toto IDE mi psalo neustále nějaké červené chybové hlášky, které mi nedávali smysl a i přes stažení spousta doplňků se mi nepodařilo úspěšně přeložit ani led blik 🙁

Honza Czapek
26.8.2016 at 21:01

Nejčastější chybou je instalace Python, musí být použita verze 2.7.x. Podrobný návod jak to vše správně nainstalovat najdete na stránkách PlatformIO (odkaz v článku). Jinak doporučuji vyhledat chybovou hlášku na stránkách.

ZP
26.8.2016 at 23:23

Šel jsem přesně podle návodu a instalace se nepovedla. Nyní stápe padá, protože evidentně (podle logu) něco už nainstalované je, něco né a nedokáže se z toho probrat. Odinstalovat není jak… takže musím vše ručně vyčistit. Je to marast!

ZP
30.8.2016 at 23:05

Prozatím zavrhuji, možná někdy později, když už bude tochu funkční.
Nakonec jsem instalaci bůhví jak dokončil a záležitosti typu Hello World fungují. Ale přenést již funkční rozsáhlejší projekt z Arduino studia (které teda samozřejmě taky stojí za prd) není záležitost pro moje nervy…

jirkaptr
27.8.2016 at 11:34

Je třeba upozornit, že v základním článku se píše o potřebě Python 1.7.x, zatímco ve výše uvedené odpovědi je uváděna verze 2.7.x. Není jedna z možných příčin potíží v tomto rozporu?

Oldřich Horáček
27.8.2016 at 11:48

Díky za připomínku, tam byla v článku chyba. Teď je to už správně.

jirkaptr
27.8.2016 at 12:19

Mezi dosavadními příspěvky není žádný, kde by bylo „nainstaloval jsem dle návodu a ono to opravdu funguje!“. Právě naopak.
Zaujalo mne nadšení autora článku, a tak bych si to taky rád zkusil. Mám nulové znalosti Python a PlatformIO. Snad proto obsah odkazů na instalačky a návody jsou mi pramálo srozumitelné. A k tomu výše uvedené ohlasy jsou natolik děsivé, že jsem ztratil chuť na experimenty.
Asi by to chtělo ještě polopatičtější návod na instalaci.

Honza Czapek
27.8.2016 at 18:23

Věřím že s tím může být problém, také jsem ho měl. Zvažuji vytvoření video návodu (od instalace až po nahrání programu), ale času je málo.

LuBoss
26.8.2016 at 13:33

Osobně jsem jej zkoušel 2x, ale nepodařilo se mi z toho vyloudit ani funkční blikání ledkou.
Nevím kde jsem udělal chybu, ale pro mě to rozhodně intuitivní není.
Nicméně rád se nechám přesvědčit, že je to dobré IDE i pro Arduino programování 😉

Jirka
29.8.2016 at 14:49

PlatformIO zkouším také prvně a problémy s instalací jsem měl, ale vyřešil jsem to restarty a hlavně na stránkách PlatformIO je v návodu zmíněn ještě jeden program (viz krok 2 v http://docs.platformio.org/en/stable/ide/atom.html#platformio-ide-for-atom), po jeho nainstalování jsem restartoval počítač, přeinstaloval PlatformIO a opět restartoval a Hallo word fungoval a blikání LED i nápověda kódu taky.

Napsat komentář