Introductie van blokken
MOCPilot gebruikt een visueel blokprogrammeringssysteem dat lijkt op en aanvoelt als Scratch. Elk blok heeft een specifieke rol, en geldige combinaties bepalen de besturingsstroom en gegevensstroom binnen een script. Het maakt gebruik van drag-and-drop logica en interactiepatronen vergelijkbaar met Scratch om een handige en vertrouwde manier te bieden om programma’s te bouwen.
Dit is een ander bloksysteem met een eigen set blokken en gedrag.
MOCPilot-programma’s zijn niet compatibel met Scratch-projecten: MOCPilot-programma’s kunnen niet in Scratch worden geïmporteerd en Scratch-programma’s kunnen niet in MOCPilot worden geïmporteerd.
Blokvormen en betekenis
Startblokken
Starten een script wanneer een specifieke gebeurtenis plaatsvindt. Blokken kunnen alleen eronder worden gekoppeld.
Stapelblokken (Stack Blocks)
Hoofdopdrachtblokken die acties uitvoeren.
C-blokken
C-vormige besturingsblokken die geneste blokstapels bevatten (lussen/voorwaarden).
Rapporteurblokken
Geven waarden terug zoals getallen of tekst.
Booleaanse blokken
Geven alleen true of false terug, meestal gebruikt in voorwaarden.
Eindblokken
Beëindigen scripts en laten geen blokken eronder toe.
Blokstapel
Een blokstapel is een reeks verbonden blokken die als één script van boven naar beneden wordt uitgevoerd.
Stapelblokken beginnen meestal met een gebeurtenisblok en voeren daarna de gekoppelde blokken in volgorde uit.
Script-uitvoeringsmodel
- Een script start meestal met een gebeurtenisblok.
- Verbonden stapelblokken worden van boven naar beneden uitgevoerd.
- Meerdere scripts kunnen parallel draaien.
- Bericht-/broadcastblokken worden gebruikt om scripts te synchroniseren.
- Een blokstapel is een reeks verbonden blokken.
Gegevens en waarden
- Rapporteurblokken kunnen genest worden in invoervelden van opdrachten/voorwaarden.
- Variabelen slaan herbruikbare waarden op tussen blokken en scripts.
- Lijsten slaan geordende verzamelingen op voor geschiedenis, wachtrijen en opzoekgegevens.
Gebeurtenissen en timing
- Gebeurtenisblokken reageren op gebruikersinvoer, hubstatus, sensoren of berichten.
- Timer- en sensorgebaseerde gebeurtenissen kunnen vaak worden geactiveerd.
- Gebruik drempels, filtering of korte wachttijden om herhaalde triggers te verminderen.
Hub, poorten en controllers
- Hubblokken werken binnen de context van hub en poort.
- Sommige blokken zijn alleen beschikbaar voor specifieke hubfamilies/apparaten.
- Dashboard- en gamepadblokken bieden runtime-invoer en UI-besturing.
Aanbevolen workflow
- Begin met één gebeurtenisblok en een minimaal script.
- Controleer vroegtijdig motor-/sensorrichting en bereik.
- Hergebruik logica met berichten en hulpscripts.
- Voeg beveiligingen toe (limieten, stops, fallbackwaarden) vóór finetuning.
Veelvoorkomende valkuilen
- Geen startblok → script wordt nooit uitgevoerd.
- Verkeerde hub-/poortselectie → geen zichtbaar effect.
- Mengen van waardetypen (tekst/getal/boolean) kan ongeldige logica veroorzaken.
- Hoogfrequente gebeurtenissen zonder filtering kunnen gedrag overbelasten.
Documentatiestructuur in deze sectie
Gebruik categoriepagina’s in deze volgorde:
- Light
- Motors
- Sensors
- Gebeurtenissen
- Besturing
- Operators
- Variabelen
- Lijsten
- Mijn blokken
- Dashboardbedieningselementen
- Gamepad