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(function () {
    if (joystickbit.getRockerValue(joystickbit.rockerType.Y) >= 800 && joystickbit.getRockerValue(joystickbit.rockerType.X) >= 800) {
        basic.showArrow(ArrowNames.NorthWest)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.Y) >= 800 && joystickbit.getRockerValue(joystickbit.rockerType.X) <= 200) {
        basic.showArrow(ArrowNames.NorthEast)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.Y) <= 200 && joystickbit.getRockerValue(joystickbit.rockerType.X) <= 200) {
        basic.showArrow(ArrowNames.SouthEast)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.Y) <= 200 && joystickbit.getRockerValue(joystickbit.rockerType.X) >= 800) {
        basic.showArrow(ArrowNames.SouthWest)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.X) <= 200 && (joystickbit.getRockerValue(joystickbit.rockerType.Y) > 200 || joystickbit.getRockerValue(joystickbit.rockerType.Y) < 800)) {
        basic.showArrow(ArrowNames.East)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.Y) <= 200 && (joystickbit.getRockerValue(joystickbit.rockerType.X) > 200 || joystickbit.getRockerValue(joystickbit.rockerType.X) < 800)) {
        basic.showArrow(ArrowNames.South)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.X) >= 800 && (joystickbit.getRockerValue(joystickbit.rockerType.Y) > 200 || joystickbit.getRockerValue(joystickbit.rockerType.Y) < 800)) {
        basic.showArrow(ArrowNames.West)
    } else if (joystickbit.getRockerValue(joystickbit.rockerType.Y) >= 800 && (joystickbit.getRockerValue(joystickbit.rockerType.X) > 200 || joystickbit.getRockerValue(joystickbit.rockerType.X) < 800)) {
        basic.showArrow(ArrowNames.North)
    } else {
        basic.showIcon(IconNames.SmallDiamond)
    }
})

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

Přístupnost není jen o splnění norem: nový pohled na inkluzivní design

Přístupnost a inkluze možná nepatří mezi nejžhavější témata digitálního světa – dokud o nich nezačne mluvit Vitaly Friedman. Na WebExpo 2024 předvedl, že inkluzivní design není jen o splněných checkboxech, ale hlavně o lidech. S energií sobě vlastní obrátil zažité přístupy naruby a ukázal, že skutečně přístupný web je nejen možný, ale i nezbytný.

Efektivnější vývoj UI nebo API: Co si odnést z WebExpo 2025?

Různé
Komentáře: 0
Jak snadno implementovat moderní uživatelské rozhraní? Které funkce brzdí rychlost vašeho webu? A kdy raději sami přibrzdit, abychom využitím AI nepřekročili etické principy? Debatu aktuálních dev témat rozdmýchá sedmnáctý ročník technologické konference WebExpo, která proběhne v Praze od 28. do 30. května. Který talk či workshop si rozhodně nenechat ujít? Toto je náš redakční výběr z vývojářských hroznů.

Zapřáhněte AI jako nikdy předtím. Květnová konference WebExpo přivítá hvězdy technologického světa

Od 28. do 30. května 2025 promění pražský Palác Lucerna na tři dny technologická konference WebExpo. Na programu je více než 80 přednášek a workshopů od expertů z celého světa. WebExpo tradičně propojuje vývojáře, designéry, marketéry i byznysové lídry a nabízí praktické dovednosti, strategické myšlení a přináší nejnovější trendy nejen v oblasti AI.