Lekce 1 - první program¤
V této lekci si představíme Jaculus, nainstalujeme si programovací prostředí a spustíme první program.
Instalace¤
Pro práci s Jaculem je nutné nainstalovat několik programů.
Node.js¤
Node.js je program, který nám umožní nahrávat kód do Jacula a komunikovat s ním.
- Stáhneme si Node.js (nejnovější stabilní verzi - LTS)
- Nainstalujeme jej dle výchozího nastavení (není potřeba nic měnit).
Visual Studio Code¤
Visual Studio Code je programovací prostředí, které nám umožní psát kód a s rozšířením nám dovolí nahrávat kód do zařízení.
- Stáhneme si Visual Studio Code (nejnovější stabilní verzi)
- Nainstalujeme jej dle výchozího nastavení (není potřeba nic měnit).
Jaculus¤
Jaculus je program, který nám umožní nahrávat kód do Jacula a komunikovat s ním.
- Po instalaci Nodu restartujeme aplikaci Visual Studio Code.
- V horním menu VSCode vyberte záložku
Terminal
a zvolímeNew Terminal
. -
Do terminálu zadáme příkaz vypsaný níže. Na
Linuxu
bude nejspíše potřebasudo
práva.npm install -g jaculus-tools
Háže mi to chybu
Pro aplikování všech změn je nutný restart VSCode. Pokud se vám nedaří nainstalovat Jaculus, zkuste nejdříve restartovat VSCode.
-
Pro otestování instalace zadáme do terminálu příkaz:
npx jac
Program by měl vypsat nápovědu.
Ukázka nápovědy
Usage: jac <command> Tools for controlling devices running Jaculus Commands: help Print help for given command list-ports List available serial ports serial-socket Tunnel a serial port over a TCP socket install Install Jaculus to device build Compile target file flash Flash code to device (replace contents of ./code) pull Download a file/directory from device ls List files in a directory read Read a file from device write Write a file to device rm Delete a file on device mkdir Create a directory on device rmdir Delete a directory on device upload Upload a file/directory to device start Start a program stop Stop a program status Get status of device version Get version of device firmware monitor Monitor program output Global options: --log-level Set log level (default: info) --help Print this help message --port Serial port to use (default: first available) --baudrate Baudrate to use (default: 921600) --socket host:port to use
Jaculus VSCode Rozšíření¤
Rozšíření pro VSCode nám umožní jednoduše nahrávat kód do Jacula pomocí ikonek a klávesových zkratek.
- V levém menu VSCode vyberte záložku
Extensions
a vyhledejteJaculus
. - Zvolte
Install
. - Po otevření projektu by se vám ve spodní liště měly objevit oranžové ikonky Jacula.
Používám Windows a nemůžu se připojit přes USB UART
Pokud se vám nedaří připojit na USB UART port, je nutné doinstalovat správné drivery.
- Stáhněte si driver pro váš operační systém. Naleznete jej v záložce
Downloads -> Software -> CP210x Universal Windows Driver
. - Rozbalte ZIP soubor a poté pravým tlačítkem klikněte na
silabser.inf
a vyberteInstall
. - Vyzkoušejte, zda se vám podařilo připojit Jaculus. (možná budete muset restartovat počítač).
První projekt¤
Zde si vyzkoušíme vytvořit první projekt a nahrát jej do ELKS.
Stáhnout ZIP s prvním projektem
- V prvním kroku si na počítači nachystáme složku
RoboCamp-2023
do které si budeme ukládat veškeré projekty. - Dále si stáhneme zip soubor s prvním projektem.
- Poté si jej rozbalíme do vytvořené složky k táboru.
- Spustíme VSCode a pomocí záložky
File
->Open Folder
vybereme složku s projektem. -
V levém spodním rohu vybereme
Select COM port
pro výběr portu, na kterém je ELKS připojený. Poté se nápis změní na vybraný port.Mám více portů
Pokud se vám v nabídce zobrazí více portů, odpojte ELKS a zjisťe, který port zmizel. Po připojení ELKS tento port vyberte.
- Dále zvolíme
Monitor
, ten slouží pro komunikaci se zařízením.
- Dále zvolíme
Nahrání programu¤
Pokud nám všem funguje připojení na Monitor
a běží nám komunikace se zařízením, můžeme si tam zkusit nahrát náš první kód.
- Ve VSCodu máme otevřený první projekt. V levém
Exploreru
(Průzkumníku
) vybereme soubor zesrc
->index.ts
. V něm vidíme náš první program. - Poté zvolíme
Build and Flash
pro nahrání programu do zařízení. - Stejně jako v předchozí části kliknem na tlačítko
Monitor
. Měli bychom vidět výstup z programu.$ jac monitor --port /dev/tty.usbmodem213101 Connecting to serial at /dev/tty.usbmodem213101 at 921600 bauds... Connected. Robotický tábor 2023, zdraví Jirka Vácha! Robotický tábor 2023, zdraví Jirka Vácha!
- Pro ukončení terminálu, do něj klikneme a stiskneme Ctrl+C.
Úprava programu¤
Pokud nám funguje nahrávání kódu, můžeme se na něj podívat a zkusit jej upravit.
Ve zdrojovém kódu jsou komentáře (// tohle je komentář
), které nám popisují, co který řádek dělá.
- Prostudujeme si zdrojový kód.
-
Upravíme si pozdrav na své jméno.
Řešení
... console.log("Robotický tábor 2023, zdraví Franta Flinta!"); // tady jsem změnil své jméno ...
-
Pokusíme se změnit rychlost vypisování.
Řešení
... setInterval(() => { /* moj kod */ }, 500); // čas opakování se udává v milisekundách (1000 ms je 1 sekunda) ...
-
Upravíme si barvu.
Řešení
... ledStrip.set(0, colors.red); // nastaví barvu LED na ESP32 na červenou ...
Barvy:
red
orange
yellow
green
light_blue
blue
purple
pink
white
off
-
Upravímes si číselné proměnné na pojmenované konstanty.
Pojmenované konstanty
... const LED_PIN = 48; const LED_COUNT = 1; const ledStrip = new SmartLed(LED_PIN, LED_COUNT, LED_WS2812); // připojí pásek na pin 48, s 1 ledkou a typem WS2812 ...