|
|
2 m; ?8 H! Y/ K( j' l
) T( Q* Z' k+ J9 s经过几次不同搭建方式的尝试,目前这个是最好的,试过双流,可能是功力不够,效果并不好。就当做是一次尝试吧。- z' ]+ {1 _; L& Y p3 z8 T& e" o4 u
先上视频:
/ G' @- k6 f# Z, F3 o
8 J( \6 p& C4 r7 I( g; y. O8 Z9 s1 q
; {4 t5 G3 M* y
7 X7 R! ? O+ l9 y# G6 q2 s5 ?
X, u, V* l8 B/ F$ c一块板长81cm,最后肯定是多走了点。咱实话实说,我肯定是挑最好的传上来。不过能从视频中看出我 这个车还是挺稳的,结果不是靠蒙来的。多次测试的结果是3米以后误差在0.5±0.5cm以内吧。
' Y) _1 s, c. ?
& Y: c# Z% o! I) P. |. q7 v" v' L4 s8 j' t0 h
/ W. x/ p( U( a$ g, J
& I+ p: K9 ^! F( R+ D1 }* q* r
+ x, l! T; Y! H3 ?8 n2 C, k5 G# L8 R' n4 f
结构上没什么好说的,做了一个框架,保证轮子承受的重量均匀的分配到两边。然后就是完全对称,重心尽量在中间。
4 M! P) z3 W% g" w6 P% ^
5 p) |" i% C% G; E! S
程序太长了,我大概讲讲。首先测出轮子直径算出周长,然后算出电机该转多少圈。
, ?/ h3 k z5 G$ h* N+ R, k9 M按下中键等1秒程序启动,为了避免车启动时受手的影响。然后重置所有传感器。
+ B( m {2 J, R- t3 \8 i走分成三段,缓加,匀速,缓减速。缓加减根据的是时间,乘以30再加上陀螺仪传感器的数值,就是电机的转速。
) w( o6 I# V* Y& \& H6 K0 c; W- G当电机速度大于50时跳出循环执行匀速程序,同时记录电机已经转的圈数。理论上加速和减速走的距离是一样的,所以我们用应走圈数减去加速时走的圈数,就是执行减速时的圈数节点。不过为了避免误差,我让其多走了一圈。随后跳出匀速程序,之后就是减速了。这里只用了PID中的P,感觉已经够用了。
8 X, |8 T. x1 R) |& |9 X6 i! N8 ]$ Y# ?) ^5 S6 c
! ^8 R; Q0 J3 N- ` p最后附上程序,仅供参考吧
tg.ev3
(29.49 KB, 下载次数: 466)
& V+ h9 j- b' Y1 X) o( e4 L
( i, @, C, {- F% b& [ |
|