简介

这款 4×8 柔性阵列压力传感器是专为智能夹持系统、人机交互及科研项目设计的触觉感知解决方案。它采用先进的柔性薄膜技术,在仅 20×10mm 的感应区域内集成了 32个独立检测单元 ,能够实时捕捉接触点的压力分布与细微变化。
不同于传统的单点压力传感器,本产品支持 UART 接口级联,极大地简化了多传感器布线的复杂度。其超薄、可弯曲的特性,使其如同“电子皮肤”一般,能轻松贴合在机械手爪、可穿戴设备或DIY灵巧手上。通过配套的上位机软件Tactile Sensor Tool和完善的嵌入式软件支持,开发者可以快速完成项目验证。

产品特性

  • 阵列式触觉:精准捕捉压力分布
  • 极致小巧:无感嵌入各类项目
  • UART 级联与易用性:快速上手验证
  • 柔性 FPC 材质:耐高温与高寿命

规格参数

  • 工作电压:5V
  • 采样频率:20/50HZ
  • 感测区域:20*10mm
  • 阵列配置:4x8
  • 通信接口:UART
  • 触发力:20g
  • 压力范围:20g~5kg(单感应点)
  • 压力类型:按压
  • 耐用性:>100万次(1kg力)
  • 工作温度:-20℃ ~ +65℃
  • 转接板尺寸:20*12mm

引脚说明

SEN0705.png

引脚 功能描述
+ DC 5V输入
接地
RX 传感器串口接收
TX 传感器串口发送

上位机

硬件准备

上位机准备

接线图

SEN0705 USB.png

示例图

  • 打开串口,点击开始采集
  • 用手指按压压力传感器,串口监视器的数据会随按压力度大小、位置发生相应变化
    SEN0705上位机EN.png

使用教程

硬件准备

软件准备

接线图

连线图SEN0705.png

示例代码

  • 烧录以下示例代码通过串口监视器查看数值
/*!
 * @file getTactileData.ino
 * @brief This is an example to show how to get tactile data from DFRobot Tactile Sensor.
 * @copyright	Copyright (c) 2025 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @license The MIT License (MIT)
 * @author [JiaLi](zhixinliu@dfrobot.com)
 * @version V1.0.0
 * @date 2025-09-04
 * @url https://github.com/DFRobot/DFRobot_TactileSensor.git
 */
#include "DFRobot_TactileSensor.h"

/* ---------------------------------------------------------------------------------------------------------------------
 *    board   |             MCU                | Leonardo/Mega2560/M0 |    UNO    | ESP8266 | ESP32 |  microbit  |   m0  |
 *     VCC    |              5V                |        VCC           |    VCC    |   VCC   |  VCC  |     X      |  vcc  |
 *     GND    |              GND               |        GND           |    GND    |   GND   |  GND  |     X      |  gnd  |
 *     RX     |              TX                |     Serial1 TX1      |     5     |   5/D6  |  D2   |     X      |  tx1  |
 *     TX     |              RX                |     Serial1 RX1      |     4     |   4/D7  |  D3   |     X      |  rx1  |
 * ----------------------------------------------------------------------------------------------------------------------*/
/*The default baud rate is 115200, and it supports 9600,57600, and 912600*/

#define DFRobot_TACTILE_ARRAY_SIZE 32    // if you use (4*8)32-channel tactile sensor
//#define DFRobot_TACTILE_ARRAY_SIZE 36  // if you use (6*6)36-channel tactile sensor

#define ADDRESS 1    // sensor address

#if defined(ARDUINO_AVR_UNO) || defined(ESP8266)
SoftwareSerial        mySerial(/*rx =*/4, /*tx =*/5);
DFRobot_TactileSensor tactile(/*addr =*/ADDRESS, /*s =*/&mySerial);
#else
DFRobot_TactileSensor tactile(/*addr =*/ADDRESS, /*s =*/&Serial1);
#endif

void setup()
{
  //Init MCU communication serial port
#if defined(ARDUINO_AVR_UNO) || defined(ESP8266)
  mySerial.begin(115200);
#elif defined(ESP32)
  Serial1.begin(115200, SERIAL_8N1, /*rx =*/D3, /*tx =*/D2);
#else
  Serial1.begin(115200);
#endif

  Serial.begin(115200);
  while (tactile.begin(DFRobot_TACTILE_ARRAY_SIZE) == -1) {
    Serial.println(" Sensor initialize failed,please check whether the sensor model or connection is correct!");
    delay(1000);
  }
  Serial.println(" Sensor  initialize success!");

  sVersionInfo_t ver;
  
  //Get device information
  ver = tactile.getDeviceInfo();
  Serial.print(" VID: ");
  Serial.println(ver.VID);
  Serial.print(" PID: ");
  Serial.println(ver.PID);
  Serial.print(" Version: ");
  Serial.println(ver.version, HEX);
  delay(1000);

  //Set threshold value,the range is 0-4095
  tactile.setThld(50);

  //The sensor returns to its default value
  //note: restoreSensor will reset the sensor threshold、address、uart and sample rate to default value
  //tactile.restoreSensor();

  //Set device address,the address range is 1 to 255,0 is broadcast address,not writable.
  //tactile.setDevAddr(1);

  //set uart baudrate,default is 115200,
  //After setting, please modify the uart of the driving sensor to the corresponding baudrate,stop bits and parity.
  //tactile.setBaudrate(eBaudrate115200,eStopBit1,eParityNone);

  tactile.setSampleRate(eSampleRate20Hz);
  //setSampleRate(eSampleRate50Hz);
  //set sample frequency, 20Hz or 50Hz
}

void loop()
{
  sAdcDatas_t adcDatas;
  //Get tactile data
  adcDatas = tactile.getDatas();
  //Print tactile data
  if (adcDatas.result == 0) {
    for (int i = 0; i < tactileSensorArrayY; i++) {
      for (int j = 0; j < tactileSensorArrayX; j++) {
        Serial.print(adcDatas.adcval[i][j]);
        Serial.print("\t");
      }
      Serial.println();
    }
  } else {
    Serial.println("Read ADC data failed!!");
  }
  Serial.println();
  delay(20);
}

串口打印SEN0705.png

常见问题

DFshopping_car1.png DFRobot商城链接