基于蓝牙的路况信息提示系统.docx
- 文档编号:24283278
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:42
- 大小:1,014.71KB
基于蓝牙的路况信息提示系统.docx
《基于蓝牙的路况信息提示系统.docx》由会员分享,可在线阅读,更多相关《基于蓝牙的路况信息提示系统.docx(42页珍藏版)》请在冰豆网上搜索。
基于蓝牙的路况信息提示系统
第四届“博创杯”全国大学生嵌入式设计大赛
烹饪数字助理
CookingDigitalAssistant
杨平赵月江张成虎
指导老师甄洁
2008年9月
摘要
随着我国经济的飞速发展,人们逐步进入了数字化社会,追求生活的方便快捷已成为现代人的生活理念。
但同时快捷的生活又使得人们很少花时间去关注家庭烹饪,使得富有悠久历史的饮食文化在家庭生活中被淡化。
本文介绍了一款新颖的厨房数字系统——烹饪数字助理,该系统基于UP-NETARM2410-S嵌入式开发平台,融合了嵌入式技术、语音合成、语音识别技术和多媒体等技术对烹饪过程进行指导,提供与烹饪相关的实用功能,让烹饪变得简单有趣。
本文首先介绍了系统背景和研究意义,然后简单介绍系统相关的技术,再次提出本系统的总体设计思想,最后分模块来介绍本系统的设计和实现过程。
本文中实现的系统模型为烹饪数字助理系统提供了一套可行的解决方案,随着系统功能的不断完善和扩展,该系统具有良好的应用前景。
关键词:
嵌入式;语音处理;数字助理;烹饪
Abstract
Withtheswiftdevelopmentofourcountry’seconomy,peoplemarchintothedigitalsociety.Pursuingforconvenienceandshortcutshasbecomemodernpeople'slifeidea.Fortheswiftlife,manypeopledon’thaveenoughtimetospendonthefamilycooking,whichmakesthecookingwithlonghistoryignored.
Anewkitchendigitalsystemisintroducedinthispaper-thecookingdigitalassistantsystem.ThissystemwhichbasesontheUP-NETARM2410-SEmbeded
empolderingplatformcontainsembeddedtechnology,speechtechnologyandmultimediatechnologytoinstructpeopletocook,anditalsoprovidesotherusefulfunctionsforcooking.Becauseofit,cookingbecomeseasyandinteresting.
Themainworkissummarizedasfollow:
1.Thebackgroundanditsapplicationvalueareintroducedindetail.
2.Thetechnologyrelatedtothesystemisreviewed.
3.Thethoughtofdesignisintroducedagain.
4.Thedesignofthesystemandimplementationprocessisintroducedbymodular.
Thismodelsystemusedforthecookingdigitalassistantprovidedaviablesolution.Withthesystem’simprovingandexpanding,theSystemwillbewidelyapplied.
Keywords:
Embedded,Speechtechnology,Digitalassistant,Cooking
目录
第一章绪论1
1.1背景分析1
1.2课题意义1
1.3技术现状1
第二章相关技术3
2.1嵌入式系统3
2.1.1嵌入式数据库系统BerkeleyDB3
2.1.2MiniGUI技术4
2.1.3SD卡技术4
2.2蓝牙技术4
2.3语音识别及语音合成技术5
第三章系统总体设计6
3.1系统功能及配置6
3.1.1系统功能6
3.1.2系统配置6
3.2系统结构7
3.2.1硬件结构7
3.2.2软件结构8
第四章模块设计与实现9
4.1数据处理的设计与实现9
4.1.1简单介绍9
4.1.2前期准备9
4.1.3打开数据库10
4.1.4导入及添加数据11
4.1.5检索数据11
4.1.6删除数据12
4.1.7关闭数据库13
4.1.8出错处理13
4.1.9结论13
4.2界面的设计与实现13
4.2.1开机界面的设计14
4.2.2界面总体设计与实现14
4.2.3菜谱界面的总体设计与实现17
4.2.4定时界面的设计与实现18
4.2.5快速检索界面的设计与实现19
4.2.6与嵌入式数据库联调设计与实现20
4.2.7与语音模块联调设计与实现23
4.3语音模块的设计与实现23
4.3.1语音识别模块23
4.3.2语音合成模块23
4.4蓝牙模块的设计与实现24
第五章系统测试与应用25
5.1系统测试及性能分析25
5.1.1系统测试25
5.1.2性能分析26
5.2系统特点及优势27
5.3系统应用27
参考文献28
第一章绪论
1.1背景分析
我国的饮食文化历史悠久,民间有句俗语“民以食为天”,足以看出饮食在人们生活中的重要性。
但是随着社会的发展,人们对饮食尤其是家庭烹饪似乎越来越不重视了,出现了以下一些现象:
现代化的生活让人们的脚步越来越快,人们往往由于赶时间而去吃一些既没有营养又不健康的速食食品。
由于中国国情所致,现在几乎每个家庭都是独生子女家庭,父母对子女都很宠爱,很少让子女做家务,所以一般子女都不会烹饪,这一点在“80后一代”体现的很明显。
对于“80后一代”的新白领而言,“做饭太烦、下馆太贵、小摊太脏,从小娇生惯养”的他们为省事省时省力地吃好一日三餐费尽了心思。
在烹饪的过程中,常常会发生忘记加入某味作料的情况,使得原本香味可口的菜肴变了味道;更甚者,有的人在煮粥、煲汤等一些较长时间的烹饪过程中因事忘记关火而造成焦锅,或者把器皿烧坏,甚至引起火灾等。
中国是一个好客的国家,每个家庭都会经常的接待客人,这时主人就要准备一顿丰盛又特别的饭菜了。
普通的家常菜拿不出手,而一些非家常菜由于不经常做,所以做起来既费力气又会使人手忙脚乱。
为了解决上述种种问题,我们基于嵌入式技术平台,提出并设计了一种既方便又实用的烹饪数字助理(CAD,CookingDigitalAssistant)系统。
1.2课题意义
该系统综合运用嵌入式系统及其相关技术,实现了基于语音提示的菜肴烹饪助理。
系统提供包含各菜系的、适合不同年龄段的健康饮食类、疾病调理类等菜谱。
菜谱信息由嵌入式数据库系统存储,便于编辑和处理;通过友好的显示界面,用户可以点击触摸屏来操作菜单,并且系统会自动将菜单的内容显示于LCD上,同时还能语音输出菜单内容。
系统提供计时、语音提示、音频报警等功能,以方便地引导用户按步骤完成烹饪过程。
另外,本系统还具有通过蓝牙来实现家电的无线遥控等拓展功能。
本系统解决了一个现今社会普遍存在的吃饭难的问题,为忙碌的人们提供了方便,相信随着系统性能的不断优化和功能的不断扩展,该系统定会有非常广泛的应用前景。
1.3技术现状
本系统融入了嵌入式技术数据库、MiniGUI技术、语音识别及合成技术等完成该系统的基本功能。
嵌入式数据库在国外已经有30年的历史,应用领域也非常广泛,例如在医疗领域、军事设备和系统、地理信息系统、工业控制、网络通讯、消费类电子等方面都有广泛应用;MiniGUI作为“嵌入式图形中间件”软件产品,是针对嵌入式设备,跨操作系统的图形界面支持系统。
通过十多年的努力,MiniGUI已经成功应用在手持终端、机顶盒、工控、医疗及军工等行业。
被各大厂商认可并广泛采用,逐渐成为嵌入式图形中间件领域的工业事实标准;从目前语音技术的研究现状来讲,技术已经有了很大发展。
语音识别和语音合成技术是实现人机语音通信及建立一个有听和讲能力的口语系统所必需的两项关键技术。
使电脑具有类似于人一样的说话和听懂人说话的能力。
第二章相关技术
本章介绍系统采用的主要相关技术。
首先介绍嵌入式系统技术,包括嵌入式数据库技术、MiniGUI技术、SD卡技术;接着介绍蓝牙系统的基本结构;最后介绍了语音识别及合成方面的相关技术。
2.1嵌入式系统
嵌入式系统(EmbeddedSystem)是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[1]。
它包括硬件和软件两部分。
硬件包括微处理器、存储器及外设器件和I/O端口、图形控制器等;软件部分包括操作系统和应用程序,有时设计人员会把这两种软件组合在一起。
操作系统控制着应用程序与硬件的交互作用;而应用程序控制着系统的运作和行为。
本系统使用的嵌入式微处理器是S3C2410,操作系统是嵌入式Linux操作系统。
2.1.1嵌入式数据库系统BerkeleyDB
BerkeleyDB是由Berkeley(美国加州大学伯克利分校)开发的,DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的ndbm,GNU项目的gdbm),DB的第一个发行版在1991年出现,当时还包含了B+树数据访问算法。
在1992年,BSDUNIX第4.4发行版中包含了DB1.85版。
基本上认为这是DB的第一个正式版。
在1996年中期,Sleepycat软件公司成立,提供对DB的商业支持[2]。
在这以后,DB得到了广泛的应用,本系统使用的版本为4.7.25。
DB支持几乎所有的现代操作系统,如LINUX、UNIX、WINDOWS等,也提供了丰富的应用程序接口,支持C、C++、JAVA、PERL、TCL、PYTHON、PHP等。
DB的应用十分广泛,在很多知名的软件中都能看到其身影。
LINUX下的软件包管理器RPM也使用DB管理软件包相关数据,可以使用命令file查看RPM数据目目/var/lib/rpm下的文件,则有形式如图2.1输出:
Dirnames:
BerkeleyDB(Btree,version9,nativebyte-order)
Filemd5s:
BerkeleyDB(Hash,version8,nativebyte-order)
图2.1DB在Linux中的体现
值得注意的是DB是嵌入式数据库系统,而不是常见的关系/对象型数据库,对SQL语言不支持,也不提供数据库常见的高级功能,如存储过程,触发器等。
嵌入式数据库系统BerkeleyDB特点是微小内核,便于实现嵌入式功能;可靠性、可管理性和安全性;可移植性和平台无关性;资源利用率高;运行速度快;简化开发环境[3]。
2.1.2MiniGUI技术
MiniGUI是一种面向嵌入式系统和实时系统的图形用户界面支持系统。
它主要运行于Linux控制台,实际可以运行在任何一种具有线程支持的POSIX兼容系统上。
MiniGUI是一个非常适合于工业控制实时系统以及嵌入式系统的可定制的、小巧的图形用户界面支持系统。
它的主要特色有[4]:
(1)遵循LGPL条款的纯自由软件;
(2)提供了完备的多窗口机制。
这包括:
多个单独线程中运行的多窗口;
单个线程中主窗口的附属;
(3)对话框和预定义的控件类(按钮、单行和多行编辑框、列表框、进度条、工具栏等);
(4)消息传递机制;
(5)多字符集和多字体支持,目前支持ISO8859-1、GB2312、Big5等字符集,并且支持各种光栅字体和TrueType、Type1等矢量字体;
(6)全拼、五笔等汉字输入法支持;
(7)BMP、GIF、JPEG、PCX、TGA等常见图像文件的支持;
(8)Windows的资源文件支持,如位图、图标、光标等;
(9)插入符、定时器、加速键等;
(10)其他(Beep、ETC/INI文件操作等);
(11)小巧,包含全部功能的库文件大小为300KB左右;
(12)可配置,可根据项目需求进行定制配置和编译;
(13)高稳定性和高性能,MiniGUI已经在Linux发行版安装程序、CNC系统、蓝点嵌入式系统等关键应用程序中得到了实际的应用;
(14)可移植性好。
基于以上考虑,本系统的界面的设计都是由MiniGUI设计完成的。
2.1.3SD卡技术
SD卡(SecureDigitalMemoryCard)是一种基于半导体快闪记忆器的新一代记忆设备。
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。
大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
SD卡在24mm×32mm×2.1mm的体积内结合了SanDisk快闪记忆卡控制与MLC(MultilevelCell)技术和Toshiba(东芝)0.16u及0.13u的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。
而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏。
并不是多大的SD卡都能安在数码摄像机上使用。
现在的SD卡容量由8MB到4GB不等。
2.2蓝牙技术
蓝牙(Bluetooth)是一种低功耗的无线技术,工作在全球通用的2.4GHzISM频段,数据传输速率为1Mb/s,目的是取代现有的PC、打印机、传真机和移动电话等设备上的有线接口。
主要优点是:
可以随时随地用无线接口来代替有线电缆连接;具有很强的移植性,可以用于多种场合,如WAP、GSM、DECT等,引入身份识别后可以灵活的实现漫游;功耗低,对人体危害较小;蓝牙的集成电路应用简单、成本低廉、实现容易、易于推广[5]。
蓝牙技术提供低成本、近距离的无线通信,构成固定与移动设备通信环境中的个人网络,使得近距离内各种设备能够实现无缝资源共享。
鉴于以上优点,本系统采用蓝牙作为无线遥控的方式。
2.3语音识别及语音合成技术
语音合成和语音识别技术是实现人机语音通信,建立一个有听和讲能力的口语系统所必需的两项关键技术。
使电脑具有类似于人一样的说话能力,是当今时代信息产业的重要竞争市场。
和语音识别相比,语音合成的技术相对说来要成熟一些,并已开始向产业化方向成功迈进,大规模应用指日可待。
语音合成,又称文语转换(TexttoSpeech)技术,它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是中文信息处理领域的一项前沿技术,解决的主要问题就是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。
我们所说的“让机器像人一样开口说话”与传统的声音回放设备(系统)有着本质的区别。
传统的声音回放设备(系统),如磁带录音机,是通过预先录制声音然后回放来实现“让机器说话”的。
这种方式无论是在内容、存储、传输或者方便性、及时性等方面都存在很大的限制。
而通过计算机语音合成则可以在任何时候将任意文本转换成具有高自然度的语音,从而真正实现让机器“像人一样开口说话”。
语音识别目的是研究出一种具有人类听觉功能的机器,能够听懂人的讲话,理解人的意图并做出相应的反应。
语音识别系统本质上是一种多维模式识别系统,包括特征提取、语音模式、模式匹配3个基本单元。
语音识别按不同的分法有不同的类型。
以识别单位分有孤立词识别、音素识别、音节识别、孤立句识别、连接词识别、连续语音识别等;按识别规模分有小词汇量(10~50个)、中词汇量(50~200个)和大词汇量(200个以上)等;以服务对象分,有特定人讲话、多讲话人和非特定人3种;按识别方法分,有模板匹配法、随机模型法和概率语法分析法。
本系统使用的是特定人的、孤立词、中小词汇量的语音识别技术。
第三章系统总体设计
本章主要介绍系统的总体设计。
首先介绍系统的功能及配置;然后介绍系统硬件的结构(硬件总体规划);最后介绍系统工作的软件结构。
3.1系统功能及配置
3.1.1系统功能
系统的功能主要分为两个部分:
系统的基本功能和系统的扩展功能,本系统设计主要实现基本功能,扩展功能可以进一步的开发。
(1)系统基本功能
1提供丰富的菜谱,包括各大菜系的、适合不同年龄段的、健康饮食类、疾病调理类等,让用户有充分的选择空间;
2提供三种查找菜谱的方式,一是按菜名首字母查找,二是按种类查找,三是语音查找。
用户可以根据菜名、主料类别、口味类别等快速锁定选择菜谱,语音查找指另可利用语音报菜名迅速查找菜谱;
3系统有语音功能,显示的菜肴信息能以语音方式读出,同时用户可设定一些简单的语音命令,方便烹饪时操作;
4提供定时器功能,对于烹饪时间较长的菜肴,用户可设定定时时间,无需看管,定时时间到,定时器自动提醒用户;
5提供娱乐功能,能播放烹饪视频,也可听音乐;
6电器遥控功能,系统利用蓝牙装置可遥控有蓝牙功能的家电。
(2)系统扩展功能
烹饪数字助理作为厨房的一个管理中心,它可以对油烟、煤气进行检测,控制厨房的家电自动做饭等。
将来它还可以成为未来厨房数字化的一个信息终端,管理厨房的家电,支持用户的远程控制,具有良好的开发前景
3.1.2系统配置
根据系统功能以及设计嵌入式系统的要求,开发此系统需要以下主要配置:
(1)开发环境:
REDHATLINUX9.0+MINICOM+ARMLINUX,Windows系统,嵌入式BerkeleyDB数据库;
(2)开发语言:
C/C++语言
(3)硬件:
ARM920T结构芯片三星S3c2410X;
64MNANDFLASH;
64MSDRAM;
TFT液晶LCD;
触摸屏;
蓝牙模块;
锂电池;
音频设备;
SD卡(256M)。
开发板是由北京博创公司提供的UP-NETARM2410-S,如图3.1所示。
图3.12410-S平台实物图
3.2系统结构
3.2.1硬件结构
系统主要用到的硬件有[6]:
①LCD模块,显示功能;
②触摸屏模块,用来实现对系统的控制和操作;
③存储器模块,用来存储数据;
④语音模块,实现语音合成与语音识别;
⑤音频模块,用来播放烹饪视频;
⑥蓝牙模块,控制家电;
⑦电源管理模块,用来给处理器和各模块供电。
硬件结构如图3.2所示。
图3.2烹饪数字系统硬件结构图
3.2.2软件结构
本系统的主要软件包括菜谱管理系统、界面系统和实用功能。
菜谱管理系统包括菜肴数据库和烹饪指导,方便查找、制作菜肴;界面系统是人机交互的平台,通过良好的界面,用户可以方便的进行烹饪;实用功能包括音乐播放、视频播放和控制功能,其中控制功能包括语音技术、菜肴的添加和删除、红外遥控。
软件结构如图3.3所示。
图3.3烹饪数字系统软件结构图
第四章模块设计与实现
本章主要介绍了系统设计与实现的过程和方法。
对本系统的设计与实现分模块介绍,首先介绍数据处理模块的设计与实现,接着介绍显示模块的设计与实现,然后介绍语音模块的设计与实现,最后介绍蓝牙控制模块的设计与实现。
4.1数据处理的设计与实现
4.1.1简单介绍
菜谱管理系统是系统的主要部分,包括菜肴数据库和烹饪指导两部分。
菜肴数据库包含各个菜肴的详细信息,同时也包含为方便查找而设置的一些表项。
本系统使用的是嵌入式BerkeleyDB数据库,BerkeleyDB具有良好的嵌入性能,它本质上它是一个函数库,它把数据库直接连接到应用程序中。
BDB对需要管理的数据看法很简单,BDB数据库包含若干条记录,每一个记录由关键字和数据(Key/Data)构成。
数据可以是简单的数据类型,也可以是复杂的数据类型,例如C语言中结构。
BDB对数据类型不做任何解释,完全由程序员自行处理,典型的C语言指针的"自由"风格。
如果把记录看成一个有n个字段的表,那么第1个字段为表的主键,第2--n个字段对应了其它数据。
BDB应用程序通常使用多个BDB数据库,从某种意义上看,也就是关系数据库中的多个表。
关键字(Key)和数据(Data)是BerkeleyDB用来进行数据库管理的基础,由这两者构成的Key/Data对(见表1)组成了数据库中的一个基本结构单元,而整个数据库实际上就是由许多这样的结构单元所构成的。
Key
Data
sport
football
Fruit
orange
Drink
beer
表1Key/Data对
由于我们每道菜肴都有许多属性,如菜名、菜系、烹调类别以及口味等,所以不能由Key和Data同时分别表示这些属性。
我们以菜名作为关键字(Key),而将菜肴的其他信息存储在一个名为“my_menu”的结构体作为数据(data),然后利用put函数将这些信息存入数据库。
在数据倒入数据库以后我们可以利用BDB专用的API来对数据库进行检索、删除等基本操作,如利用get函数提取数据,可以按关键字或关键字和数据来检索所需要的记录;利用del函数可以删除指定的记录。
4.1.2前期准备
我们将数据存入数据库时将信息先存入my_men的结构体中(结构体定义如下所示),然后以my_menu.name为关键字,以my_menu整体为data将信息导入数据库。
/*Definecookmenustructure*/
typedefstructcookmenu
{
charname[26];
charfirstch[10];
charclass[15];
chartaste[15];
charobjects[15];
charmainmater[15];
charenvs[30];
charhealth[30];
charinfor[2000];
}MENU;
MENUmy_menu;
4.1.3打开数据库
打开数据库通常要分两步进行:
首先调用db_create()函数来创建DB的一个句柄,然后再调用DB->open()函数来完成真正的打开操作。
BerkeleyDB将所有对数据库的操作都封装在名为DB的结构中。
db_create()函数的作用就是创建一个该结构,我们创建数据库句柄如下所示:
/*InitiallizetheDBstructure.*/
db_create(&menu_dbp,NULL,0);
db_create(&class_sdbp,NULL,0);
将磁盘上保存的文件作为数据库打开是由DB->open()函数来完成的,其实现如下所示:
/*Opentheprimarydatabaseandsecondarydatabase.*/
menu_dbp->open(menu_dbp,/*DBstructurepointer*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 蓝牙 路况 信息 提示 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)