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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
迅为4412开发板-步进电机-驱动和测试例程
& y0 a' L& i- c& ^8 Z, f1 D- L和本文档配套的资料有:
2 i" M; _0 _0 l8 w2 y: ^, S+ i9 K1 内核配置和步进电机驱动补丁包:
/ ?4 A7 s5 k3 G+ ?4 B# Utopeet_modules_20190319.tar.gz; n$ Q9 f7 G* x' p
2 linux-C 的测试例程:
% _8 Y1 w8 d1 O/ |! K4 KiTOP-4412-linuxc-stepmotor_V1.0.zip
) y: v4 r$ P8 q. M8 e8 `3 QtE 的测试例程:
; N1 N* @& g' p! oiTOP-4412-QtE4.7-step_moter_V1.0.tar
) w, M) v4 T; r& D4 u4 Android 的测试例程:
; `* \: G% |. z. \3 l. }iTOP-4412-Android4.0-stepmotortest-V1.0.zip
; a2 a9 K3 X$ a7 v8 u请注意,在光盘的内核源码中,没有步进电机的驱动,需要添加步进电机的驱动之后才能使用。步进电机使用的是 camera 接口上的 IO,需要屏蔽掉 camera 驱动。) f/ [' n) _/ W8 K& H
1.硬件连接9 H8 H0 G) k  u. B: M8 n: t7 X
硬件连接分为两个部分,供电和控制线的连接。0 M' `3 Z4 R2 u. V
如下图所示,是步进电机的原理图部分。9 [) k8 q1 N9 a: y9 M

8 j& V$ \( ~- |3 Y% o" N- ]端子 j2 可以看出,需要通过排线和开发板的 camera 接口。上图右半部分,可以看出供电可以采用 5v 电源或者 usb 供电的方式。8 [; j) _+ N/ N9 h. s
排线链接,如下图所示。火牛座和 USB 线供电二选一,如下图所示是 usb 线供电。
" h( b8 ?2 ]: M0 h' ^
% m% W8 w4 D  F" u* M这里务必需要注意的是,如果大家使用的是默认的光盘内核镜像,请不要给步进电机上电太长时间。因为步进电机驱动芯片,默认状态是上拉,会导致步进电机处于不正常的状态,会让电机发热。
6 o6 A& l' ~7 @1 ?; u需要将步进电机驱动配置完成之后,步进电机驱动在初始化的时,将步进电机的驱动芯片拉低,这样步进电机就会处于准备工作状态,这种状态不会有电流,不会导致步进电机发热!
* ^5 I4 L7 R( u  M& D2.内核配置和补丁包
. A  r  d; q( M( d  C9 S( i1 s5 v由硬件部分可知,步进电机使用的是 camera 接口,内核默认状态会编译 camera 驱动,camera 驱动会占用电机用到的四个 GPIO,所以首先需要在内核配置中将 camera 驱动去掉。然后添加驱动补丁包,重新编译内核,烧写到内核中。
! x/ _6 L5 U" E2 k- O6 ]+ b& ~2.1 内核配置
: K4 n9 L7 k- O9 A, X进入内核目录,配置所需要的缺省文件,使用命令“make menuconfig”,如下图所示,进入配置界面。
. t- q+ [4 W0 y3 F1 b2 t选中“Device Drivers --->”进入。
" f0 ?: ]5 a* Z1 o+ E; j
$ i1 w" C! \, s; B# F" K. a7 u如下图所示,选中“Multimedia support --->”,进到选项中。% b4 ~. g, S1 T$ N' i# B

  p& p" A6 y- `* c6 j如下图所示,进入“Video capture adapters --->”选项。& i* A# j- J. n7 b

4 w+ N2 v) E, ?( l- g, f如下图所示,取消“OmniVision OV5640 sensor support ”,这个是摄像头 ov5640的配置选项。
2 _2 f' W- c! p5 h& Y1 ^  h
% M# z3 \8 V" b7 o  x7 S如上图所示,取消 ov5640 的选项,然后保存退出,得到新的.config 文件。
5 E4 v7 F. u+ R8 A- D9 F2.2 修改 Makefile 文件
  [0 d6 V# a' K. D' p. p1 O: k/ k+ c然后需要修改 Makefile 文件。
" `5 G$ z9 ?0 l9 a3 ]0 U: |/ v打开“drivers/char/Makefile”文件,如下图所示。0 H  j$ D/ [; E3 A5 ?
增加以下代码:0 `; l  x. i, E/ N2 ~+ q: ?. ?
obj-y += topeet_modules/
( E6 v2 x& T; y
* R9 [/ i1 n# e. f. {+ b然后保存退出。
+ w& c/ ?% V: A; p6 G# t2.3 补丁包
8 N) b; G1 e; R, r. o驱动补丁包“topeet_modules_20190319.tar.gz”和文档放在一起。
& h) @7 G5 C. P& T补丁包同时也放在网盘链接“iTOP4412 开发板资料汇总(不含光盘内容)\iTOP-4412开发板系统源码及镜像(其他)\topeet_modules”目录下的“topeet_modules_20190319.tar.gz”下,日期可能会有变化,使用最新日期的压缩包即可。
" z8 {' u' N1 w9 P: |拷贝到“drivers/char”目录下,使用命令“tar -vxftopeet_modules_20190319.tar.gz”解压,如下图所示。3 R& M4 f* ~7 V2 H- u( U
3 O5 V: s( J' p
2.4 内核编译和测试
  e3 J0 S* m1 G: G$ o重新编译内核,烧写到开发板,启动开发板,如下图所示。在“/dev”目录下可以看到有设备节点“step_motor_driver”生成。4 j' b6 e# f0 n( V; V
- `7 ]4 X, ~5 b$ J# {
至此,内核驱动配置完成。这个时候给步进电机上电,会发现四个并排的小灯已经灭了。
2 t7 t3 ?5 s: z3.Linux-C 的测试例程
: D+ Z+ x) y; M9 F6 D然后拷贝和本文档一起打包的“iTOP-4412-linuxc-stepmotor_V1.0.zip”压缩包中“step_motor_app”文件到开发板(U 盘,tf 卡或者 nfs 都可以)。
) r! p- X* e$ c4 u如下图所示,拷贝到开发板上,作者的系统是最小 Linux 系统。如果是 Android 系统,则需要使用“chmod 777 /dev/step_motor_driver”修改权限。6 h) c' N. a( z$ l* n. O" z& L. @. w

: a% A1 v3 t+ z! ^; M使用命令“./step_motor_app”如下图所示,可以看到有如下提示。
5 n1 a; w3 R2 ]; k, N9 k7 y* k! P2 ?' D
步进电机的测试例程需要传递参数。
9 N- e) n: N: k第一个参数是 R 或者 L,用于设置步进电机的方向;
" v( g2 V# D" f# {第二个参数是步角距,步角距是 5.625/64 度,4096 个步角距就是 360 度,所以这个参数的范围是 0-4096,取值 4096 是一圈,最小建议为 10。
5 Y- e/ L' N; q+ D6 f第三个参数是转速,建议取值为 3000 到 20000 之间,小于 3000 转速不稳定。提供了一个 demon 为“./step_motor_app R 4076 3000”。3 K* _# z" X# x5 q( p
使用命令“./step_motor_app R 4076 3000”,可以看到步进电机在右转,转一圈之后就会停下,“./step_motor_app L 4076 3000”会左转一圈之后停止,用户可以执行测试其它参数。0 {* n( q7 y+ @/ m$ c6 @) O" H5 y

% k% b* ], u! C$ ^! o( G4.QtE4.7 的测试例程
# I5 h  C' [" p4 A和本文档一起打包的“iTOP-4412-QtE4.7-step_moter_V1.0”为 QtE4.7 的测试源码资源包,源码中的“step_moter”为步进电机的编译好的 qt4.7 程序。
# E6 P1 c6 k' h/ \* N请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”。3 _  q4 T0 Z; u( ~
开发板烧写 QtE4.7 系统,将“step_moter”拷贝到开发板,使用命令“./step_moter& ”运行,如下图所示。
! k, M6 ~- b0 R5 w2 O9 X; W- L* l- ]9 K- v3 h! E
以上界面中,参数如下:
8 m  [. b! ^5 Q8 x( WSpeed:通过改变延时来控制速度,延时越短,转速越快。延时范围:3--20ms。
' @, `7 w; v" A  K) G) k$ LNum:设置步进数,当值为 4096 时转一圈。
7 U+ R; h, o# e' I9 uDirection:设置转动方向。RIGHT 为正转,LEFT 为反转。
! o4 b4 W4 n- I* R; vSTART:设置好后,点击 START 开始运行。( q. a0 n" O- ?' {6 @# k
CLOSE:关闭当前页面。
; m" Q( L: y. z  ^, Y5.Android4.0.3 的例程测试
; y* ?& J8 S, K/ i# |“iTOP-4412-Android4.0-stepmotortest-V1.0.zip”为 Android4.0.3 的测试源码资源包,源码包中的“bin”下的“stepmotortest.apk”为步进电机的编译好的 Android4.0.3 程序。  U( C' e$ u, {6 n' T
请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”,如下图所示。5 }- g/ v- [$ b5 T4 P. t5 w

8 E" a6 R& r+ Q/ ?- G/ S2 H在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。
2 A! w( a: e5 r3 R0 U
1 x9 K; K4 G7 V, t) s: p. W$ y在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。; f  t6 o9 j( C+ z; E

2 P- l' y# X1 j+ V# @8 u$ Z4 \速度:通过改变延时来控制速度,速度设置越大,转速越快,但不能设置成 20。
+ V; W* W1 u' u. g% l! f0 t步数:设置步进数,当值为 4096 时转一圈。% V  X  i9 G6 e6 q8 g8 v
方向:设置转动方向。' n5 n; \* }  [- R
START:设置好后,点击 START 开始运行。) N0 H  I% w* p- h; U7 ]; p' L9 `, h

8 S+ s+ i; @  A% |, z! W& r
  • 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-11-24 20:50 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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