SmartNode与物联网:项目1-5 自动起落架

学习目标:

  • 理解并能正确使用“数字输入”节点和“舵机”节点;
  • 能正确连接并使用红外数字避障传感器,舵机和Edison,完成自动起落架的制作;
  • 了解红外数字避障传感器和舵机的工作原理。

 

一、项目描述

随着社会经济的快速发展,汽车在人们的日常生活中越来越普及,城市里几乎出现“一家一车”的现状。但是司机在停车的时候经常遇到自动起落架升起速度慢、人工操作繁琐等问题,如图1所示。那么我们能不能使用Edison制作一个检测到车辆时自动升起的装置呢?这节课我们就动手学习一下吧。

image122

图 1 自动起落架

二、项目分析

制作自动起落架的关键是:1.检测是否有车辆;2.如果有车辆时触发舵机转动,5s后舵机自动复原。我们使用DFRobot生产的红外数字避障传感器检测车辆并触发舵机转动,项目设计列表可以参考下表1所示。

表 1 自动起落架的项目设计

项目名称 自动起落架
项目功能 检测是否有车辆,如有就触发舵机转动,5s后舵机自动复原。
器材清单 红外数字避障传感器、舵机
工作流程  image124

三、基础知识

(一)红外数字避障传感器

红外数字避障传感器是一种集发射与接收于一体的光电开关传感器,如2所示。数字信号的输出伴随传感器后侧指示灯亮的亮灭,检测距离可以根据要求进行调节。该传感器具有探测距离远、受可见光干扰小等特点,可以广泛应用于机器人避障、互动媒体等众多场合。

红外数字避障传感器属于数字传感器,输出状态是0和1,即数字电路中的低电平和高电平,正常状态输出高电平,检测到目标输出低电平。

image126

图 2 红外数字避障传感器

(二)舵机

舵机(英文名叫Servo):它由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。通过发送信号,制定输出轴旋转角度。舵机一般而言都有最大旋转角度(比如180度)。

普通直流电机无法反馈转动的角度信息,而舵机可以。用途也不同,普通直流电机一般是转圈转动作动力用,舵机是控制某物体转动一定角度用(比如机器人的关节,摄像头的云台)。本案例使用的舵机转速由舵机无负载的情况下转过60°所需时间来衡量,常见舵机的速度一般在0.11/60°~0.21s/60°之间,如下图3所示。

image128

图 3 舵机

 

(三)“数字输入”节点

Edison以袖珍的外形和强大的数据处理功能为人所认知,Edison常需要处理一类最基本的输入输出信号,即数字量(开关量)信号,这些信号包括:开关的闭合与断开,指示灯的亮与灭,继电器或接触器的吸合与释放,电机的启动与停止,阀门的打开与关闭等,这些信号的共同特点是以二进制的逻辑“1”合“0”出现的,数字输入就是二进制值输入。

例如在Samrt_Node中并没有“红外数字避障传感器”节点,使用“数字输入”节点可以解决这个问题。当检测到汽车时,触发“数字输入”节点并发出响应指令,如下图4所示。“数字输入”节点的使用也比较简单,只需要设置合适的针脚即可。

image130

图 4 “数字输入”节点

 

四、实现过程

(一)硬件连接

将Edison,舵机和红外数字避障传感器连接起来,如下图 5所示,舵机连接到数字输出(D11),红外数字避障传感器连接到数字输入(D5)。

image132

图 5 自动起落架硬件连接图

  • 流程设计

为了实现检测到车时转动舵机,5秒后自动闭合的功能,我们需要使用“延时”节点和“改变”节点,具体流程如下图6所示。

image134

图6  自动起落架的程序设计图

程序数据的传输分成2部分:1.当检测到车时,触发红外数字避障传感器通过“改变”节点向舵机发送“75”,舵机即可转动75°,如图7所示。

image135

图 7 传输路径1

2.当触发红外数字避障传感器后,数据流向“延时”节点和“改变”节点,在延时5s后向舵机传输“0”,舵机即可闭合,如图8所示。

image137

图8 传输路径2

 

(三)节点设置

为了检测是否有车辆通过,我们需要使用红外数字避障传感器。但是我们Smart_Node中没有“红外数字避障传感器”节点,这个难不倒我们,强大的Smart_Node提供“数字输入”节点。本案例中我们将针脚设置D5,在interrupt下拉框中我们选择“Falling”,如下图7所示:

 image139  image140

图 7“数字输入”节点设置

想一想:

  • 在“interrupt”下拉框出现“Falling”、“Rising”和“Both”,它们之间会有什么不同呢?

 

舵机在自动起落架制作过程中至关重要,我们需要对“舵机”节点进行设置,在本案例中,我们将舵机针脚设置为数字输出针脚11(D11),如下图8所示:

 image142 image144

图8 “舵机”节点设置

在触发红外数字避障传感器后,需要向舵机传输转动的角度。需要引入“改变”节点,并对“设置”下拉框进行数字设置。具体如图 9所示。

 image146  image148

图 9  “改变”节点设置

通过对以上节点的设置,将各个节点连接起来,就实现我们的自动起落架程序编写。

  • 效果测试

点击“部署”按钮,可以观察自动起落架是否正常工作。当车辆通过时,红外数字避障传感器尾部发出红光(如果连接出错,则会一直出现红光),舵机转动,5s后舵机自动复原。如果不能正常工作,可以老师或同学交流查找问题所在。最后,分享自己的作品和经验。

五、挑战自我

每次检车到汽车时舵机转动的角度总是固定的,功能比较单一。我们能不能实现旋钮传感器控制舵机转动角度呢?舵机转动的角度随着旋钮传感器角度的改变而改变,动手试试吧。

六、扩展阅读

 

  • 模拟输入

Edison能对数字信号进行有效的处理和识别,但是生活上很多东西,很多概念都不是一个数字量。比如说温度值,它是一个连续变化的信号。这个问题也比较好解决,我们只要使用传感器(sensor),将模拟量有效转换为Edison能够识别的形式即可,例如转换成电压。

温度传感器能够将温度值转换成0V到5V间的某个电压,比如0.3V、3.27V、4.99V等。至于到底可以转换成多少可能的值则取决于模数转换的精度,精度越高能够得到的值就会越多。而Edison采用的ADC(Analog to Digital
Converter),称模数转换,每一个模数转换器的精度都是 10bit,也就是说能够读取1024(2^10 = 1024)个状态。在Edison的每一个模拟输入管脚上,电压的变化范畴是从0V到5V,因此Edison能够感知到的最小电压变化是4.8毫伏 (5/1024 = 4.8mV)。

(二)模拟输出

既然有了模拟输入,当然少不了模拟输出。现实生活中有时候除了开灯,关灯之外可能还需要调光,调光就是模拟的一种输出方式。

由于Edison的微控制器只能产生高电平(5V)或者低电平(0V),而不能产生变化的电压,因此必须采用脉宽度调制技术(PWM,Pulse Width Modulation)来模拟电压变化。

PWM是一种开关式稳压电源应用,它的原理是通过改变占空比,通过低通滤波得到平均电压从而实现模拟输出。简而言之,PWM是一种对模拟信号电平进行数字编码的方法,它通过对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等但宽度不相等的脉冲,如下图10所示。

image151

图10 脉冲宽度调制

发表评论

电子邮件地址不会被公开。 必填项已用*标注

跳至工具栏