Hoe LEGO® Education de Web Bluetooth- en Web Serial API's gebruikt

Het breakdancer-model dat is samengesteld uit LEGO.

De LEGO® Education SPIKE™ Prime Set is een STEAM-leermiddel (Science, Technology, Engineering, Arts and Mathematics) voor leerlingen van groep 7 en 8 (ongeveer 11 tot 13 jaar).

SPIKE Prime combineert kleurrijke LEGO-bouwstenen, gebruiksvriendelijke hardware en een intuïtieve programmeertaal met slepen en neerzetten op basis van Scratch en Python. SPIKE Prime houdt leerlingen voortdurend bezig met speelse leeractiviteiten om kritisch na te denken en complexe problemen op te lossen, ongeacht hun leerniveau. En dat allemaal op een leuke manier!

Programmeerkennis

Leerlingen gebruiken icoonblokken, woordblokken (standaard) of Python-code om hun modellen te programmeren. De programmeeromgeving is aangepast van de Scratch-editor, die veel leerlingen al kennen van het vroege STEAM-onderwijs op school.

In de 2 visuele modi verbinden leerlingen blokken door ze naar het programmeercanvas te slepen. Ze koppelen de verschillende blokken door ze met elkaar te verbinden.

De LEGO-programmeeromgeving met een woordblokprogramma.

Meer gevorderde leerlingen kunnen ervoor kiezen om rechtstreeks echte Python-code te gebruiken. Er is een geïntegreerde kennisbank om leerlingen te ondersteunen tijdens het coderen.

De LEGO-programmeeromgeving met een Python-programma.

Nadat de leerlingen een programma hebben gemaakt in de LEGO Education SPIKE-app, sturen ze het programma via een bluetooth- of USB-verbinding naar de LEGO Education Spike Prime-hub. De hub voert het programma uit en bestuurt het LEGO-model.

Meegeleverde hardware

De kern van de SPIKE Education-set is de hub, die de verschillende andere hardwarecomponenten aanstuurt, zoals de sensoren en de motoren. De set bevat een kleurensensor, afstandssensor en krachtsensor. Er zijn ook 2 motoren: 1 grote en 1 middelgrote. De hub maakt verbinding met de computer via bluetooth of USB.

De programmeerbare onderdelen van de LEGO SPIKE Education-set.
De grote hub, 3 sensoren voor kleur, afstand en kracht, en 2 motoren.

Ondersteunde apps

Naast platformspecifieke apps biedt LEGO ook de SPIKE-web-app, die toegankelijk is via spike.legoeducation.com. De app wordt niet in de browser opgeslagen in het cachegeheugen, dus gebruikers moeten altijd verbinding hebben met internet om de web-app te kunnen gebruiken.

LEGO ondersteunt officieel Chrome-browsers op Windows 10 en 11, MacBooks en Chromebooks. Verbeteringen in de cache en de app installeerbaar maken zijn geplande functies voor de toekomst.

Verbinding maken met de SPIKE Hub

De SPIKE Prime-hub en de SPIKE Essential-hub kunnen via bluetooth of USB met de computer worden verbonden. Standaard gebruikt de web-app bluetooth met de Web Bluetooth API.

Als alternatief gebruikt de web-app de Web Serial API als deze via USB is verbonden. In beide gevallen is het verbindingsproces, afgezien van de USB-kabel, bijna identiek.

Instructies voor USB-verbinding met de LEGO Education SPIKE-app.

Nadat de leerlingen verbinding hebben gemaakt, uploaden ze hun programma's naar een van de 20 opslagsleuven van de grote hub.

UI van LEGO Education SPIKE 'Downloaden naar Hub'.

Voor communicatie met de hub hebben de Web Bluetooth API en de Web Serial API een BluetoothDevice of een SerialPort nodig. Deze worden verkregen in de codefragmenten die uit de live app zijn gehaald.

Verbinding met Web Bluetooth API

(X.next = 4),
  navigator.bluetooth.requestDevice({
    filters: [
      {
        namePrefix: 'GDX',
      },
    ],
    optionalServices: ['d91714ef-28b9-4f91-ba16-f0d9a604f112'],
  });

Web Serial API-verbinding

const v = yield navigator.serial.requestPort({
  filters: [{
    usbVendorId: Zt.SerialVendorId.LEGO // 1684
  }]
});
yield v.open({
  baudRate: 115200
});

Redenen om web-first te gaan en web-hardware-API's te gebruiken

Op dit moment onderhoudt LEGO onafhankelijke versies van hun app voor Android, macOS/iPadOS en Windows, plus verouderde versies van de platformspecifieke apps, naast de web-app. Door de web-app te pushen op platforms die de onderliggende webhardware-API's in Chrome ondersteunen, namelijk macOS, Windows en ChromeOS, kunnen LEGO-ontwikkelaars de onderhoudslast van hun app aanzienlijk verminderen.

Een andere reden is de downloadgrootte. De web-app downloadt in totaal minder dan 20 MB, terwijl de macOS- en iPadOS-app 115 MB weegt, de Android-app 178 MB en de Windows-app 292 MB. De eerste installatie bevat echter niet het lesmateriaal dat nodig is in de klas. Nadat je dit materiaal hebt gedownload, neemt de grootte met bijna 1 GB toe. In de web-app wordt de lescontent gestreamd. Zo heeft de gebruiker altijd de nieuwste versie en wordt alleen de exacte les gedownload die de gebruiker bekijkt.

Naast deze technische redenen is de eenvoud van gebruik in de lesgroep nog een sterk argument om webgerichte apps te gebruiken. Studenten hoeven geen app te installeren en up-to-date te houden. In plaats daarvan volgen ze een link en werken ze altijd met de meest recente versie. LEGO kan altijd contentupdates uitvoeren, onafhankelijk van de beoordelingsprocessen van de app store.

Experimenteren met LEGO op het web

LEGO draaide altijd al om het creatief in elkaar zetten van blokjes. Met LEGO Education SPIKE, dat toegankelijk is via webbrowsers, is deze set geen uitzondering op de regel.

De ontwikkelaarscommunity is al begonnen met het maken van code die met SPIKE communiceert. PyREPL-JS is bijvoorbeeld gestart door Gabriel Sessions aan de Tufts University. PyREPL-JS biedt een MicroPython REPL (read–eval–print loop) voor webpagina's om met de SPIKE-hub te communiceren. Ethan Danahy, ook van Tufts, gebruikt deze REPL voor een aantal webinterfaces voor SPIKE Prime, waaronder een breakdancer die is gesynchroniseerd met een audiobestand.

De universiteit organiseerde een workshop over machine learning met SPIKE en heeft een robotica-speeltuin met instructies en codevoorbeelden. Een goed beginpunt is Hallo SPIKE.

Het LEGO-model van de breakdancer is gesynchroniseerd met een audiobestand.

Doordat leerlingen vanuit de browser kunnen communiceren met fysieke LEGO-modellen, bieden de Web Serial en Web Bluetooth API's een wereld aan mogelijkheden voor educatieve, creatieve en entertainmenttoepassingen. Leerlingen hebben altijd de nieuwste versie van de app zonder deze te hoeven updaten.

Op de lange termijn hoeven LEGO-ontwikkelaars minder apps te onderhouden. Dit betekent lagere kosten en minder ontwikkelingsinspanningen, waardoor er meer tijd overblijft voor waar LEGO om bekendstaat: creativiteit stimuleren.