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ě)
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, ...)
- Připojte Briana USB-C kabelem s datovými linkami
- Otevřete webový prohlížeč na https://espressif.github.io/esptool-js/
- Připojte se v režimu programování
- Nahrajte soubor firmwaru (pozor, použijte adresu 0x0, ne defaultní 0x1000)
- Po úspěšném nahrání zvolte disconnect. Kostka Brian může potřebovat manuální
restart po ukončení operace. - 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 - 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