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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
迅为4412开发板-步进电机-驱动和测试例程6 i6 G* r. x% T# ?  ]
和本文档配套的资料有:
: J+ ]. K5 z4 I; ~$ a, A1 内核配置和步进电机驱动补丁包:
. }) ~- |% ?1 L: K5 T) Etopeet_modules_20190319.tar.gz
& J6 U& U$ ?$ }. s( s: O! K: n2 linux-C 的测试例程:; P; J; R2 x8 k8 A' D# q, y
iTOP-4412-linuxc-stepmotor_V1.0.zip& F6 y' [8 G: j2 ?3 L
3 QtE 的测试例程:
( G6 |8 i- D5 k6 b  @$ biTOP-4412-QtE4.7-step_moter_V1.0.tar# y+ q2 e. y; I9 I1 i: ^
4 Android 的测试例程:) P& |) s9 C" C$ W" N  @! b$ H$ D- X
iTOP-4412-Android4.0-stepmotortest-V1.0.zip  O" t) V3 Q0 e1 L( U0 R
请注意,在光盘的内核源码中,没有步进电机的驱动,需要添加步进电机的驱动之后才能使用。步进电机使用的是 camera 接口上的 IO,需要屏蔽掉 camera 驱动。
: J# v5 l: W7 ?# h6 ]1.硬件连接: g6 o7 X" X- S/ u
硬件连接分为两个部分,供电和控制线的连接。6 f+ Z7 B1 n0 b* l7 E' [( _( e
如下图所示,是步进电机的原理图部分。
* a) o2 J. r+ W, d
% M4 A! B  l2 ?  n6 P* ~7 c* L端子 j2 可以看出,需要通过排线和开发板的 camera 接口。上图右半部分,可以看出供电可以采用 5v 电源或者 usb 供电的方式。
. M' ]. }& q2 h4 F3 t) ~: n* x排线链接,如下图所示。火牛座和 USB 线供电二选一,如下图所示是 usb 线供电。0 s1 i/ h# B3 y" B; i
' U2 o1 P0 N5 ~/ m7 W
这里务必需要注意的是,如果大家使用的是默认的光盘内核镜像,请不要给步进电机上电太长时间。因为步进电机驱动芯片,默认状态是上拉,会导致步进电机处于不正常的状态,会让电机发热。8 o- e# S2 [2 i% i7 d8 }) P0 E5 e
需要将步进电机驱动配置完成之后,步进电机驱动在初始化的时,将步进电机的驱动芯片拉低,这样步进电机就会处于准备工作状态,这种状态不会有电流,不会导致步进电机发热!# D& ~) X7 b3 d1 X! D8 g
2.内核配置和补丁包
" ]0 R0 N+ ~/ ]8 \5 s  o3 _由硬件部分可知,步进电机使用的是 camera 接口,内核默认状态会编译 camera 驱动,camera 驱动会占用电机用到的四个 GPIO,所以首先需要在内核配置中将 camera 驱动去掉。然后添加驱动补丁包,重新编译内核,烧写到内核中。5 Q# Z9 l" \8 i7 a( D9 Z; P
2.1 内核配置. L2 R: d, Z& @/ O7 A# y  V
进入内核目录,配置所需要的缺省文件,使用命令“make menuconfig”,如下图所示,进入配置界面。
- L% x) p) v- ]% e选中“Device Drivers --->”进入。8 |1 d: u$ [6 H8 z3 K2 b" Q/ X

3 c, _" o' W1 d: j1 h/ V/ e如下图所示,选中“Multimedia support --->”,进到选项中。; @+ E9 m2 H5 y' ~7 p
2 d1 Z5 F" [1 I" {4 t# k
如下图所示,进入“Video capture adapters --->”选项。
' ^9 g( B1 s3 z- f/ A# k5 i# q  S) b
如下图所示,取消“OmniVision OV5640 sensor support ”,这个是摄像头 ov5640的配置选项。/ h; Z. G+ m& G1 p  Z

! {( l& c1 \1 f! l如上图所示,取消 ov5640 的选项,然后保存退出,得到新的.config 文件。
  @( ~) E, s/ N& W) E! ]2.2 修改 Makefile 文件; r/ K+ U+ R4 g( ~" d' Q
然后需要修改 Makefile 文件。) ]! e, X' T! x6 q( |4 H& ]' {6 ~
打开“drivers/char/Makefile”文件,如下图所示。
1 a0 C1 ]0 }! `% D- x: ~增加以下代码:+ j" S& B4 C1 R) @1 t6 a8 B/ d" v" K
obj-y += topeet_modules/4 k/ V4 l+ d& B

0 e- h! c% W7 }  E( D  [然后保存退出。
: b0 l) o# d$ ]% i: v) D4 M8 N2.3 补丁包+ u2 h( a$ A% I& W% w. p, z8 o* `
驱动补丁包“topeet_modules_20190319.tar.gz”和文档放在一起。& M. k' Y& }/ p4 K0 ^
补丁包同时也放在网盘链接“iTOP4412 开发板资料汇总(不含光盘内容)\iTOP-4412开发板系统源码及镜像(其他)\topeet_modules”目录下的“topeet_modules_20190319.tar.gz”下,日期可能会有变化,使用最新日期的压缩包即可。! ?' B+ y6 P6 I8 w0 p' f
拷贝到“drivers/char”目录下,使用命令“tar -vxftopeet_modules_20190319.tar.gz”解压,如下图所示。! A2 B5 m; m1 C& Z

0 c& b! c1 E- h) Y! x7 u2.4 内核编译和测试' W5 H% v6 c6 k( o; M! w
重新编译内核,烧写到开发板,启动开发板,如下图所示。在“/dev”目录下可以看到有设备节点“step_motor_driver”生成。9 E2 c- c, v5 f
% }# {$ s8 J3 e  o6 E8 g4 u
至此,内核驱动配置完成。这个时候给步进电机上电,会发现四个并排的小灯已经灭了。
% b% `, `/ N: k' z; E8 P3.Linux-C 的测试例程
1 E6 s8 A  N3 G) ?: e然后拷贝和本文档一起打包的“iTOP-4412-linuxc-stepmotor_V1.0.zip”压缩包中“step_motor_app”文件到开发板(U 盘,tf 卡或者 nfs 都可以)。
, n5 K  g( M6 {* H9 P如下图所示,拷贝到开发板上,作者的系统是最小 Linux 系统。如果是 Android 系统,则需要使用“chmod 777 /dev/step_motor_driver”修改权限。- ]. w. G% d4 M* W% p; @8 C

/ `7 W' o  H- z+ B, O( X, S使用命令“./step_motor_app”如下图所示,可以看到有如下提示。8 N+ W3 |! U4 v! n

2 \, u! n% {! n: f. n步进电机的测试例程需要传递参数。# E# V9 Z; A- x9 G% r( ^, J1 J
第一个参数是 R 或者 L,用于设置步进电机的方向;( c1 Z2 r- Y) e' g3 @5 a8 p) q3 O
第二个参数是步角距,步角距是 5.625/64 度,4096 个步角距就是 360 度,所以这个参数的范围是 0-4096,取值 4096 是一圈,最小建议为 10。' o  m. S) U9 E# x1 \/ t: ]- j& F
第三个参数是转速,建议取值为 3000 到 20000 之间,小于 3000 转速不稳定。提供了一个 demon 为“./step_motor_app R 4076 3000”。
3 T0 D, h2 M7 i8 D$ c/ h使用命令“./step_motor_app R 4076 3000”,可以看到步进电机在右转,转一圈之后就会停下,“./step_motor_app L 4076 3000”会左转一圈之后停止,用户可以执行测试其它参数。: k! j! V* {- K* f6 w5 F

" W$ d1 K8 K- u9 V1 ^2 _3 i4.QtE4.7 的测试例程
3 ^% B6 N& R( t7 G; T和本文档一起打包的“iTOP-4412-QtE4.7-step_moter_V1.0”为 QtE4.7 的测试源码资源包,源码中的“step_moter”为步进电机的编译好的 qt4.7 程序。1 z8 h: A2 n- {1 e5 Z
请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”。( X0 g9 \7 Y9 e4 P, I
开发板烧写 QtE4.7 系统,将“step_moter”拷贝到开发板,使用命令“./step_moter& ”运行,如下图所示。
! u* s' {9 S6 ?' Z! ^
  y2 C9 J( m4 P8 }以上界面中,参数如下:# ~# d) V1 Z) h6 v" P( `
Speed:通过改变延时来控制速度,延时越短,转速越快。延时范围:3--20ms。
7 e/ z- U" H# u  \4 ^' O9 iNum:设置步进数,当值为 4096 时转一圈。
- U! G3 a8 c5 z0 YDirection:设置转动方向。RIGHT 为正转,LEFT 为反转。) z; H. m' E; G
START:设置好后,点击 START 开始运行。1 i# x. z& s# B6 p3 _
CLOSE:关闭当前页面。& H' f: v/ J5 C- z
5.Android4.0.3 的例程测试
4 |& _( t9 E- `8 K) O2 s- z“iTOP-4412-Android4.0-stepmotortest-V1.0.zip”为 Android4.0.3 的测试源码资源包,源码包中的“bin”下的“stepmotortest.apk”为步进电机的编译好的 Android4.0.3 程序。
3 f! P( ?$ M0 M; J3 T请注意,需要参考本文档第二小节,先配置内核驱动,确认有设备节点“/dev/step_motor_driver”,如下图所示。
9 M  T4 r9 \. D( k" K" F' Q- m4 e3 K' X- ^( h* }
在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。
1 n$ j4 O8 _6 M8 W/ Y/ c/ D( n5 J% q& {. ^7 Z8 @, ~
在控制台输入命令“chmod 777 /dev/step_motor_driver”修改权限。; P$ C5 V2 E8 e6 M
2 ]8 v; o' S! z
速度:通过改变延时来控制速度,速度设置越大,转速越快,但不能设置成 20。2 U' m# d% e, }/ c! h0 ^
步数:设置步进数,当值为 4096 时转一圈。5 P% P3 ~* B6 s+ \; Z
方向:设置转动方向。7 P) Y0 u) Q6 b' ~% @
START:设置好后,点击 START 开始运行。
* x9 J9 G/ f8 ^7 L/ E/ G! P; i/ ?
  • 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 21:06 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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