搜索

121

主题

128

帖子

665

积分

网站编辑

Rank: 8Rank: 8

积分
665
发表于 2021-7-28 16:55:56 6445 浏览 0 回复

ITOP-6818步进电机模块测试

本帖最后由 翠花儿 于 2021-7-28 16:58 编辑

和本文档配套的资料有:
内核配置和步进电机驱动补丁包:topeet_modules_step_motor_20190712.tar.gz
linux-C的测试例程:iTOP-4418&6818-linuxc-stepmotor_V1.0.zip
QtE的测试例程:iTOP-4418&6818-QtE4.7-step_moter_V1.0.tar
Android的测试例程:iTOP-4418&6818-Android4.4-stepmotortest-V1.0.zip
本章需要的资料包在网盘“iTOP6818开发板资料汇总(不含光盘内容)\09_iTOP-4418开发板最小linux_Qt_Ubuntu扩展文档\步进电机测试模块”下载。
请注意,在光盘的内核源码中,没有步进电机的驱动,需要添加步进电机的驱动之后才能使用。步进电机使用的是camera接口上的IO,在linux系统上测试需要在内核的menuconfig屏蔽掉camera驱动。在安卓上测试时不用配置menuconfig,只需要拷贝驱动源码,修改Makefile。
1 硬件连接
硬件连接分为两个部分,供电和控制线的连接。如下图所示,是步进电机的原理图部分。
端子j2可以看出,需要通过排线和开发板的camera接口。上图右半部分,可以看出供电可以采用5v电源或者usb供电的方式。
排线链接,如下图所示。火牛座和USB线供电二选一,如下图所示是5v电源线供电。
注意:
如果大家使用的是默认的光盘内核镜像,请不要给步进电机上电太长时间。因为步进电机驱动芯片,默认状态是上拉,会导致步进电机处于不正常的状态,会让电机发热。
需要将步进电机驱动配置完成之后,步进电机驱动在初始化的时,将步进电机的驱动芯片拉低,这样步进电机就会处于准备工作状态,这种状态不会有电流,不会导致步进电机发热!
2 内核配置
由硬件部分可知,步进电机使用的是camera接口,内核默认状态会编译camera驱动,camera驱动会占用电机用到的四个GPIO,在linux系统下,首先需要在内核配置中将camera驱动去掉。然后添加驱动补丁包,重新编译内核,烧写到内核中。Android另有修改方法。不需要去掉camera驱动。
进入内核目录,配置所需要的缺省文件,使用命令“make menuconfig”,如下图所示,进入配置界面。
选中“Device Drivers  --->”进入。
如下图所示,选中“Multimedia support  --->”,进到选项中。
如下图所示,进入“Video capture adapters  --->”选项。
如下图所示,进入“Encoders, decoders, sensors and other helper chips”选项。
如下图所示,取消“ov5640 DVP camera support”,这个是摄像头ov5640的配置选项。
如上图所示,取消ov5640的选项,然后保存退出,得到新的.config文件。
然后需要修改Makefile文件。打开“drivers/char/Makefile”文件,增加以下代码:
obj-y                           += topeet_modules/
如下图所示。
然后保存退出。
3 驱动配置
驱动补丁包“topeet_modules_step_motor_20190712.tar.gz”和文档放在一起。
补丁包同时也放在网盘链接“iTOP4418&6818开发板资料汇总(不含光盘内容)\iTOP-4418&6818开发板系统源码及镜像(其他)\topeet_modules”目录下的“topeet_modules_step_motor_20190712.tar.gz”下,日期可能会有变化,使用最新日期的压缩包即可。
拷贝到“drivers/char”目录下,使用命令“tar -vxf topeet_modules_step_motor_20190712.tar.gz”解压,如下图所示。
4 linux系统编译和测试
重新编译内核,烧写到开发板,启动开发板,如下图所示。在“/dev”目录下可以看到有设备节点“step_motor_driver”生成。
至此,内核驱动配置完成。这个时候给步进电机上电,会发现四个并排的小灯已经灭了。
Linux-C的测试例程
然后拷贝和本文档一起打包的“iTOP-4418&6818-linuxc-stepmotor_V1.0.zip”压缩包中“step_motor_app”文件到开发板(U盘,tf卡或者nfs都可以)。
作者的系统是最小Linux系统。如果是Android系统,则需要使用“chmod 777 /dev/step_motor_driver”修改权限。
使用命令“./step_motor_app”如下图所示,可以看到有如下提示。
步进电机的测试例程需要传递参数。
第一个参数是R或者L,用于设置步进电机的方向;
第二个参数是步角距,步角距是5.625/64度,4096 个步角距就是360 度,所以这个参数的范围是0-4096,取值4096是一圈,最小建议为10。
第三个参数是转速,建议取值为3000到20000之间,小于3000转速不稳定。
使用命令“./step_motor_app R 4076 3000”,可以看到步进电机在右转,转一圈之后就会停下,“./step_motor_app L 4076 3000”会左转一圈之后停止,用户可以执行测试其它参数。
QtE4.7的测试例程
和本文档一起打包的“iTOP-4418&6818-QtE4.7-step_moter_V1.0”为QtE4.7的测试源码资源包,源码中的“step_moter”为步进电机的编译好的qt4.7程序。
请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”。
开发板烧写QtE4.7系统,将“step_moter”拷贝到开发板,使用命令“./step_moter -qws & ”运行,如下图所示。
以上界面中,参数如下:
Speed:通过改变延时来控制速度,延时越短,转速越快。延时范围:3--20ms。
Num:设置步进数,当值为4096时转一圈。
Direction:设置转动方向。RIGHT为正转,LEFT为反转。
START:设置好后,点击START开始运行。
CLOSE:关闭当前页面。
5 Android4.4系统测试
在Android系统上测试时不用去掉ov5640驱动,需要拷贝步进电机驱动源码到内核目录,详情参考“驱动配置”小节,进入android源码目录,使用命令“vi kernel/arch/arm/plat-s5p6818/topeet/device.c”如下图所示。
搜索“camera_common_vin_setup_io”并port将if 1改为if 0,如下图所示。
然后在使用命令“./build_android.sh”重新编译,然后将内核镜像烧写进开发板。
“iTOP-4418&6818-Android4.4-stepmotortest-V1.0.zip”为Android4.4的测试源码资源包,源码包中的“bin”下的“stepmotortest.apk”为步进电机的编译好的Android4.4程序。
请注意镜像烧写到卡发板上后确认有设备节点,
在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。
最后安装APP,APP运行之后,如下图所示。
速度:通过改变延时来控制速度,速度设置越大,转速越快,但不能设置成20。
步数:设置步进数,当值为4096时转一圈。
方向:设置转动方向。
START:设置好后,点击START开始运行,转轴会转动,模块上的led灯会闪烁,如下图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表