BlockWerk Documentatie
πŸ“±

Connected Phone

Connectivity

RemoteSensor is een bronblok (source) dat realtime traagheidsgegevens en optionele sensordata vanaf een gekoppeld mobiel apparaat via een WebRTC peer-to-peer-verbinding naar de simulatie streamt. Wanneer het blok op het canvas wordt geplaatst, genereert het een koppelings-QR-code; het scannen hiervan vanuit de browser van de smartphone brengt de verbinding tot stand. Eenmaal verbonden biedt het blok uitgangspoorten voor versnellingsmeter (3 assen), gyroscoop (3 assen) en een bufferconditiesignaal, waarbij automatisch extra poorten worden toegevoegd wanneer de telefoon een magnetometer, barometer of GPS-functionaliteit meldt.

Gebruik dit blok voor op beweging gebaseerde regelexperimenten, gebareninvoer of hardware-in-the-loop-tests waarbij een mobiel apparaat fungeert als een draadloze inertiΓ«le meeteenheid (IMU). Een configureerbare afspeelbuffer en interpolatiefilter strijken de variabele netwerkstroom glad voordat deze de simulatieblokken binnenkomt.

Simuleren in BlockWerk

Interactieve sandbox direct in je browser β€” geen installatie, aangedreven door WebAssembly.

Simuleren in BlockWerk →

Ingangen & Uitgangen

Direction ID Label Type Status
← Out accelX Accel X number Output
← Out accelY Accel Y number Output
← Out accelZ Accel Z number Output
← Out gyroAlpha Rotation Alpha number Output
← Out gyroBeta Tilt Beta number Output
← Out gyroGamma Tilt Gamma number Output
← Out bufferLevel Buffer (ms) number Output

Parameters

Parameters Label Type Standaard Beschrijving
playoutDelay Playout Delay (ms) number 250
interpolation Interpolation select linear How to reconstruct signal values between received sensor packets. Linear is the best default. PCHIP is smoother but heavier.
outputLabels Output Labels vector accelX,accelY,accelZ,gyroAlpha,gyroBeta,gyroGamma,bufferLevel

Gebruiksvoorbeelden

Telefoonkanteling gebruiken als referentie-invoer voor een PID-lus

RemoteSensor ──► [Tilt Beta] ──► Gain ──► PIDController β†’ [in]

Alle 6-DOF traagheidssignalen loggen naar een oscilloscoop

RemoteSensor ──► [Accel X]        ┐
               ──► [Accel Y]      β”œβ”€β”€β–Ί Scope
               ──► [Accel Z]      β”‚
               ──► [Rotation Alpha]β”‚
               ──► [Tilt Beta]    β”‚
               ──► [Tilt Gamma]   β”˜

Opmerkingen & Best Practices

  • Bronblok: Alle sensorkanalen zijn uitgangspoorten (rechterkant). Het blok heeft in zijn basisconfiguratie geen signaalingangen.
  • Dynamische poorten: Poorten worden na het koppelen automatisch toegevoegd of verwijderd op basis van de gemelde sensormogelijkheden van het apparaat (versnelling, gyroscoop, magnetisme, barometer, gps). Actuator-ingangspoorten (Vibrate, Beep) verschijnen aan de linkerkant wanneer de telefoon deze ondersteunt.
  • WebRTC vereist: Zowel de smartphone als de desktopbrowser moeten internettoegang hebben voor de PeerJS-signaleringshandshake. Voor louter lokale netwerken is een eigen gehoste PeerJS-server vereist (configureerbaar via localStorage-sleutels blockwerk_peer_host / blockwerk_peer_port).
  • Buffer-niveaupoort: De bufferLevel-uitvoer rapporteert de huidige playout-lookahead in milliseconden. Sluit deze aan op een Display of Assertion om de netwerkkwaliteit te bewaken.
  • Ruwe gegevens exporteren: Klik tijdens de simulatie op de opnameknop op het blok om ruwe pakkettelemetrie vast te leggen (tijdstempels, jitter, aswaarden) en te exporteren als CSV.
  • Waarden bij ontkoppeling: Alle poorten houden de waarde 0 vast totdat de telefoon verbinding maakt en begint met zenden.

Gerelateerde Componenten

  • PhoneController: Zelfde QR-koppelingsproces, maar met een virtuele touchscreen-joystick (of kantelmodus) die X/Y-stuurwaarden streamt β€” ideaal voor interactieve experimenten zoals "Fly the Quadcopter (Live)".
  • MQTTSubscriber: Alternatieve bron voor netwerksensordata via een MQTT-broker.
  • ExternalInput: Lichtgewicht bron voor handmatig ingevoerde of gescripte numerieke waarden.