传感器类教程

传感器(sensor)是一种检测装置,能将测量到的信息,转换为电信号输出。对于主控来说传感器主要是输入设备,在自动控制中起重要作用。 传感器的类别非常多,功能和数据也各有不同。本教程通过micro:bit相关传感器的使用来表达反馈控制的过程,见微知著。

按键

按键是最简单的输入设备,也可以当做是一种传感器。按键主要有通断两种状态,对应程序中的真或假、0或1,通过两种状态的检测判断产生反馈,做出相应反应。 实际生产生活中还有触摸按键、红外按键、人体红外开关、限位开关等各类按键的变种,控制方式和普通按键也有很多类似之处。

示例一:获得按键状态

程序说明:通过条件逻辑检测按键的状态,如果按键A被按下则屏幕显示A,如果按键B被按下则屏幕显示B,否则不显示,每0.1秒检测一次。

../../_images/buttonStatus.jpg

示例二:中断事件

程序说明:中断是独立于初始化和无限循环的另一种状态,由某种状态触发,如本例中的当按键被按下。程序在执行完中断程序后会回到原来的位置。 本例中主程序为显示爱心,中断程序为A或B被按下时切换显示A或B,之后回到循环继续显示爱心。

../../_images/buttonInterrupt.jpg

指南针

指南针也称为地磁传感器,能够感应地球磁场并输出当前角度,得到方位信息。

示例:电子指南针

程序说明:通过micro:bit板载的指南针获得当前的角度,用屏幕显示东(E)西(W)南(S)北(N)。 将micro:bit平放转动即可看到角度。指南针初次使用需校准,翻转micro:bit将点阵全部点亮即可。

../../_images/compassDirection.jpg

程序扩展:加入东北、东南、西北、西南,使指南针更丰富。

加速度计

和指南针类似,加速度计也是一种惯性测量单元(IMU),可以测得当前多个方向的加速度值,也可以通过数据的累加、判断大小来获得速度、旋转角度、震动等信息。

示例:计步器

程序说明:类似于运动手环的计步功能,用变量step作为步数,屏幕显示当前步数。当震动时中断,step累加。

../../_images/accelerometerStep.jpg

程序扩展:如果在野外被五步蛇咬了怎么办?计步器试试计到4步就报警。

超声波传感器

超声波传感器是最常见的测距传感器,利用声波的发射和接收时差乘以声速获得距离信息,类似于蝙蝠的测距。超声波传感器测量距离可以达到0.04-4米。

示例一:超声波测距

程序说明:用变量distence记录超声波测距的值,并通过micro:bit的点阵显示该距离。

../../_images/ultrasonicDistance.jpg

示例二:避障小车

程序说明:超声波常用于小车避障,是一个典型的反馈控制过程。小车默认以100的速度直行,距离前方障碍小于20cm时,小车原地调头。

../../_images/ultrasonicAvoidance.jpg

程序扩展:尝试不同避障距离时有不同的避障路线。比如距离小于10cm则后退调头,距离20cm则右转90度。

红外传感器

红外传感器可以检测黑白色,本质是一对红外开关。一个红外灯发射红外光,遇到前方白色时反射,黑色吸收,另一个接收头检测是否接收到,产生0和1两种状态。 使用多组红外开关可以避障或巡线。

示例:红外巡线小车

程序说明:麦昆小车底部有两组红外传感器,可用于红外巡线。红外的0和1两种状态表示在黑线内还是黑线外,通过两对红外状态的判断让小车直行、左转还是停止,每50ms判断一次。

../../_images/infraredLineFollower.jpg