Connected Phone
ConnectivityRemoteSensor est un bloc source qui diffuse en continu des données inertielles et de capteurs optionnels depuis un appareil mobile appairé vers la simulation via une liaison pair-à-pair WebRTC. Dès son insertion sur le canevas, le bloc génère un QR code d'appairage ; le scanner avec le navigateur du smartphone établit instantanément la liaison. Une fois connecté, le bloc expose les voies d'accéléromètre (3 axes), de gyroscope (3 axes) et un indicateur de santé de la mémoire tampon sur ses ports de sortie, complétés automatiquement si le téléphone dispose d'un magnétomètre, d'un baromètre ou d'un récepteur GPS.
Utilisez ce bloc pour des expérimentations de commande gestuelle, de contrôle de mouvement ou d'essais matériels dans la boucle (HIL) où le smartphone fait office de centrale inertielle (IMU) sans fil. Un tampon de restitution réglable et un filtre d'interpolation lissent le flux réseau à cadence variable avant son injection dans les blocs de calcul.
Entrées & Sorties
| 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 |
Paramètres
| Paramètres | Label | Type | Défaut | Description |
|---|---|---|---|---|
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 |
Exemples d'Utilisation
Utiliser l'inclinaison du téléphone comme consigne pour une boucle PID
RemoteSensor ──► [Tilt Beta] ──► Gain ──► PIDController → [in]
Enregistrer l'ensemble des 6 DDL inertiels sur un oscilloscope
RemoteSensor ──► [Accel X] ┐
──► [Accel Y] ├──► Scope
──► [Accel Z] │
──► [Rotation Alpha]│
──► [Tilt Beta] │
──► [Tilt Gamma] ┘Remarques & Bonnes Pratiques
- Bloc source : Tous les canaux de mesure sont des ports de sortie (côté droit). Le bloc ne comporte aucune entrée de signal dans sa configuration nominale.
- Ports dynamiques : Les ports sont créés ou retirés dynamiquement lors de l'appairage, selon les capteurs physiques signalés par l'appareil mobile (accel, gyro, mag, baro, gps). Des ports d'actionneurs entrants (vibreur, signal sonore) apparaissent à gauche si le téléphone les prend en charge.
- Prérequis WebRTC : Le smartphone et le navigateur du poste de travail doivent disposer d'un accès Internet pour la négociation de signalisation PeerJS. En réseau local isolé, un serveur PeerJS dédié est nécessaire (paramétrable par les clés
localStorageblockwerk_peer_host/blockwerk_peer_port). - Port de niveau de tampon : La sortie
bufferLevelmesure la marge d'anticipation instantanée en millisecondes. Raccordez-la à un Display ou une Assertion pour surveiller la qualité du flux. - Export des données brutes : Pendant la simulation, le bouton d'enregistrement du bloc permet de consigner la télémétrie brute des paquets (horodatage, gigue, valeurs d'axes) et de l'exporter au format CSV.
- Valeurs hors connexion : Tous les ports maintiennent une valeur égale à
0tant que le téléphone n'est pas connecté et n'émet pas.
Composants Associés
- PhoneController : Processus d'appairage QR identique, mais avec un joystick virtuel à l'écran (ou mode inclinaison) fournissant des coordonnées X/Y de commande — idéal pour des démonstrations interactives comme le pilotage de quadricoptère en direct.
- MQTTSubscriber : Source alternative pour flux de données capteurs distribués via courtier MQTT.
- ExternalInput : Source légère pour valeurs numériques injectées manuellement ou par script.