基于FPGA的手势识别智能小车
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
•
五、FPGA主控设计以及软件代码说明
• 5.3小车串口接收模块 • UART串口通信模块连接图如下:
Thank you
Logo
五、FPGA主控设计以及软件代码说明
• 5.2小车超声蔽障模块 • 超声波模块的时序图如下所示:
五、FPGA主控设计以及软件代码说明
• 5.2小车超声蔽障模块 • 软件设计 • 在本模块中,我设计的是每隔100ms产生一个宽度为20us的脉
冲trig用以触发超声波模块发送超声波,并在超声波模块发送出超 声波信号之后开始检测ECHO信号,得到ECHO信号为高电平的时 间,从而计算出小车与障碍物之间的相对距离,从而进行避障。在 小车与障碍物之间的距离大于安全距离时,小车持续前进状态;在 小车与障碍物之间的距离小于安全距离时,小车右转。 • 检测ECHO信号时长的方法是检测在ECHO信号为高电平这段时间 内的脉冲数目,我在设计时也考虑到了一些值得注意的问题,比如 说,在超声波模块刚发送完超声波时,不应立刻检查ECHO信号, 因为两个超声波器件之间的距离隔得太近,有可能是发送模块发送 出的超声波信号通过硬件接触串扰到接收模块了,所以这样可以避 免这个问题。在ECHO的下降沿根据计数脉冲的大小来控制小车的 行走状态。
三、硬件设计
• 3.2硬件实际电路 • 本小车采用以FPGA为主体控制芯片,而
超声模块,无线接收模块,电机驱动模块, 以及PC端的无线串口模块为负载模块的结 构。采用三电源,两层结构。6V(四节五 号电池)供小车;超声模块供电,5V充电 电池供BASYS2板供电;5VUSB移动电源 供无线路由供电。
制小车的工作模式、轨迹以及行进与停止。 • 利用WIFI模块进行PC端口与智能小车的通信,利用手 势来控制小车的左转与右转。 • 小车有自动和手动两种工作模式,在自动工作模式下,小 车能沿着一定的轨迹运动且能够自动避障或循迹。在手动工作 模式下,小车能够根据智能手机的方向控制键进行行走。 • 小车前方有一摄像头,可以将拍摄所得的数据返回给PC 端。
五、FPGA主控设计以及软件代码说明
• 5.3小车串口接收模块 • 接收数据过程:空闲状态,线路处于高电位;当检测到线路的下降沿(线路
电位由高电位变为低电位)时说明线路有数据传输,按照约定的波特率从低 位到高位接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确 ,如果正确则通知后续设备准备接收数据或存入缓存。 由于UART是异步传输,没有传输同步时钟。为了能保证数据传输的 正确性,UART采用16倍数据波特率的时钟进行采样。每个数据有16个时 钟采样,取中间的采样值,以保证采样不会滑码或误码。一般UART一帧的 数据位数为8,这样即使每个数据有一个时钟的误差,接收端也能正确地采 样到数据。 UART的接收数据时序为:当检测到数据的下降沿时,表明线路上有数据 进行传输,这时计数器CNT开始计数,当计数器为24=16+8时,采样的值 为第0位数据;当计数器的值为40时,采样的值为第1位数据,依此类推, 进行后面6个数据的采样。如果需要进行奇偶校验,则当计数器的值为152 时,采样的值即为奇偶位;当计数器的值为168时,采样的值为“1”表示停 止位,一帧数据接收完成。
四、软件设计
• •
4.2系统ISE框图 超声模块 ,WIFI模块,电机驱动模块 的RTL级电路
五、FPGA主控设计以及软件代码说明
• 5.1小车行走模块 • 1.综述 • 刚开始设计的小车为四轮四驱的,后来由
于电机的原因,四轮电机转弯半径特别大, 后来就改用三轮二驱的了,在小车后面加了 一个万向轮。本组的小车采用控制速度差从 而实现小车的转弯,轮子的速度是靠PWM 波的占空比的不同来调节的。两轮速度相同 且均正转实现小车前进,两轮速度相同且均 反转实现小车后退,右轮速度大于左轮速度 即可实现小车的左转,左轮速度大于右轮速 度可实现小车的右转。
Logo
二、 总体设计
• •
2.2 系统框图 根据功能设计,我将智能小车细化地分为了以下几个模块:系统电路模块、小车行走控 制模块、无线模块、摄像监控、意外控制模块。以下为智能小车的简要系统框图。
三、硬件设计
• • •
3.1硬件设计电路 本项目采用的硬件平台是BASYS2开发板,将其作为主处理器使用。处理来自利用超 声模块,无线模块的数据,同时控制L298N电机驱动芯片。 硬件电路设计如下:
五、FPGA主控设计以及软件代码说明
• 5.3小车串口接收模块 • 硬件设计: • 对于FPGA的串口通信,采用硬件电路模拟UART串口的时
序,接收并发送数据。UART串口模块分为两部分,即分频 模块获得相应串口的波特率和数据发送模块。 • 假设数据的波特率为p,则所需时钟的频率为16*p。以 波特率p为9600为例,系统时钟为50MHz,则分频系数为 50000000/(16*9600) = 325.5,取整为325。通过 计数方式分频。波特率分频模块代码见附录。 • UART发送模块的功能:接收到发送指令后,把数据按 UART协议输出,先输出一个低电平的起始位,然后从低到 高输出8个数据位,接着是可选的奇偶校验位,最后是高电平 的停止位。
手势控制的智能小车
队长: 马聪 队员: 李源琦 王麒炎
Logo
ຫໍສະໝຸດ Baidu Contents
1 2 3 4 5
项目描述
总体设计
硬件设计 软件设计 FPGA主控设计
Logo
一、项目描述
• 1.1 项目要求
本项目要求设计出可以利用手势控制的智能小车,该小车能够根据上外机( PC端)键盘的输出指令A(左转),W(前进),S(后退),D(后退)以及P (停止)。同时可以通过PC端的内置摄像头进行手势识别并利用手势控制小 车前进。同时利用无线路由器和摄像头对小车周围环境进行监控,同时将图 像送回PC端。同时,利用超声模块进行简单的蔽障,使得可以自动行驶。 1.2 需求分析 随着嵌入式技术的发展及智能控制在人们生活中的渗透,运用智能机器人进 行辅助生产和提高工作效率似乎是一个趋势。有时候我们需要监控环境变化 ,但人们不便直接进入;同时我们需要多方式来控制小车的运动,包括使用 PC端键盘控制,手势控制等。 同时,随着现代网络技术的发展,也为小车的远程控制提供了可能性。我们 可以通过远程控制来进行相关操作使得小车进行运动。
五、FPGA主控设计以及软件代码说明
五、FPGA主控设计以及软件代码说明
• 由此我们可以列出如下的一张表来表示L298N的
输入信号和小车的行走状态的关系(其中IN1、 IN2控制左电机,IN3、IN4控制右电机)
五、FPGA主控设计以及软件代码说明
• 5.2小车超声蔽障模块 • 综述 • 要避障先得测距,而一般做测距有两种选择。一种是利用红
四、软件设计
• •
4.1自顶向下建模 智能小车的控制电路为主处理器模式,其中主处理器负责与PC端的通信,接收超声避障 模块的处理数据,处理后控制小车的行走。主处理器Verilog自顶向下建模图如下所示 :
四、软件设计
• •
4.2系统ISE框图 在所有的程序编写完毕后,可以在ISE中生成如下所示的寄存器级逻辑电路图,如下图 所示分别为主处理器RTL级顶级电路图。:
五、FPGA主控设计以及软件代码说明
• 2.硬件设计
本组采用一块以L298N芯片为核心的电机驱动 模块来驱动两路电机。 L298N一种高电压、大电流电机驱动芯片。 该芯片的主要特点是:工作电压高,最高工作电压 可达46V;输出电流大,瞬间峰值电流可达3A, 持续工作电流为2A;额定功率25W;内含两个H 桥的高电压大电流全桥式驱动器,可以用来驱动直 流电动机和步进电动机、继电器线圈等感性负载; 采用标准逻辑电平信号控制;具有两个使能控制端 ,在不受输入信影响的情况下允许或禁止器件工作 有一个逻辑电源输入端,使内部逻辑电路部分在低 电压下工作。使用L298N芯片驱动电机,该芯片 可以驱动一台两相步进电机或四相步进电机,也可 以驱动两台直流电机。
五、FPGA主控设计以及软件代码说明
• 5.3小车串口接收模块
•
UART接收模块的功能:时时检测线路,当线路产生下降沿时 ,即认为线路有数据传输,启动接收数据进程进行接收,按从低位 到高位接收数据。通过模拟串口的时序即可编写出verilog串口通信 代码。UART串口通信时序如下:
发送数据过程:空闲状态,线路处于高电位;当收到发送 数据指令后,拉低线路一个数据位的时间T,接着数据按 低位到高位依次发送,数据发送完毕后,接着发送奇偶校 验位和停止位(停止位为高电位),一帧资料发送结束。
•
•
Logo
一、项目描述
•
1.3 硬件和软件开发工具简介
•
•
硬件平台 考虑到FPGA具有实时性强、时序资源丰富的优点,我们在开发过程中使用的是 Digilent公司的BASYS2开发板,该开发板是围绕着Xilinx公司的一块Spartan-3E FPGA芯片搭建的,它提供了完整、随时可以使用的硬件平台,并且它适合于从基本逻辑 器件到复杂控制器件的各种主机电路。Basys2板上集成了大量的I/O设备、16个扩展 I/O口和FPGA所需的支持电路,让开发者能够方便搭建无数的设计电路。 软件平台 在小车端的软件开发工具主要是ISE Design Suite 13.4,ISE 是使用 XILINX的FPGA的必备的设计工具,它可以完成FPGA开发的全部流程,包括设计输 入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。ISE 除了功能完整、使用方便外,它的设计性能也非常好,它集成的时序收敛流程整合了增强 性物理综合优化,提供最的时钟布局、更好的封装和时序收敛映射,从而获得更高的设计 性能。先进的综合和实现算法将动态功耗降低了10%。另外,我们还使用了一款由 Digilent公司为BASYS2开发板开发的用于下载程序的软件Adept 2。
在PC端,我们利用OPENCV开源图像数据库进行手势识别与处理,同时利用 C++编写串口程序,MFC编写窗体并封装。使得小车的控制程序更为美观,操作更为简 便。
Logo
二、 总体设计
• 2.1 功能描述 • 小车为二驱或四驱,能够自由行走。 • 利用WIFI模块进行PC端口与智能小车的通信,键盘控
外线测距避障,和前面循迹的红外对管原理一致,是利用发 射出的红外编码与遇到障碍物反射回来而接收到的红外编码 之间的时差实现障碍物的距离测量的。这种测距方案的优点 是成本低、安装电路简单,缺点是红外对管能够检测的范围 很有限,且信号不是十分强。另一种方案是利用超声波测距 避障,即利用发射出的超声波与遇到障碍物反射回来而接收 到的超声波信号之间的时差实现障碍物的距离测量。这种测 距方案的优点是精度高,能够测量的距离较远。 • 综合考虑,我们选用超声波测距避障方案,根据超声波传感 器的回送信号的长短来判断小车与障碍物之间的距离,若小 车与障碍物间的距离小于安全距离,则小车右转以避开障碍 物。
五、FPGA主控设计以及软件代码说明
• 5.2小车超声蔽障模块 • 硬件设计 • 小车采用的是HY-SRF05超声波测距模块,其可提供
2cm-450cm的非接触式距离感测功能,测距精度可达到 3mm;模块包括超声波发射器、接收器与控制电路。该模块 有VCC、TRIG、ECHO、OUT及GND5 个引脚,小车中主 要用的引脚为TRIG和ECHO,超声波模块的基本工作原理如 下所述:采用IO口TRIG触发测距,给至少10us的高电平脉 冲信号,此后模块会自动发送8个40khz的超声波信号,自 动检测是否有信号返回;若有信号返回, • 则通过IO口ECHO输出一个高电平给处理器,高电平持续的 时间就是超声波从发射到返回的时间,由声速、高电平时间 等参数即可算出小车与障碍物间的距离。。