
基于FPGA的智能扫地机VHDL设计
5星
- 浏览量: 0
- 大小:None
- 文件类型:RAR
简介:
本项目采用FPGA技术,运用VHDL语言进行编程,旨在实现一款高效、智能的扫地机器人控制系统设计。
### 模拟智能扫地机的设计
**学号:61010122**
**姓名:吴细老**
#### 申请题目:模拟智能扫地机设计
##### 一. 扫地地图基本制作
1. 设定扫地范围,通过键盘绘制一个任意形状的区域作为清扫区。画完图后按下确认键开始扫描该区域,并记录所需时间以确定自动关闭的时间。
2. 模拟环境湿度和温度设置:通过直接输入数据设定环境条件,形成系数来控制扫地速度——脏污程度越高,清理时长越久。
3. 设置垃圾、障碍物及污水。利用键盘方向键随机放置这些元素。
##### 二. 扫地控制(有人手动操作)
1. 用户可操控扫地机移动至目标位置进行清洁工作,包括避开障碍和处理污水等特殊情况,并设定清扫时间和强度。
2. 若机器在某个角落被卡住无法动弹,则会自动发出警报信号。
3. 在中途需要离开时可以选择开启自动清扫模式。此功能支持从当前位置或重新开始全面扫描。
##### 三. 自动扫地(无人操作)
1. 系统记录每次清扫的时间,并进行逐行搜索,遇到障碍物则绕过继续前进;发现垃圾和污水会自动清除并亮灯提示已完成任务。
#### 课题背景
**存在问题及应用背景**
- 如何设计地图生成方案并将数据保存下来?
- 设计状态机的策略与方法;
- 实现通过键盘控制扫地机移动的功能;
- 制作动态效果以增强视觉体验,考虑使用何种编程手段实现流畅动画。
- 扫描速度如何根据环境参数进行调整并反馈到系统中。
#### 项目规划
**功能、指标及规模**
1. 地图绘制:通过键盘控制上下左右方向来构建地图;
2. 环境输入:利用按键设置湿度和温度值;
3. 设置垃圾与污水位置,通过键盘指定具体坐标后确认放置。
4. 手动扫地模式允许用户直接操控机器进行清洁任务。
5. 自动清扫功能在无人干预的情况下执行完整区域的清理工作。
**指标**
- 在8x8点阵板上显示主要操作界面,并使用数码管展示温度与湿度设置值。确保信息更新及时准确无误。
**规模**
整个程序利用了多个二维矩阵来存储地图数据及变化情况,各模块间独立运作并相互配合完成任务。当前已达到芯片所能提供的门数上限,在此基础上增加新功能较为困难。
#### 实现方案
针对核心问题提出了以下解决策略:
- 地图生成与保存:采用多位寄存器记录点阵坐标信息;
- 状态机设计为单独程序代码,可根据外部条件调整输出状态;
- 移动控制算法基于精确的二维坐标计算实现键盘输入对应的实际移动效果;
- 动画制作通过预设动画序列在需要时调用播放。
- 扫描速度调节:根据采集的数据反馈设置不同的扫描速率。
#### 系统结构
**系统框图**
**模块功能描述**
1. 分频器模块fenping: 对外部2MHz信号进行分频,输出不同频率的时钟信号如2KHz、1Hz等。
2. 键盘模块keyboard:接收用户键盘输入并生成相应的按键信息。
3. 状态机state_changer: 根据当前状态决定下一步操作类型。
4. 中心控制模块control: 综合管理各个子系统,根据不同的需求协调工作流程,并向点阵板提供必要的信号支持动画播放和温度湿度显示等任务的执行。
5. 动画播放模块:在接收到扫地命令时启动相应的动作序列以模拟清扫过程。
6. 温度及湿度设置模块: 负责通过数码管界面调整设定值,并更新显示屏内容。
**接口标注**
- 键盘行列信号输入输出
- 时钟信号输入
#### 状态流程图
详细描绘了系统的运行状态转换逻辑,包括从初始化到结束的各个阶段。
#### 各主要模块仿真结果波形
1. **键盘模块**: 输入列扫描信号、时钟;输出键值与行扫描信号。
2. **状态机波形**
3. 温度及湿度设置模拟:每次按上键增加温度显示数值。
4. 控制中心模块扫描过程的验证。
#### 课程设计总结
- 实现了大部分预期功能,但由于资源限制未能完全达到所有目标。特别是部分高级控制算法和动画效果未完成开发。
**进一步改进方向**
1. 完善扫地速度自适应调节机制;
2. 增加背景音乐提示增加用户体验。
通过此次设计项目深刻体会到数字系统
全部评论 (0)


