Skip to content

Yanshee传感器 4 知轻重的压力传感器

UBTEDU edited this page Aug 31, 2018 · 7 revisions

课程目标:

通过本课程,您首先可以学到一些基本的物理学知识。 此外,您还可以学到什么叫压力传感器,在生产生活中人们为什么会使用压力传感器,而压力传感器又是如何在我们的机器人Yanshee身上使用的呢。最后您将学到压力传感器的使用场合和一些有趣的应用。祝您学习愉快!

课程引入原因:

日常生活中,我们不光需要知道接触到了一个物体,还需要知道这个物体给我们的力度是多大,大概我们可以通过感知到的力量的大小来面对如何处理当前环境的信息。也可以根据压力的大小来做出对很多事情的决策,而机器人也需要具有这种能力。于是压力传感器就应运而生了。

基础概念及知识点介绍:

压力:

物理学上的压力,是指发生在两个物体的接触表面的作用力,或者是气体对于固体和液体表面的垂直作用力,或者是液体对于固体表面的垂直作用力。习惯上,在力学和多数工程学科中,“压力”一词与物理学中的压强同义。计算公式:F=PS。

电阻:

电阻器(Resistor)在日常生活中一般直接称为电阻。是一个限流元件,将电阻接在电路中后,电阻器的阻值是固定的一般是两个引脚,它可限制通过它所连支路的电流大小。阻值不能改变的称为固定电阻器。阻值可变的称为电位器或可变电阻器。理想的电阻器是线性的,即通过电阻器的瞬时电流与外加瞬时电压成正比。用于分压的可变电阻器。在裸露的电阻体上,紧压着一至两个可移金属触点。触点位置确定电阻体任一端与触点间的阻值。

电阻应变片:

电阻应变片是一种将被测件上的应变变化转换成为一种电信号的敏感器件。它是压阻式应变传感器的主要组成部分之一。电阻应变片应用最多的是金属电阻应变片和半导体应变片两种。金属电阻应变片又有丝状应变片和金属箔状应变片两种。通常是将应变片通过特殊的粘和剂紧密的粘合在产生力学应变基体上,当基体受力发生应力变化时,电阻应变片也一起产生形变,使应变片的阻值发生改变,从而使加在电阻上的电压发生变化。这种应变片在受力时产生的阻值变化通常较小,一般这种应变片都组成应变电桥,并通过后续的仪表放大器进行放大,再传输给处理电路(通常是A/D转换和CPU)显示或执行机构。

压力传感器:

压力传感器(Pressure Transducer)是能感受压力信号,并能按照一定的规律将压力信号转换成可用的输出的电信号的器件或装置。压力传感器通常由压力敏感元件和信号处理单元组成。而电阻应变片就是压力敏感元件的一种。

环境准备:

硬件需求:

Yanshee机器人一台、压力传感器一个

软件需求:

树莓派Rasbian系统、python环境

实物图:

压力传感器:

压力传感器

硬件连接图(树莓派举例):

树莓派连压力传感器

工作原理:

压力传感器,是能感受压力信号,并能按照一定的规律将压力信号转换成可用的输出的电信号的器件或装置。Yanshee机器人通过MCU对这种变化进行采集并作出相应的动作响应与行为决策。

               压阻式压力传感器剖面图

Yanshee身上的压力传感器是薄膜压力传感器,本质上属于压阻式压力传感器,量程是:0~40N。单点式压力,当传感器受到压力的时候会得到一组电阻值变化读数,通过下面的表格可以对应读出相应的压力值:

原理图

Yanshee机器人身上的压力传感器及其安装图

Yanshee身上的压力传感器

举例:通过python编程实现压力传感器应用场景体验

基础实验:

基本数据读取,我们通过Yanshee SDK API进行python代码编程。然后执行相关代码:

#!/usr/bin/python
# _*_ coding: utf-8 -*-

import time
import RobotApi

RobotApi.ubtRobotInitialize()
#------------------------------Connect----------------------------------
gIPAddr=""
robotinfo=RobotApi.UBTEDU_ROBOTINFO_T()
#The robot name you want to connect
robotinfo.acName="Yanshee_0A7E"
ret=RobotApi.ubtRobotDiscovery("SDK", 15, robotinfo)
if (0!= ret):
print ("Return value: %d"% ret)
exit(1)

gIPAddr=robotinfo.acIPAddr
ret=RobotApi.ubtRobotConnect("SDK", "1", gIPAddr)
if (0!= ret):
print ("Can not connect to robot %s"%robotinfo.acName)
exit(1)

#---------------------------Read Sensor Value---------------------------

press_sensor=RobotApi.UBTEDU_ROBOTPRESSURE_SENSOR_T()
whileTrue:
time.sleep(2)
ret=RobotApi.ubtReadSensorValue("pressure",press_sensor,4)
if ret !=0:
print("Can not read Sensor value. Error code: %d"% (ret))  
else:
print("Read Press Sensor Value: %d Kg "% (press_sensor.iValue))

#---------------------------Disconnect----------------------------------
RobotApi.ubtRobotDisconnect("SDK","1",gIPAddr)
RobotApi.ubtRobotDeinitialize()

高级实验:Yanshee的减压歌

根据不同的压力值,让Yanshee机器人为我们唱出各种趣味横生的不同歌曲。压力越大唱的歌曲越快节奏、压力越小唱的歌曲越悠闲。

应用场景:

实际生活中的电子秤、工业、医疗等相关的场合都是压力传感器的使用场景。压力传感器是工业实践中最为常用的一种传感器,其广泛应用于各种工业自控环境,涉及水利水电、铁路交通、智能建筑、生产自控、航空航天、军工、石化、油井、电力、船舶、机床、管道等众多行业。

拓展阅读:

后续有了压力传感器我们就可以通过它获得机器人对压力的感受值并由此来编写出各式各样有趣的场景了。它就像是机器人的力量感知器,让机器人变的更加聪明智慧。

Clone this wiki locally