李万明 周稳
摘 要:对导盲设备的研究一直是物联网背景下智慧医疗研究的重要课题,故设计出了一种新型的复合型智能盲杖。首先以Arduino、UHF双开发板搭载触摸传感器模块、蜂鸣器模块、LED模块和超声波模块等主流模块,将RFID同Arduino结合起来;其次通过Demo2.0软件对标签的信息进行可视化处理,完成了数据的读写,实现了盲人偏离盲道触发报警的功能;最后实验测试充分证明了该复合型智能盲杖具有很高的实用价值和推广价值。
关键词:导盲杖 射频识别 UHF 可视化处理
中图分类号:TP399 文献标识码:A 文章编号:1674-098X(2021)02(b)-0111-04
Design and Implementation of Compound Intelligent Blind Stick
LI Wanming ZHUO Wen
(School of Computing, Henan University of Engineering, Zhengzhou, Henan Province, 451191 China)
Abstract: The research of blind guidance equipment has always been an important topic of intelligent medical research under the background of Internet of things. A new type of compound intelligent blind stick is proposed in this paper. Firstly, Arduino and UHF development boards as the control core, the guide stick is equipped with touch sensor module, buzzer module, LED module and ultrasonic module and other mainstream modules, combined RFID with Arduino, and programmed to control ultrasonic sensor to identify distance. Secondly, the label information is visualized by demo2.0 software to complete the data reading and writing, which realizes the function of the blind people deviating from the blind lane and triggering the alarm. Finally, the experiment fully proves that the blind stick has high practical value and popularization value
Key Words: Guide stick;Radio frequency technology;UHF;Visibility processing
隨着盲人比重越来越大,相关导盲设备也在不断发展中。但是普通的盲杖不能很好地起到引导盲人的作用,比如无法提前判断前方的障碍物,不能保证盲人不偏离盲道等。为实现导杆智能化,以及解决以上几种问题,本系统要实现报警功能,完善障碍物识别功能并通过相关软件查看参数,处理盲道偏离问题并实现数据可视化的处理。
通过查阅文献[1-2],发现当前大多数导盲杖在功能上的不足之处,故提出了创新型的改进,旨在以物联网技术为核心技术手段[3-4],实现有源的触摸式报警功能、LED导盲功能、RFID射频识别功能、超声波避障功能。
1 预备知识
1.1 Arduino主控板和UHF主控板基本知识
(1)Arduino主控板:目前最流行的还是属于Arduino UNO,所以本系统采用Arduino具有普适性。Arduino促进了许多开源项目的生产和开发。此外,Arduino本身是通过聚合几个开源项目生成的。Arduino的开源项目聚合如图1所示。
它使用AVR-GCC和其他一些人们知道的开源软件。它是用Java编程语言编写的。其优点之一是可以直接使用,而无需安装软件和打开压缩包。程序载入Arduino时,会自动把代码变换为C语言,并给AVR-GCC 进行编译,形成微处理器能明白的目标指令[5-6]。
(2)UHF主控板:UHF开发板采用多标签抗冲突算法架构,不仅支持EPCglobal协议,而且支持不同的接口以满足不同的读写距离。UHF使用USB接口,UHF处理芯片体积小而且耗电少。
1.2 Demo2.0软件基本知识
Demo2.0软件是用C#语言开发而成,它包含有手机APP和PC软件两种类型。软件的作用是显示电子标签的标签信息包括标签号、收发信息的状态等,从而实现了数据的可视化。
2 系统框架和模块化设计
2.1 系统框架
开发板相连的有触摸传感器(用于紧急呼叫)、有源蜂鸣器(不仅用于紧急呼叫的时候产生报警,而且用于探测到障碍物时候发生报警)、8mmLED灯(当盲杖使用的时候在夜晚产生亮光)、超声波避障模块(当盲杖探测到前方有障碍物的时候会发出报警声音)、射频识别模块(当盲杖检测到盲道边缘的电子标签的时候搭配蜂鸣器报警),该盲杖的功能很多,不仅弥补了大多数盲杖功能不足的情况,而且能够投入到实际运用中。系统整体框架图如图2所示。
本盲杖顶部采用Arduino 主控板,底部使用UHF超高频开发板。导盲杖首部主控板Arduino连接着触摸传感器、超声波传感器、蜂鸣器、LED灯。导盲杖尾部主控板UHF相当于一个读写器,一端连接着电脑,一端连接着天线。
2.2 模块化设计
2.2.1 触摸传感器和有源蜂鸣器模块
导盲杖顶部使用的触摸传感器采用了专用的IC检测,其优点在于不仅灵敏度很高,而且输出也很稳定。它的原理是利用高低电平的变化进行控制,当按下的时候处于低电平,当松开的时候则是高电平。除此之外,对于它可以在不导电材料下进行触摸检测,配合蜂鸣器用来作为导盲杖的握手部分。触摸传感器搭配蜂鸣器,利用其高低电平变化从而进行相应的控制,这里需要注意连线的方式。导盲杖使用的有源蜂鸣器正常电压为5V,该蜂鸣器不依赖频率信号的变化,只需要高低电平的变化即可发出声音,不仅适用于按键提示,而且可以搭配超声波传感器使用。其通过程序来控制发出声响的条件,因为其性价比很高,所以得到广泛的运用。
2.2.2 LED和超声波模块
夜晚发光装置是8mmLED灯,当导盲杖在使用的时候,只要按下按钮,这个模块的发光二极管就会点亮,这一模块在整个盲杖的设计中充当发光提醒器。8mmLED是利用发光二极管发光。它的发光的原理是由P-N结端电压组成的基础势垒。
超声波模块实现超聲波避障是智能导航的重要功能之一。有关障碍物的信息由超声波传感器接收,然后传输到Arduino开发板。超声波是高频信号,能量震荡引起超声波。波在空气中是散射的,但超声波属于高频,可以说超声波是以直线方式向前运动的。如果导杆底部的传感器遇到障碍物,其可以将反射的超声波转换为模式电流,然后通过一定的放大将其传输到Arduino开发板中。超声波传感器产生独特方波,通过进行调控处理,进入导盲杖的循环发射电路中,从而产生正弦波,这种正弦波不仅稳定而且具有相同的频率。紧接着,通过传感器的发射端发出。根据超声波反射的规律,当传感器收到归来的超声波的时候,将声波通过数模转换送进处理电路中,经过处理传入Arduino。超声波传感器循环电路中,发射部分运用了多条线路的开关装置[7]。
3 系统整体编码
需要设置引脚,并设置蜂鸣器为输出模式,故设置数字信号变量。触摸传感器接触一次便处于低电平,再按一下为高电平,故可以利用高电平触发报警。需要设置led和触摸传感器的引脚,这里巧妙的利用高低电平不同实现触摸传感器的共用。超声波进行回波检测,故需要设置一个发送脉冲的引脚,一个接收回波的引脚。这里需要用到测量脉冲宽度的pulseIn函数,也就是超声波发射到接收时间,并利用换算关系得到障碍物的距离,编码如下。
const int Pin = 2;//设置触摸传感器引脚为2
const int b = 8; //设置蜂鸣器引脚为8
int State = 1; //初始化数字信号接收变量
void setup() {
pinMode(b, OUTPUT); //设置蜂鸣器为输出模式
pinMode(Pin, INPUT); //设置触摸传感器为输入模式
}
void loop(){
State = digitalRead(Pin);//用于接收数字信号
if (State ==LOW ) {
digitalWrite(b, LOW);
}
else {//如果为高电平则蜂鸣器发声
delay(1000);
digitalWrite(b, HIGH);
}
}
const int l = 4;//设置LED引脚为4
const int Pin=2;//触摸传感器不变
int State = 1; //用于接收信号
void setup() {
pinMode(l, OUTPUT);//设置LED为输出模式
pinMode(Pin, INPUT); //设置触摸传感器为输入模式
}
void loop() {
State = digitalRead(Pin);//用于接收数字信号
if (State ==LOW )//触摸传感器低电平发声
{
digitalWrite(l, HIGH);
}
else{
digitalWrite(l, LOW);}}
#include
const int T = 5;
const int E = 6;
const int bu=8;
float c;
void setup() {
pinMode(T, OUTPUT);
pinMode(E, INPUT);
Serial.begin(9600);
pinMode(bu, OUTPUT);
}
void loop() {
digitalWrite(T, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(T, HIGH);
delayMicroseconds(10);
digitalWrite(T, LOW);
c = pulseIn(E, HIGH) / 58; //将回波时间换算成cm
if (c<=20 ) {
digitalWrite(bu, HIGH);
}
else {
digitalWrite(bu, LOW);
}
c = (int(c* 100)) / 100; //保留两位小数
Serial.print("Distance:");
Serial.print(c);
Serial.println("c");
delay(500);}
4 系统测试
超声波传感器用以实现10cm以上障碍物的判断。当前方有障碍物的时候,电平会发生变化而导致蜂鸣器报警。接通串口,接着要初始化串口信息,设置接收引脚作为引脚的输出,将高电平的输入信号作为工作信号。在UHF与电脑连接好之后,首先打开软件,设置对应的COM口,这里的COM口为COM5,点击连接串口通信,并设置RF功率为12.5dBm。此时可以准备读取标签信息,点击多标签识别,即可通过天线进行标签扫描,此时采取多次轮询。系统测试如图3所示。
5 结语
本盲杖的特色在于利用Arduino和UHF双板进行整合,完善了目前的导盲杖的不足之处,考虑到成本因素,选择性价比较高的硬件。本盲杖的设计基于多模块整合模式,将各个模块功能整合到一个盲杖之中。在实验过程中,由于硬件问题,有时出现输出不稳定的情况,因此采取模块化的处理能够相对减少这类误差。
参考文献
[1] 曲丹丹,张宏伟.基于超声波技术的导盲杖系统设计与实现[J].时代农机,2019,46(7):81-83.
[2] 张靖雪,许泽天,胡沛.智能便携导盲杖设计[J].科技风,2017(26):1-2.
[3] 樊柯辛. 物联网设备接入系统的设计与实现[D].沈阳:中国科学院大学(中国科学院沈阳计算技术研究所),2019.
[4] 刘君.物联网技术的认识论研究[D].上海:东华大学,2015.
[5] 陈晓燕.基于RFID、GPS实现环境识别、路径查看的导盲杖[D].保定:河北大学,2019.
[6] 郭锐,孙宏伟.基于Arduino UNO的电子产品设计[J].中国新通信,2019,21(10):42.
[7] 向长秋,胡湘娟,阳泳.基于AT89C51單片机的盲人避障装置的设计[J].科技展望,2015,25(30):130.