• 正文
  • 相关推荐
申请入驻 产业图谱

机器触觉电容传感器-5分钟快速应用:MFYM-1S-9-9单点柔性压力传感器

08/27 08:07
573
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

原文链接/详细资料:https://f1829ryac0m.feishu.cn/wiki/ZIzEwqYH0iT7mbkV5opc6biunPe?from=from_copylink

在机器人触觉、医疗健康、消费电子、柔性称重等应用中,压力检测的灵敏度、稳定性和响应速度,直接影响设备对外界状态的感知能力与控制精度。但传统机械开关、刚性称重元件和常见电阻式薄膜压力传感器,往往存在“难以连续测量、结构适配受限、迟滞和漂移明显”等问题:机械开关通常只能判断按下或松开,无法反映压力变化过程;刚性称重元件体积较大,难以安装在机器人指端、曲面或狭小空间;部分电阻式柔性传感器则容易受到材料迟滞、温度和安装结构影响,给精细测量与重复标定带来困难。

MFYM-1S-9-9 单点柔性压力开发板正是针对这些问题设计的一体化压力感知方案。模组采用新型压敏材料和 PCB 混合结构电容技术,并配合 MCP1081 电容采集芯片,将柔性敏感片受到的压力变化转换为连续电容数据,通过 UART 接口直接输出。相比只能提供通断信号的机械开关,它能够连续反映压力变化;相比体积较大的刚性测力结构,它具有体积小、敏感区域集中、便于嵌入的特点;相比容易出现明显迟滞和漂移的传统柔性压力方案,它具备高灵敏度、良好线性度、低漂移、低迟滞和快速响应等优势。

MFYM-1S-9-9 的标称检测范围为 0~100 kPa,检测灵敏度小于 10 Pa,响应时间小于 5 ms,线性度可达 R²>0.98,信号漂移小于 1%,使用寿命超过 300 万次。模组采用 115200 baud UART 数字输出,应用端可以直接获取压力敏感通道、参考通道、补偿通道和温度数据,便于完成空载置零、温度分析、压力标定与上层算法开发,为机器触觉和精准压力测量提供了结构紧凑、易于集成的解决方案。

人形机器人和工业机器人场景中,MFYM-1S-9-9 可安装在机械手指端、夹爪接触面、足底或其他需要感知接触力的位置。当机器人抓取物体时,模组能够连续检测接触压力及其变化趋势,为抓取力度调节、接触状态判断和滑动趋势识别提供基础数据。其小型化结构适合嵌入空间有限的机器人末端,多点组合后还可形成分布式触觉感知区域,帮助机器人更细致地感知物体接触位置和受力变化,降低夹持不足导致的滑落风险,以及压力过大造成的物体损伤。

在医疗健康和智能穿戴场景中,MFYM-1S-9-9 可用于脉搏波、心率、压力变化以及血压测量原型的信号采集。柔性敏感片可以与皮肤接触面、腕带或其他柔性结构结合,感知微小的周期性压力变化;高灵敏度和快速响应能力有利于保留压力波形中的细节,UART 数字输出也方便主控进行滤波、特征提取和数据记录。需要注意的是,模组用于医疗健康产品时,应根据最终接触结构、佩戴压力和使用温度重新标定,并完成相应的安全性、准确性及医疗法规验证。

在消费电子和人机交互场景中,MFYM-1S-9-9 可用于压力按键、滑动检测、智能家居、虚拟现实设备和生活电器。与普通机械按键相比,连续压力数据不仅能够识别“是否按下”,还可以进一步区分轻触、重按和持续按压,为设备提供更丰富的交互方式;沿操作区域布置多个传感点后,还可结合算法判断手指移动和压力分布变化。在柔性称重及智能家居应用中,模组也可安装在承力面下方,通过合理的接触头与底座结构检测载荷变化,为小型称重、状态判断和物体存在检测提供感知基础。

一、模块简介

MFYM-1S-9-9 是一款高灵敏、线性度好、低漂移、低迟滞的单点柔性压力传感模组。模组由柔性压力敏感片、PCB 混合结构电容单元、MCP1081 电容采集及数字输出电路构成,实测固件以 115200 baud 的 UART ASCII 数据流主动输出压力敏感通道、参考/补偿通道和温度数据。

项目 说明
产品型号 MFYM-1S-9-9
产品形态 单点柔性压力开发板/传感模组
核心技术 压敏材料 +PCB 混合结构电容技术
采集芯片 MCP1081(依据产品简介)
输出接口 UART,115200 baud,8N1
典型应用 机器人触觉、医疗健康、压力按键、滑动检测、汽车电子、智能家居、虚拟现实、柔性称重

二、主要芯片介绍

2.1 芯片概述

产品简介明确标注模组配合 MCP1081 电容采集芯片使用。该芯片在本模组中承担柔性压力电容信号采集、参考/补偿通道处理及数字化输出链路中的核心功能。当前资料未提供 MCP1081 独立数据手册,因此本节仅描述可由产品资料和实测 UART 数据确认的系统行为,不扩展未经验证的芯片内部指标。

2.2 引脚定义

常用应用接口为 4 线 UART。TXD/RXD 应与主控交叉连接,并保证两端共地。产品图片还显示 DIO/CLK/GND/VCC 烧录/调试焊盘;该接口不属于日常数据采集接口,资料未给出其操作协议,应用侧不应直接驱动。

模组引脚 方向(相对模组) 功能 接线说明
VCC 输入 电源 测试资料建议先使用 3.3 V 供电
GND - 电源地 必须与主控共地
RXD 输入 UART 接收 连接主控 UART TX
TXD 输出 UART 发送 连接主控 UART RX

2.3 功能框图

模组可按以下信号链理解:

压力输入 传感转换 采集与补偿 数字输出
柔性片受力 0~100 kPa 压敏材料与混合结构电容变化 MCP1081 采集 S/R/C0/C3 并提供温度字段 UART ASCII 数据流 115200, 8N1

其中 S 为压力敏感通道;R、C0、C3 为参考/补偿相关通道;T 为温度字段。应用程序通常对 S 进行置零和压力换算,同时保留其他字段用于诊断和补偿分析。

2.4 性能参数

参数 标称值 说明
检测范围 0~100 kPa 产品简介标称范围
检测灵敏度 <10 Pa 产品简介标称值
响应时间 <5 ms 产品简介标称值
灵敏度 0.36 kPa⁻¹ 用于快速换算的标称相对灵敏度
信号漂移 <1% 产品简介标称值
线性度 R²>0.98 产品简介标称值
使用寿命 >300 万次 产品简介标称值
工作温度 -20℃~+85℃ 产品简介标称范围
工作湿度 0~100%RH 产品简介标称范围
输出方式 UART 主动 ASCII 数据流
波特率 115200 8 数据位、无校验、1 停止位

说明:性能参数在室温和厂家测试条件下获得。接触头形状、受力面积、预紧力、底座刚度、装配公差及温度均会影响系统级结果;精准计量应在最终安装结构中重新标定。

2.5 参考电路

Raspberry Pi Pico / RP2040 为例,可使用 UART0 完成快速验证。供电电压以实际硬件规格和厂家确认信息为准;现有测试资料推荐先以 3.3 V 供电。

Raspberry Pi Pico MFYM-1S-9-9 作用
3V3(OUT) VCC 模组供电
GND GND 公共参考地
GP16 / UART0 TX RXD 主控发送到模组
GP17 / UART0 RX TXD 主控接收模组数据

接线要点:TX/RX 必须交叉;不要把 Pico 的 VBUS 或 VSYS 接到 UART 信号脚;上电前检查电源与地,首次联调先运行原始串口监视程序确认数据格式。

2.6 芯片配置

现有实测固件为上电后主动输出数据,不需要主控写寄存器启动采集。应用侧主要配置 UART、字段选择与压力标定参数:

配置项 推荐/默认值 用途
UART 115200, 8N1 串行通信参数
value_key s 选择压力敏感字段 S
timeout_ms 2000 读取超时
sensitivity 0.36 标称相对灵敏度,单位 kPa⁻¹
polarity 1 或-1 适配加压后原始值上升或下降
空载置零 丢弃 5 帧,7 帧中位数 抑制启动瞬态和偶然波动
两点标定 空载点 + 已知压力点 最终机械结构下的线性校准
P = polarity × (S / S_zero - 1) / 0.36

两点标定优先时:P = slope × S + offset

2.7 通信接口和相关协议

实测模组以 UART 主动输出可读 ASCII 行。有效数据之间可能出现仅含空格的帧,驱动会自动忽略。典型有效帧如下:

S:1627 pF,R:2000 pF,C0:1020 pF,C3:987 pF;T:2813 Crn
字段 示例 含义 应用建议
S 1627 pF 压力敏感通道 默认用于置零和压力换算
R 2000 pF 参考值 保留用于诊断
C0/C3 1020/987 pF 补偿/参考电容通道 保留用于补偿分析
T 2813 C 温度的 100 倍 2813 表示 28.13℃
    分隔符:字段间主要使用逗号,分号也作为分隔符处理;字段格式:名称、冒号、数值与单位;驱动同时兼容 KEY=VALUE、CSV 和纯数字行;帧边界:以换行符结尾;接收端应维护缓冲区并处理半帧、粘连和超时;当前实测协议不是 Modbus RTU,不需要 umodbus。

2.8 寄存器定义

当前提供的产品简介、实测数据与驱动资料均表明应用接口是主动 UART ASCII 数据流,未提供可供主控读写的寄存器表。因此本型号在当前固件下不适用 Modbus 寄存器定义。若后续固件改为二进制或寄存器协议,应以对应固件版本的正式协议文档为准,并重新核对帧结构、字节序、校验方式和字段比例。

三、电路工程

3.1 电路源工程

获取电路源工程,请查看下面链接:

https://mysentech.com/productinfo/231905.html

3.2 模块使用说明

3.2.1 测试环境搭建与注意事项

    1. 保持敏感区空载,按 3.3 V、GND 和交叉 TX/RX 完成接线。先运行 uart_monitor.py,确认终端连续收到完整 ASCII 数据行。加载驱动与示例程序,启动后丢弃 5 帧并采集 7 帧中位数完成空载置零。轻压敏感区,观察 S 字段和换算压力是否随载荷稳定变化。若方向相反,将 polarity 设为 -1。完成机械安装后,使用标准载荷执行两点标定,并验证全量程线性、回零、迟滞与温漂。

 

    关键注意事项:受力中心应落在背部圆框丝印敏感区域中央;尽量垂直、均匀受力;预留底座或凹槽在模组外围支撑,避开核心电路与柔性片引脚区域;避免尖锐物体刺穿、摩擦或偏载。

3.2.2 Modbus Poll 的使用

Modbus Poll 是一款通用型 Modbus 主站调试工具,适配本系列所有支持 Modbus-RTU 协议的电容式传感器,可快速实现传感器与电脑的串口通信调试、实时数据读取与日志导出,是验证传感器功能、采集测试数据的通用上位机工具。软件支持 Modbus RTU/ASCII/TCP/IP 协议,兼容多种寄存器类型与数据格式,操作流程对全系列传感器通用。

使用前需先完成软件安装与激活,可通过官方渠道下载安装包,首次打开可试用 30 天,也可输入注册码永久激活。硬件连接传感器与电脑后,打开软件点击「Connection」-「Connect」,在弹出窗口中配置串口参数(端口号、波特率、数据位 / 校验位 / 停止位,本系列传感器默认采用 9600 Baud、8N1 格式,具体以对应型号规格书为准),确认后即可建立通信连接。

以下为通用操作流程说明:

    1. **串口连接配置:**将传感器通过 USB 转串口模块接入电脑后,打开 Modbus Poll 软件,点击菜单栏「Connection」-「Connect」,在弹出窗口中选择传感器对应的 COM 端口号,并配置与传感器匹配的串口参数(波特率、数据位、校验方式、停止位,本系列传感器默认采用 9600 Baud、8N1 格式),确认后即可建立通信连接。**导入传感器配置文件:**软件支持导入各传感器型号对应的

.mbp

    1.  预配置文件,文件中已预设好寄存器地址、数据格式与别名定义,无需手动配置寄存器。直接在软件中打开对应传感器的

.mbp

     文件,即可自动加载所有参数,连接成功后将直接显示传感器的实时检测数据(如尘 / 雨 / 霜厚度值、状态标志位等)。**数据日志记录(可选):**如需保存测试数据,可通过「Setup」-「Excel Log」功能配置日志记录规则,支持按固定周期或每次数据更新记录数据,并可设置记录条数上限,方便后续对传感器数据进行分析与验证。

3.3 应用实验

这里,我们使用 GraftPort-RP2040 开发板进行测试,MFYM-1S-9-9 上使用 UART 接口与主控进行通信。

该图展示了 WS61 模块与 GraftPort-RP2040 开发板的 UART 接线方式。

模块连线如下表所示:

开发板引脚 模块引脚 说明
引脚 16 MTX UART 数据传输线,对应开发板的发送引脚
引脚 17 MRX UART 数据传输线,对应开发板的接收引脚

这里,我们需要在 uPyPI 上搜索相关驱动包:https://upypi.net/zh/

该图演示了在 uPyPI 中搜索 WS61 驱动包的过程。

输入 mfym1s99_driver 进行搜索,显示如下:

该图展示了 mfym1s99_driver  搜索结果,用于确认对应驱动包。

点击复制本地安装命令:

该图展示了复制 WS61 驱动安装命令的界面,方便完成环境准备。

通过 mip 工具导入模块驱动库代码,以下是 mpremote 工具使用指令:

mpremote mip install https://upypi.net/pkgs/mfym1s99_driver/1.0.0

导入后,将下面 main.py 代码复制到我们的工程中:

*# Python env   : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time    : 2026/08/21 16:30
# @Author  : December
# @File    : main.py
# @Description : MFYM-1S-9-9 单点柔性压力传感器测试程序
# @License : MIT

# ======================================== 导入相关模块 =========================================

import time
from machine import Pin, UART

from mfym1s99 import MFYM1S99

# ======================================== 全局变量 ============================================

UART_ID = 0
UART_TX_PIN = 16
UART_RX_PIN = 17
UART_BAUDRATE = 115200
UART_TIMEOUT_MS = 2000
ZERO_DISCARD_SAMPLES = 5
ZERO_MEDIAN_SAMPLES = 7
LOOP_DELAY_MS = 100

# ======================================== 功能函数 ============================================

# ======================================== 自定义类 ============================================

# ======================================== 初始化配置 ===========================================

# 等待 Pico 和传感器上电稳定。
time.sleep(3)
print("FreakStudio: MFYM-1S-9-9 Pressure Sensor Initialization")

# UART 硬件资源由应用创建,再注入驱动。
uart = UART(
    UART_ID,
    baudrate=UART_BAUDRATE,
    bits=8,
    parity=None,
    stop=1,
    tx=Pin(UART_TX_PIN),
    rx=Pin(UART_RX_PIN),
    timeout=UART_TIMEOUT_MS,
    timeout_char=20,
    rxbuf=512,
)
sensor = MFYM1S99(
    uart=uart,
    value_key="s",
    timeout_ms=UART_TIMEOUT_MS,
)

print("Keep the sensing area unloaded while zeroing...")
print("Discarding 5 startup frames, then taking the median of 7 frames.")

# ========================================  主程序  ============================================

try:
    sensor.clear()
    print("UART buffer ready; collecting zero samples...")
    baseline = sensor.zero(
        samples=ZERO_MEDIAN_SAMPLES,
        discard=ZERO_DISCARD_SAMPLES,
    )
    print("Zero raw: %.3f" % baseline)

    while True:
        sample = sensor.read_sample()
        if sample is None:
            print("UART timeout")
            continue

        # 提取压力通道、参考通道和温度后统一输出。
        s_pf = sensor.sample_value(sample)
        pressure_kpa = sensor.pressure_from_raw(s_pf)
        r_pf = sensor.field(sample, "r", 0.0)
        c0_pf = sensor.field(sample, "c0", 0.0)
        c3_pf = sensor.field(sample, "c3", 0.0)
        temperature = sensor.temperature_c(sample)

        if temperature is None:
            print("S=%.0f pF  pressure=%.3f kPa" % (s_pf, pressure_kpa))
        else:
            print(
                "S=%.0f pF  R=%.0f pF  C0=%.0f pF  C3=%.0f pF  "
                "T=%.2f C  pressure=%.3f kPa"
                % (s_pf, r_pf, c0_pf, c3_pf, temperature, pressure_kpa)
            )
        time.sleep_ms(LOOP_DELAY_MS)

except KeyboardInterrupt:
    print("Program interrupted by user")
except OSError as error:
    print("Hardware communication error: %s" % str(error))
except Exception as error:
    print("Unknown error: %s" % str(error))
finally:
    print("Cleaning up resources...")
    sensor.deinit()
    uart.deinit()
    del sensor
    del uart
    print("Program exited")
*

烧录代码,打开终端,输出如下:

展示了压力信息以及电容压力信息

相关推荐

为电子DIY爱好者提供全面系统的教程和开发工具,帮助其快速完成项目相关知识学习和产品原型设计!

微信公众号