Gå til hovedinnhold

Introduksjon til blokker

MOCPilot bruker et visuelt blokkbasert programmeringssystem som ligner på Scratch i utseende og bruk. Hver blokk har en spesifikk rolle, og gyldige kombinasjoner definerer kontrollflyt og dataflyt i et skript. Systemet bruker dra-og-slipp-logikk og Scratch-lignende interaksjonsmønstre for å gi en enkel og kjent måte å bygge programmer på.

Kompatibilitetsmerknad

Dette er et annet blokksystem med egne blokker og egen oppførsel.
MOCPilot-programmer er ikke kompatible med Scratch-prosjekter: MOCPilot-programmer kan ikke importeres til Scratch, og Scratch-programmer kan ikke importeres til MOCPilot.

Blokkformer og betydning

Startblokker (Hat Blocks)

block_event_when_program_started.svgblock_event_when.svg

Starter et skript når en spesifikk hendelse oppstår. Blokker kan kun festes under.


Stabelblokker

block_control_wait_for.svgblock_sensors_timer_reset.svg

Hovedblokker som utfører handlinger.


C-blokker

block_control_if.svgblock_control_if_else.svg

C-formede kontrollblokker som inneholder nestede blokkstabler (løkker/betingelser).


Rapportørblokker

block_sensors_timer_value_float.svgblock_operator_math_single.svg

Returnerer verdier som tall eller tekst.


Boolske blokker

block_operator_equal.svgblock_operator_string_contains.svg

Returnerer kun true eller false, brukes vanligvis i betingelser.


Sluttblokker

block_control_stop.svgblock_control_repeat_forever.svg

Avslutter skript og tillater ikke blokker under.


Blokkstabel

blocks_stack.svg

En blokkstabel er en sekvens av sammenkoblede blokker som kjøres som én flyt fra topp til bunn.
Stabler starter vanligvis med en hendelsesblokk og kjører deretter tilkoblede blokker i rekkefølge.


Utførelsesmodell for skript

  • Et skript starter vanligvis med en hendelsesblokk.
  • Tilkoblede blokker kjøres fra topp til bunn.
  • Flere skript kan kjøre parallelt.
  • Meldings-/kringkastingsblokker brukes for å synkronisere skript.
  • En blokkstabel er en sekvens av sammenkoblede blokker.

Data og verdier

  • Rapportørblokker kan brukes inne i kommando- og betingelsesfelt.
  • Variabler lagrer gjenbrukbare verdier på tvers av blokker og skript.
  • Lister lagrer ordnede samlinger for historikk, køer og oppslag.

Hendelser og timing

  • Hendelsesblokker reagerer på brukerinput, hub-status, sensorer eller meldinger.
  • Tids- og sensorbaserte hendelser kan trigges ofte.
  • Bruk terskler, filtrering eller korte pauser for å redusere støy fra gjentatte triggere.

Hub, porter og kontrollere

  • Hub-blokker opererer på hub- og portkontekst.
  • Noen blokker er kun tilgjengelige for spesifikke hub-typer/enheter.
  • Dashboard- og gamepad-blokker gir runtime-input og UI-kontroll.

Anbefalt arbeidsflyt

  1. Start med én hendelsesblokk og et minimalt skript.
  2. Verifiser motor-/sensorretning og verdiområder tidlig.
  3. Gjenbruk logikk med meldinger og hjelpeskript.
  4. Legg til sikkerhetsmekanismer (grenser, stopp, fallback-verdier) før finjustering.

Vanlige fallgruver

  • Manglende startblokk gjør at skriptet aldri starter.
  • Feil hub-/portvalg gir ingen synlig effekt.
  • Blanding av verdityper (tekst/tall/boolsk) kan gi ugyldig logikk.
  • Høyfrekvente hendelser uten filtrering kan overbelaste systemet.

Dokumentasjonsstruktur i denne seksjonen

Bruk kategorisider i denne rekkefølgen:

  • Lys
  • Motorer
  • Sensorer
  • Hendelser
  • Kontroll
  • Operatorer
  • Variabler
  • Lister
  • Mine blokker
  • Dashboard-kontrollere
  • Gamepad