找回密码
 注册
关于网站域名变更的通知
查看: 332|回复: 1
打印 上一主题 下一主题

迅为4412开发板-步进电机-驱动和测试例程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-13 10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
迅为4412开发板-步进电机-驱动和测试例程, O+ T5 |+ T: w3 ]9 f
和本文档配套的资料有:, L" L+ @, c2 S, S
1 内核配置和步进电机驱动补丁包:
$ o8 w- {: k* j# x) X& Htopeet_modules_20190319.tar.gz
  P- ?. U, D) H/ {' m8 v2 linux-C 的测试例程:) A  ^4 ~0 [2 h1 E( _
iTOP-4412-linuxc-stepmotor_V1.0.zip
4 v1 r( f* ^. h' \4 M( M+ k- P3 QtE 的测试例程:
9 C, l, b& ~! ^! R; a, EiTOP-4412-QtE4.7-step_moter_V1.0.tar
. S7 M0 z5 v  E& g0 |# U4 Android 的测试例程:
" F' z6 [! x, w/ c* W+ c5 K# EiTOP-4412-Android4.0-stepmotortest-V1.0.zip/ }/ ]7 F- l% v$ F
请注意,在光盘的内核源码中,没有步进电机的驱动,需要添加步进电机的驱动之后才能使用。步进电机使用的是 camera 接口上的 IO,需要屏蔽掉 camera 驱动。: E0 C2 E. e5 }( h# s5 P
1.硬件连接: E. ^( p  h" m! ?( @1 p
硬件连接分为两个部分,供电和控制线的连接。
! p! C0 f7 e/ z9 D如下图所示,是步进电机的原理图部分。
$ e) A' j- S; e: c
9 c0 x/ G/ {2 x: N" d" X  |4 V端子 j2 可以看出,需要通过排线和开发板的 camera 接口。上图右半部分,可以看出供电可以采用 5v 电源或者 usb 供电的方式。1 \8 X" @5 U( ?9 b! e
排线链接,如下图所示。火牛座和 USB 线供电二选一,如下图所示是 usb 线供电。
/ {% h( x8 f& a' R; ?; n$ f$ n) Q! A% g
这里务必需要注意的是,如果大家使用的是默认的光盘内核镜像,请不要给步进电机上电太长时间。因为步进电机驱动芯片,默认状态是上拉,会导致步进电机处于不正常的状态,会让电机发热。
4 }4 h8 W2 F. `& Y3 f( {/ A需要将步进电机驱动配置完成之后,步进电机驱动在初始化的时,将步进电机的驱动芯片拉低,这样步进电机就会处于准备工作状态,这种状态不会有电流,不会导致步进电机发热!% n" u& ~7 g2 U- |( D& G+ H1 K
2.内核配置和补丁包" \$ e! I6 i- e, a
由硬件部分可知,步进电机使用的是 camera 接口,内核默认状态会编译 camera 驱动,camera 驱动会占用电机用到的四个 GPIO,所以首先需要在内核配置中将 camera 驱动去掉。然后添加驱动补丁包,重新编译内核,烧写到内核中。
8 z; z: o5 U/ y2 }6 a, ]0 S! S8 h2.1 内核配置
8 u: ?, l- e# n# t* e7 [进入内核目录,配置所需要的缺省文件,使用命令“make menuconfig”,如下图所示,进入配置界面。
- B+ F( c3 ]! u1 g, D) t7 \选中“Device Drivers --->”进入。. v7 N, ?0 N8 }" U! o1 |
5 l/ m5 l4 x! F" b. }  z) K
如下图所示,选中“Multimedia support --->”,进到选项中。
2 c( K3 ]3 j' u1 r. t3 d+ {
/ e: q1 {1 I# u如下图所示,进入“Video capture adapters --->”选项。; Z# }9 M4 H- k  M5 z, o

  S" B7 s: v5 J: [7 G5 n8 @) A如下图所示,取消“OmniVision OV5640 sensor support ”,这个是摄像头 ov5640的配置选项。
9 z2 O5 a! W) o5 }5 m2 F" ]% b* T3 K* t5 x' [1 _7 x8 f) c" C3 c. ~: j" K
如上图所示,取消 ov5640 的选项,然后保存退出,得到新的.config 文件。3 E4 h/ B5 Z  u4 J" P
2.2 修改 Makefile 文件
  |- h9 m* Q" H1 m: X然后需要修改 Makefile 文件。3 ]" U' F6 Y) R( }% s
打开“drivers/char/Makefile”文件,如下图所示。
3 B: ?0 B- O* ]; v增加以下代码:
6 v# U( k0 u1 Uobj-y += topeet_modules/
- ]) x) S; N) B, T, b) k2 b( O6 U2 \; B9 y% t' H$ F
然后保存退出。
, I% x% I; `. z( h9 g+ N4 A( W! i2.3 补丁包1 l* G2 P2 W# I) Q6 |
驱动补丁包“topeet_modules_20190319.tar.gz”和文档放在一起。
& M0 b" ~* V! O, e- Y1 d/ W  ^补丁包同时也放在网盘链接“iTOP4412 开发板资料汇总(不含光盘内容)\iTOP-4412开发板系统源码及镜像(其他)\topeet_modules”目录下的“topeet_modules_20190319.tar.gz”下,日期可能会有变化,使用最新日期的压缩包即可。
# K/ k8 O* A0 [# M3 n2 L4 p拷贝到“drivers/char”目录下,使用命令“tar -vxftopeet_modules_20190319.tar.gz”解压,如下图所示。: E1 X; I  D* \% }

3 [, M8 w- B5 r4 U6 ~7 J2 l& G2.4 内核编译和测试
& B) u. K; \" Y' e' T重新编译内核,烧写到开发板,启动开发板,如下图所示。在“/dev”目录下可以看到有设备节点“step_motor_driver”生成。, o2 H. o2 O0 H* U5 S0 Q: s

% f8 n; ~6 {" q) E! k' ~. w至此,内核驱动配置完成。这个时候给步进电机上电,会发现四个并排的小灯已经灭了。
; f3 A! m" p9 _" ~4 N: t) q3.Linux-C 的测试例程6 c# [4 K' z4 X: x9 e
然后拷贝和本文档一起打包的“iTOP-4412-linuxc-stepmotor_V1.0.zip”压缩包中“step_motor_app”文件到开发板(U 盘,tf 卡或者 nfs 都可以)。
3 n" I' H) D4 F9 p% J如下图所示,拷贝到开发板上,作者的系统是最小 Linux 系统。如果是 Android 系统,则需要使用“chmod 777 /dev/step_motor_driver”修改权限。
+ I5 `1 z8 ^+ {) g" n
3 M* c3 W% Z1 F3 g+ G# I2 P  r7 X使用命令“./step_motor_app”如下图所示,可以看到有如下提示。
  s6 H$ x. _/ O2 T, Z+ |- w5 j# {; u7 w9 T: {0 c
步进电机的测试例程需要传递参数。
4 T2 Y$ O- `" q& i; e0 S第一个参数是 R 或者 L,用于设置步进电机的方向;
  ^8 e* N) G% m第二个参数是步角距,步角距是 5.625/64 度,4096 个步角距就是 360 度,所以这个参数的范围是 0-4096,取值 4096 是一圈,最小建议为 10。
$ ~2 t2 ^6 ]& g第三个参数是转速,建议取值为 3000 到 20000 之间,小于 3000 转速不稳定。提供了一个 demon 为“./step_motor_app R 4076 3000”。
- z: W9 q- X* |, w$ p使用命令“./step_motor_app R 4076 3000”,可以看到步进电机在右转,转一圈之后就会停下,“./step_motor_app L 4076 3000”会左转一圈之后停止,用户可以执行测试其它参数。
% F2 K: @+ P- l9 {6 Q5 P
0 Y0 `( z8 A$ J- i8 I4.QtE4.7 的测试例程* F, E$ o  [3 e) k# o
和本文档一起打包的“iTOP-4412-QtE4.7-step_moter_V1.0”为 QtE4.7 的测试源码资源包,源码中的“step_moter”为步进电机的编译好的 qt4.7 程序。. ^/ x8 m. J! X# x
请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”。
- Q6 k0 H* ^; `* v开发板烧写 QtE4.7 系统,将“step_moter”拷贝到开发板,使用命令“./step_moter& ”运行,如下图所示。' `+ L) u0 a( r# b7 t. B6 ~
5 N$ d$ `8 p2 D. v
以上界面中,参数如下:1 B( y5 u6 m. }5 Q: A) b
Speed:通过改变延时来控制速度,延时越短,转速越快。延时范围:3--20ms。
1 L7 j( k  s. A( S. o: A9 Y6 Y1 pNum:设置步进数,当值为 4096 时转一圈。! c* T# `' y9 x2 V
Direction:设置转动方向。RIGHT 为正转,LEFT 为反转。
! o7 ]. z) k( Q/ l2 e8 V7 ESTART:设置好后,点击 START 开始运行。
2 i7 f7 Y  y" x3 f4 ]CLOSE:关闭当前页面。. D( X, ]3 ^$ n$ C9 {  K
5.Android4.0.3 的例程测试
8 V- n: }  G4 }“iTOP-4412-Android4.0-stepmotortest-V1.0.zip”为 Android4.0.3 的测试源码资源包,源码包中的“bin”下的“stepmotortest.apk”为步进电机的编译好的 Android4.0.3 程序。
- K1 @. y+ s" o3 C6 h请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”,如下图所示。
0 t3 L7 j& T2 @& a; [" q5 K
; }) J7 ?& Z) u2 |6 w在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。
& {4 u% I+ h7 }: q: J& d
! r  y/ u% u+ z  W4 C在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。$ ]+ i1 H2 W/ n9 L1 D

! ~  a3 g& i) j+ o0 X7 w速度:通过改变延时来控制速度,速度设置越大,转速越快,但不能设置成 20。/ M9 m4 R7 a1 _4 I* g% }. q9 _: m
步数:设置步进数,当值为 4096 时转一圈。* N$ C# E/ k6 i! l
方向:设置转动方向。
. d1 g5 p# m$ ^6 f# C6 }START:设置好后,点击 START 开始运行。8 [. ^. S* ^3 v3 z# J. z0 {

3 n4 k( O& y; L
  • TA的每日心情
    慵懒
    2020-9-2 15:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2#
    发表于 2020-10-13 18:22 | 只看该作者
    内核配置和步进电机驱动
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-26 13:21 , Processed in 0.093750 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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