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

Het breakdancermodel van LEGO.

De LEGO® Education SPIKE™ Prime Set is een STEAM-leermiddel (wetenschap, technologie, techniek, kunst en wiskunde) voor leerlingen in de klassen zes tot en met acht (ongeveer 11 tot 13 jaar).

SPIKE Prime combineert kleurrijke LEGO-bouwelementen, gebruiksvriendelijke hardware en een intuïtieve drag-and-drop-programmeertaal op basis van Scratch en Python. Door middel van speelse leeractiviteiten worden leerlingen voortdurend gestimuleerd om kritisch te denken en complexe problemen op te lossen, ongeacht hun leerniveau... en dat allemaal met plezier!

Programmeerervaring

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

In de twee visuele modi verbinden leerlingen blokken door ze naar het programmeercanvas te slepen en neer te zetten. Ze koppelen de verschillende blokken aan elkaar door ze te verbinden.

De LEGO-programmeeromgeving met een woordblokprogramma.

Gevorderde studenten kunnen ervoor kiezen om direct echte Python-code te gebruiken. De code wordt geleverd met een geïntegreerde kennisbank ter ondersteuning van studenten tijdens het coderen.

De LEGO-programmeeromgeving met een Python-programma.

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

Meegeleverde hardware

Het brein van de SPIKE Education kit is de hub, die de diverse andere hardware, zoals de sensoren en motoren, aanstuurt. De kit bevat een kleurensensor, een afstandssensor en een krachtsensor. Er zijn ook twee motoren: een grote en een middelgrote. De hub maakt via Bluetooth of USB verbinding met de computer.

De programmeerbare onderdelen van de LEGO SPIKE Education kit.
De grote hub, drie sensoren voor kleur, afstand en kracht en twee motoren.

Ondersteunde applicaties

Naast platformspecifieke apps biedt LEGO ook de SPIKE-webapp aan, die toegankelijk is via spike.legoeducation.com . De app wordt niet in de browser gecached, dus gebruikers moeten altijd verbonden zijn met internet om de webapp te laten werken.

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

Maak verbinding 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 webapp Bluetooth met de Web Bluetooth API .

Als alternatief gebruikt de webapp de Web Serial API bij een USB-verbinding. In beide gevallen is de verbinding, afgezien van de USB-kabel, vrijwel identiek.

LEGO Education SPIKE app met instructies voor USB-verbinding.

Zodra ze verbinding hebben, uploaden studenten hun programma's naar een van de 20 opslaglocaties van de grote hub.

LEGO Education SPIKE 'Download naar Hub'-gebruikersinterface.

Voor communicatie met de hub hebben de Web Bluetooth en de Web Serial API respectievelijk een BluetoothDevice of een SerialPort nodig. Deze zijn te vinden in de codefragmenten uit de live-app.

Web Bluetooth API-verbinding

(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 webhardware-API's te gebruiken

LEGO onderhoudt momenteel onafhankelijke versies van hun app voor Android, macOS/iPadOS en Windows, plus oudere versies van de platformspecifieke apps daarbovenop, naast de webapp. Door de webapp te publiceren op platforms die de onderliggende webhardware-API's in Chrome ondersteunen, namelijk macOS, Windows en ChromeOS, kunnen LEGO-ontwikkelaars hun app-onderhoudslast aanzienlijk verminderen.

Een andere reden is de downloadgrootte. De webapp 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 voor in de klas. Na het downloaden van dit materiaal neemt de bestandsgrootte met bijna 1 GB toe. In de webapp wordt de lesinhoud gestreamd, waardoor de gebruiker altijd de nieuwste versie heeft en alleen de les hoeft te downloaden die hij of zij bekijkt.

Naast deze technische redenen is de eenvoud van het gebruik in de klas een ander sterk argument om web-first te gaan. Leerlingen hoeven geen app te installeren en deze up-to-date te houden. In plaats daarvan volgen ze gewoon een link en werken ze altijd met de meest recente versie. Vanuit LEGO's kant zijn contentupdates altijd mogelijk, onafhankelijk van de beoordelingsprocessen in de app store.

Knutsel met LEGO op het web

Bij LEGO draaide het altijd om het creatief in elkaar zetten van stenen. En nu LEGO Education SPIKE toegankelijk is via webbrowsers, vormt deze set daarop geen uitzondering.

De ontwikkelaarscommunity is al begonnen met het creëren van code die met SPIKE communiceert. PyREPL-JS is bijvoorbeeld ontwikkeld door Gabriel Sessions van Tufts University. PyREPL-JS biedt een MicroPython REPL (read-eval-print loop) waarmee webpagina's met de SPIKE-hub kunnen communiceren. Ethan Danahy , eveneens van Tufts, gebruikt deze REPL vervolgens voor een aantal webinterfaces voor SPIKE Prime , waaronder de breakdancer gesynchroniseerd met een audiobestand .

De universiteit organiseerde een workshop over machine learning met SPIKE en organiseerde een Robotics Playground met instructies en codevoorbeelden. Een goede plek om te beginnen is Hello SPIKE .

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

Door leerlingen in staat te stellen om vanuit de browser met fysieke LEGO-modellen te communiceren, openen de Web Serial en Web Bluetooth API's een wereld aan mogelijkheden voor educatieve, creatieve en entertainmenttoepassingen. Leerlingen beschikken altijd over de nieuwste versie van de app zonder deze te hoeven updaten.

Op de lange termijn zullen LEGO-ontwikkelaars minder apps hoeven te onderhouden. Dit betekent lagere kosten en minder ontwikkelinspanningen. Zo blijft er meer tijd over voor waar LEGO om bekendstaat: het ontsluiten van creativiteit.