Přejít k navigační liště

Zdroják » Různé » Microbit robůtek Cutebot s joystickem

Microbit robůtek Cutebot s joystickem

Články Různé

Nedávno mi Milan Lempera ukázat spoustu udělátek. Mimo jiné doplňky pro microbit od firmy Elecfreaks. Podíváme se na robůtka Cutebot a použití joystiku.

Text vyšel původně na webu autora.

Další „hračky“ pro potřeby kroužku aktivně nevyhledávám, ale nedokážu těm dobrým odolat. Na posledním semináři pro učitele informatiky mě přítomností poctil Milan Lempera, programátor a vedoucí kroužku, který s sebou na ukázku přivezl spoustu udělátek. Mimo jiné doplňky pro microbit od firmy Elecfreaks. Jmenovitě se chci věnovat robůtkovi Cutebot a joystiku. Ukázalo se, že škola zakoupila tři kusy verze 2, takže jsem si je hned půjčil domů, nastudoval, a zařadil na program svého kroužku.

Úvod

Z mých textů je patrné, že co se robotů týče, vybral jsem si Meet Edison a jsem s nimi spokojen (a to mluvím o verzi dva, trojku jsem ještě neměl v ruce, ale vypadá dobře). Ovšem proč nezkusit něco jiného, že?

Edison je robustní, ale neumožňuje připojovat periferie. Cutebot je opak, zašlápnutí ho asi může dost pocuchat, zato ho lze rozšiřovat.

A je nutné ho sestavit. Není to nic obtížného, ale didakticky to hodnotím pozitivně (IKEA efekt). Zatímco u robota stačí zapojit senzor a oboustrannou páskou přilepit držák baterie, tak u joysticku je nutné i šroubovat, což se u dětí na prvním stupni ukázalo jako velká výzva, která nám zabrala velkou část hodiny. Aby bylo jasno, i za šroubky a čas s nimi strávený jsem rád. Úmyslně jsem to dětem neskládal já předem.

Kód editujete normálně jak jste zvyklí na makecode.microbit.org, jen si přidáte rozšíření blokového jazyka.

Periferie

V krabici dostanete ultrazvukový senzor HC-SR04. Hned vedle konektoru pro ultrazvukový senzor najdete I2C konektor pro další moduly. To je trochu i nevýhoda, protože HC-SR04 velmi snadno vložíte do špatného konektoru a Cutebot se pak chová podivně. Prostě běžné potíže hardwarového světa.

Dále se na desce nachází i konektor pro zapojení serva, to jsem ještě nevyzkoušel.

Didaktické materiály

Líbí se mi anglické návody na webu Elecfreaks.

Edison detekuje překážku pomocí infračerveného světla, se kterým podle mě nejde dosáhnout takové přesnosti jako s ultrasonickým čidlem. Využito v lekci 10, udržování fixní vzdálenosti, říkal jsem tomu adaptivní tempomat.

Naší vrcholnou hodinou bylo ovládání Cutebotu joystickem, lekce 13.

Joystick

Joystick na sobě má vibrační motorek pro poskytnutí zpětné vazby (pozor, máte-li microbity v obalech, tak pro tento účel doporučuji sundat).

Jako úlohu ahoj světe pro joystick jsem zvolil ukazatel směru ovládaný gamepadem. V základu se jedná o čtyři směry.

Abych však jen neodkazoval na cizí návody, tak přidám něco ze své zahrádky. Děti zajímalo, jak ukazovat i úhlopříčky. To jsem z hlavy nedal, ale vypracoval jsem si v klidu za domácí úkol. V emulátoru se to ladí trochu těžkopádně, musíte si nastavovat hodnoty na analogových pinech P1 a P2. Povšimněte si inicializace joysticku, chvíli mi trvalo, než jsem přišel na, že když to zapomenu, tak joystick fungovat nebude.

Zároveň jsem se zasekl na tom, že zásadní refactoring se v blocích dělá celkem pracně. Naštěstí jsem si uvědomil, že se můžu přepnout do javascriptu, upravit si tam, a pak se opět vrátit do blokového jazyka..

joystickbit.initJoystickBit()
basic.forever(<strong>function</strong> () {
    <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong>>=</strong> 800 <strong>&&</strong> joystickbit.getRockerValue(joystickbit.rockerType.X) <strong>>=</strong> 800) {
        basic.showArrow(ArrowNames.NorthWest)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong>>=</strong> 800 <strong>&&</strong> joystickbit.getRockerValue(joystickbit.rockerType.X) <strong><=</strong> 200) {
        basic.showArrow(ArrowNames.NorthEast)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong><=</strong> 200 <strong>&&</strong> joystickbit.getRockerValue(joystickbit.rockerType.X) <strong><=</strong> 200) {
        basic.showArrow(ArrowNames.SouthEast)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong><=</strong> 200 <strong>&&</strong> joystickbit.getRockerValue(joystickbit.rockerType.X) <strong>>=</strong> 800) {
        basic.showArrow(ArrowNames.SouthWest)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.X) <strong><=</strong> 200 <strong>&&</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong>></strong> 200 <strong>||</strong> joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong><</strong> 800)) {
        basic.showArrow(ArrowNames.East)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong><=</strong> 200 <strong>&&</strong> (joystickbit.getRockerValue(joystickbit.rockerType.X) <strong>></strong> 200 <strong>||</strong> joystickbit.getRockerValue(joystickbit.rockerType.X) <strong><</strong> 800)) {
        basic.showArrow(ArrowNames.South)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.X) <strong>>=</strong> 800 <strong>&&</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong>></strong> 200 <strong>||</strong> joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong><</strong> 800)) {
        basic.showArrow(ArrowNames.West)
    } <strong>else</strong> <strong>if</strong> (joystickbit.getRockerValue(joystickbit.rockerType.Y) <strong>>=</strong> 800 <strong>&&</strong> (joystickbit.getRockerValue(joystickbit.rockerType.X) <strong>></strong> 200 <strong>||</strong> joystickbit.getRockerValue(joystickbit.rockerType.X) <strong><</strong> 800)) {
        basic.showArrow(ArrowNames.North)
    } <strong>else</strong> {
        basic.showIcon(IconNames.SmallDiamond)
    }
})
Code language: PHP (php)

Kdyby vám docházely nápady, tak na joysticku můžete po stisku tlačítka ukazovat vzdálenost, kterou naměřil ultrazvukový senzor Cutebotu.

Závěr

Výrobky Elecfreaks jsou zajímavé (pravděpodobně o nich nepíšu naposledy). Cutebot i joystick ve výuce jistě využijete. Pokud byste museli vybírat jediný směr kvůli omezené časové dotaci nebo nedostatku finančních prostředku, tak zvažte, zda jste hračičkové (chcete věci spojovat a řešit případné problémy) nebo zda preferujete kompaktní a robustní řešení. Zároveň dodávám, že informatika i kroužek se zvládnou obejít bez podobných pomůcek. Určitě se nemusíte cítit provinile, pakliže je nemáte. I když pozornost dětí to přitáhne. Respektive to s pomůckami nemusíte přehánět.

Související

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře

Vite 8 Beta přináší nový bundler Rolldown a zásadní zrychlení buildů

Vite je moderní nástroj pro vývoj webových aplikací, který klade důraz na rychlost a jednoduchou konfiguraci. Umožňuje okamžitý start dev serveru a optimalizované produkční buildy, což urychluje vývoj i nasazení. Verze 8 Beta přináší zásadní změnu díky integraci bundleru Rolldown napsaného v Rustu, který sjednocuje vývojovou a produkční pipeline. Novinka výrazně zrychluje buildy a přináší moderní optimalizace. Součástí jsou také nové funkce pro TypeScript a připravovaný Full Bundle Mode pro rychlejší dev server.

Stack Overflow spouští AI Assist: nový nástroj pro moderní vývojáře

Stack Overflow představil AI Assist, nástroj, který propojuje generativní AI s rozsáhlou databází ověřených znalostí komunity. Platforma, která byla více než 18 let klíčovým zdrojem řešení pro vývojáře po celém světě, tím reaguje na změny ve způsobu práce s informacemi. Cílem AI Assist je zrychlit hledání odpovědí, zvýšit jejich spolehlivost a nabídnout kontext, který pomáhá lépe porozumět problému i řešení. Tento krok odráží trend, kdy se vývojáři čím dál více obracejí na nástroje, které dokážou kombinovat rychlost AI s ověřenými znalostmi komunity. AI Assist se tak stává mostem mezi tradičním Q&A formátem a moderními interaktivními asistenty.

Austrálie vs. sociální sítě: ochrana dětí nebo absurdní regulace?

Různé
Komentáře: 1
Austrálie chystá razantní krok – od prosince 2025 budou děti mladší 16 let muset opustit sociální sítě. Ministryně komunikací Anika Wells ujistila, že vláda se nenechá zastrašit technologickými giganty. Zákon má chránit mladé uživatele před negativními dopady online světa, ale kritici varují, že může vést spíš k obcházení pravidel než k reálné ochraně.