Connected Phone
ConnectivityRemoteSensor 是一个信号源(Source)方块,通过 WebRTC 点对点(P2P)连接将已配对移动设备的实时惯性及扩展传感器数据流式传输至仿真系统中。将该方块放置于画布上时,它会自动生成一个配对二维码;使用手机浏览器扫描该二维码即可瞬间建立通信链路。连接成功后,该方块将暴露三轴加速度计、三轴陀螺仪以及缓冲区运行状态信号作为输出端口;若手机支持磁力计、气压计或 GPS 功能,还将自动动态添加对应的输出端口。
该方块非常适用于基于运动姿态的控制实验、手势交互输入或硬件在环(HIL)仿真测试,此时移动设备相当于一个高便携性的无线惯性测量单元(IMU)。内置的可配置播放缓冲区和插值滤波器可在可变速率网络数据流输入仿真算法模块之前对其进行平滑重构。
输入与输出
| Direction | ID | Label | 类型 | 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 |
参数
| 参数 | Label | 类型 | 默认值 | 描述 |
|---|---|---|---|---|
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 |
使用示例
使用手机倾角作为 PID 控制回路的目标设定值
RemoteSensor ──► [Tilt Beta] ──► Gain ──► PIDController → [in]
将完整的 6 自由度惯性信号记录至示波器
RemoteSensor ──► [Accel X] ┐
──► [Accel Y] ├──► Scope
──► [Accel Z] │
──► [Rotation Alpha]│
──► [Tilt Beta] │
──► [Tilt Gamma] ┘说明与最佳实践
- 信号源方块:所有传感器通道均为输出端口(位于右侧)。在基准配置下该方块没有信号输入端口。
- 动态端口分配:配对成功后,方块会根据移动设备上报的硬件传感器能力(加速度计、陀螺仪、磁力计、气压计、GPS)自动增删对应的输出端口。若手机支持振动或蜂鸣提示,左侧还会动态出现执行器输入端口(Vibrate、Beep)。
- WebRTC 网络要求:手机与运行桌面浏览器的计算机均需具备互联网访问权限,以完成 PeerJS 信令握手。在纯局域网隔离环境中,需要部署自建的 PeerJS 信令服务器(可通过
localStorage的blockwerk_peer_host/blockwerk_peer_port键进行指定)。 - 缓冲区状态端口:
bufferLevel输出端口以毫秒为单位输出当前播放前瞻时间量。将其连接到显示器或断言模块可实时监测网络连接的平稳性。 - 原始遥测数据导出:在仿真运行期间,点击方块上的录制按钮可捕获原始数据包遥测(时间戳、网络抖动、各轴测量值)并导出为 CSV 文件。
- 未连接状态下的输出:在手机建立连接并开始传输数据之前,所有输出端口均保持为
0。
相关模块
- PhoneController:采用相同的二维码配对流程,但提供带有屏幕触摸虚拟摇杆(或倾角控制模式)的 X/Y 控制指令流——是“实时四旋翼飞行控制(Fly the Quadcopter Live)”及其他交互式控制实验的理想之选。
- MQTTSubscriber:通过 MQTT 代理接收分布式网络传感器数据的备选方案。
- ExternalInput:用于手动输入或由脚本驱动的轻量级数值信号源。