注意:本实验在ELVIS III上Python环境已经建立完善的情况下进行,具体建立环境的实验步骤请参看本站文章:如何用Python对ELVS III进行编程开发
通过本实验,你将学习如何通过Python编程控制ELVIS III上的AIO和DIO资源,从而实现基于红外测距传感器的测距应用:
1) 检测传感器与移动物体(小车)间的距离,并实时显示检测距离
2) 当检测到传感器与物体间的距离小于20cm时,点亮ELVIS III上的LED灯表示告警
1 - 实验所需设备
1) NI ELVIS III 一台
2) 笔记本(已安装Putty、FileZilla) 一台
3) 红外测距传感器(本实验采用SHARP GP2Y0A21YK0F)
4) 杜邦线若干(10cm公-公 一根、20cm 公-母 三根)
5) 移动物体(本实验采用小车模型)
2 - 硬件环境搭建
1) 将传感器的GND接到ELVIS III原型板 Bank A的DGND口
2) 将传感器的5V接到ELVIS III原型板 Bank A的+5V口
3) 将传感器的AI0接到ELVIS III原型板 Bank A的AI0口
4) 将ELVIS III原型板 Bank A DIO0接到ELVIS III Bank A 的LED0
注意:将传感器固定在桌面合适的位置,保持传感器水平,避免传感器发出的红外信号碰到桌面,影响测试效果。
3 - 把Python代码文件传输到ELVIS III
将范例资源包(关注曾益慧创公众号,回复“红外测距”,获取红外测距实验范例资源包)中的IR_Distance_sersor.py文件通过FileZilla传输到NI ELVIS III设备。
FileZilla的配置如下:
Host Name: <IP Address of the NI ELVIS III>
login as: admin
Password:(空白。默认情况下没有密码。)
Port: 22
4 - 运行范例
1) 配置PuTTY或其他客户端如下:
Host Name: <IP Address of the NI ELVIS III>
Port: 22
Connection Type: SSH
一旦连接打开,登录账户为:
login as: admin
Password: (只要按回车。默认情况下没有密码。)
2) 打开PuTTY运行范例。在将示例文件夹上载到的目录中,输入以下命令,进入NI-ELVIS-III-Python示例目录。
cd NI-ELVIS-III-Python-Examples-master/
注意:如果无法将当前目录更改为NI-ELVIS-III-Python-Examples-master/
,请输入以下命令以访问目录中的内容/home/admin
。您应该能够在列出的文件中找到NI-ELVIS-III-Python-Examples-master/。
ls
注意:如果无法将当前目录更改为NI-ELVIS-III-Python-Examples-master/
,请输入以下命令以访问目录中的内容/home/admin
。以下也命令可以查看当前目录。
cd ~
pwd
3) 运行范例:
python tests/IR_Distance_sersor.py
注意:在运行任何示例之前,请确保您的ELVISlll实验板电源开关已打开。
实验软件界面:
将每次测得的数值转化成实际距离后,显示在UI界面上。
当距离小于20cm时,ELVIS III的面包板上的LED 0将会被点亮直至小车与传感器距离大于20cm才会熄灭,此时程序界面也将报出错误!
注意:本次实验的传感器特性曲线是非线性的,也就意味着其中的比例系数需要进行标定,同时根据标定值在特定范围进行距离测试才能获得较为准确的距离值。