嵌入式Linux远程控制机器人.doc

上传人:文库蛋蛋多 文档编号:2388275 上传时间:2023-02-17 格式:DOC 页数:33 大小:3.25MB
返回 下载 相关 举报
嵌入式Linux远程控制机器人.doc_第1页
第1页 / 共33页
嵌入式Linux远程控制机器人.doc_第2页
第2页 / 共33页
嵌入式Linux远程控制机器人.doc_第3页
第3页 / 共33页
嵌入式Linux远程控制机器人.doc_第4页
第4页 / 共33页
嵌入式Linux远程控制机器人.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《嵌入式Linux远程控制机器人.doc》由会员分享,可在线阅读,更多相关《嵌入式Linux远程控制机器人.doc(33页珍藏版)》请在三一办公上搜索。

1、 嵌入式Linux远程控制机器人摘要嵌入式系统诞生于微型机时代,经历了漫长的独立发展的单片机道路。究竟嵌入式系统是什么?嵌入式系统(embedded system),是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它早以融入我们的生活,除了我们日常生活可以看到的家电产品,工业与军事应用的独立产品之外(如PDA,工业控制器,通信产品等),许多大型电脑系统也是由许许多多小的嵌入式系统所组成。因此嵌入式系统是最接近人们生活的计算机系统。关键词:嵌入式,单片机Embedded Linux remote control ro

2、botABSTRACTEmbedded Systems was born in the microcomputer era, has a long road of independent development of the SCM. What is actually embedded systems ? Embedded Systems (embedded system), is applied as the center and computer technology, hardware and software can be cut, apply to the application o

3、f functionality, reliability, cost, size, power requirements are strictly dedicated computer system. It morning to integrate into our lives, in addition to our daily life can be seen in home appliances, industrial and military applications from independent products (such as PDA, industrial controlle

4、rs, communications products, etc.), many large computer systems is also by the many - Small number of embedded system components. So embedded system is the closest computer systems to peoples lives. Key words: embedded, SCM,Linux目 录1项目概述11.1项目名称11.2项目的目标11.3项目的内容11.4项目的建设周期、投资规模12需求分析32.1功能需求32.2非功能

5、需求33系统体系结构43.1SPCE061A单片机概述43.2 Embest S3CEB2410评估板54.硬件设计64.1 电路方框图及说明64.2各部分电路设计65.软件设计105.1系统结构设计105.2模块设计115.3 Qt/Embedded和Qtopia 介绍及其开发环境的建立135.4用API函数145.4主要代码185.5编程软件与其他应用软件236.系统测试256.1系统平台测试256.2功能测试256.3环境测试256.4测试结果分析与问题解决方案25参考文献26致谢27附录A 设备图片281项目概述1.1项目名称嵌入式Linux远程控制机器人1.2项目的目标通过控制板远程

6、控制机器人1.3项目的内容1、项目组成:控制板 +外围设备(机器人)2、所用的硬件是:(1)凌阳SPCE061A单片机开发板(2)机器人(3)各种IC(4)无线模块(5)Embest S3CEV40开发板(ARM9)3、所用的操作系统是:linux+QT4、所用的软件工具是:(1)编程语言:C语言,汇编语言,C+(2)开发环境:unSP IDE 1.16.1,北阳音频压缩软件,cygwin, linux redhat9.0,qt2.3.2等1.4项目的建设周期、投资规模表1.2建设周期名称花费时间具体时间可行性分析1周 3.1总体策划1周 11.2硬件设计3周 11.3-11.5软件设计3周

7、11.6-11.8功能测试1周 11.9-11.10表1.1投资规模名称数量具体型号单片机开发板1块凌阳SPCE061A单片机开发板单片机开发板1块AT89S52嵌入试开发板1块Embest S3CEV40开发板母板1块50X30机器人1个IC1个L289N无线模块1对RL1100硬件开发部件1组电烙铁,锡,松香等2需求分析2.1功能需求1、输入输出输入:Embest S3CEV40开发板触摸屏,凌阳SPCE061A单片机开发板的MIC输出:机器人,喇叭,LCD模块2、功能控制板远程控制机器人行走和说话2.2非功能需求物理环境:无障碍的任何平坦地方3系统体系结构3.1SPCE061A单片机概述

8、SPCE061A是继nSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器。目前有两种封装形式:84引脚的PLCC84封装和80引脚的LQFP80贴片封装。 主要性能如下: 16位nSP微处理器; 工作电压:VDD为2.43.6V(cpu), VDDH为2.45.5V(I/O); CPU时钟: 32768Hz49.152MHz ; 内置2K字SRAM、内置32K FLASH; 可编程音频处理; 32位通用可编程输入/输出端口; 32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号; 2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转

9、换)输出通道; 7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能; 系统处于备用状态下(时钟处于停止状态)耗电小于2A3.6V; 14个中断源:定时器A / B,2个外部时钟源输入,时基,键唤醒等; 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 具备异步、同步串行设备接口; 具有低电压复位(LVR)功能和低电压监测(LVD)功能; 内置在线仿真电路接口ICE(In- Circuit Emulator); 具有保密能力; 具有WatchDog功能(由具

10、体型号决定)3.2 Embest S3CEB2410评估板系统电源:采用+5V,2A直流变压器供电,稳压到3.3V给CPU的I/O及外围器件供电,另外,开发板通过两个独立1.8V稳压块给CPU核供电,可通过程序控制CPU切换到省电模式。系统时钟:使用外部12MHz晶振,CPU内部倍频至200MHz+ Intel Strata Flash :E28F128J3A 16MBATMEL公司 的2Mbyte NOR FLASH AT49BV1614A (兼容AMD公司2M/4Mbyte NOR FLASH AM29LV160DB/320DB)SDRAM:64Mbyte(32Mbyte2) 3通道UAR

11、T串口接口,还可跳接为MODOM方式2通道USB HOST和一通道USB DEVICEIrDA红外线收发器Smart Media Card控制器 JTAG接口RTC实时时钟IIC总线EEPROMTFT /STN LCD接口TSP触摸屏控制器SD卡/MMC卡主机控制器 8通道10位 ADC模数转换接口 SPI接口 IIS数字音频输入/输出接口 10M以太网接口 4个板上轻触键外部中断或I/O输入4个LED指示灯及2个电源指示灯EXBUS全扩展接口4.硬件设计4.1 电路方框图及说明主控元件采用凌阳SPCE061A单片机,属于凌阳unSP.系列产品的一个16位结构的微控制器。在存储器资源方面考虑到

12、用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH),但用在此系统上已经绰绰有余。较高的处理速度使unSP.能够非常容易地、快速地处理复杂的数字信号。因此以unSP.为核心的SPCE061A微控制器也适用在数字语音识别应用领域。SPCE061A在2.6V3.6V工作电压范围内的工作速度范围为0.32MHz49.152MHz,较高的工作速度使其应用领域更加拓宽。2K字SRAM和32K字FLASH仅占一页存储空间,32位可编程的多功能I/O端口;两个16位定时器/计数器;32768Hz实时时钟;低电压复位/监测功能;8通道10位模-数转换输入功能并具有内

13、置自动增益控制功能的麦克风输入方式;双通道10位DAC方式的音频输出功能,这就为本系统的特定人辨识和语音播报打下了基础。4.2各部分电路设计1、SPCE061A I/O图为了要模拟机器人说话,因此要加入声音与闪光同步,即说活时头部灯同时闪亮。机器人头内部安装一个LED灯,当IOB1有输出时,LED灯闪亮。2、AT89S51 I/O图机器人下肢行走时是由一个直流电机驱动,而凌阳SPCE061A单片机的输出电流只有10mA左右,而直流电机的额定电流是大于1A,因此用一个L289IC来驱动直流电机,下面是接线图。3、麦克录音输入及AGC电路 凌阳的SPCE061A是16位单片机,具有DSP功能,有很

14、强的信息处理能力,最高时钟可达到49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。本系统接入MIC电路如图示,MIC为录制语音辨识命令服务。下图是简化的语音识别原理如图4.1,其中实线部分成为训练模块,虚线部分为识别模块。辨认特定的使用者即特定语者(Speaker Dependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),即在启动小车前,系统将会提示输入语音命令作简单快速的训练纪录,在这里输入“启动”“停止”“返回”和“模式切换”四个语音命令,通过使用者的声音特性来加以辨认。随着技术的成熟,进入语音适应阶段SA(speake

15、r adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。图注:小五号宋体,置于图题之上注:此图中的实线部分成为训练模块,虚线部分为识别模块图4.1 语音识别原理图4、电路语音播报电路 音频部分的原理图4.2所示,在图9中可以看到两个跳线,其作用在于可以测量DAC的输出波形;另外拔掉跳线,可以断开DAC到喇叭放大的通路,使得DAC通道处于开路状态。这样便于用DAC做其他用途,用户可以用过这个跳线来加入自己的外围电路。 凌阳音频压缩算法根据不同的压缩比分为以下几种: SACM-A2000:压缩比为8:,8:1.25,8:1.5 SACM-S480:

16、压缩比为80:3,80:4.5 SACM-S240: 压缩比为80:1.5 按音质排序:A2000S480S240 用凌阳Compress Tool事先把所需要的语音信号录制好,本系统共包括十多个语音资源,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,SPCE061A单片机具有32k闪存,使用内部flash即可满足要求。凌阳SPCE061A单片机自带双通道DAC音频输出, DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出, DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路如图9(只列出了DAC1,

17、DAC2类似),这为单片机的音频设计提供了极大方便。在它们后面接一个简单的音频放大电路和喇叭即可实现语音播报功能,音频的具体功能主要通过程序来实现。图4.2 音频原理图声音是一种很难识别的信号,同一个字在不同的人口里发出来会出现不同波长和振幅,如图4.3,因此要看硬件的精度有多高确定识别声音的精度。 图4.3 声音波形图5、语音识别电路凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放、录放、合成及辨识提供了条件。 凌阳压缩算法中SACM_A2000、SACM_S480、SACM_S240主

18、要是用来放音,可用于语音提示,而DVR则用来录放音。 对于语音辨识主要有以下两种: (1)特定发音人识别SD(Speaker Dependent):是指语音样板由单个人训练,也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别。 (2)非特定发音人识别SI(Speaker Independent):是指语音样板由不同年龄、不同性别、不同口音的人进行训练,可以识别一群人的命令。图4.4 语音识别电路图5.软件设计5.1系统结构设计1、系统开发模式前后台模式:分为前台程序(任务级)和后台程序(事件处理级)。其中中断服务子程序(Interrupt Service Routine,ISR)

19、负责处理异步事件属于前台程序(Foreground),而后台程序(Background)一般是一个无限的循环,负责管理整个嵌入式系统软硬件资源的分配,管理以及任务的调度,是一个管理调度程序。2、系统总流程图图5.1 系统总流程图5.2模块设计1、声音播放模块凌阳的SPCE061A播放声音时,先将声音资源以队列的形式存放(顺序存放在32Kflash中),每个资源都有一个地址(编号),然后在调用播放子函数时进行中断声音取资源地址(FIQ快速中断),进行播放。播放流程图图5.2 播放流程图播放中断程序图图5.3 播放中断程序图2、声音识别模块SPCE061的特定语者辨识SD(Speaker Depe

20、ndent),SD即语音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或几乎不能识别。语音辨识的一个整体框图图5.4 语音辨识图在程序中我们通过语句的训练演示特定人连续音识别,训练完毕开始辨识当识别出触发名称后,开始发布命令,则会听到自己设置的应答。3、LED闪亮与下肢行走模块SPCE061A提供了位控制结构的I/O端口,每一位都可以被单独定义用于输入或输出数据。通常,对某一位的设定包括以下3个基本项:数据向量Data、属性向量Attribution和方向控制向量Direction。3个端口内每个对应的位组合在一起,形成一个控制字,用来定义相应I/O口位的输入输出状态和

21、方式。例如,假设需要IOA0是下拉输入管脚,则相应的Data、Attribution和Direction的值均被置为“0”。如果需要IOA1是带唤醒功能的悬浮式输入管脚,则Data、Attribution和Direction的值被置为“010”。与其它的单片机相比,除了每个I/O端口可以单独定义其状态外,每个对应状态下的I/O端口性质电路都是内置的,在实际的电路中不需要再次外接。例:设端口A口为带下拉电阻的输入口,在连接硬件时无需在片外接下拉电路。此模块用到IOB口(与A同理)。图5.5 下肢行走模块图5.3 Qt/Embedded和Qtopia 介绍及其开发环境的建立目前嵌入式Linux的主

22、流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C+图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。Qt/Embe

23、dded是一个多平台的C+图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此我们选择Qt/Embedded为本系统的GUI。Qt/Embedded采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图5.6所示: 图5.6 Qt/Em

24、bedded的结构Qt/Embedded的底层图形引擎基于framebuffer。 framebuffer是一种驱动程序接口,它将显示设备抽象为帧缓冲区。该驱动程序的设备文件一般是/dev/fb0、/dev/fb1等。对用户而言,它和/dev下的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以从这块内存中读取数据,也可以向其中写入数据,而写操作立即反应在屏幕上5.4用API函数1、声音播放模块:API函数的格式、功能、参数、返回值、备注(1)【API格式】C:int SACM_S480_Initial(int Init_Index) ASM:R1= Init_Inde

25、x Call F_ SACM_ S480_Initial 【功能说明】SACM_S480语音播放之前的初始化。 【参 数】Init_Index=0 表示手动方式;Init_Index=1 则表示自动方式。 【返 回 值】0:代表语音模块初始化失败 1:代表初始化成功。 【备 注】该函数用于对定时器、中断和DAC等的初始化。 (2)【API格式】C:void SACM_S480_ServiceLoop(void) ASM:Call F_ SACM_S480_ServiceLoop 【功能说明】从资源中获取SACM_S480语音资料,并将其填入解码队列中。 【参 数】无。 【返 回 值】无。 【备

26、 注】播放语音文件中数据,当出现FF FF FFH数据时便停止播放。(3)【API格式】 C:int SACM_S480_Play(int Speech_Index, int Channel, int Ramp_Set); ASM:R1= Speech _Index R2= Channel R3= Ramp_Set Call SACM_S480_Play 【功能说明】播放资源中SACM_S480语音。 【参 数】Speech _Index 表示语音索引号。 Channel: 1.通过DAC1通道播放; 2.通过DAC2通道播放; 3.通过DAC1和DAC2双通道播放。 Ramp_Set:0.禁

27、止音量增/减调节; 1.仅允许音量增调节; 2.仅允许音量减调节; 3.允许音量增/减调节。 【返 回 值】无。 【备 注】 SACM_S480的数据率有4.8Kbps7.2Kbps三种,可在同一模块的几种算法中自动选择一种。 Speech_Index是定义在resource.inc文件中资源表(T_SACM_S480_SpeechTable)的偏移地址。 中断服务子程序中F_FIQ_Service_ SACM_S480必须放在TMA_FIQ中断向量上。 函数允许TimerA以所选的的数据采样率(计数溢出)中断。 4) 【 API格式】C:unsigned int SACM_S480_Stat

28、us(void); ASM:Call F_ SACM_S480_ Status 返回值=R1 【功能说明】获取SACM_S480语音播放的状态。 【参 数】无。 【返 回 值】当R1的值 bit0=0,表示语音播放结束;bit0=1,表示语音在播放中。 5) 【 API格式】ASM:Call F_FIQ_Service_ SACM_S480 【功能说明】用作SACM_S480语音背景程序的中断服务子程序。通过前台子程序(自动方式的SACM_S480_ServiceLoop 及手动方式的SACM_S480_Decode)对语音资料进行解码,然后将其送入DAC通道播放。 【参 数】无。 【返 回

29、值】无。 【备 注】SACM_S480语音背景子程序只有汇编指令形式,且应将此子程序安置在TMA_FIQ中断源上。2、声音识别模块:API函数的格式、功能、参数、返回值、备注初始化:【API格式】C: int BSR_DeleteSDGroup(0); ASM:F_BSR_DeleteSDGroup(0) 【功能说明】SRAM初始化。 【参 数】该参数是辨识的一个标识符,0代表选择SRAM,并初始化。 【返 回 值】当SRAM擦除成功返回0,否则,返回1。 训练部分: 1) 【API格式】C:int BSR_Train (int CommandID, int TraindMode); ASM:

30、F_BSR_Train 【功能说明】训练函数。 【参 数】 CommandID:命令序号,范围从0x100到0x105,并且对于每组训练语句都是唯一的。 TraindMode:训练次数,要求使用者在应用之前训练一或两遍: BSR_TRAIN_ONCE:要求训练一次。 BSR_TRAIN_TWICE要求训练两次。 【返 回 值】训练成功,返回0;没有声音返回1;训练需要更多的语音数据来训练,返回2;当环境太吵时,返回3;当数据库满,返回4;当两次输入命令不通,返回5;当序号超出范围,返回6。 【备 注】 在调用训练程序之前,确保识别器正确的初始化。 训练次数是2时,则两次一定会有差异,所以一定要

31、保证两次训练结果接近 为了增强可靠性,最好训练两次,否则辨识的命令就会倾向于噪音 调用函数后,等待2秒开始训练,每条命令只有1 .3秒,也就是说,当训练命令超出1.3秒时,只有前1.3秒命令有效。 辨识部分: 1)【API格式】C: void BSR_InitRecognizer(int AudioSource) ASM:F_BSR_InitRecognizer 【功能说明】辨识器初始化。 【参 数】 定义语音输入来源。通过MIC语音输入还是LINE_IN电压模拟量输入。 【返 回 值】无。 2)【API格式】C:int BSR_GetResult(); ASM:F_ BSR_GetResul

32、t 【返回值】=R1 【功能说明】辨识中获取数据。 【参 数】 无。 【返 回 值】 当无命令识别出来时,返回0; 识别器停止未初始化或识别未激活返回1; 当识别不合格时返回2; 当识别出来时返回命令的序号。 【备 注】 该函数用于启动辨识,BSR_GetResult(); 3)【API格式】C: void BSR_StopRecognizer(void); ASM:F_ BSR_StopRecognizer 【功能说明】停止辨识。 【参 数】无。 【返 回 值】 无。 【备 注】该函数是用于停止识别,当调用此函数时,FIQ_TMA中断将关闭。 中断部分: 【API格式】 ASM:_BSR_I

33、nitRecognizer 【功能说明】 在中断中调用,并通过中断将语音信号送DAC通道播放。 【参 数】无。 【返 回 值】无。 【备 注】 该函数在中断FIQ_TMA中调用 当主程序调用BSR_InitRecognizer时,辨识器便打开8K采样率的FIQ_TMA中断并开始将采样的语音数据填入辨识器的数据队列中。 应用程序需要设置一下程序段在FIQ_TMA中:5.4主要代码1、主程序int main()int res;BSR_DeleteSDGroup(0);/ 初始化存储器RAMPlayRespond(RSP_START); /播放开始训练的提示音0/.训练第一条命令.while(Tra

34、inWord(COMMAND_ONE_ID,5) != 0) ;/.训练第二条命令.while(TrainWord(COMMAND_TWO_ID,6) != 0) ;/.训练第三条命令.while(TrainWord(COMMAND_THREE_ID,7) != 0) ;/.训练第四条命令.while(TrainWord(COMMAND_FOUR_ID,8) != 0) ;/.训练第五条命令.while(TrainWord(COMMAND_FIVE_ID,9) != 0) ;/.开始识别命令.BSR_InitRecognizer(BSR_MIC); /辨识器初始化BSR_EnableCPUIn

35、dicator(); PlayRespond(RSP_SUCCESS); / 播放开始辨识的提示音nightoff();while(1)res = BSR_GetResult();if(res 0)/识别出命令switch(res)case COMMAND_ONE_ID: PlayRespond(RSP_CONFIRM); FLASH(); /机器人行走 break;case COMMAND_TWO_ID:PlayRespond(RSP_CONFIRM);nightoff(); /停止机器人break;case COMMAND_THREE_ID:PlayRespond(RSP_REGARD);

36、/问候程序nightoff();break;case COMMAND_FOUR_ID:PlayRespond(RSP_ENGLISH);/英语程序nightoff();break;case COMMAND_FIVE_ID:PlayRespond(RSP_INTRODUCE);/介绍程序nightoff();break;2、中断程序_FIQ:push r1,r4 to spr1 = P_INT_Ctrlr1 &= 0x2000jz ?notTimerA/当不为TIQ_TMA,则转r1 = _gIsStopRecogjnz ?BSR_NotBusy/_gIsStopRecog为1则转至放音处理ca

37、ll _BSR_FIQ_Routine/为0,调用辨识子程序jmp ?BSR_Busy/返回中断?BSR_NotBusy:/放音处理r2 = _PlayFlagjnz ?Play2000/_PlayFlag为1则是播放2000call F_FIQ_Service_SACM_S480;/为0,播放480jmp ?BSR_Busy/返回中断?Play2000:/2000播放子程序?BSR_Busy:/返回中断r1 = 0x2000P_INT_Clear = r1popr1,r4 from sp;reti;?notTimerA:r1 = 0x8800; P_INT_Clear = r1;popr1,

38、r4 from sp;reti;3、训练程序int TrainWord(int WordID, int RespondID)int res;PlayRespond(RespondID);while(1)res = BSR_Train(WordID,BSR_TRAIN_ONCE); /训练一次if(res = 0) break;switch(res)case -1: /没有检测出声音PlayRespond(RSP_ERROR);return -1;case -3: /环境太吵PlayRespond(RSP_ERROR);return -1;case -4: /数据库满 return -1;cas

39、e -6: /序号错误return -1;return 0;4、声音播放程序void PlayRespond(int Result)nighton();BSR_StopRecognizer();SACM_S480_Initial(1);SACM_S480_Play(Result, 3, 3);while(SACM_S480_Status()&0x0001) != 0)SACM_S480_ServiceLoop();ClearWatchDog();SACM_S480_Stop();BSR_InitRecognizer(BSR_MIC);BSR_EnableCPUIndicator();5.5编程

40、软件与其他应用软件(3)ARM开发软件Cygwin图5.7 Cygwin (1) SPCE061A编程软件(unsp IDE)图5.8 SPCE061A编程软件 (2) STC89C51开发软件KeilC图5.9 STC89C51开发软件KeilC6.系统测试6.1系统平台测试嵌入式系统的开发通常是采用“宿主机/目标机”方式(交叉开发环境),首先在性能高的宿主机编写程序,然后通过各种接口将交叉编译生成的目标代码传输并下载到目标机,因此测试时分成宿主机测试(程序测试)与目标机测试(性能等测试)。6.2功能测试功能应所做出的放应备注后台发送命令有数据返回成功播放声音功能机器人会说话成功行走功能机器

41、人会行走成功串口通信功能能发送数据到STC51开发板成功无线通信功能机器人会做出相应的动作有时候会做错动作记忆功能按照记忆去做动作还没有实现6.3环境测试环境所在地备注宿舍效果比较好平坦少人操场播放声音不清楚,行走时噪声太大影响其他命令多人课室播放声音不清楚而且有时会被其他人的声音把自己的声音覆盖掉,行走时噪声太大影响其他命令6.4测试结果分析与问题解决方案系统可控制距离长10米以内,环境要求高,信号差,遇到障碍物信号变弱。产生这些情况是通信硬件问题,需用RF1100代替PT2262和PT2272.太多层硬件造成处理速度较慢,解决方法是利用ARM控制通过RF1100控制机器人.参考文献1陈莉君

42、,冯锐,牛欣源 译.深入理解Linux内核(第二版) .中国电力出版社.2田泽编著.ARM9嵌入式linux开发实验与实践.北京:航空航天大学出版社.3田泽编著.ARM9基础实验教程.北京:航空航天大学出版社.4SPCE061A单片机教材书. 北阳电子.5刘春伟,胡文明,金俊斌编著.NewMsg-RF1100 开发指南 V2.0. 6Qt参考文档. 7SPCE061A单片机教材书. 北阳电子.8王艳平编著. windows网络与通信程序设计.人民邮电出版社,2006. 致谢本论文(设计)是在我的指导教师李军副教授的亲切关怀和悉心指导下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从题目的选择到最终完成,李军老师都始终给予我细心的指导和不懈的支持。附录A 设备图片ARM9开发板STC89C51开发板图 PT2262与PT2272无线模块图机器人结构图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号