狂暴战车 开发环境搭建
" P/ l- Q0 p8 q' f U; g
硬件环境
& @: O/ ?% f. ^3 A; `0 [
主要器件
4 G. L/ I9 `1 v
' t) c9 v- h9 R$ A8 D- 底盘
9 P( |( J& s3 K- g/ H
$ Y$ b2 o) ?# I2 v: F) n

1 o/ ~ s; K8 q6 c0 v/ J9 H
3 V2 y9 {( s ]1 k- 电机
2 c6 O% O8 m+ J- e5 u7 J x4 x
B: d7 T* ?+ z) j# M

8 f7 S# @5 ^' K! p6 x9 b% ?# F
9 T8 ?5 [' R: x* A9 v, ^0 \- 车轮
6 c' B G3 H3 G$ t1 E
; [ C, \% M/ x, i+ T& t! k/ @$ W* j$ a

$ c A* V( @1 f h
" w2 }2 {" h3 s+ K- z& T: Y
- 测速模块
9 R$ t" @: ]" E2 l$ G
$ O/ I/ ]% N$ Z0 c! ?, ]
2 t( n- G- L5 G* `' l
0 P6 {% [1 h. L- ~- g- 电池
) f/ C" r% s* E6 E7 t/ t' C% Q
, m% i* B/ Q7 A" ]6 h- w

5 L1 K( X( J4 h S7 F' E8 j9 a; c% b' u
- 遥控器
( r# g- J: B3 J7 E# A
4 g d+ p! L8 A2 R! D* w5 Z& v
+ K# a; D3 ~0 D T. b( m4 S
- K6 v* c- }0 z3 \8 C- 控制板
8 N6 s: C: n" c5 K
, p4 K5 q4 D7 ]! P8 E* y
8 V# o, W; J, B' L4 j8 ]9 l$ B
清单
9 R6 k7 C+ @( x5 k
, B% X) ?1 T8 r2 Z6 C$ {7 p& j1 X: Z2 d
. _2 ?. |3 \2 i- j9 L0 }2 d- r
类别 | 4 q$ c _( X) d! }5 n. t% k
数量 |
/ @; a4 _ t4 X, |/ {
7 D7 \' H, V) h: P6 p: e; l
1 N) T: j' l9 Z' c! P ^. f8 L$ ^7 Z, y* l9 o) S3 v+ l
+ v" g. Z- G2 [两驱三轮底盘(带电路) |
0 N5 h8 R# I2 [" e: Zx1 | 1 C% C% c) t/ }9 m
& u) i" c0 p: G7 m& S) d
/ t9 C E* h% m- YTT 直流减速电机 | 8 ?+ l% z$ u I$ H* Z
x2 | , E2 `+ s' F# y; _* Z; l
" }( F' W0 Q0 \, p! \, |
2 g, ]3 l/ ?8 @% w( t. Y5 Z
橡胶轮胎( TT 马达专用) |
0 T5 \' S: c# [8 K1 ~2 Xx2 | ! r6 Y. _5 \, ^$ ]0 m: g
8 T% ]( c9 h' y- {$ s, K% K
! \+ x+ `! _0 H; ]- _万向轮 | $ Z: C$ A4 U9 c# c( o
x1 | - z( U$ t0 z( F+ T# \ k
1 l- u6 d+ ] ?- m, t' T5 M
% u* T+ ~" k/ y* h光电编码器 | ; B. V* j5 E! g6 n* x7 g
x2 |
9 b" g* Z0 P+ n
: e n" w0 G* R0 J4 W( M+ K
4 Q+ W w: x. _) [" O# Q5 y码盘 |
/ f* W3 L, y; \: [! G, Z ux2 |
& C0 o @5 A6 v- B, S
: j' ^. D# e" i) i# M3 e: _0 H6 }' D' u) K
充电锂电池 | + m0 d! w4 X0 V
x2 | 2 r7 ?0 l( ]& ]) Y7 ^
7 Y6 f/ H( D7 L% `
! ~8 }( @! O* k* u
ps2 无线手柄 |
& C7 y; i; U. Y! bx1 | ' w9 g: p1 ]0 ~) z4 k# G
6 z( v# a. O4 u O5 ~) x p0 F. |
w# W; J1 _* v- O) k1 Y( }Iot-board | * w6 a! m% J. a# B l$ f
x1 | 9 L3 c3 ?5 ?; E( m3 Y9 v0 h# ?
& ?/ G$ U' B. R- r4 ^0 H. R
4 f" d. ^) }' t G/ k$ O; n
: H2 x+ x7 F5 v2 D4 N/ k
软件环境
1 E5 c0 B- U+ n7 }* `
软件清单
6 n& u' P& d2 V% O* r( e: j
! V+ t$ B9 P3 y9 v: ]4 T2 J/ b
- git
; J$ A/ C" a' A. @! b- env 工具
4 e8 m$ [2 G6 P- mdk5
, r4 N( H3 ]# f: t
- stm32CubeMX
& h$ n. C+ m# a, I" }
- 串口工具
1 O: \) m% U0 h2 C. D
" O1 b6 j3 I* s& K- v
软件安装
8 L) q5 J) a' W" e2 g' fgit
& m) i! b' G! c, l1 x获取 git 安装包: 官网下载链接: https://git-scm.com/downloads
! z4 [% x) E4 o# Y3 `进入后会看到如下页面
7 i& a5 ~4 g0 e+ C( [, }' M: I
0 V/ u; p) _- |9 k$ ^5 ]
在 Downloads 下选择自己使用的系统点击进入,此处我们点击 Windows,会跳转到如下页面
; D4 P* `7 x0 l6 |; H! O
0 X @+ d% q4 k8 {7 B在页面中选择合适的版本(64-bit or 32-bit)点击下载
& I; ~, `6 |, b& c# E; y, @3 \
下载完成后,运行安装包一路 next 即可。
6 ]- b6 R% {2 l% ~+ z8 wenv
$ Y9 Z9 m/ F& O首先下载 env,百度网盘: https://pan.baidu.com/s/1cg28rk#list/path=%2F&parentPath=%2Fsharelink4264488348-570001774340757。
! n6 M5 P# U' f+ u" r* d) Q8 d下载完成后解压到不含有中文字符或空格的目录。至此安装完成。
: `2 e' G8 i2 y: c为了可以在文件夹中通过右键菜单打开 Env 控制台以方便开发 还需要进行一些操作。具体如何操作参考官网文档 Env工具
) f8 Z4 p% J M2 S, I4 s2 |9 Pmdk5
2 t1 w* m3 e9 v/ ]! Y( i% ?
版本5.26。鉴于官网下载需要注册,较为麻烦,此处使用百度网盘下载
' l, F* r0 O& \( C0 z网盘链接: https://pan.baidu.com/s/1zUtqHq8hBdvf1z5S4ZO8Gg" T& A& T3 r+ ?
提取码: 33h8
$ C; Y3 {5 f) A下载完成后,运行安装包,一路 next 即可.
* c; a# j/ }4 |0 i. H
stm32CubeMX
$ ~1 D3 H2 _2 v8 Z. n T% v( R同样鉴于官网下载需要注册,此处使用百度网盘下载
/ O/ g- n$ { j1 w4 b8 u
网盘链接: https://pan.baidu.com/s/1A-CTQDclfSc7qOj-yUKQ2g
z, W1 W1 Y5 [1 A. b8 F4 r% x" ~提取码: 2ftv
" o0 ?6 q7 h9 G) d. M
下载完成后,解压然后进入目录运行安装程序,之后 一路 next 即可.
) T- X7 b) @( Y" q2 T
串口工具
! z, r* v7 Y6 `5 _) X$ e该类工具较多,有多功能的 putty 等软件也有专注的串口助手工具sscom等。软件获取较为简单,此处不再介绍。
: r; k- U0 Q9 E3 y$ m- H
开发
8 ]9 q0 V8 m& l6 ]
I. 建立工程
& [4 R! m; b; X% g/ n7 _1 W" S) J: }
获取 rt-thread
0 l# T4 s" r# z, ]
; X1 s6 H. Z$ W7 `- 百度网盘
* w/ L. y# `4 B# O; i
! a+ ]8 B9 y% L/ y; H2 \
网盘链接: https://pan.baidu.com/s/1mgIAyWo#list/path=%2F
: i1 }+ N5 `! `: }; I* [+ l
! ?# ^ {4 n4 Q7 T v- c, w g! l* [- git
- \) l) b) e& I( s
" `" V$ N' M2 q9 H4 o
先 clone 下来 rt-thread 仓库。 git 命令: "git clone [url]"
# Z3 _8 G3 s8 R) O0 F2 r然后拉取 lts-v3.1.x 分支。 git 命令: "git checkout -b [branch_name] origin/lts-v3.1.x"
2 N0 a8 u; E! Q/ Z

# V, s& ] |, ]" [( I

5 g- y9 Y) |" J+ }9 `生成独立工程
0 y- I! k+ q' |0 K
1。生成。进入到 "bsp/stm32/stm32l475-atk-pandora" 目录下,在该目录下打开 env 工具,执行命令: "scons --dist" 生成独立工程,生成后的工程在 "./dist" 目录中。(ps: 可随意拷贝该工程到任意目录下使用)
: f' Z; E( J7 q. Q- V; H
5 K$ W0 h/ [% J- l1 }
4 D/ ^& X+ R) x2 A2。测试。在工程目录打开 env 工具,使用命令: "scons --target=mdk5" 生成 mdk5 工程。打开 mdk5 工程,编译并下载,可以观察到板载 led 闪烁 或 打开串口可发送命令交互。
5 y5 N4 f4 f! |
II. 外设配置
4 D' Y7 Q# d" X" \
当前 bsp 驱动默认配置并不适用此项目,需要做修改。
9 ]- z9 g1 ?- p* Y3 X& x; ^bsp 驱动配置
, f9 ^. w7 w3 U; X/ K9 G7 L; C0 a
使用 stm32CubeMX 进行配置。
6 u( `# c/ O+ \5 `6 X; Z' a5 k* v# |
/ a L, O i/ R2 ^8 ]4 O+ i9 L& d
- pwm 此处使用 TIM4:PB8,PB9 和 TIM2:PB10,PB11,配置完成后点击 GENERATE CODE 生成代码 (note: 如提示缺失 Firmware 要下载,点击取消然后点击 continue 只生成 SourceCode 即可)
/ S- G% t4 T- W# _
( X% L; V0 P! S6 y6 h7 i2 g. I! v
# m; K) i3 ?2 Q4 X7 [* L注意事项:
6 ?2 ]* I$ r: O% q- @$ l8 G3 e6 G; `1 w* }4 ?* F- F" H; P8 g# L
- 所使用的 Timers 的 Clock Source 需要选取
5 K I p! N8 ^6 |5 }' N) d) D7 o- 默认开启的 TIM4 CH2 没有使用,手动关闭
$ t, A d% a$ W) V; g- 生成代码时如提示缺失 Firware 要下载,点击No,然后在新弹框点击 Continue 只生成 source code 即可
% U- B/ F2 N% O& P1 K. @9 I' d
! d" u& I+ p, v
% Z1 M6 o- _1 p3 A/ r

2 L+ L+ l s4 t& N: ?修改 Kconfig
* V3 t5 \, K( R2 n使用 stm32CubeMX 配置完成后需要对 "board/Kconfig" 做相应修改以便启用配置,修改完成后如下:
7 k% ~5 F2 _+ m2 c0 _/ g$ u