白金朋 牛栋鑫 张婧睿 于可
摘要:论述了基于e家庭的多功能机器人的设计与方案,多功能机器人以扫地吸尘为主要功能,家庭巡检,空气加湿,煤气报警,火灾报警等为辅助功能。通过设计多种方案并对比,采用Arduino Mega2560作为主控开发板,与超声波,esp8266等传感器相连,实现局域网内通过手机软件控制机器人的功能。
Abstract: This article discusses the design and scheme of multi-function robot based on the e-house. The main functions of the multi-function robot are sweeping and vacuuming, and it has other auxiliary functions like: inspection, air humidifaction, gas alarm and fire alarm. Comparing a variety of project designs, Arduino Maga2560 is adopted as the main control boardwhich connected with ultrasonic wave,esp8266 and other sensors to implement control functions of the robot based on WLAN by phones.
关键词:多功能机器人;开发板;传感器;家庭局域网;移动服务端
Key words: multi-function robot;development board;sensor;home LAN;mobile server
中图分类号:TP242.6 文献标识码:A 文章编号:1006-4311(2019)14-0140-04
0 引言
设计基于e家庭的多功能机器人的目的是实现多功能一体化家居机器人的同时,方便用户对其控制。Arduino开发板的编程简单直观,可开发性强,信号控制稳定等特点在多功能机器人中得到了充分的体现。机器人基于多种传感模块实现运动避障及多功能服务等基本用途,同时基于esp8266模块与家庭wifi局域网连接,实现近百米内移动服务端控制,服务端平台采用Android Studio开发,安卓系统用户可于服务端通过服务端号与机器人网络连接,对机器人全部功能实现控制。设计中难点在于如何编写简洁实用的服务端平台,如何使机器人实现自动全方位清扫,还有机器人主体结构,材料,外观等细节的方案选择等。
1 主控芯片及主要结构分析
选择智能家居机器人时,大部分消费者更偏重的是以更低廉的价格买到功能相似的产品,而此项目的目的也是在创造机器人的同时使其商业化,所以在选择材料上也是进行了优胜劣汰,尤其是机器人芯片的选择。在方案一中,我们选择了Arduino UNO开发板,方案二中选择了STM32开发板,并通过以下三个方面进行了对比:
价格方面:STM32的市场价格在300到400人民幣之间,而Arduino UNO开发板的市场价在50到150人民币之间,因此Arduino开发板能够更好的降低机器人产品的成本。
性能方面:Arduino是一个带有avr单片机的验证系统板,而STM32板是一种arm内核单片机,是一个芯片,因此STM32板相对于Arduino性能较好。
开发方面:STM32开发板开发,需要从硬件底层开始开发,需要掌握各种细节知识,Arduino UNO更倾向于创新,弱化具体硬件操作。
而在此项目开发过程中,主要以创新创业为目标,经济支持有限,对开发板性能要求不高,可开发性要求较高,因此综上所述,选择Arduino开发板作为主控芯片较为合适。
该项目产品主要结构为:移动端应用和开发板通过wifi模块和家庭局域网实现互联,后开发板连接多种模块和器件,包括温湿度传感器,超声波传感器,煤气传感器,火焰传感器,加湿器等,以实现预期目的。整体结构示意图如图1所示。
2 运动传感及运动
机器人运动控制整个系统具体功能为:通过测距手段测量机器人与障碍物距离,从而控制机器人行进方向,以达到自动行进及巡检的目的。而测距手段主要为两类,红外测距与超声波测距。
超声波测距中,可以使用HC-SR04超声波传感器,发射和接收的超声波信号频率约为40kHz,长度约为6mm,可使具有压电效应的换能器产生较小的电压信号,通过变声脉冲回波渡越时间法,计算出当前位置与障碍物相距距离,从而实现测距目的。
设被测试距离为d,信号发出端发出信号与信号接收端接收信号时间间隔为t,传播速度v,则:
d=t×v÷2
而红外线测距中,主要原理为三角测量原理,最终可通过几何公式求出距离d。公式中,测试距离较小时,偏移值L较大,超过测量范围。即,当障碍物距离机器人距离过小,将无法探测障碍物。
通过对比可得,红外线测距反应灵敏,性能较好,但测量距离较长;超声波测距测量范围广,输出方式丰富,价格实惠,但测距值受温度和风向干扰。在家庭环境中,超声波模块具有较大优势。
机器人运动由两枚L298N驱动模块驱动四枚3-6V电机带动,开发板对esp8266模块和超声波测距模块的输入数据进行解析,再将解析所得指令发送至驱动模块内,实现机器人行进方向控制。
根据超声波传感器判断运动方向的程序如下:
if (S<10) //判断障碍物距离,距离太近
{back(); //后退
delay(300); //后退时间
}
if(S<=40&&S>10) //距离中等
{L(); //运行转向判断函数
}
If(S>40) //距离充足
{line(); //运行直行函数
}
3 机械结构设计
3.1 设计过程
首先绘制主体结构的三维图纸,根据需要的数据进行电机和其他所需购买零件的选型,并选取连接所需的螺钉螺母及铜柱。
其次导出上下底板的二维加工.dxf图纸;将需要打印的部件导出为.stl文件,拷贝到3D打印机中进行打印;再将dxf文件考入控制数控铣床的计算机,通过加工软件导出为铣床能够识别的加工路径;
最后打开数控铣床,加工环氧板获得上下底板;将加工获得的部件与购买的各个零件组装起来。
底板图纸如图2。
所需工具和软件有:3D打印机、数控铣床、螺丝刀,UG11.0、Auto CAD2015等。
3.2 材料选择
①主体结构上下底板及支撑结构选用环氧板做结构材料,主要考虑环氧板易于获得,强度较高,价格实惠。
②储尘仓及吸尘口采用PLA材料3D而成。主要考虑结构较复杂,用去除材料方法获得难度较大。
4 各辅助功能实现
4.1 温湿度检测
温湿度是家庭环境的重要指标,家庭多功能机器人理应具备温湿度监测能力,该项目中温湿度传感采用AM2302温湿度模块,传感器采用DHT11,可以测量周围温湿度,温度测量误差±2个百分点,湿度测量范围为百分之0~99.9(0~50度范围),工作电压3.3到5V,为数字输出形式。
湿敏电容数字温湿度传感器应用数字模块采集技术和温湿度传感技术,产品具有较高的可靠性和长期的稳定性。因此其体积小,功耗低,抗干扰能力强,测量值准确等显著优点。
引脚表如表1。
下面给出温湿度传感器应用主要程序:
DHT11.read(PIN_DHT11);
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);
Serial.print("Temperature (oC): ");
Serial.println((float)DHT11.temperature, 2);
delay(500);
4.2 煤氣检测
煤气泄漏可以导致人深度昏厥甚至呼吸衰竭直至死亡,是家庭安全隐患之一,该项目中机器人配备的煤气检测装置采用MQ-5液化气天然气城市煤气传感器模块,二氧化锡作为该传感器所使用的气敏材料,其在空气中电导率较低。当机器人行驶至煤气煤气泄漏范围内时,室内气体中二氧化锡浓度有所提高,传感器中电导率也随之增大。通过制定电路可使电导率转化为与该气体浓度相对应的输出信号。该款传感器优势在于可检测气体种类较多,成本低,响应迅速,寿命长等。
其中四个引脚分别为正极5V,负极5V,DO输出,AO输出。
下面给出火焰传感器应用主要程序:
Void main()
{ while(1) //无限循环
{LED=1; //熄灭p1.0口灯
if(DOUT=0)
{ Delay();延时抗干扰
if(DOUT=0)
{ LED=0;点亮p1.0口灯
} } } }
4.3 火焰检测
火灾是威胁家庭的严重隐患之一,因此家庭机器人的应用中,火焰检测功能是必不可少的。火焰检测可以使用火焰传感器模块,火焰或波长在约750至1000纳米范围内的光源均可以被该模块可以检测,其中检测结果与多种因素有关,如火焰增大,传感器距火焰最远距离也有所增长,火焰传感器信号清晰,波形明确,其工作电压在3.3到5V。
引脚表如表2。
下面给出火焰传感器应用主要程序:
void loop()
{int i=analogRead(AO); //从引脚14输入的值赋给变量i
if (i>120) //无火焰时i=0,但日光灯及其他可能的远红外线干扰将会使其不等于0
{analogWrite(8,1000); //将火焰传感器的门限值设为i=120(可以根据需要自调)
analogWrite(9,255);
delay(500);
analogWrite(8,500);
analogWrite(9,100);
delay(500); //蜂鳴器高低音调鸣响,红色LED高低亮度闪烁
Serial.println(i);
}
Else //未满足火焰传感器门限值
{analogWrite(8,0);
analogWrite(9,0);
Serial.println(i); //蜂鸣器停止鸣响,红色LED小灯熄灭
Delay(1000); //监视器查看数值
} }
5 移动服务端设计
软件名称为Netty,主界面左上角标显示软件名称,共分为两个模式,分别为“客户端”和“服务端”模式,客户端上侧可输入IP地址并连接,输入格式例如:192.168.1.100:5566,下侧可输入字符串指令并发送;服务端左上侧可输入要连接的服务器端口号并创建服务端进行连接,右下侧可输入字符串指令并发送。实际应用中,对机器人的控制需通过“服务端”模式发送指令,过程为在创建服务端输入框内输入要连接的服务器端口号并创建服务端进行连接,连接成功后,在APP界面右侧的发送指令框内输入字符串并发送,即可对Arduino开发板进行控制,从而对机器人进行控制,其中要求输入字符串与开发板程序中控制字符相同。
该项目中,安卓软件的开发工具为Android Studio,该开发环境易于操作,开发方便,可以实现的功能较为齐全,符合本项目需求。
基于Android Studio的部分关键设计步骤为:
①在Android Studio软件中新建项目,命名为Netty。
②添加一个异步处理类,使手机端可以连接到Esp8266的IP和端口号。
③在项目中建立手机端作为接受Esp8266发送的消息服务器。
④编写布局文件,实现对该项目的页面设计。
6 通信协议的设置
6.1 实现方案
esp8266连接到Arduino UNO串口,移动端安装APP,输入服务端口号,创建服务端,即通过家庭局域网连接实现互联,最后通过APP发送指令,由esp8266模块接收并发送至Arduino开发板,Arduino处理指令,控制电机和各传感器模块工作,以实现多功能机器人基本工作功能。
6.2 硬件搭建平台
Esp8266-01+USB转TTL串口模块
连接方式为
esp8266-01 ---------- u转串
VCC-----------3.3
GND----------GND
CH_PD--------3.3
RX-------------TX
TX-------------Rx
6.3 esp8266模块AP指令设置
esp8266支持三种配置模式,分别为station,AP,station+AP。即该模块可以当成一个设备连接网络的路由,也可以设置成为一个路由被连接,还可以既作为网络中的设备同时又是其他设备的路由。
此次项目开发中我们选用该模块的AP(Access point)模式,将该通信模块作为被连接点而建立Wifi网络,提供给其他Station模式的手机端App连接。
具体方法是将AT指令写入esp8266模块的flash中,意味着掉电重启依然有效,这样便可通过串口调试助手做好基本配置,然后其他配置通过arduino开发版继续配置。
esp8266模块AP指令调试如下:
AT+RST(重新启动模块);
AT+CWMODE=2(设置AP模式);
AT+CWSAP=“wifi”,“2333”,1,3(配置AP参数);
AT+CIFSR(查看模块IP地址命令);
下面给出ardunio调制部分关键程序:
mySerial.println("AT+CIPMUX=1"); //开启多连接模式命令
mySerial.println("AT+CIPSERVER=1,8080"); //开启服务器模式 8080为端口号,手机连接时会用到
void loop() {char buf[100];
int leng = ReceiveWifiMessage(buf);//读取串口缓冲区中的数据
if(leng>0){
if(strcmp(buf, GO) == 0){
Serial.println("go");
//前进
go();
}else if(strcmp(buf, BACK) == 0){
Serial.println("back");
//后退
back();
}else if(strcmp(buf, LEFT) == 0){
//左轉
Serial.println("left");
turnLeft();
}else if(strcmp(buf, RIGHT) == 0){
//右转
Serial.println("right");
turnRight();
}else if(strcmp(buf, STOP) == 0){
//停车
Serial.println("stop");
stopCar(); }}}
7 结束语
随着物联网技术的发展,电器设备趋于智能化,智能系统正在改变着我们的生活,所以在不远的将来智能家居会慢慢的普及每个家庭,让我们感受到科技给我们带来的方便与舒适。
本项目设计的基于e家庭的多功能机器人创新性的将智能家居技术与机器人技术联系到一起,能够更加省时、省力,便于控制。集家庭巡检、智能扫地、吸尘工具、空气加湿、煤气报警、火灾报警等功能为一体;不需要人为控制可以实现自动避障,防止智能多功能机器人在工作过程中因碰撞而损坏;可净化室内空气,内置活性炭过滤层,以起到对空气中杂质的吸附作用,对粉尘的净化和清扫效率极高;带有空气加湿系统,对室内环境湿度进行实时监测,当环境湿度低于阀值时,空气加湿装置开始工作;轻便小巧,结构简单,便于日常清理维护;通过智能家居系统与手机连接,并且带有自动报警功能,能够通过WiFi传到使用者手机,告知使用者多功能机器人的状态;具有定时功能,避免因遗忘造成长时间工作,从而导致的机器人损坏和浪费。
总之,该智能清扫机器人同时具备了多种机器人的优点,操作简单,使用方便、智能、安全、清洁效果显著,价格实惠,适合转化成果,应用至生活。
参考文献:
[1]洪志强.基于嵌入式平台的无线网络智能家居系统应用研究[D].上海师范大学,2014.
[2]吴胜明.智能家居交互终端的设计与实现[D].华北电力大学,2013.
[3]雷钢,王宏远.基于AVR单片机的控制系统设计[J].计算机与数字工程,2006(11).
[4]陈懂,刘瑢,金世俊.智能小车的多传感器数据融合[J]. 现代电子技术,2005,28(6):3-5.
[5]陈羽中,翁诗宁,郭昆.一种面向车辆自组网的多人博弈数据融合算法[J].小型微型计算机系统,2016,37(8):1807-1811.
[6]戴建.基于嵌入式的智能家居网关系统设计[D].上海工程技术大学,2016.
[7]Simanek J, Kubelka V, Reinstein M. Improving multi-modal data fusion by anomaly detection[J]. Autonomous Robots, 2015, 39(2):139-154.