Přeskočit obsah

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.

  1. Stáhneme si Node.js (nejnovější stabilní verzi - LTS)
  2. 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í.

  1. Stáhneme si Visual Studio Code (nejnovější stabilní verzi)
  2. 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.

  1. Po instalaci Nodu restartujeme aplikaci Visual Studio Code.
  2. V horním menu VSCode vyberte záložku Terminal a zvolíme New Terminal.
  3. Do terminálu zadáme příkaz vypsaný níže. Na Linuxu bude nejspíše potřeba sudo 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.

  4. 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.

  1. V levém menu VSCode vyberte záložku Extensions a vyhledejte Jaculus. Rozšíření
  2. Zvolte Install.
  3. Po otevření projektu by se vám ve spodní liště měly objevit oranžové ikonky Jacula. Rozšíření bar
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.

  1. Stáhněte si driver pro váš operační systém. Naleznete jej v záložce Downloads -> Software -> CP210x Universal Windows Driver.
  2. Rozbalte ZIP soubor a poté pravým tlačítkem klikněte na silabser.inf a vyberte Install.
  3. 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

  1. V prvním kroku si na počítači nachystáme složku RoboCamp-2023 do které si budeme ukládat veškeré projekty.
  2. Dále si stáhneme zip soubor s prvním projektem.
  3. Poté si jej rozbalíme do vytvořené složky k táboru.
  4. Spustíme VSCode a pomocí záložky File -> Open Folder vybereme složku s projektem.
  5. 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.

    1. Dále zvolíme Monitor, ten slouží pro komunikaci se zařízením.

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.

  1. Ve VSCodu máme otevřený první projekt. V levém Exploreru (Průzkumníku) vybereme soubor ze src -> index.ts. V něm vidíme náš první program.
  2. Poté zvolíme Build and Flash pro nahrání programu do zařízení. První program
  3. 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!
    
  4. 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á.

  1. Prostudujeme si zdrojový kód.
  2. 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
    ...
    
  3. 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)
    ...
    
  4. 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
  5. 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
    ...