实验2 电机控制实验-单机版

上传人:wt****50 文档编号:34009515 上传时间:2018-02-19 格式:DOC 页数:5 大小:133KB
返回 下载 相关 举报
实验2 电机控制实验-单机版_第1页
第1页 / 共5页
实验2 电机控制实验-单机版_第2页
第2页 / 共5页
实验2 电机控制实验-单机版_第3页
第3页 / 共5页
实验2 电机控制实验-单机版_第4页
第4页 / 共5页
实验2 电机控制实验-单机版_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验2 电机控制实验-单机版》由会员分享,可在线阅读,更多相关《实验2 电机控制实验-单机版(5页珍藏版)》请在金锄头文库上搜索。

1、电机控制实验实验名称:电机控制实验学时安排:2 课时实验类别:验证型、设计型 实验要求:1 人 1 组一、 实验目的和任务1. 掌握嵌入式 linux 下直流电机控制的基本方法2. 掌握直流电机控制基本原理二、 实验设备介绍1. 系统需求:安装有 windowsXP 以上版本的操作系统2. 软件需求: VMware 6.0,debian3. 硬件需求: 建议配置是 CPU PIV 以上,512M 内存以上, 20G 硬盘空间以上三、 预习要求1. 交叉编译环境的建立。四、 注意事项和要求1. 请不要启动桌面环境下的应用程序,特别是 Firefox、OpenOffice 等。2. 按下“Alt”

2、+“Ctrl”可以把鼠标移出虚拟机界面。五、 实验内容和步骤1先让直流电机转动起来 准备工作a) 用串口线将 ARM 实验箱上的串口与 PC 机上的串口连接起来,注意区分正确的串口(其中靠近并口的那个串口用于远程控制 ARM 实验箱,第二个串口用于验证自己写的串口程序,我们自己写的串口程序,一般使用靠近并口的那个串口)b) 使用 telnet 远程控制串口 这一步是为了在没有串口线连接 ARM 实验箱的串口 1 时,也可以对 ARM 实验箱进行远程控制。(这个操作实际是扩展练习,用 telenet 方式连接,也可以用串口方式,均可)i. 再连接网线,将 PC 机与实验箱配置成同一个网段ii.

3、测试网络是否可达1. 在超级终端下,ping PC 机的 IP,如果 ping 通,则说明网络已经联通iii. 在 xp 下,运行 - CMD - 输入 telnet ARM 实验箱 IP,按提示输入用户名、密码连接成功后的截图 进入直流电机控制目录,准备运行直流电机控制程序a) cd /mnt/yaffs/dc-motori. 如果你没有发现 yaffs 下有该文件夹,你可以自己去拷贝你需要的东西,即把应用程序包通过 NFS 的方式共享给嵌入式 ARM 实验箱ii. 提示:在实验室机房电脑的 D 盘,找“博创资料”文件夹,进入经典 2410 光盘,再选择进入 2410 dvp Linux 目

4、录,再进入 imag目录,你在这个文件夹,会发现有一个 yaffs.tar.bz2 的文件夹,先把它拷贝到 readhat 虚拟机,解压(使用 tar xvjf yaffs.tar.bz2),再通过 NFS 的方式共享,如果忘了,请查看之前的实验报告,在下面也有关于 NFS 的关键步骤描述b) 加载驱动,找到.o 文件,在 Linux 2.4 内核里,驱动程序以.o 文件的形式存在。例如,你可以执行 insmod dc-motor.o (注意文件名在不同实验箱可能会有差异)c) 运行测试程序 ./dcm-motor (注意文件名在不同实验箱可能会有差异)如果一切正常,ARM 实验箱上的直流电机

5、此时会正常转动起来。2直流电机控制实验 编译上层应用程序 首先要回答的问题是 驱动与一般上层应用程序有什么不同?a) 因为有着种种的不同,如运行空间,使用对象,使得在编译、编程时有着很大差别b) 应用程序里有 main,驱动里面是没有 main 的。想一想为什么? 由于直流电机的驱动已经被集成到内核里,所以无需动态加载.a) 反过来说,如果驱动没有编进内核,是不是一定要加载,否则就不能用?在你使用博创实验箱过程中有没有这样的例子?b) 请直接拷贝 PC 机上路径为: 2410 dvp linuxexpbasic09_dcmotor里的源代码(在 D 盘上找) ,你能分清哪些是直流电机的源代码吗

6、?c) 将其拷贝到 linux 主机,并编译i. 问题:在 linux 下编译源文件,有哪些方式?试列举ii. 如果编译失败,请思考为什么?1.a) 这个是什么原因?很多人编译通过了,但却不知道为什么?知道为什么比能编译通过重要很多!b) 它上面说,Makefile 的第二行语句发现,找不到上层目录的 Rules.mak 文件,为什么没有这个文件就编译不过呢?是不是 makefile 里有些东西在 Ruels.mak 里定义了?请找出这些东西,把它们定义在 Makefile 里,应该就可以 了c) 如果你编译完了,请记得用 file 来查看,是不是能在ARM 下执行。如果不是,那么是不是你的编

7、译器用错了?回想一下交叉编译的作用,以及交叉编译器的使用方法!d) 如果你成功了,那么,再想一想,还有其它方式解决这个问题吗?你试试 arm-linux-gcc o t dcm_main.c 是不是也能成功?为什么?d) 将可执行文件拷贝到 ARM 板上运行i. 请思考,有多少种方法可以使用? 串口? FTP?ii. 在这里,我们使用 NFS 的方式.iii. 请用串口线连接 ARM 板与 PC 机,并设置好 IP,使两都可以 ping通iv. 在超级终端输入:1. ifconfig eth0 192.168.0.1212. mount -o nolock,rsize=4096,wsize=4

8、096 192.168.0.142:/arm2410cl /mnt/nfs3. 命令输完了,你知道这些命令的具体含义吗?4. 在相应目录,运行你编译好的可执行文件a) 知道你的编译出来的可执行文件放在哪吗?5. 观察结果,应该可以看到电机在转动,有打印输出.setpwm = -265setpwm = -266setpwm = -267setpwm = -268setpwm = -269setpwm = -270setpwm = -271setpwm = -2723直流电机控制实验 修改上层应用程序你已经可以使电机转动了,但千万不要以为你已经懂得控制电机了,因为你一行代码也没写,博创实验箱原本就自带了例子了。要想懂,那就试着修改它,看电机会不会按照你的想法转动? 修改源代码,要求电机以恒定速度运行a) 提示:速度从程序的参数里传入b) 如何从程序的参数里面传入呢?i. 提示:其中 argc 代表参数的个数,argv 是个二维指针,其中 argv0表示第一个字符串的地址,argv1代表第二个字符串的地址

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号