Kostka Brian

Kostka Brian je kompatibilní se staršími kostkami 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 (EV3, NXT a Brian)
  • Připojit a použít až 4 LEGO motory (EV3 a NXT) 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

Motory a senzory ze stavebnice LEGO Mindstorms EV3

Motory a senzory ze stavebnice LEGO Mindstorms NXT

Senzory ze stavebnice Brian

Programování

Dokumentace k projektu (pouze v angličtině)

a Brian_python_docs

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 v prohlížeči založeném na Chromiu (Microsoft Edge, Google Chrome, ...)
 

  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 0x0, ne defaultní 0x1000)
  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“.