1.NTC热敏电阻 2.超声波传感器 3.电位器 4.干簧管 5.光电晶体管 6.光敏电阻 7.轨迹传感器 8.行程开关 9.颜色传感器 10.USB摄像头的基本介绍 11.摄像头的运动探测 12.摄像头的小球探测 13.摄像头的颜色探测 14.摄像头的线条探测 15.慧鱼电气元件技术参数 |
《模拟传感器:NTC热敏电阻》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 1 | |
4 | NTC resistor | NTC热敏电阻 | 1 | |
5 | lamp | LED灯(带灯座) | 1 |
NTC热敏电阻又称负温度系数热敏电阻,是一类电阻值随温度增大而减小的一种传感器电阻,普遍应用于各种家用电器,包括;温控器、咖啡壶、烤面包机、冰箱、电吹风、天花灯、变压器等地方。
NTC热敏电阻用来测量温度和防止电源启动时产生的浪涌电流。
下图是NTC热敏电阻与慧鱼电线插头的连接示意图:
NTC热敏电阻的原理图如下:
NTC电阻是一种无源器件,可以连接到TX控制器上的任何的输入端口(I1至I8)。
本例中,将NTC电阻连接到TX控制器的I1输入端口,在ROBO Pro软件中设置正确的环境和接口连接方式,然后打开接口测试窗口,在I1输入口类型上选择“Analog 5kohm(NTC,…)”,只有正确的设置与传感器相匹配的类型后,软件才能读取并显示正确的数值。
将NTC热敏电阻插入到TX控制器的I1输入端,然后记录读数(该值为“室内温度值”)。
之后用你的手指捏住NTC热敏电阻,注意当你的身体热度逐渐传导到热敏电阻时,读书会发生什么变化?保持30秒,记录下最后的读数(“手指温度值”),然后放开热敏电阻,观察读数是否会回到原来的数值,以及用了多长时间回到原先的数值。
将NTC热敏电阻的插头反向插入TX控制器的输入端,观察管脚反接是否会对?
建立新程序,将“开始”模块、“模拟分支”模块和“电机输出”模块拖拽至程序窗口。
复制3个“模拟分支”模块,再复制4个“电机输出”模块。
将其中一个电机模块的动作设置为“Off(停止)”,另外四个电机模块的亮度分别设置为“2”、“4”、“6”“8”:
设置第一个“模拟分支”模块的判断数值为刚才所记录下的“室内温度值”减去25(25为误差精度),然后选择交换“Y/N分支”;其他的四个“模拟分支”模块的判断数值分别为“手指温度值”到“室内温度值”的数值区间的4等分区间绝对值,设置交换“Y/N分支”:
完整的参考程序如下图所示:
测试本程序,程序运行过程中用手捏住NTC热敏电阻30秒,查看LED灯亮度的变化情况。
《模拟传感器:超声波传感器》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | Ultrasonic Distance Sensor | 超声波传感器 | 1 | |
5 | Aluminum Strut 90 | 90mm 铝型材 | 2 | |
6 | Link 15 | 15mm 连接件 | 2 | |
7 | Building Block 30 | 30mm构建块 | 4 | |
8 | Encoder motor | 编码电机 | 1 | |
9 | switch | 行程开关 | 1 | |
10 | Tape Measure | 卷尺 | 1 |
超声波是用于超出人类听觉范围的声波的术语。
超声波传感器由发射器和接收器组成,发射器部分发射声音脉冲,接收器测量声波发射出去和反射回来之间所花费的时间。 超声波传感器通常可用于测量距离、风速、医用和报警。
慧鱼超声波距离传感器是一个有源传感器,需要连接到9V电源以保持其正常工作。
超声波传感器有3跟电线,其中红色电线需要接到控制器上的9V电源输出,绿色电线可以接到控制器上的任何“地”,本例中,接到I1输入端子组中的“地”。这些在下面用红色圈出。
另外一根黑色线是信号线,本例中接到I输入端口。
之后,在ROBO Pro软件的接口测试窗口中进行正确的传感器输入类型设置,本实验中,我们将I1的输入端口类型都设置为“Ultrasonic”,如下图所示:
实验结论:
将卷尺打开, 垂直于超声波传感器所在平面,将编码马达作为被测物体首先放置于卷尺上6cm的位置,如下图所示:
从【程序模块】下的【基本模块】分类中拖拽出一下这些模块到编程窗口中:
从【程序模块】下的【变量、定时器】分类中将“变量”模块和“列表”模块拖拽至程序窗口中:
从【程序模块】下的【变量、定时器】分类中将“加1指令”模块拖拽至程序窗口中:
从【程序模块】下的【输入、输出】分类中将“通用输入”模块拖拽至程序窗口中:
下面开始对各模块进行属性配置:
首先,复制一个“加1指令”模块,将它的属性设置为“=5”:
再次复制两个“加1指令”模块,将这两个的属性都设置为“Append”(表示对列表对象进行追加数值),注意还要勾选最下面的选项“Data input for command value”(指令值来自外部数值输入):
右键单击“变量”模块,在属性面板中将其命名为“distance”。 设置完成后,再复制两个该“变量”模块:
右键单击“通用输入”模块,并将类型设置为“距离传感器”。设置完成后,再复制三个该“通用输入”模块:
再复制一个“列表”模块。然后右键单击其中一个“列表”模块,重命名元素为“Distance”,在该对话框的中间部分是对数据进行保存方面的属性设置,注意“保存到.CSV文件”的这个设置区域:在这里点击右边的“Browser…”浏览按钮可以选择数据文件的本地保存位置,将下拉列表按钮的数值设置为“1”(该设置表示读取到的数值保存在数据文件中的第1列中),然后在右侧的文本框中输入“distance”(这个是设置数据文件中第1列的列标题):
然后右键单击另一个“列表”模块,重命名元素为“sensorread”, 在“保存到.CSV文件”的这个设置区域里:点击“Browser…”浏览按钮选择与上一个“列表”模块同样的数据保存文件(也就是E盘下的sensor_data.csv),之后将下拉列表按钮的数值设置为“2”(该设置表示读取到的数值保存在数据文件中的第2列中),然后在右侧的文本框中输入“Sensor Reading”(这个是设置数据文件中第2列的列标题):
之后,通过流程线完成全部程序的设计,如下图所示:
上面这个程序的大致逻辑是:进行25次的传感器数值记录,初始记录时,编码马达位置6CM的位置上,按下开关,将马达所在的位置和超声波传感器所检测到的两个数值分别记录到数据文件中的第1列和第2列中,然后移动马达向后到7CM的位置,再次按下开关进行数值记录,这样往复操作,每次移动马达向后一个单位距离,然后按动开关进行数值记录。直至25次后程序结束。
程序全部测试完毕后,我们打开E盘下的sensor_data.csv文件,可以查看到里面的数据:
基于这些数据我们可以建立一个图表,通过图表我们可以看到超声波传感器的线性特征及其检测精度:
《模拟传感器:电位器》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | Potentiometer | 电位器 | 1 | |
5 | Lamp | LED灯(带灯座) | 1 |
电位器是一个三端可变电阻器。电阻环上有两个固定的末端,中间端子连接到一个可以旋转移动的黄铜刷上,所以中间端和末端之间的电阻是可变的:
电位器的原理图如下:
通常,我们只需要连接电位器的一个末端和它的中间端子即可,本例中,我们将电位器的管脚1和2连接到TX控制器上的I1输入端:
在RoboPro创建一个新文件。设置环境为TX/TXT控制器,使用级别为初学者,在【COM / USB】设置窗口中设置为USB连接、TX控制器类型。
之后,我们试着旋转电位器的电刷手柄,观察I1输入端的读值有什么变化,交换I1输入端的红绿两根电线,再次旋转电刷手柄,观察I1输入端的读值是否会发生变化?
我们的程序中一共需要四个“数字分支”模块和5个“马达输出”模块,复制出它们。
最终,你的程序应该看起来如下图所示:
测试这个程序,旋转电刷手柄,观察LED亮的效果。
《数字传感器:干簧管》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | Reed switch | 干簧管 | 1 | |
5 | magnet | 小磁铁(或任意带有磁性的物体) | 1 | |
6 | Lamp | LED灯(带灯座) | 1 |
下图是一个常见的单刀单掷开关原理图:
慧鱼干簧管本质上就是一个常开的单刀单掷开关,下图是干簧管实物图:
干簧管接近磁铁时,类似开关关闭。这是一个瞬时开关,这意味着接近磁铁时才会触发执行器,也就是电路导通,但只要移开磁铁,干簧管又会变回原来的断开状态。
现在,我们将干簧管连接到TX控制器的I1输入端:
在RoboPro创建一个新文件。设置环境为TX/TXT控制器,使用级别为初学者,在【COM / USB】设置窗口中设置为USB连接、TX控制器类型。
我们将一个小磁铁靠近干簧管,观察I1端的信号有什么变化:
尝试交换I1上的红绿两根电线,再次将小磁铁靠近干簧管,观察其信息有什么变化?
将LED灯连接到TX控制器上的M1输出端,然后拖拽以下模块到编程窗口中,然后复制1个“马达输出”模块和“时间延迟”模块:
右键单击“数字分支”模块,设置其传感器类型为“Reed switch”,点击确认,此时“数字分支”模块上的图标会发生变化:
对两个“马达输出”模块分别右键单击,在其属性面板中设置其显示图标为“lamp”,并且一个设置为“On”,一个设置为“Off”:
通过连线,将程序写成下面的样子:
你的实物连接图应该为以下的样子:
运行这个程序,将小磁铁靠近或远离干簧管,注意LED灯的变化。
《数字传感器:光电晶体管》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | Phototransistor | 光电晶体管 | 1 | |
5 | Lamp | LED灯(带灯座) | 2 |
开关是安装在电路中控制电流流过的物理装置。而光敏三极管(光电晶体管)是一个快速的半导体开关装置。没有光线照射时,它是常开开关,当被光线照射时,它就被导通,直到光线不再存在。光敏三极管如下图所示:
因为它是半导体器件,所以极性是至关重要的。晶体管上有红色标记的一端是集电极:
红色的一端应该通过红色的电线连接到TX控制器输入端口中的正输入端,下图中画圈的部分是正输入端:
另一端则需要接地,TX控制器带有接地符号的端口都是“接地电位”端,如下图所示:
现在,将光电晶体管正确的接到TX控制器上的I1端口,然后让一个LED灯接到M1端口上:
之后,在ROBO Pro软件的接口测试窗口中进行正确的传感器输入类型设置,本实验中,我们将I1输入端口的类型设置为“Digital 5kOhm(Switch)”,如下图所示:
在接口测试面板中,点击M1模式里的 CW选项,这时你连接的LED灯将点亮:
移动LED光源,使其光线直接照射在光电晶体管上,观察此时I1输入端的信号发什么了什么变化。
在RoboPro创建一个新文件。设置环境为TX/TXT控制器,使用级别为初学者,在【COM / USB】设置窗口中设置为USB连接、TX控制器类型。
之后,将下面的这些模块拖拽至编程窗口中:
点击鼠标左键框选“马达输出”模块和“时间延迟”模块:
松开鼠标后这两个模块将红色高亮显示:
将鼠标移到已经选区的模块上,此时鼠标箭头变为小手的形状,点击鼠标左键(此时小手的右下方出现一个黑色的十字图标)进行拖拽,这样便复制除了一组新的模块:
右键单击“数字分支”模块,在其属性面板中,将其传感器类型设置为“Phototransistor”:
分别右键单击“马达输出”模块,设置它们的图标显示为“Lamp”。然后设置一个的动作为“On”一个的工作为“Off”:
将另一个LED灯接到TX控制器上的M2输出端,在编程窗口中再复制一个“马达输出”模块,设置其显示图标为“Lamp”,动作为“On”。
最终你的整体程序应为下图所示:
测试这个程序,这个程序的意思是,当我们用M2上的LED灯去照射I1上的光电晶体管时,由于光电晶体管受到光照导通,产生高电平信号(1),此时M1上的LED灯点亮,1秒中后熄灭。观察这个过程,如果有问题请检查电路连接。
《数字传感器:光敏电阻》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | Photoresistor | 光敏电阻 | 1 | |
5 | Lamp | LED灯(带灯座) | 1 |
光敏电阻(LDR)是用硫化隔(CdS)半导体材料制成的特殊电阻器,其工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,电阻值可小至1KΩ以下。
其原理图如下图所示:
光敏电阻是一种无源器件,可以连接到TX控制器上的任何输入端(I1-I8):
将光敏电阻连接到TX控制器的I1输入,将LED灯连接到TX控制器的M1输出。
在开始测试前,请准备一张白纸,并在表面贴上一小段电工胶带:
之后,在ROBO Pro软件的接口测试窗口中进行正确的传感器输入类型设置,本实验中,我们将I1输入端口的类型设置为“Analog 5kOhm(NTC,…)”,如下图所示:
一旦这样做,你会看到一个I1旁边的复选框被勾选了,同时在文字框中出现了实时监测到的数值。
当你移动或遮盖光敏电阻传感器时,你应该发现数值的变化。使光敏电阻向下面向刚才准备好的白纸,高度距离保持在大约1英寸(2.54厘米)。使光敏电阻指向白色的纸面,然后记下它的读值,然后让传感器平移到黑色电工胶带的上方,记录下这个读值,你会发现这两个的读值是不同的:
拖拽一个“模拟分支”模块到编程窗口,右键单击它,在其属性面板中设置其参数,这里的数值取刚才记录的两个数值的算数平均数(两个值的中间数):
拖拽其他模块创建如下的程序:
运行该程序,将光敏电阻从电工胶带的上方开始,然后慢慢移动到纸张的白色部分,观察程序的运行情况。
现在新建一个程序,并将软件的使用级别设置为“3级:变量”:
这里我们将使用到一些新的模块,不过首先从“Basic elements(基本模块)”分类中拖拽出下列常用的几个模块:
下一步从“Inputs, output(输入,输出)”分类中拖拽“Universal input(通用输入)”模块到程序窗口中:
右键单击“Universal input(通用输入)”模块,在其属性面板中,设置其传感器类型为“Photoresistor(光敏电阻)”,点击确定后你会看到模块上面的图标发生了变化:
接下来,展开“Operating elements(操作模块)”组,拖拽其中的“Text display(文本框显示)”模块到编程窗口,这个模块可以为我们在屏幕显示一个值:
右键单击“文本显示”模块,在其属性面板中进行如下修改:
回到“Inputs, output(输入,输出)”分类中,拖拽“Panel Display(面板显示)”模块到编程窗口中:
右键单击“Panel Display(面板显示)”模块,这里你会看到我们刚才已经建立的“文本显示”模块的名称,选择它,点击确认,之后你会看到“面板显示”模块上的图标发生了变化。
注意:如果在程序窗口中有多个不同名称的“文本显示”模块,“Panel Display(面板显示)”模块的属性面板中都会将它们显示出来。
接下来,从“Branch, wait…(分支,等待…)”分类中拖拽一个“Branch with data input(带数据输入的分支)”模块到程序窗口中:
在其属性面板中,设置一个数值(刚才记录的照射黑色电工胶带时的读值减去50(50是误差))。
在对话框的底部有一个单选按钮来交换Y / N分支。选择该选项,然后点击OK,之后你会发现“带数值输入的分支”模块上的Y和N的图标发生的变化:
放置第二个“Branch with data input(带数据输入的分支)”模块,并在其属性面板中,将其数值设置为先前记录的两个读值的算数平局数(中间值)。
之后完成类似于下面的程序设计:
运行程序,移动光敏电阻,从电工胶带上移到白色区域,观察LED灯发生了什么。
当室内光照发生变化时,可以调整分支的参数值,以修正输出结果。
《数字传感器:轨迹传感器》
数字信号是指某些传感器提供两种不同状态的信号:高电平或低电平,开或关,逻辑1或逻辑0。数字信号是编程中最容易处理的信号类型。
轨迹传感器的内部是由两个单独的传感器组成的有源设备,需要一个额外的9V电源供电。
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | Trail Follower Sensor | 轨迹传感器 | 1 | |
5 | Lamp | LED灯(带灯座) | 2 | |
6 | Building Block 15 | 15mm构建块 | 1 | |
7 | Building Block 30 | 30mm构建块 | 2 |
轨迹传感器需要相当接近它要遵循的线条。 在该示例中,构建小型装置以安装传感器,保持距离桌面表面约15mm,如下图所示:
将轨迹传感器安装到组件上,确保传感器的“眼睛”指向下方,将一条电工胶带粘贴在纸张上,如下图所示:
轨迹传感器一共有四根电线,红色电线需要接到控制器上的9V电源输出,绿色电线可以接到控制器上的任何“地”,本例中,接到I1输入端子组中的“地”:
传感器上的另外两根电线是信号线,现在,将蓝黄条纹电线连接到I1端子,将蓝色电线连接到I2端子:
在RoboPro创建一个新文件。设置环境为TX/TXT控制器,使用级别为初学者,在【COM / USB】设置窗口中设置为USB连接、TX控制器类型。
之后,在ROBO Pro软件的接口测试窗口中进行正确的传感器输入类型设置,本实验中,我们将I1和I2的输入端口类型都设置为“Digital 10V(Trail sensor)”,如下图所示:
将轨迹传感器放置在电工胶带的正上方,如下图所示:
现在,我们将轨迹传感器在电工胶带上方进行左右小幅度的移动,在接口测试窗口中观察,I1和I2在什么时候显示0,什么时候显示1。
调换I1和I2上的导线,观察反接导线对传感器的工作是否有影响?
实验结论
通过测试,我们得知,轨迹传感器上的两组内置传感器(一个圆形的光纤发射器和一个方形的光线接收器是一组)的工作方式是一样的,即:当置于黑色电工胶带上方时,信号返回为“0”,当移动至白色纸张上方时,信号返回为“1”。
接下来,我们要改装测试装置,在控制器的M1和M2输出端口上添加LED灯泡,您可以将它们并列安装在传感器的支架上,如下图所示:
编写程序
拖拽“数字分支”模块到编程窗口,右键单击模块,调出属性设置面板,将数字输入端口设置为I1和I2,将传感器类型设置为“Trail sensor”(轨迹传感器),如下图所示:
接下来拖拽其他模块,将程序编写为下面的样子:
程序中LED灯的点亮有四种可能的逻辑,这些逻辑将通过左右移动轨迹传感器而看到效果。
现在,开始进行程序测试,左右小幅度地移动轨迹传感器,观察并记录测试结果。
《数字传感器:行程开关》
数字信号是指某些传感器提供两种不同状态的信号:高电平或低电平,开或关,逻辑1或逻辑0。数字信号是编程中最容易处理的信号类型。
行程开关是通过关闭或打开一组触点来工作的。一般来说,当开关闭合时会产生一个高电平,当开关打开时会产生一个低电平。
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 2 | |
4 | switch | 行程开关/接触开关 | 1 | |
5 | Lamp | LED灯(带灯座) | 1 |
行程/接触开关安装在电路中以控制电子的流动。
执行机构是使开关打开和关闭的机械方法,常见的类型包括瞬时、拨动、滑动、摇杆等。
一个常开开关是指一个电路在其初始状态下是打开的,而执行器触发后,电路关闭从而允许电流通过;常闭开关是指初始状态下电流可以流过,除非触发执行器使开关打开,从而阻挡电流流动。
而慧鱼的行程开关是一种单刀双掷开关,一个输入和两个不同的输出路径,示意图如下:
下图是实物照片。这是一个接触开关,这意味压下红色按钮(执行器)会临时性地改变路径,而松开后它便恢复到原来的位置。
拆开零件会看到其内部结构。默认情况下,中间的触点1和触点2是接通的,也就是常闭状态;触点1和触点3是断开的,是常开状态。
当按钮被按下时,触点1与2断开,而触点1和3之间接通,但这是一个临时性的接通,因为当松开按钮释放压力时,弹簧将使中间的簧片弹回到其默认的位置上。
现在,将开关的触点1和触点3上连接到TX控制器的I1输入端:
将LED灯(带灯座)连接到TX控制器上的M1端子上,示意图如下:
在RoboPro创建一个新文件。设置环境为TX/TXT控制器,使用级别为初学者,在【COM / USB】设置窗口中设置为USB连接、TX控制器类型。
之后,将下面的这些模块拖拽至编程窗口中:
复制一组Moto output(马达输出)模块和Time delay(时间延迟)模块。
右键点击Moto output(马达输出)模块,在其属性面板上,设置其图标显示为Lamp(灯),一个设置为On(开),一个设置为Off(关)。
编写成以下简单的程序来测试行程开关:
现在运行程序,观察开关触发后LED灯的点亮效果。
《模拟传感器:颜色传感器》
ID | 名称 | 中文名称 | 数量 | 图片 |
1 | TX Controller | TX控制器 | 1 | |
2 | Power Supply | 电源 | 1 | |
3 | Wires | 电线 | 1 | |
4 | Color Sensor | 颜色传感器 | 1 | |
5 | Building block 30 | 30mm构建块 | 4 | |
6 | Link 15 | 15mm榫键 | 2 | |
7 | Aluminum Strut 90 | 90mm铝型材 | 1 |
颜色传感器带有三根线缆,其中红色的线缆(电源正极线)接到控制器上的9V输出端,绿色的线缆可以接到控制器上的任何一个接地端子,在本实验中接到I1的接地端子。黑色的线缆是信号线,本实验中接到I1的输入端子。三根线缆的接线位置如下图所示:
搭建一个传感器支架,结构类似于下面的示意图:
整体示意图如下:
无论何时当你把一个传感器连接到控制器时,都需要在ROBO Pro软件的接口测试窗口中进行正确的传感器输入类型设置,只有配置正确,软件才会返回正确的传感器测试数值。
实验结论
下面是四组测试结果:
程序编写:
上面这个程序是如何编写的呢,详情如下:
在类别【Program elements / 程序模块】中的子类别【Basic elements / 基本模块】中找到下面的两个模块拖至到编程窗口:
从子类别【Commands / 指令】中放置一个“指令”元素:
从子类别【Branch,wait… / 分支,等待】中放置一个“带数据输入的分支”模块:
从子类别【Inputs,outputs / 输入,输出】中拖拽以下这两个模块到程序窗口:
从类别【Operating elements / 操作模块】中的子类别【Displays / 显示】中将下列模块放置在程序窗口中:
在编程窗口中复制“指令”元素,复制方法是按住Ctrl键,在要复制的模块上点击鼠标左键:
右键分别单击上面的两个“指令”模块,在其属性中,一个设置为“On / 开 ”,一个设置为“Off / 关”:
对这两个“指令”模块,分别各复制出3个,共计8个“指令”模块:
再复制三个“带数据输入的分支”模块,共计4个。分别在属性面板中设置这四个模块的条件判断参数,使得我们在前面所测量的四张纸片的颜色数值分别在这四个参数形成的数值区间内。
右键单击“Text display / 文本显示”模块,并设置显示框名称为“sensor”,默认的显示文字为“Sensor= 0”,将显示框的列宽度(显示位)设置为14,如果愿意的话,还可以改变背景颜色。
再复制3个“Display Lamp / 显示灯”模块。分别给每个设置一种与前面测试纸片所对应的颜色和名称。它们分别是“yellow”、“white”、“orange”、“blue”。
再复制出7个“Panel display / 面板显示”模块,分别在其属性面板中配置到不同颜色的显示灯上。
用流程箭头连接各模块。完成后,你的程序应该看起来类似于下面的显示。
现在将TX控制器连接到计算机,打开控制器的电源并运行程序。
《USB摄像头的基本介绍》
慧鱼USB摄像头是一个多功能的传感系统,除了基本的回传视频画面外还可以用来收集不同类型的信号。
将摄像头的USB数据线插入到TXT控制器上的USB1接口,如下图所示:
连接后,摄像头通过USB线缆供电,现在可以开始使用。
接通TXT控制器的电源,打开控制器。 在电脑上打开Robo Pro软件、设置正确的运行环境,并启动一个新程序。
在主程序界面中,选择“Camera”窗口选项卡,这将打开摄像头窗口。 有关摄像头的所有设置都在此窗口中进行,在这里我们可以指定如何使用摄像头以及我们希望使用的属性:
窗口中的右侧是摄像头的设置,右下方是显示摄像头回传的各种数据。
这里,我们先选择摄像头的连接方式为:TXT Controller(通过TXT控制器连接),如下图所示:
点击“Select PC Camera”标签旁边的“Select(选择)…”按钮,将弹出一个选择对话框,这里可以指定摄像头。如果您使用的是自带摄像头的笔记本电脑,您可能会看到这里列出了两个不同的摄像头。 选择其中的“Any available camera(任何可用的相机)”的选项:
接下来,单击 “Activate Preview(实时预览)”复选框:
几秒钟后,窗口中的左侧屏幕将闪烁,您将看到摄像头回传的实时画面:
如果在你的程序中你仅仅需要的就是摄像头的回传画面,那么你现在可以通过点击“Function(功能)”选项卡切换到程序主界面:
要让摄像头回传画面出现在您的程序界面中,那么需要在“Operating elements(操作模块)”分类中将“Camera viewer(摄像头查看器)”模块拖拽到程序界面中:
拖拽到程序界面中时它显示为黑色矩形。现在点击“程序运行”按钮,我们将看到实时回传的画面:
以上是摄像头回传画面的基本用法,事实上,慧鱼摄像头除此基本功能外还提供5中的额外的功能,这另外五种功能为:
以上这5种功能我们将在另外5个文档中分别详细介绍。
《摄像头的运动探测》
摄像头通过镜片监测外部世界与我们的肉眼直接观察世界是不太相同的。
为了观察运动,我们可以观察摄像头回传回来的画面,并且观察图像的变化对比度。如果图像是稳定的,那么对比度的值是恒定的;当画面出现运动时,对比度是会发生变化的。
当屏幕里的画面出现变动,即对比度产生变化时,系统会产生提示,但是,我们还需要对监测精度进行调节,以避免类似热系统中的热空气流动产生的微小变化。
现在连接摄像头到TXT控制器,将控制器与电脑相连,接通电源,在电脑中打开软件,设置好环境,新建一个空白文件。
点击进入Camera窗口中,单击左上角的“Sensor fields(传感器域)”:
在左下侧的传感器种类中,左键单击“Movement detector(运动探测)”模块,之后鼠标箭头会变成一个笔形图标:
在右侧的黑色屏幕区域单击鼠标,绘制一个监测区域,在笔形图标的状态下,拖动区域四周的锚点,可以再次调整区域的小大:
再次单击笔形图标完成绘图,此时笔形图标变回正常的鼠标箭头:
左键点击监测区域(监测区域框显示为红色表示被选中),再右键单击鼠标,会弹出属性设置面板:
在对话框中有三个属性设置:
举例:如果你想要监测一张白纸上的蚂蚁的爬行,“变化对比度”的设置值要较高(50或50以上),但是“变动区域”的设置值要很小(1)。
本实例中,我们就接受其默认值(10)。现在,点击“OK”。然后再勾选“实时预览”复选框,此时摄像头将为您提供监控数据:
如果在监测区域内的画面没有任何的变动,那么在“Sensor values(传感器值)”窗口里我们看到Detect的返回值都是“0”:
将手移动到摄像头前的监测区域中,观察“Contrast(对比度)”和“Size(大小)”的数值变化。
尝试在摄像头前移动不同的东西。当物体移动到监测区域中时,你会观察到明显的数值变化。请观察不同颜色的对象和不同大小的物体的移动时,数值变化有何不同。 你还可以尝试改变摄像头前的画面背景颜色,再次在监测区域内移动物体看看有什么效果。
除了在摄像头窗口下可以实时看到监测的数值,在编写程序时,我们通过“Camera Input(摄像头输入)”模块来调用这两个属性参数。
切换到程序界面,从基本模块中拖拽“开始”模块和“时间延迟”模块到程序窗口中:
从“输入,输出”子分类中拖拽“面板显示”和“摄像头输入”模块到程序窗口中:
从“分支,等待…”子分类中拖拽一个“带数据输入的分支” 到程序窗口中:
从操作模块下的“显示”子分类中,拖拽一个“显示灯”模块到程序窗口中:
组织这些模块,编写一个如下的简单的程序:
这个程序将调用摄像头的属性值,并根据这个值进行分支判断,如果画面有变动,就点亮“显示灯”。
在程序正常运行前,我们还需要对模块进行一下配置:
右键单击“摄像头输入”模块,调出属性面板,这里列出了Detect对象的两个属性:Detect C(对比度)和Detect A(区域)。本例中,我们选择调用“对比度”这个属性值:
确认设置后,我们会看到“摄像头输入”模块上的图文标识发生了变化:
右键单击“显示灯”模块,在其属性面板中,去掉“Initially on”右侧复选框的“勾”,这表示显示灯在程序运行初始时是熄灭的。
右键单击“面板显示”模块,在其属性面板中,将其指定到这个名为“Lamp”的“显示灯”:
运行这个程序,当监测区域里出现画面变动时,对比度会产生数值变化(非0),这时就会看到“显示灯”点亮,如果画面静止不动,那么对比度数值为0,“显示灯”又会熄灭。
如果我们想在程序窗口里实时的看到摄像头监测到的对比度数值,那么只需对程序做如下的调整:
从操作模块下的“显示”子分类中,拖拽一个“文本显示”模块到程序窗口中,右键单击对其属性进行设置,修改其名称为“contrast”,将默认的文本显示设置为“Contrast= 0”,位数设置为“15”:
在程序中删除掉“显示灯”控件,将“面板显示”模块重新指定到这个新建立的名为“contrast”的“文本显示”模块:
运行该程序,我们就可以实时查看监测区域中的对比度数值。
然后,我们还可以将分支的判断阈值进行调整,这时我们还可以观察到对比度的值只有在达到了判断阈值时,才会引起分支模块的跳转。
实验
试一试,如果忽略小的变化,只监测大的变化,那么“变化对比度”和“变动区域”的值应该设置为多少合适呢?
我们可以用摄像头的这个功能来实现对物料输送带上流动的物品进行计数的程序,请尝试完成实物搭建和程序编写。
《摄像头的小球探测》
这个功能被称为小球探测器,但它也可以探测圆形以外的形状。 该功能可以查找与背景色不同颜色的对象。 当它定位一个到对象时,它提供对比度、X轴和Y轴坐标及物体尺寸这四个属性。
实验组件:
将15mm的红色构建块安装在底板的C12、F12和 E9槽中:
组装好转盘并安插到底板上的3个构建块上:
将2个点榫键安置到底板的J9和K9槽中:
在点榫键上滑入30mm的黑色构建块:
组装带有蜗杆轴的电机齿轮箱:
滑动电机齿轮箱,确保其上连接的蜗杆与转盘接触:
如上图所示,将电机连接到TXT控制器上的M1输入端。
制作背景:用30mm的构建块制作两个“L”型的支架,在中间插入一张单色的纸张作为背景:
制作立架:使用60mm的金属轴,将其放在筒夹和轮毂螺母之间,然后拧紧使其相对固定:
在另一端,用同样的方法固定好筒夹和轮毂螺母,注意在末端流出一定的空间:
这个结构将作为放置乒乓球的支架使用:
你的整体测试环境应该如下图这样布置:
下面开始摄像头的配置:
在软件中新建一个程序,打开摄像头窗口。 点击左上角的“传感器域”,在下面的程序模块中选择小球探测模块:
单击“小球探测”模块后,鼠标形状变为笔形,现在在视频监控窗口中绘制监测区域,可以拖动监测区域框四周的锚点以改变形状,确定形状后,鼠标点击监测区域以外的地方以确定设置,鼠标变回光标形状:
本例中需要一个较大的矩形监测区域,之后右键单击监测区域弹出属性设置面板:
通过该属性面板中的设置,我们可以告诉计算机要去寻找的对象:
可以给该探测区域设置一个唯一的名称,方便在程序中调用其属性;
之后“Ball detection(球探测)”属性中可以设置“Minimum color contrast(最小颜色对比度)”,这个对比对是指被监测对象的颜色与背景色的对比度;
“Minimum size(最小尺寸)”和“Maximum size(最大尺寸)”是设置要监测的物体的尺寸范围,对于最大尺寸,设定要合适,不能太大,否则处理会非常耗时,还可能会识别到一些不是目标对象的物体。同时,对于最小尺寸也不能设置的太小。最好的办法是在摄像头监测区域内测量物体的尺寸,然后减去或加上尺寸的20%作为最小尺寸和最大尺寸;
之后的“Result coordinates(监测区坐标)”属性中可以设置监测区域的刻度范围,分别可以设置X轴和Y轴的最大和最小坐标值以及网格间距。
之后勾选“实时预览”复选框。在视频窗口中将显示摄像头拍摄到的画面,你将看到计算机识别到了摄像头前的乒乓球(识别到时会有一个绿色的圆圈实线)。
上图中Contrast(对比度)值是55。Position(位置)值是15 75,这个值中间有一个空格,空格前的15表示球的中心在X轴方向上的刻度,后面的75表示球的中心在Y轴方向上的刻度。Size(尺寸)值是小球在网格坐标下的半径。
在上面的视图中,我们看到小球的顶部超出了网格区域,那么现在我们调整一下监测区域的位置,使小球能完全的显示在网格区域内部:
接下来我们进一步修改这个程序,使其功能更完善:
拖拽“起始”模块和“马达输出”模块到程序窗口中:
从“变量、定时器…”子分类中,拖拽1个“常量”模块到程序窗口中:
从“分支、等待…”子分类中,拖拽“等待…”和“带数据输入的分支”模块到程序窗口中:
从“操作模块”中的“控制模块”子分类中,拖拽“按钮”模块到程序窗口中:
从“输入输出”子分类中,拖拽“面板输入”模块到程序窗口中,并在其属性面板中设置指向 “按钮”模块:
从“运算符”子分类中,拖拽“算数运算符”模块到程序窗口中:
复制模块,修改相应的属性,将上面这些模块组织成下面的程序显示:
上面这个程序是一个追踪程序,如果小球的摆放位置不是在摄像头的正前方,那么摄像头会调整方向以保证让小球在自己的正前方。
试着用手移动小球的支架,摄像头也会跟随的小球的移动方向移动。如果你发现摄像头的移动方向有误,请在TXT控制器上的M1端口调换电机的接线。如果摄像头的移动太快,甚至出现过度纠偏的情况,那么你可以尝试将电机的速度从8改为4或者3,减低速度摄像头的移动会更稳定准确。
下面我们学习如何屏蔽画面中的部分显示区域,当我们构建实验模型时,有时模型的颜色可能会分散程序的注意力。要从视图排除掉一个可能造成干扰的区域,只需要使用摄像头中的一个“区域排除”功能即可。
现在关闭到程序,切换到“摄像头”窗口中,勾选“实时预览”复选框,然后单击左上角的“Sensor fields(传感器域)”,在左下侧的传感器种类中,左键单击“Exclusion object(排除物体)”模块:
之后在摄像头窗口里拖拽一个矩形区域,如下图所示,画面中底部的白色区域与背景色有较大的差异,那么我们把底部的这个区域排除掉:
确定该排除区域后,右键单击该区域,在其属性面板中为其设置一个唯一的名称“Bottom”:
之后,我们再次选择小球探测区域,在其属性面板中,我们将“Exclusion area(排除区域)”的值指向“Bottom”:
设置好后,再次运行该程序 ,由于设置了排除区域,因此计算机将不再被不同的颜色“分心”。
描述你如何看待计算机使用颜色对比度来定位球。
尝试使用一个块状物体来代替乒乓球,程序能够识别到块状物体么?
《摄像头的颜色探测》
在进行本功能测试前要注意,外部光源对摄像头的颜色识别是有影响的,在编程测试期间请保证不变的外部光源,否则测试数据会受到影响,还有当摄像头前的探测区域没有明显反光时,识别颜色也较为准确。最好提供一个黑色、白色或者单色的背景色,被测物体的颜色最好也是单色。颜色探测时被测物要保持稳定。
实验组件:
按照下图组装结构:
按照下图安装上摄像头并组装好试验台:
在软件中新建一个程序,打开摄像头窗口。 点击左上角的“传感器域”,在下面的程序模块中将显示出5种摄像头探测模块:
本实例中,选择“颜色探测”模块:
单击“颜色探测”模块后,鼠标形状变为笔形,现在在视频监控窗口中绘制监测区域:
可以拖动监测区域框四周的锚点以改变形状,确定形状后,鼠标点击监测区域以外的地方以确定设置,鼠标变回光标形状:
右键单击设置好的监测区域,弹出属性面板,在这里给监测窗口设置一个唯一的名称,这里我们将名称改为“Detect”:
确认后,你会看到,监测区域框内的名称变更为你设置的“Detect”:
勾选“实时预览”复选框,你将看到摄像头拍摄的实时画面:
我们的电脑是使用RGB颜色标准的。RGB颜色标准是指每种颜色都是由:Red(红)、Green(绿)、Blue(蓝)三种颜色按照不同比例混合而成。R、G、B每种色各分为256阶亮度,数值从0到255表示,一些颜色的RGB表示如下:
颜色名称 | 红色值 Red(0 - 255) | 绿色值 Green(0 - 255) | 蓝色值 Blue(0 - 255) |
黑色 | 0 | 0 | 0 |
蓝色 | 0 | 0 | 255 |
绿色 | 0 | 255 | 0 |
青色 | 0 | 255 | 255 |
红色 | 255 | 0 | 0 |
洋红色 | 255 | 0 | 255 |
黄色 | 255 | 255 | 0 |
白色 | 255 | 255 | 255 |
此外,监测系统还提供一个B/W属性来表示不同颜色的总体亮度值。
现在你可以从电脑上打印几张不同颜色的纸,并将其RGB值和B/W总体亮度值记录在其上,以备后面使用:
接下来我们进一步修改这个程序,使其功能更完善:
拖拽“起始”模块到程序窗口中:
从“变量、定时器…”子分类中,拖拽2个“变量”模块到程序窗口中:
从“指令”子分类中,拖拽“赋值”模块和“加”模块到程序窗口中:
从“分支、等待…”子分类中,拖拽“等待…”和“带数据输入的分支”模块到程序窗口中:
从“操作模块”中的“控制模块”子分类中,拖拽“按钮”模块到程序窗口中:
从“输入输出”子分类中,拖拽“面板输入”模块到程序窗口中,并在其属性面板中设置指向 “按钮”模块:
复制模块,修改相应的属性,将上面这些模块组织成下面的程序显示:
在上面这个程序里,我们用RGB中的“R”值作为分支判断的数据输入值,我们修改分支判断的条件数值,以便判断每次放置的颜色卡片是否是我们要监测的颜色。但是每种颜色的RGB三个通道的色值有时是非常接近的,因此用一个颜色通道的数值来做条件判断往往不够准确,这时我们可以考虑用多个条件来做颜色判断:
如果在自然光干扰较小的环境中,如果颜色纸张的测试数值较为稳定,那么我们可以用上面的这种多通道颜色的“等值”判断来确认颜色,但是如果数值不够稳定,这种颜色的判断也是不准确的会存在误差。完整的测试程序如下:
有多种逻辑来选择你想要的颜色,请尝试不同的方法编程来实现颜色筛选功能。
《摄像头的线条探测》
我们需要通过设置选项来告诉摄像头要寻找什么。
最简单的循迹是追踪那些在白色背景上的黑线。 由于我们的摄像头可以区分不同的颜色,因此循迹的能力是无止境的。 摄像头还可以一次看到几条线,如果我们清楚这些线条的不同条件,那么我们可以告诉程序何时停止跟踪一条线条并开始追踪其他的线条。
以下的学习将帮助你理解摄像头是如果看到线条和颜色,并如何实现追踪。
实验组件:
我们用上述组件搭建一个如下的结构:
下面开始摄像头的配置:
在软件中新建一个程序,打开摄像头窗口。 点击左上角的“传感器域”,在下面的程序模块中选择线条探测模块:
单击“线条探测”模块后,鼠标形状变为笔形,现在在视频监控窗口中绘制监测标尺,可以拖动监测标尺两端的锚点以改变形状,确定形状后,点击监测标尺以外的地方以确定设置,鼠标变回光标形状:
之后右键单击监测标尺以弹出属性设置面板:
在这个属性框中有很多设置,在本实例中,我们将经常返回这里进行属性值的更改,看看会如何影响摄像头的线条循迹。
由于我们会在程序中对某些属性进行调用,因此我们对属性的设置还将影响编程界面的内容。
现在,就从这些默认设置开始。 选择“OK”。
将画有线条的纸张放置在摄像头的正下方,然后勾选“实时预览”复选框,从监测窗口中看看摄像头正在监测什么:
上图中,在摄像头下方有一个黑色的线条,监测到的数据信息为:对比度为35,位置为12(这里的位置是指该黑色线条宽度的中心点距离监测标尺中心点“0”之间的距离,这个值是带有正负的,正值表示在监测线条的右侧,如果是负值,表示在监测线条的左侧),尺寸12(尺寸指在标尺线上的黑色线条宽度)。
现在取消“实时预览”。 右键单击监测标尺以再次弹出属性框。 在上图中,对比度为35。现在我们将“Minimum contrast(最小对比度)”的值设置的高于这个监测到的值(比如40或45):
选择“确定”,然后再次激活“实时预览”。 观察发生了什么?
我们注意到,当“最小对比度”值设置的高于实测对比度时,我们的摄像头现在对黑色线条“视而不见”。
取消“实时预览”,再次调出属性面板,将“最小对比度”的值重置为20,在“detection and automatic white balance(颜色检测和自动白平衡)”选项区中,选中“Color(颜色)”单选按钮:
点击确认,打开“实时预览”再次观察监测效果:
这一次你应该能看到更多的信息。你会注意到在“传感器值”窗口中有更多的颜色信息。 这些属性值将允许我们决定要追踪的颜色线条。 现在,将不同的颜色线条移动到摄像头的下方,并记录下不同的数据:
在我们编写程序时,这些数据可以帮助我们进行条件设定。另外需要注意,不同的室内的照明会对摄像头的循迹造成影响(监测数值会发生变化)。
切换到编程界面,从“输入,输出”子分类中拖拽“摄像头输入”和“面板显示”模块到程序窗口中:
慧鱼电气元件技术参数
额定电压:10 VDC
空载转速: 9500转/分(RPM)
最大电流:0.65 A
最大扭矩:4.8 mNm
变速比8:1
额定电压:8 VDC
空载转速: 5800转 /分(RPM)
最大电流:1.1A
最大扭矩:1.2 Ncm
额定电压:24 VDC
空载转速: 10700转 /分(RPM)
最大电流: 0.3 A
最大扭矩:5mNm
额定电压:24 VDC
变速比:20:1
空载转速:270转 /分(RPM)
最大扭矩:300mNm
额定电压:2.3VDC
材质:10F
额定电压:9VDC
额定电流:1.0A
额定电压:9VDC
额定电流:1.5A
最大电压:35V
额定电压:12 VDC
额定电流: 0.133 A
额定电压:直流9V
最大功率:1096 W
最大转速:173.5转/分(RPM)。
最大扭矩:60.29 mNm
最大电流:465mA
最大信号:NPN集电极开路输出, 2mA
最大功率:2.9 W
最大转度:338转 /分(RPM)
最大扭矩:84.15 mNm
最大电流:950 mA
最大功率:955W
最大转度:5995转 /分(RPM)
最大扭矩:1.52 mNm
最大电流:265 mA
电源电压:9V DC(红色“+” 绿色“ - ”)
蓝色和黄色电缆输出
无踪迹信号:0V
跟踪确认信号:>5V
最大输出电流: 1mA
电源电压:9V DC
模拟信号:0-9 V
输出端最大电流:1 mA
电源电压:9V DC
数字信号: ROBO TX控制器/ ROBO接口板传感器
数字编码:ROBO TX控制器和传感器之间的数据传输
额定电压:24V DC
空载转速:440转 /分(RPM)
最大扭矩:176.5 mNm
最大电流:0.6A
输出信号:0.24VDC,10 mA
工作温度:10〜40℃
存储温度:5-40℃
存储容量:2x15ml
操作电压:1.4-2V
工作电流:0-500mA
最大产氢率:3.5毫升/分
工作电流:500mA
额定功率:250mW
额定电压:9VDC
额定电流:80mA
最大温升:30K
磁保持力:14N
重量:18.6 g
尺寸:20x18x27mm
电线长度:300mm
32698 光敏传感器
型号:LDR03
光强电阻:R100= 1.2kΩ
36437 热敏传感器
温度电阻:R25=1.5kΩ
最大功率:P25=450mW
|