基于ARM的智能家居机器人设计

2015-05-04 07:46魏桐韩剑辉蒋蒋薇
科技创新与应用 2015年13期
关键词:智能家居机器人

魏桐 韩剑辉 蒋蒋薇

摘 要:文章设计了以STM32为微处理器的智能家居互动机器人,该设计以语音识别技术、语音合成技术、传感器技术、无线数据传输技术等为基础,完成了摄像头数据采集,数据传输,控制台与各控制终端通信,电机控制,实现了语音人机交互、机器人动作控制、室内环境监测、家用电器控制。完成了智能家居以及机器人互动等功能,并且在现阶段,智能家居机器人在市面上较少,有广泛的应用前景。

关键词:智能家居;机器人;STM32

引言

随着计算机科学技术与电子技术的高速发展以及生活水平的提高,智能家居渐渐走进千家万户,智能灯,扫地机器人,智能电视等等以家居环境为平台,融合了通信,网络,计算机,自动控制等技术的产品层出不穷,在影视作品《超能陆战队》中,大白的形象让无数人魂牵梦萦,其实它的本质就是一个智能的机器人。本设计以ARM Cortex-M3架构的STM32系列芯片为控制核心,以语音识别、合成技术,2.4Ghz通信技术,自动控制技术为基础,用蓝牙、NRF24L01等将各部分串联在一起,形成以机器人为中心的智能家居控制网络,用户可以与机器人进行对话或者发出指令,机器人会对发出的指令进行解析,并产生反馈,例如:控制家用电器,播放音乐等,除此之外,用户可以远程观看本地实时上传的室内图片,可以查看室内的环境状况,例如温湿度,空气情况等,可以控制机器人在室内行走,当用户不在室内时,如果有陌生人进入室内,机器人会进行警报,通知用户。

1 硬件组成

1.1 机器人主体

建立智能家居机器人系统关键是要稳定可靠,带负载能力很注意,电源部分、驱动部分是关键,采用航模电池锂电30C 5200MA 11.1v和10A双路大功率H桥电机驱动模块,具有强劲刹车功能。为了保证机器人的稳定性,底盘采用小型坦克连履带模型,该模型结构稳定,载重能力强,可以稳定住底盘上的其他传感器以及模块。

1.2 机器人核心

机器人主要微处理器采用ARM Cortex-M3架构的STM32F103ZET6处理器,该处理器基于32位的精简指令集内核,最高主频可达72Mhz,内置512KB Flash和64KB SRAM,处理器外部引出16*8组IO口,其中包含3组SPI接口,2组IIC接口,5组串口,3个1Mhz 12位ADC,多组定时器,资源丰富极为丰富。该处理器搭载在一块德飞莱核心板上,核心板引出了所有的IO口,并扩展出JTAG接口。

在核心底板之上,是我们制作的一块传感器扩展板,该扩展板将启动选项由原来底板上的跳线改为拨码开关式,另外,扩展板上除了引出所有的原核心板所有引脚外,还将本系统需要使用的传感器接口一并引出,其中有:两路SPI总线接口,两路IIC总线接口,两路USART接口,还扩展出一路摄像头SCCB接口以及并行总线接口,该扩展板支持外部供电,由两片AMS1117提供传感器需要的电源,防止由于传感器过多导致的系统供电不足。

除了机器人主体上搭载的微处理器外,为了配合智能家居的其他实现,本系统还搭载了STC公司生产的增强型8051 1T单片机:IAP15F2K61S2,速度比普通8051单片机快8-12倍,内置61KB Flash,2KSRAM,3路PWM,1组SPI接口,2组可重定向UART,内置高速晶振和仿真器,可以直接进行仿真。

1.3 语音模块XFS5152CE

是一款高集成度的语音合成芯片,可实现中文、英文语音合成;并集成了语音编码、解码功能,可支持用户进行录音和播放。

YS-V0.7是一款以LD3320芯片为基础的语音识别模块,模块上除了一块LD3320以外,还搭载了片STC11L08XE单片机,与LD3320配合实现语音识别,可以减少主处理器的资源损耗。

1.4 摄像头OV2640

OV2640具有体积小、工作电压低、兼容I2C总线接口等特点。通过SCCB总线控制,支持RAWRGB、RGB(RGB4:2:2、RGB565/555/444)、YUV(4:2:2)和YCBCR(4:2:2)输出格式,可以输出整帧、二次转换分辨率、取特定区域等方式的各种分辨的8位或10位的图像帧数据,支持以jpeg格式输出。

2 智能家居机器人的设计与实现

该智能家居系统由机器人主体、辅助控制终端、远程控制台组成。以机器人本体微处理器为核心,以语音识别、无线通信、以及传感器为基础架构了一个简单的室内智能家居网络,机器人本体设计成可活动的稳定性极高的履带式小车,机体上配有温湿度等传感器,配有摄像头,人体红外感应模块,配有语音识别与语音合成模块,通过NRF24L01与放置在固定位置的辅助终端通信,完成室内家用电器的控制,例如开关灯,空调,电视的切换频道,音量控制等,通过WIFI模块连接到远程服务器,上传室内数据,实时图片,实现远程监控与控制。

3 软件设计

该设计以STM32为核心,软件编译环境为Keil4,使用C语言编写程序,软件部分可以分为以下几个底层初始化程序、系统主程序、摄像模块子程序、传感器子程序、语音子程序组成;数据采集上传定时中断处理伺服中断开启开机循环各功能模块初始化开始系统时钟、中断分组、I/O口初始化操作。

3.1 微处理器初始化

微处理器是整个系统的心脏,所以它的初始化极为重要:

(1)初始化中断分组,初始化时钟NVIC_Configuration();,SystemInit();。

(2)一个嵌入式系统离不了延时,所以初始化时钟之后,需要初始化系统滴答时钟,然后初化延时函数:delay_init(72);。

(3)初始化各接口:SPI,USART,IIC。

(4)初始化定时器,中断。初始化各传感器、模块。

(5)进入死循环等待模块响应。

3.2 摄像头程序设计,采用JPEG方式输出

(1)初始化。初始化IIC接口,然后按顺序配置OV2640寄存器,首先是配置分辨率,然后配置成YUV输出,最后配置为JPEG输出。然后初始化中断。

(2)中断数据采集。首先在EXTI2里等待场同步信号VSYNC上升沿中断,当中断来临时,开始通过数据线采集数据,同时开启EXTI3中断,等待PCLK上升沿来临,当上升沿来临时,关闭EXTI中断,判断HREF是否为高,如果为高,则开始上传图片数据。

3.3 语音模块编程

(1)初始化系统配置。由于语音模块上搭载了一片单片机,所以初始化主要完成复位,时钟初始化,模式选择,FIFO等。

(2)初始化语音识别列表。该识别芯片支持50条自定义识别条目,每个条目由汉语拼音以及对应的编号组成,编号取值范围为00H~FFH。

(3)识别。按手册设置相关寄存器,芯片ADC输入为咪头输入,输入增益可调,取值范围为00H-70H,设定值过大会导致识别不准确,设定值太小会导致系统无法识别。

(4)中断。咪头采集到区别于环境噪音的人声时,会产生中断,中断程序会根据模块中BA和C5寄存器的值找出,最佳的识别条目。

(5)处理。单片机根据处理出的数据来判断,是否通知主处理器,还是合成语音。

4 结束语

文章设计的机器人采用ARM STM32微处理器作为控制核心,履带式小车作为机器人载体,该系统运用无线技术、网络、摄像头以及传感器,实现了室内环境监测,利用语音识别与合成技术,完成了人机交互功能,实现了机器人的简单基本功能和智能家居的功能。因此, 该系统设计在实际应用中具有一定的借鉴意义。

猜你喜欢
智能家居机器人
基于Zigbee的无线通信技术在智能家居中的应用
关于智能家居真正需求的探讨
机器人来帮你
认识机器人
机器人来啦
智能家居更贴心
基于LD3320的智能家居控制