|
|
}" i9 ~, T2 H4 U( S4 D4 Y
@# M8 P! Z3 D" U: P, S# M
经过几次不同搭建方式的尝试,目前这个是最好的,试过双流,可能是功力不够,效果并不好。就当做是一次尝试吧。/ {4 M' Q: n$ S3 w$ k9 B1 n- [, S
先上视频:
; u: B8 T3 _7 I* g6 }4 ~1 w, `, A' g% C, J2 b; S) d7 d- |
5 [9 W! `* P0 x6 H! S. T* Y
$ |; H } i% h4 k* B0 A( }/ e
" v/ }5 G2 D, u3 g8 X" L$ k9 C5 U一块板长81cm,最后肯定是多走了点。咱实话实说,我肯定是挑最好的传上来。不过能从视频中看出我 这个车还是挺稳的,结果不是靠蒙来的。多次测试的结果是3米以后误差在0.5±0.5cm以内吧。$ _3 c6 h, \/ K$ c7 C" Q1 O
5 T' e; @* I7 p# E1 e: F: y
) ]2 k" X: |2 z/ b
1 [& z! y$ v$ C+ z& a: c4 k! O0 L
. V6 e0 V+ _7 W: R5 D3 ]
: P* W" ?) V/ f, [! S1 z, m4 y2 |/ b7 d0 r& Q
结构上没什么好说的,做了一个框架,保证轮子承受的重量均匀的分配到两边。然后就是完全对称,重心尽量在中间。. _' N8 \' y1 x( V1 S0 ^
% ~: f! B2 x* _2 k
程序太长了,我大概讲讲。首先测出轮子直径算出周长,然后算出电机该转多少圈。
4 u @+ n9 C) \) O, r) @按下中键等1秒程序启动,为了避免车启动时受手的影响。然后重置所有传感器。5 h7 I- F, s W
走分成三段,缓加,匀速,缓减速。缓加减根据的是时间,乘以30再加上陀螺仪传感器的数值,就是电机的转速。
7 ]4 P* B6 r+ @* ~6 N当电机速度大于50时跳出循环执行匀速程序,同时记录电机已经转的圈数。理论上加速和减速走的距离是一样的,所以我们用应走圈数减去加速时走的圈数,就是执行减速时的圈数节点。不过为了避免误差,我让其多走了一圈。随后跳出匀速程序,之后就是减速了。这里只用了PID中的P,感觉已经够用了。$ q5 N* O3 H# Z. Q7 t
( i9 f- V; m' |4 O5 h: y; I; O: a' e+ Z; f1 Y5 `4 K
最后附上程序,仅供参考吧
tg.ev3
(29.49 KB, 下载次数: 465)
3 _; _$ V/ x9 g3 t' w2 W" X
/ v2 R' F0 c+ W, E( t( G4 O |
|