




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题 目 基于嵌入式arm+linux平台的直流电机调速控制系统 基于嵌入式arm+linux平台的直流电机调速控制系统的设计摘 要本设计基于北京博创兴业科技有限公司开发的up-netarm2410-s嵌入式实验平台,它采用arm7tdmi 内核的三星s3c44b0x01 芯片,且采用redhatlinux9.0作为它的操作系统。设计了调速控制系统,并实现驱动程序对直流电机的控制,电机的转动情况会通过实验箱上的ad模块中电位器的旋转不同而变化。在up-netarm2410-s嵌入式实验平台上的实验结果表明系统运行正常、稳定。关键词:arm;linux;直流电机;驱动一、设计要求采用实验箱上的电位器作为信号输入器件,控制直流电机的运转方向和运转速度。电位器处于中间值时,电机停止不转,电位器顺时针调大时电机顺时针旋转,且速度随着电位器的旋转而增加。电位器向逆时针转动调小时,电机逆时针旋转,且速度随着电位器旋转的角度增加。电位器转到最大或最小值时,电机的速度应该达到最高速度。电位器在中间位置时,电机不应该出现抖动情况。二、linux开发环境设置 1、建立工作目录roothome# mkdir zgcroothome# cd zgc2、编写程序源代码在linux 下的文本编辑器有许多,常用的是vim 和xwindow 界面下的gedit 等,在本次开发过程中使用vim,我们可以是用下面的命令来编写dcm_main.c 的源代码,进入10_dcmotor目录使用vi 命令来编辑代码:root 10_dcmotor# vi dcm_main.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按esc 键进入命令状态,再用命令“:wq”保存并退出。这样我们便在当前目录下建立了一个名为dcm_main.c 的文件。3、编写makefile要使上面的dcm_main.c 程序能够运行,我们必须要编写一个makefile 文件,makefile 文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用makefile 的优越性,但当工程比较大文件比较多时,不使用makefile 几乎是不可能的。下面是本次实验用到的makefile 文件。cc = armv4l-unknown-linux-gcc#cc = gccldflags = -staticexec = nihaoobjs = hello.oall: $(exec)$(exec): $(objs)$(cc) $(ldflags) -o $ $(objs)clean:-rm -f $(exec) *.elf *.gdb *.o4、编译应用程序在上面的步骤完成后,我们就可以在hello 目录下运行“make”来编译我们的程序了。如果进行了修改,重新编译则运行:root10_dcmotor# make cleanroot10_dcmotor# make三、系统设计1、设计思路 根据设计要求,先分别对实验箱上ad程序和电机程序进行调试并熟练,然后在电机主程序中加入ad模块及线程,将ad模块的电位器转动角度转换成的电压幅度的1024倍作为电机转动的pwm值。这样即可以满足设计要求。2、硬件流程框图对直流电机进行调速和控制,需经过ad模块,在linux操作系统中,在电机中加载ad程序后,挂载到实验箱程序。电脑通过串口把执行的程序命令发给s3c44b0x01处理器,在处理器中通过分析数据。手动调节ad模块中电位器后,处理器收到相应信号,并发命令给电机,使电机的转动做出相应的调整。硬件流程框图如图1所示。图1硬件流程框图3、软件设计及调试 虽然实验室的arm s3c2410开发箱已经搭建好开发环境,可是这一部还是必须得熟悉的,首先是bootloader的移植,然后再进行linux 内核移植。在宿主机的linux下需要搭建linux交叉编译环境,用于应用程序的开发和编译。将硬件系统设计好之后,必须开发、加载直流电机的驱动程序,驱动设备开发商都已经提供,只需要insmod到目标机上,即可编程操作这些设备。dcm_main.c程序中主要实现代码:/*/int main(int argc, char *argv) float d; pthread_t th_com; void *retval; int i = 0;int status = 1;int setpwm = 0;int factor = dcm_tcntb0/1024; if(init_addevice()0) return -1; pthread_create(&th_com, null, commonitor, 0);/ad模块线程if(dcm_fd=open(dcm_dev, o_wronly)0)printf(error opening %s devicen, dcm_dev);return 1;for(;) d=(float)getadresult(1)*3.3)/1024.0;printf(a%d=%8.4ft,i,d); if (d=1.8) d=d*1024.0-1.8*1024.0; setpwm =-d; else setpwm=0;/在中间范围内电机静止 ioctl(dcm_fd, dcm_ioctrl_setpwm, (setpwm * factor); delay(500); printf(setpwm = %d n, setpwm);pthread_join(th_com, &retval);close(dcm_fd);return 0;软件流程框图如图2所示图2 软件流程框图四、测试结果将程序挂载后运行dcm_main.c,手动转动实验箱上ad模块的电位器k1,直流电机会做出相应的变动,处理器将电位器转动对应的电压值和直流电机转动对应的pwm值通过实验箱的串口发回到电脑的linux的minicom运行环境中。1、电位器调到其对应的电压值大于1.8v时,直流电机顺时针转动,且电位器顺时针调大时,电机速度随着电位器的旋转而增加。电位器转到最大时,电机的速度达到最高速度。图3 实验箱上电机正转时电位器转动对应的电压值和电机转动对应的pwm值2、电位器调到其对应的电压值小于0.5v时,直流电机逆时针转动,电位器向逆时针转动调小时,电机速度随着电位器的旋转而增加。电位器转到最小值时,电机的速度达到最高速度。图4 实验箱上电机逆转时电位器转动对应的电压值和电机转动对应的pwm值3、电位器调到其对应的电压值处于中间值时,电机停止不转。图5 实验箱上电机静止时电位器转动对应的电压值和电机转动对应的pwm值参考文献1 刘宝廷,程树康,等步进电机及其驱动控制系统m哈尔滨:哈尔滨工业大学出版社1997 2 华清远见嵌入式培训中心嵌入式linux c语言应用程序设计m北京:人民邮电出版社20073 北京博创科技estc 培训中心.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024杭州科技职业技术学院辅导员招聘笔试真题
- 1.食品安全地方标准立项建议书(式样)
- 2023.06.21夏至一阴初升
- 2025年陕西省国家综合性消防救援队伍招聘考试试题【答案】
- 2025年湿簧式继电器项目发展计划
- 北京海淀区社区工作者招聘笔试真题2024
- 2025年昭通市昭阳区龙泉街道办事处选拔社区后备干部考试试题【答案】
- 2025年产后健康项目发展计划
- 消防专项方案
- 理财顾问实习报告范文-1
- 招商大使选聘管理办法
- 智慧教育基于大数据的个性化教学研究与实践
- 2025年中国铁路集团招聘笔试备考题库(带答案详解)
- 用工风险培训课件
- 海外现场安全健康环境管理(HSE)
- 2025年公安机关人民警察(行政执法)资格考试(客观题及刑法)含答案
- DB3502∕T 166-2024 既有厂区及老旧小区海绵城市方案设计导则
- 2025年 江西省金控科技产业集团有限公司招聘考试笔试试卷附答案
- 四川省成都市蓉城联盟2024-2025学年高一下学期6月期末考试物理试题(含答案)
- 2025年中国模内标签(IML)行业市场全景分析及前景机遇研判报告
- 【人教版】吉林长春2024-2025学年 五年级下学期期末数学试题【附答案】
评论
0/150
提交评论