人工智能机器人设计报告.docx

上传人:b****6 文档编号:7726077 上传时间:2023-01-26 格式:DOCX 页数:15 大小:3MB
下载 相关 举报
人工智能机器人设计报告.docx_第1页
第1页 / 共15页
人工智能机器人设计报告.docx_第2页
第2页 / 共15页
人工智能机器人设计报告.docx_第3页
第3页 / 共15页
人工智能机器人设计报告.docx_第4页
第4页 / 共15页
人工智能机器人设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

人工智能机器人设计报告.docx

《人工智能机器人设计报告.docx》由会员分享,可在线阅读,更多相关《人工智能机器人设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

人工智能机器人设计报告.docx

人工智能机器人设计报告

课程:

计算机组成原理

分析设计报告

院系:

安徽工程大学机电学院

专业:

计算机与软件工程系

班级:

软件1409

组长:

崔祥祥

组员:

吴洁羽毛恒张金彪刘伟佳胡辉闫冰洁郑文杰

时间:

2016-3-25

姓名

职责

崔祥祥

总体规划设计

胡辉闫冰洁郑文杰

模块软件

吴洁羽毛恒张金彪刘伟佳

功能分析

 

目录

功能分析3

1.1控制系统最小单元3

1.2诺依曼体系工作原理5

1.2.1冯诺依曼体系结构有以下特点:

5

1.2.2硬件总体结构5

1.2.2CPU与存储器的连接6

1.3语音模块7

1.3.1LD3320语音模块7

1.4PWM控制8

1.4.1定时器+中断产生PWM8

1.5相关程序(以下代码仅作说明使用,本项目并不涉及该单片机)13

第二章总体软件16

2.1Keil16

2.2STC_ISP17

2.3两款软件的主要作用18

第三章模块软件19

3.1图形化控制软件19

 3.2单个舵机运动实例:

20

功能分析

1.1控制系统最小单元

该系统最小系统分为电路,模块,诺依曼体系工作原理三个部分。

我们着重讲的是运算器,控制器,存储器,输入输出系统的协作工作部分。

1.2诺依曼体系工作原理

1.2.1冯诺依曼体系结构有以下特点:

计算机处理的数据和指令一律用二进制数表示;

指令和数据不加区别混合存储在同一个存储器中;

顺序执行程序的每一条指令;

计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。

冯诺依曼体系结构的计算机必须具有如下功能:

把需要的程序和数据送至计算机中;

必须具有长期记忆程序、数据、中间结果及最终运算结果的能力;

能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;

能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作;

能够按照要求将处理结果输出给用户。

1.2.2硬件总体结构

1.2.2CPU与存储器的连接

中央处理器CPU:

地址线20位数据线8位,运算和控制功能

内部RAM:

128K,选用4片32K*8位存储器

内部ROM:

16K选用1片16K*8位存储器

定时/计数器:

两个16位的定时/计数器,实现定时或计数功能。

串行口:

一个全双工串行口。

时钟电路:

可产生时钟脉冲序列

并行口:

提供若干并行接口,供编程或拓展使用

1.3语音模块

1.3.1LD3320语音模块

支持SPI接口和并行接口的非特定语音识别模块,板载咪头和有源晶振,方便在电子产品中实现语音识别、声控和人机对话功能。

产品特性:

高准确度和实用的语音识别效果。

非特定人语音识别技术:

不需要用户进行录音训练。

可动态编辑的识别关键词列表:

只需要把识别的关键词以字符串的形式传送进芯片,即可以在下次识别中立即生效。

比如,用户在51等MCU的编程中,简单地通过设置芯片的寄存器,把诸如"你好"这样的识别关键词的内容动态地传入芯片中,芯片就可以识别这样设定的关键词语了。

支持用户自由编辑50条关键词:

在同一时刻,最多在50条关键词语中进行识别,终端用户可以根据场景需要,随时编辑和更新这50条关键词语的内容。

参数:

工作电压:

3.3V

省电模式电流:

1uA

1.4PWM控制

1.4.1定时器+中断产生PWM

在机器人机电控制系统中,舵机控制效果是性能的重要影

响因素。

舵机可以在微机电系统和航模中作为基本的输出执行

机构,其简单的控制和输出使得单片机系统非常容易与之接口

舵机是一种位置伺服的驱动器,适用于那些需要角度不断

变化并可以保持的控制系统。

其工作原理是:

控制信号由接收

机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一

个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将

获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得

电压差为0,电机停止转动。

舵机的控制要求

舵机的控制信号是PWM信号,利用占空比的变化改变舵机的

位置。

一般舵机的控制要求如图所示。

单片机实现舵机转角控制

可以使用FPGA、模拟电路、单片机来产生舵机的控制信号

,但FPGA成本高且电路复杂。

对于脉宽调制信号的脉宽变换,

常用的一种方法是采用调制信号获取有源滤波后的直流电压,

但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较

高要求,从电路体积和功耗考虑也不易采用。

5mV以上的控制

电压的变化就会引起舵机的抖动,对于机载的测控系统而言

电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精

度难以达到舵机的控制精度要求。

也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽

度实现微秒级的变化,从而提高舵机的转角精度。

单片机完成

控制算法,再将计算结果转化为PWM信号输出到舵机,由于单

片机系统是一个数字系统,其控制信号的变化完全依靠硬件计

数,所以受外界干扰较小,整个系统工作可靠。

单片机系统实现对舵机输出转角的控制,必须首先完成两

个任务:

首先是产生基本的PWM周期信号,本设计是产生20ms

的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输

出,并且调整占空比。

当系统中只需要实现一个舵机的控制,采用的控制方式是

改变单片机的一个定时器中断的初值,将20ms分为两次中断执

行,一次短定时中断和一次长定时中断。

这样既节省了硬件电

路,也减少了软件开销,控制系统工作效率和控制精度都很高

具体的设计过程:

例如想让舵机转向左极限的角度,它的

正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制

口发送高电平,然后设置定时器在2ms后发生中断,中断发生

后,在中断程序里将控制口改为低电平,并将中断时间改为

18ms,再过18ms进入下一次定时中断,再将控制口改为高电平

,并将定时器初值改为2ms,等待下次中断到来,如此往复实

现PWM信号输出到舵机。

用修改定时器中断初值的方法巧妙形

成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。

为保证软件在定时中断里采集其他信号,并且使发生PWM信

号的程序不影响中断程序的运行(如果这些程序所占用时间过

长,有可能会发生中断程序还未结束,下次中断又到来的后果

),所以需要将采集信号的函数放在长定时中断过程中执行,

也就是说每经过两次中断执行一次这些程序,执行的周期还是

20ms。

软件流程如图

产生PWM信号的软件流程

如果系统中需要控制几个舵机的准确转动,可以用单片机

和计数器进行脉冲计数产生PWM信号。

脉冲计数可以利用51单片机的内部计数器来实现,但是从

软件系统的稳定性和程序结构的合理性看,宜使用外部的计数

器,还可以提高CPU的工作效率。

实验后从精度上考虑,对于

FUTABA系列的接收机,当采用1MHz的外部晶振时,其控制电压

幅值的变化为0.6mV,而且不会出现误差积累,可以满足控制

舵机的要求。

1.5相关程序(以下代码仅作说明使用,本项目并不涉及该单片机)

伪代码程序名:

输出固定频率的PWM波

晶振:

11.00592MHzCPU

功能:

P2^0口输出周期为1ms(1000HZ),占空比为%80的PWM波

#defineuintunsignedint

#defineucharunsignedchar

sbitPWM1=P2^0;//接IN1控制正转

sbitPWM2=P2^1;//接IN2控制反转

uchartime;

voidmain()

{

TMOD=0x01;//定时器0工作方式1

TH0=0xff;//(65536-10)/256;//赋初值定时

TL0=0xf7;//(65536-10)%256;//0.01ms

EA=1;//开总中断

ET0=1;//开定时器0中断

TR0=1;//启动定时器0

while

(1)

{

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=500;y>0;y--);

}

voidtim0()interrupt1

{

TR0=0;//赋初值时,关闭定时器

TH0=0xff;//(65536-10)/256;//赋初值定时

TL0=0xf7;//(65536-10)%256;//0.01ms

TR0=1;//打开定时器

time++;

if(time>=100)time=0;//1khz

if(time<=20)PWM1=0;//点空比%80

elsePWM1=1;

PWM2=0;

}

程序说明:

1、关于频率的确定:

对于11.0592M晶振,PWM输出频率为1KHZ,此时设定时器0.01ms中断一次,时中断次数100次即为1KHZ(0.01ms*100=1ms,即为1000HZ)此时,定时器计数器赋初值为TH0=FF,TL0=F7。

2、关于占空比的确定:

此时我们将来time的值从0-100之间进行改变,就可以将占空比从%0-%100之间进行变化,上面程序中time<=20时PWM1=0;elsePWM1=1;意思就是%20的时间输出低电平,%80的时间输出高电平,即占空比为%80。

如需得到其它占空比,如%60,只需将time的值改为40即可。

(程序为if(time<=40)PWM1=0;elsePWM1=1;)

当然编写程序时也可以定义一个标志位如flag,根据flag的状态决定输出高平还是低电平,假设定义flag=1的时候输出高电平,用一个变量去记录定时器中断的次数,每次中断就让记录中断次数的变量+1,在中断程序里面判断这个变量的值是否到了n,如果到了说明高电平的时间够了,那么就改变flag为0,输出低电平,同时记录中断变量的值清零,每次中断的时候依旧+1,根据flag=0的情况跳去判断记录变量的值是否到了n'如果到了,说明PWM的低电平时间够了,那么就改flag=1,输出改高电平,同时记录次数变量清零,重新开始,如此循环便可得到你想要的PWM波形.

第二章总体软件

2.1Keil

从这个项目本身考虑,必须是可编程的,所以采用keil

可以生成..hex结尾的文件

Hex全称(IntelHEX)文件是由一行行符合IntelHEX文件格式的文本所构成的ASCII文本文件。

在IntelHEX文件中,每一行包含一个HEX记录。

这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

IntelHEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。

大多数EPROM编程器或模拟器使用IntelHEX文件。

2.2STC_ISP

烧制程序

说明:

当然以上软件的使用的前提是使用一款支持的单片机,但是项目的要求不可以使用单片机,所以我们整体项目是理论性的。

2.3两款软件的主要作用

KeiluVision3是程序编译软件,比如你写的单片机的汇编程序或者C程序,由这个软件翻译成.HEX的16进制的机器代码,如果没有这个的话,你就要自己去编排,早期的单片机编程器里有机器语言的,后来全部使用这种翻译程序了.

STC-ISP是STC系列单片机的烧写程序,就是把你之前生存的那个.HEX文件发送给单片机,有单片机的ISP程序写入到单片机内部,形成单片机的可执行程序.

第三章模块软件

3.1图形化控制软件

类似于下面这款软件

可以直接操作舵机偏转角度,并将相应指令生成文件,可以下载到控制器。

 3.2单个舵机运动实例:

  #5P1600S750

通道5将以750us/秒的速度移动到1600us位置。

为了更好的理解速度这个概念,举个例子,当舵机从-90度到0度时,脉冲宽度为1ms时间即1000us,也就是说1000us脉冲宽度舵机就会转90度,那么100us/秒的速度就表示舵机花10秒的时间就可以转到90度,2000us/秒的速度就表示舵机花0.5秒的时间就可以转到90度。

公式:

运行时间(秒)=脉冲宽度(us)/速度(us/秒)。

  #5P1600T1000

通道5将在1秒内从任何位置移动到1600us位置。

舵机群运动实例:

  #5P1600#10P750T2500

通道5移动到1600us位置,通道10移动到750us的位置,2个都同时在2500us内完成,这个命令能协调多个舵机的速度,即使2个舵机的初始位置相差很远,都可以使他们同时开始转动并同时停止到指定位置上。

这条命令非常适合人形双足机器人多舵机同时运动,可自动协调所有舵机的速度,完成复杂步态的同步。

你可以使用该命令进行速度和时间组合,组合必须根据下面的规则:

1.所有通道的开始和结束将同时完成。

2.如果某个通道指定了速度,那么它将不会快于指定速度(可以根据需要调节移动速度)。

3.如果某个通道指定了时间,那么它将在指定的时间移动到指定位置(可根据需要调节移动时间)。

  #5P1600#17P750S500#2P2250T2000

通道5移动到1600us位置,通道17移动到750us的位置,通道2机移动到2250us的位置,整个动作需要2000us,但是通道17的舵机不会按500us/秒的速度运行,这个需要取决于通道17的初始位置。

假设通道17的初始位置在2000us,它被指定移动1250us,超过500us/秒的限制,那么他将至少花2500us完成动作,再假设通道17初始位置在1000us,只需要它移动250us,那么在500us/秒以内,那么他将花2000us完成动作。

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

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1