Raspberry Pi Pico kurz – #3 – První program

Čas čtení: 10 min.

Čas na další materiál o Raspberry Pi Pico. V předchozím článku jsem vám řekl, jak naprogramovat mikrokontrolér RP2040, ale dnes si připravíme vhodné vývojové prostředí a kromě toho popíšu, jak se v něm pohybovat. Nakonec přejdeme k prvnímu projektu, který je klasickým pro všechny výukové programy spojené s malými hardwarovými platformami blikajícími LED diodou.

Kupte si sadu a naučte se programovat s Raspberry Pi Pico W a využijte kurz dostupný na blogu Botland!

Obsahuje: modul Raspberry Pi Pico W, kontaktní desku, vodiče, LED diody, rezistory, tlačítka, fotorezistory, digitální senzory světla, teploty, vlhkosti a tlaku, OLED displej a kabel USB-microUSB.

Před odjezdem je třeba sestavit tým.

Sada komponent pro kurz Raspberry Pi Pico.

Chcete-li se naučit programovat na základě reálných projektů, budete samozřejmě potřebovat správné vybavení, ale žádný strach – nyní nemusíte přeskakovat mezi články a připravovat si seznam potřebných elektronických součástek. V obchodě  Botland je k dispozici sada připravená k použitíobsahující všechny komponenty potřebné k realizaci projektů popsaných v sérii výukových programů pro Raspberry Pi Pico.

hotové sadě prvků najdete:

  • Raspberry Pi Pico W,
  • Kabel MicroUSB,
  • Kontaktní deska,
  • Sada propojovacích kabelů ve třech typech,
  • Sada LED diod ve třech barvách,
  • Sada nejčastěji používaných rezistorů v elektronice,
  • Tlačítka Tact Switch,
  • Fotorezistory,
  • Digitální světelný senzor,
  • Digitální čidlo vlhkosti, teploty a tlaku,
  • Displej OLED.

Kam budeme psát kód?

Stejně jako u ostatních desek RPI Pico je k dispozici poměrně dost programů pro přípravu kódu pro vlastní projekty. Program můžete napsat i v klasickém systémovém poznámkovém bloku, i když jeho kompilace by byla poněkud obtížná. Není však třeba si to uměle ztěžovat, lepší je využít řešení, které nabízí sám výrobce.

V poměrně rozsáhlé dokumentaci popisující první kroky s Raspberry Pi Pico jsou zmíněna tři vývojová prostředí, která lze úspěšně použít při programování RPI Pico, a to: Visual Studio Code, CLion a Eclipse. Každý z programů má své výhody a nevýhody, Visual Studio Code (VSC ) od společnosti Microsoft je bezplatné a v oboru velmi oblíbené prostředí, které díky své konfigurovatelnosti bez problémů zvládne nejen Raspberry Pi Pico. CLion je placený program vyvinutý českou vývojářskou společností JetBrains. Program je nesmírně přehledný a intuitivní, zejména pro lidi, kteří již dříve používali jiný software od tohoto vývojáře, mezi uživateli panuje spíše zlomyslný názor, že CLion je oproti VSC skutečně vývojovým prostředím a ne jen editorem kódu. Posledním programem je Eclipse, který možná znáte, zejména pokud jste pracovali na návodech Miroslava Kardasia pro mikrokontroléry AVR. Tento program je takovou klasikou, na které je založeno poměrně dost dalších prostředí, a kromě toho je tento software zdarma.

Prostředí, které jsem zvolil a o které se budu opírat v následujících článcích, je Visual Studio Code. Důvodů, proč jsem zvolil toto prostředí, je několik. Jak jsem již zmínil, tento software je velmi populární a zdarma, takže je mnohem snazší řešit, když něco nefunguje. Kromě toho před několika měsíci připravila Raspberry Pi Foundation hotovou instalaci založenou právě na VSC, což výrazně usnadňuje proces instalace a počáteční konfigurace prostředí. Volba je samozřejmě na vás, VSC je jen můj návrh. Postup instalace a spuštění jiných prostředí je dokonale popsán ve výše zmíněné dokumentaci a nic vám nebrání použít jiný program.

Ještě se musíme na chvíli zastavit u operačního systému. Osobně jsem s RPI Pico pracoval jak v systému Windows, tak v systému MacOS, přičemž na každý z těchto systémů mám poměrně dobré vzpomínky, ale vzhledem k tomu, že nastavení nadace Raspberry Pi Foundation je věnováno systému Windows, budu pro budoucí projekty používat právě tento systém. RPI Pico lze programovat i v Linuxu, pokud někdo používá tento systém, odkazuji vás na soubor popisující první kroky s touto deskou potřetí.

Proč neukazuje, jak nainstalovat VSC krok za krokem?

Ve většině výukových programů pro jakoukoli softwarovou platformu najdete pokyny krok za krokem pro instalaci potřebného softwaru. To však v mém článku nenajdete, uvedu pouze obecný popis spolu se zdroji potřebných programů. Pokud s programováním teprve začínáte, rád bych vám již nyní vštípil dobrý zvyk dívat se na popisy, dokumentaci a vědomě používat software poskytovaný výrobci. Autoři velmi mnoha kurzů v kapitolách o programovacím prostředí uplatňují princip “klikněte na to a to”, aniž by vůbec vysvětlili, čeho se dané možnosti týkají. Bohužel u softwaru není neobvyklé, že pouhý den po vydání výukového kurzu je vydána nová verze programu, jejíž instalační proces se může od předchozí revize výrazně lišit. Tím se průvodce instalací stává neaktuálním a může vést i ke zbytečným problémům.

Podle mého názoru je mnohem lepší, když uživatele seznámíme s tím, co bude potřebovat, kde to získá a na co si má dát případně pozor. Na druhou stranu samotný proces instalace ponechte bez většího komentáře, protože s novou verzí softwaru se může nejednou změnit. Pokud se objeví možnost, které nerozumíte, nic vám nebrání zeptat se strýčka Googla. I když se rozhodnete špatně, neexistují věci, které by se nedaly napravit. Pamatujte, že programování, stejně jako práce s elektronikou a technikou obecně, je především o umění klást správné otázky a hledat informace.

Konfigurace systému Pico pro Windows.

Pokud tedy chcete použít hotovou instalaci dostupnou pro Windows, která obsahuje všechny potřebné nástroje pro programování Raspberry Pi Pico, navštivte webovou stránku GitHub. V části readme najdete stručný popis nástroje spolu s odkazem viditelným úplně nahoře, který vám umožní stáhnout si nejnovější verzi softwaru do počítače (Download the lastest release).

Po spuštění staženého exe souboru instalátor připraví a nainstaluje všechny nástroje a programy, které jsou součástí instalace, a to:

  • Visual Studio Code – vývojové prostředí, které bylo již mnohokrát zmíněno,
  • Arm GNU Toolchain – jedná se o sadu nástrojů používanou v procesu kompilace, můžeme ji popsat jako jakýsi “slovník” pro překlad jazyka C do příkazů vhodných pro procesory ARM,
  • Ninja – jednoduchý skript navržený společností Google pro generování binárních souborů,
  • Python 3.9 – software Python, který umožní počítači spouštět soubory napsané v tomto jazyce,
  • Git pro Windows – software pro automatické stahování ukázkových projektů připravených nadací Raspberry Pi Foundation z platformy Git,
  • OpenOCD – nástroj pro ladění, programování a testování mikrokontrolérů, jehož účelem je zajistit komunikaci mezi počítačem a cílovým hardwarem,
  • CMake – rozšíření pro VSC pro správu procesu kompilace kódu.

Pokud jste již dříve používali Visual Studio Code a program máte v počítači, nemusíte se obávat. Nastavení, které instalujete, nemá vliv na dříve nainstalovanou kopii. Software používaný k ovládání Raspnberry Pi Pico se zobrazí jako nový, samostatný program.

Po správně dokončené instalaci by se na vašich počítačích mělo objevit něco jako Pico – Visual Studio Code, což je software, ve kterém budeme připravovat kód pro zde popsané projekty. Jakmile je tedy software připraven, můžeme přejít k jeho spuštění.

Jak se orientovat v systému VSC?

Základní zobrazení ve VSC.

Po spuštění VSC by se mělo zobrazit podobné zobrazení jako na obrázku výše. Jedná se o výchozí formulář v tomto programu, se kterým budeme pracovat. Abyste se mohli v programu Visual Studio Code poměrně pohodlně pohybovat, popíšu nyní stručně všechny oblasti viditelné na obrazovce. Než se k tomu však dostaneme, věnujte pozornost zprávám, které se pravděpodobně objeví v pravém dolním rohu. První z nich se týká rozšíření CMake a jeho konfigurace, ale tento doplněk je již nakonfigurován, takže můžete vybrat možnost “Nezobrazovat znovu”. V případě potřeby se lze k možnostem CMake vrátit z nastavení. Druhé oznámení se bude týkat navrhovaného polského VSC. Doporučuji vám však tuto možnost odmítnout a používat anglickou verzi programu. Angličtina je v technologickém průmyslu všudypřítomná, takže se vyplatí ji znát a používat, pokud to jde. Kromě toho budu ve svých článcích popisovat variantu softwaru v angličtině.

Zobrazení ve Visual Studiu Code můžeme rozdělit do několika oblastí. Na horní liště jsme našli příkazy typické pro počítačové programy, jako např: File, Edit, Run nebo Help. Právě z nich lze vyvolat většinu funkcí a příkazů dostupných ve VSC. Ve střední části horní lišty se nachází vyhledávací pole, které například umožňuje vyhledávat ve složce aktuálně připojené k pracovnímu prostoru. V pravém horním rohu si všimněte typických tlačítek pro minimalizaci, maximalizacizavření okna. Levá strana aplikace Visual Studio Code je tvořena především úzkým pruhem s piktogramy vyvolávajícími konkrétní funkce softwaru, které se objevují hned vedle na svislé liště. Najdeme zde mimo jiné Explorer, s jehož pomocí můžeme zobrazit soubory použité v projektu, příkaz Search, který, jak název napovídá, slouží k prohledávání prostředí, Extensions, který nám umožňuje přidávat do VSC konkrétní rozšíření, a CMake, s jehož pomocí můžeme konfigurovat proces kompilace. Možností je samozřejmě více, ale s těmi se časem seznámíme. V dolní části aplikace Visual Studio Code se nachází modrý pruh, kde jsou informace týkající se počtu chyb a varování, příkazy související se spuštěním a sestavením projektu, informace o poloze kurzoru a údaje o aktuálně zvoleném způsobu kódování. V okně o něco výše můžeme přepínat mezi konkrétními kartami: Problems, Output, Terminal nebo Serial Monitor. V každé z nich můžeme najít konkrétní informace týkající se mimo jiné procesu kompilace kódu. Prozatím se vyplatí zůstat v okně Output. Největší, centrální oblastí ve VSC je Editor, kde budeme v budoucnu otevírat a upravovat soubory související s konkrétním projektem. To je prozatím vše, časem se jistě stane orientace v prostředí od Microsoftu jednoduchá a intuitivní.

Zjistěme, zda je RPI Pico W živá

Konfigurace CMake.

Bylo načase poprvé zprovoznit náš počítač Raspberry Pi Pico – aby to však bylo možné, museli jsme předkompilovat projekty, které automaticky stáhne předinstalovaná instalace. Po spuštění VSC prostředí automaticky otevřelo složku pico-examples a přidalo ji do pracovního prostoru. Tuto složku najdete v dokumentech aktuálně přihlášeného uživatele. Pro začátek by bylo vhodné zkompilovat všechny projekty poskytnuté nadací Raspberry Pi Foundation, abyste mohli zkontrolovat, zda vše funguje správně. Pro začátek je však vhodné podívat se na záložku CMake, kterou najdete v levé části okna VSC. V možnostech nalezneme několik zajímavých informací, za prvé je to složka připojená k CMake – pico-examples, tedy ta, ve které jsou uloženy ukázkové projekty. V možnostech Configurate je vybrán příslušný toolchain – Pico ARM GCC, možnost Debug by měla zůstat prozatím prázdná. Zbývající karty, tj: Build, Test, Debug a Launch, byly popsány jako všechny, což je maximálně správné, protože alespoň prozatím budeme pracovat na všech projektech současně.

Kliknutím na tlačítko Build Taste spustíte proces kompilace.

Pokud byly všechny příkazy CMake vybrány správně, můžeme spustit kompilaci kliknutím na tlačítko Build, které je k dispozici na spodní liště. Pokud na něm chvíli podržíme kurzor myši, zobrazí se vybrané cíle, my chceme, aby se zkompilovaly všechny projekty, proto je slovo all v hranatých závorkách. Pokud bychom vybrali jediný projekt, byl by tam umístěn jeho název.

Stav komplikace zobrazený na výstupní kartě.

Po spuštění kompilace VSC automaticky otevře záložku Output. Zde najdete informace o aktuálním stavu procesu. V tomto okamžiku program začne generovat binární soubory pro všechny projekty ve složce pico-examples. Tento proces může trvat až několik minut, ale na začátku každého zobrazeného řádku najdete aktuální procento postupu. Kromě toho můžete vidět, které soubory jsou právě zpracovávány vývojovým prostředím.

Správně dokončený proces sestavování

Po správně dokončeném sestavení by se měla ve výstupním okně zobrazit zpráva “Sestavení skončilo s výstupním kódem 0”, což znamená nic menšího než to, že sestavení vybraných projektů skončilo s kódem nula, což znamená, že prostředí nenarazilo na žádné problémy a všechny binární soubory byly vygenerovány.

Pokud dojde k přerušení kompilace, zkontrolujte a přečtěte si informace generované VSC, které obvykle poměrně přesně určí, co je špatně. K tématu problémů se v budoucnu vrátíme, a to i jejich umělým vyvoláním.

Pokud bychom používali základní verzi Raspberry Pi Pico, mohli bychom v tomto okamžiku již přejít ke spuštění projektu. Jak si však jistě vzpomínáte, náš modul má vestavěný modul WIFI, což znamená, že nemůžeme jednoduše použít LED světlo zabudované na desce. Proto, abychom si ověřili, že naše RPI Pico W, funguje správně, připojíme k němu externí prvek vyzařující viditelné světlo. Kromě toho budeme muset mírně upravit jeden z ukázkových kódů, ale postupně.

Výstupy RPI Pico W (https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html).

Jak jsem již zmínil v prvním článku, je Raspberry Pi Pico W vybaveno poměrně velkým počtem vývodů, z nichž většina je multifunkční. Takzvané pinout desky spolu s legendou můžete vidět na obrázku výše. Každý pinout je popsán jako univerzální port GPx, kde x je další číselné označení, kromě toho mohou pinouty fungovat jako specifické porty komunikačního rozhraní, jejichž významu se budeme věnovat v některém z příštích článků.

Naše LED dioda, která má začít vyzařovat fotony, bude připojena přes rezistor k prvnímu pinu na desce, a to GP0.

Obvod s LED diodou.

Obvod, který jsem připravil, vypadá následovně: bílý vodič spojuje vodič GP0 s rezistorem 330Ω, druhá noha rezistoru je připojena k delšímu vodiči LED (anoda). Naopak katodu LED jsem díky černému vodiči připojil k zemi (GND) RPI Pico W, tedy k vodiči číslo tři.

Takto připravený obvod je připraven ke spuštění projektu blikající diody, ale ještě nepřipojujte desku kabelem USB k počítači, tomu se budeme věnovat za chvíli.

Soubor blink.c po otevření.

Vraťme se nyní k VSC a upravme projekt ‘blink’ tak, aby měnil stav vývodu GP0. Na kartě Průzkumník najdeme všechny projekty, které nadace Raspberry Pi Foundation poskytuje spolu s vývojovým prostředím. V seznamu najděte a rozbalte složku blink. Uvnitř této složky jsou dva soubory, blink.c a CMakeLists.txt, z nichž první obsahuje kód projektu v jazyce C. Otevřete jej poklepáním a jeho obsah se objeví v hlavní oblasti. Druhý soubor, je takzvaný sestavovací soubor ‘makefile’ a my se jím na tomto místě nebudeme zabývat.

Obsah souboru blink.c po změně.

Na tomto místě se nebudeme zabývat ani samotným kódem programu, protože kdybych chtěl na tomto místě vysvětlit jeho obsah, musel bych tento článek rozšířit na opravdu neúměrnou velikost. V souboru musíme provést pouze jedinou úpravu, a to mírně změnit obsah řádku 13. V současné době má tvar:

				
					const uint LED_PIN = PICO_DEFULT_LED_PIN;
				
			

se nahrazuje tímto:

				
					const uint LED_PIN = 0;
				
			

Jak už možná někteří z vás tuší, 0 znamená GP0, což je pin, ke kterému jsme dříve připojili LED diodu. Po úpravě je třeba soubor uložit, nejjednodušší je použít klávesovou zkratku Ctrl+S. Jakmile je kód připraven, můžeme projekt blikání zkompilovat, to je nutné, protože jsme v kódu provedli změny a program potřebuje znovu vygenerovat všechny binární soubory.

Výběr konkrétního projektu.

Předtím jsme zkompilovali všechny dostupné projekty, ale tentokrát bychom chtěli, aby se program zabýval pouze projektem blink, jehož soubor s příponou .c jsme upravili. Za tímto účelem otevřeme záložku CMake, kterou jsme navštívili dříve a která je přístupná z piktogramů na levém okraji okna VSC. V dostupných možnostech změníme pouze sestavení, po klepnutí na ikonu tužky se otevře vyhledávací pole, do kterého stačí napsat blink, tím rychleji najdeme požadovaný projekt. Z rozevíracího seznamu vybereme první možnost, kterou je blink EXECUTABLE. Jakmile je projekt vybrán, klikneme stejně jako dříve na tlačítko Sestavit na spodní liště. Pokud na něm chvíli podržíme kurzor myši, všimneme si, že předchozí cíl vše, se změnil na blikat. Sestavení jednoho projektu trvá mnohem kratší dobu a již po krátké chvíli byste měli ve výstupním okně vidět zprávu “Build finished with exit code 0”. To znamená, že vše proběhlo správně a my nyní můžeme soubor vygenerovaný prostředím nahrát do paměti Flash na desce RPI Pico W.

Nyní konečně můžeme modul připojit k počítači, ale ne tak rychle, protože tento proces vyžaduje také krátké vysvětlení. Jakmile je modul Raspberry Pi Pico W připojen k počítači, čip RP2040 okamžitě spustí program uložený v externí paměti a my nebudeme mít možnost do něj nahrát náš program. Proto při připojování kabelu USB podržte tlačítko BOOTSEL, které se nachází hned vedle zdířky microUSB. Jakmile se na desku přivede napětí z portu USB počítače, přejde do konfiguračního režimu a systém Windows ji identifikuje jako novou jednotku. Po několika sekundách můžete tlačítko pustit, RPI Pico W vstoupilo do programovacího režimu a zůstane v něm.

Raspberry Pi Pico je v systému vidět jako RPI-RP2 (F:).

Deska RPI Pico W se po přepnutí do konfiguračního režimu jednoduše ohlásí systému jako externí jednotka s názvem RPI-RP2. Tu lze bez obav otevřít, protože právě sem nahrajeme binární soubor vygenerovaný ze souboru blink.c programem Visual Studio Code.

Obsah disku RPI-RP2.

Po otevření disku si všimneme dvou souborů. První, INDEX.HTM, nás po otevření přesměruje na webové stránky nadace Raspberry Pi Foundation, konkrétně do sekce s dokumentací k desce RPI Pico. Druhý textový soubor obsahuje informace o verzi zavaděče, modelu a ID desky.

Soubory generované aplikací Visual Studio Code.

Jak jsem se již zmínil, je třeba nahrát soubor vygenerovaný VSC na nově zjištěnou jednotku. Najdete ho ve složce ukázkových projektů Raspberry Pi Foundation. Nachází se ve složce Dokumenty, přesné umístění vidíte v adresním poli na obrázku výše. Soubor, který nás zajímá, se jmenuje blink a jeho přípona je.uf2. Můžeme jej zkopírovat pomocí klávesové zkratky Ctrl+C. Dále se vrátíme do RPI-RP2 a zkopírovaný soubor přilepíme, zde postačí klávesová zkratka Ctrl+V.

Jakmile se tak stane, jednotka RPI-RP2 okamžitě zmizí a mikrokontrolér RP2040 začne provádět program vložený do paměti Flash. Při tom byste si měli všimnout, jak LED dioda rytmicky bliká v intervalech 250 ms. Tím jsme spustili první program, samozřejmě to byl jen příklad, ale už víme, že hardware i software fungují správně, takže můžeme přejít ke složitějším projektům.

Pár slov na závěr...

Bylo to poměrně hodně materiálu, ale společně jsme připravili prostředí Visual Studio Code, spustili první kompilaci, upravili ukázkový program, znovu sestavili projekt a nakonec nahráli binární soubor do předem připraveného okruhu. Doufám, že díky těmto postupům se již v programu orientujete relativně snadno a nemáte obavy z přípravy vlastních projektů na kontaktní desce, protože takových úkolů bude v dalším materiálu poměrně dost.

Zdroje:

  • https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf
  • https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pd
  • fhttps://www.raspberrypi.com/products/rp2040/
  • https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html
  • https://github.com/raspberrypi/pico-setup-windows/blob/master/docs/tutorial.md

Jak hodnotíte tento článek na blogu?

Klikněte na hvězdičku a ohodnoťte!

Průměrné hodnocení 4.6 / 5. Počet hlasů 26

Zatím nejsou žádné hlasy! Buďte první, kdo ohodnotí tento článek.

Sdílet:

Picture of Rafał Bartoszak

Rafał Bartoszak

Elektronik spolupracující s Botlandem, který se dělí o své znalosti na internetu. Nadšenec pro digitální systémy, programovatelné obvody a počítačové hry a mikroelektroniku. Vášnivý zájemce o historii se zvláštním zaměřením na XX. století.

Viz více:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Z důvodu bezpečnosti je nutné používat službu reCAPTCHA společnosti Google, která podléhá zásadám ochrany osobních údajů a podmínkám používání společnosti Google. S těmito podmínkami souhlasím..