09嵌入式网络协议及其应用开发课程设计报告1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
学生信息
系别计算机工程学院专业计算机科学与技术
班级姓名学号
课程设计信息
课程名称嵌入式软件开发课程设计
课程设计题目基于QT的直流电机设计
课程设计时间学期第 1~16 周
小组情况指导教师
批改情况
成绩评阅教师批改时间2012年5月 6 日2011-2012学年第2 学期
目录
1.课程设计内容 (3)
2.课程设计目的 (3)
3.背景知识 (3)
4.工具/准备工作 (3)
5.设计步骤与方法 (3)
5.1.步骤 1:设计直流电机控制界面 (3)
5.1.1. 步骤1.1:添加控件事件代码 (4)
5.2. 步骤2:编译程序 (5)
5.2.1. 步骤2.1:redhat主机下编译程序 (5)
5.2.2. 步骤2.2:在ARM板下测试直流电机界面–嵌入式下运行 (6)
6.软件测试截图 (7)
7.设计结果及分析 (7)
8.设计结论 (7)
9.问题及心得体会 (7)
10.对本设计过程及方法、手段的改进建议 (8)
11.任务分配 (8)
12.参考文献【1】C++ GUI Qt4编程(第2版) 兰切特 (Jasmin Blanchette)、萨默菲尔德(Mark Summerfield)、闫锋欣、曾泉人子工业出版社2008 (8)
13.课程设计评价(教师) (8)
课程设计报告
1. 课程设计内容
本课程设计的内容是设计一个基于QT的直流电机设计,支持电机正反转以及设置参数以控制转速。
2. 课程设计目的
考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。
3. 背景知识
1.嵌入式linux下驱动程序的基本编译方法
2.掌握直流电机控制基本原理
3.QT软件的应用
4. 工具/准备工作
硬件:
安装有QT的PC机一台
软件:
WindowsXP操作系统
VMware Workstation 7.0
Red Hat
QT 4.6.3
5. 设计步骤与方法
5.1.步骤 1:设计直流电机控制界面
利用QT Creator,ui文件来编写一个良好的用户交互界面:
图5.1电机控制界面
5.1.1. 步骤1.1:添加控件事件代码
使用信号-槽机制在函数添加操作
功能实现:
1、手动启动、停止直流电机
2、显示电机的转速,以及转动的方向,如向左还是向右,顺时针还是逆时针
3、通过设置参数,动态改变电机的转动速度
具体实现代码如下
char *DCM_DEV="/dev/dcm/0raw";
void motor()
{ if((dcm_fd=open(DCM_DEV, O_WRONLY))<0)
{ printf("Error opening %s device\n", DCM_DEV);
}
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (512 * factor));
}
void MainWindow::on_pushButton_clicked()
{ motor();//电机开始转动
}
void MainWindow::on_pushButton_2_clicked()
{ ioctl(dcm_fd, DCM_IOCTRL_SETPWM, 0);//电机停止转动
}
void MainWindow::on_pushButton_4_clicked()
{ factor = DCM_TCNTB0/1024;//电机逆时针转动
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));
ui->lineEdit_2->setText("Left");;
}
void MainWindow::on_pushButton_5_clicked()
{ factor = DCM_TCNTB0/1024*(-1);//电机顺时针转动
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));
ui->lineEdit_2->setText("Right");
}
void MainWindow::on_pushButton_3_clicked()
{ char str[30];
setpwm=setpwm*(1-0.05);//电机减速
if(setpwm<=0) setpwm=0;
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));
sprintf(str,"%d",setpwm);
ui->lineEdit_3->setText(str);
}
void MainWindow::on_pushButton_6_clicked()
{ char str[30];
setpwm=setpwm*(1+0.05);//电机加速
if(setpwm>=512) setpwm=512;
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));
sprintf(str,"%d",setpwm);
ui->lineEdit_3->setText(str);
}
5.2. 步骤2:编译程序
5.2.1.步骤2.1:redhat主机下编译程序
1.把QT设置好源程序代码拷贝到redhat主机指定的目录下:
/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.
0/examples目录
2.使用qmake产生Makefile:
#/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4