Kostka Brian

Kostka Brian je náhrada za starší kostky LEGO Mindstorms EV3 a LEGO Mindstorms NXT, které se již nevyrábí a nejsou podporované firmou LEGO.

Základní informace

Kostka Brian je náhrada za starší kostky LEGO Mindstorms EV3 a LEGO Mindstorms NXT, které se již nevyrábí a nejsou podporované ze strany firmy LEGO. Kostka Brian umožní pokračování velmi populární ROBOSOUTĚŽE a uplatnění najde i ve výuce technických předmětů na středních a vysokých školách. Brian umožňuje zpětnou kompatibilitu se senzory a motory předchozích řad LEGO Mindstorms EV3 a LEGO Mindstorms NXT, ale umožňuje i připojení nově vyvinutých senzorů a motorů (umožní realizaci nové stavebnice Brian).

Brian a vlastní programy v něm běžící mohou

  • Připojit a použít až 4 LEGO senzory (momentálně EV3) nebo jiné senzory (probíhá jejich vývoj)
  • Připojit a použít až 4 LEGO motory (momentálně NXT a EV3) nebo jiné motory (probíhá jejich vývoj)
  • Spojit více kostek Brian dohromady
  • Připojit se s ostaními kostkami Brian, počítačem nebo telefonem pomocí WiFi sítě (zatím není podporováno v FW, pouze HW)
  • Přehrávat zvuk pomocí vestavěného reproduktoru nebo 3.5mm jacku
  • Přistupovat k informacím na SD kartě. SD karta je nezbytnou součástí, protože všechny uživatelské programy jsou uloženy na ní
  • Programování v programnovacím jazyce MicroPython (plně funkční) a Scratch (připravuje se) 

Motory a senzory podporované kostkou Brian

Programování

Přehled architektury a funkcionalit

Popis

Brian využívá hlavního procesoru ESP32-S3-WROOM-1 a koprocesoru STM32G0B1VET6 (Dále jen jako ESP a STM). Hlavní čip (ESP) slouží pro spouštění uživatelských programů, ovládání displaye, připojení s počítačem, uživatelskou interakci (běží na něm BLink (Brian Link) – mini “operační systém”, který spojuje různé komponenty a zajišťuje grafické rozhraní). Koprocesor (STM) má na starosti pseudo-realtimeové operace související s ovládáním portů, řízením motorů, implementací sensorových protokolů, řízení nabíjení akumulátoru a komunikace s PD nabíječkou, vnitřní ovládání napájecích větví, vypnutí a zapnutí kostky, atp.

Sensor porty (ovládány pomocí STM) podporují následující funkce:

  • Poskytování stabilizovaného 5V napětí, s proudovou ochranou na 500mA (každý port zvlášť)
  • Možnost programatického vypnutí a zapnutí napětí na portu – ekvivalent tvrdého odpojení a restartu sensoru
  • Možnost poskytnutí 9V na pinu 1 (pro NXT ultrazvuk)
  • Podpora měření analogových sensorů přes pin 1
  • Podpora měření analogových sensorů přes pin 6
  • Podpora I2C sensorů
  • Podpora UART sensorů
  • Podpora reversed UART sensorů/připojení (otočení funkce RX a TX pinů. Umožňuje spojení více kostek do větší sítě pomocí UART komunikace)
  • AD - Autodetekce jednotlivých typů sensorů a jejich příslušných režimů/konfigurace pinů.

Motor porty (ovládány pomocí STM) podporují následující funkce:

  • 5V zdroj, pro čip v motoru nebo napájení enkodérových LEDek
  • 0-9V regulovaný (PWM) výstup na pinech 1 a 2, pro přímé obousměrné ovládání DC motorů
  • Enkodérový vstup (podpora analogových motorů)
  • Podpora UART komunikace (motory s digitálním ovládáním)
  • Podpora reversed UART komunikace (otočení funkce RX a TX pinů. Umožňuje spojení více kostek do větší sítě pomocí UART komunikace)

ESP a STM procesory si navzájem povídají pomocí dedikovaného SPI spojení. Hodiny sběrnicě tikají na 27Mhz a jednotlivé zprávy jsou posílány a zpracovávány v obousměrné 500Hz smyčce.

Výroba

Náhled na použité díly a celkové sestavení

Elektronika - plošné spoje

Elektronika Briana se skládá ze dvou desek, horní a spodní. Každá má dvě strany:

Horní deska, horní strana

Horní deska, spodní strana

Spodní deska, horní strana

Spodní deska, spodní strana

Mechanická konstrukce

Kostka se skládá ze sedmi tištěných dílů krytu, horní a spodní desky plošných spojů, displeje, reproduktoru a dvou lithiových akumulátorů. Jednotlivé součásti jsou pospojovány různými šrouby, které nejsou na obrázku zobrazeny. Konkrétně jde o 6 kusů 6x2,2mm s kulatou hlavou, 4 kusy 12x2,2mm se zápustnou hlavou a 2 kusy 10x2mm se zápustnou hlavou černé barvy.

Horní, spodní kryt a kryt akumulátorů jsou tištěny z černého PETG, ostatní části jsou vytištěny z Pearl White PLA.

Aktualizace firmware

Firmware lze aktualizovat pomocí online nástroje
 

  1. Připojte Briana USB-C kabelem s datovými linkami
  2. Otevřete webový prohlížeč na https://espressif.github.io/esptool-js/
  3. Připojte se v režimu programování
  1. Nahrajte soubor firmwaru (pozor, použijte adresu 0x10000, ne defaultní 0x1000)
  1. V případě většího zásahu do firmwaru, nahrajte i podpůrný soubor partition table na
    adresu 0x8000
  1. Po úspěšném nahrání zvolte disconnect. Kostka Brian může potřebovat manuální
    restart po ukončení operace.
  2. Po restartu a naběhnutní kostky se kostka na několik vteřin až desítek vteřin může
    “zaseknout” - dochází k automatické aktualizaci firmwaru v koprocesoru, aby
    fungoval správně přístup k hardwaru, ovládání LEDek a tlačítek, displaye, portů,
    statusů atp
  3. Vyčkejte na dokončení předchozího procesu. Kostka se po té sama zrestartuje do
    připraveného stavu.

(V případech problémů s připojením, ujistěte se, že máte Brian nastavení aktivní Settings > Use USB for… > debug console a případně změňte a restartujte kostku)

Práce s kostkou

Originální a pravidelně aktualizovaný text brian_getting_started

 

Kostka Brian byla vyvinuta firmou Voltavian pro FEL ČVUT v Praze na základě „Smlouvy o spolupráci ve výzkumu a vývoji“.