/ F4 B4 F' B2 {$ _ 一种利用超声波传感器检测和避障的系统
描述 来自传感器的数据将分四路发送到RC遥控器,RC遥控器在IL9341显示器上显示周围环境。
接收器 它有一个由arduino mini、mpu6050 (gy87)和nrf24模块组成的接收器,。它可以接收,也可以发送。( a6 r* }5 o0 | 这将用于将来自mpu6050和HC-sr04s的数据发送回遥控器,并在那里显示。: D9 _# e- k! j$ ]4 b6 X5 Q 7 p5 l( Z: J& {) a5 M
遥控器/ h" J. q9 L m* u2 }/ Z( J3 w* u 它由STM32f103、NRF24模块和ili9341显示器组成。 数据在这里被处理,周围环境的图像将被绘制出来。 此外,这些数据还可用于控制四轮车并避免障碍物。3 Q! @6 Y& y4 y( @/ G 8 S/ g/ g2 Y' C/ q6 V; M 遥控器演示 我在读取超声波传感器数值时遇到了相当大的困难。我怀疑可能是螺旋桨的影响。 % ^" h# K5 L; Y" h, \ V 经过一次测试,我需要重新画板,看看如何准确地读出离地面的距离。
组件 1 × zmr250四轴飞行器框架 1 × cc3d飞行控制器 1 × arduino mini9 b8 Q$ B: O( i5 Z8 d0 d 1 × stm32f103- c2 T' T3 S& v9 e M 2 × nrf24模块 P+ \2 T9 G; l" |0 i 1 × 锂电池3s 2200毫安 1 × 锂电池1s 1500毫安 1 × RC遥控器外壳 1 × ili9341显示器320 x240; b) }$ x* U. I: p8 ^; M4 [' v8 `. w 2 × 3.3v稳压 1 × 按键,导线,洞洞板 5 × HC-sr04 ( Q3 T$ I0 l, C1 v) j3 j X 首次飞行0 ~' U( s4 j+ G5 @$ w# T 第一次飞行出了很多问题,因为一个int数值的向下溢出,导致油门从0降到255,当我把操纵杆降到很低的时候,四轴自行起飞。 几个小时后,我终于修复了错误的代码,四轴也终于又可以操纵了,没有任何问题。 ! ?) c g4 c5 e8 e 我添加了一个菜单,可以精确控制离障碍物的距离、前后俯仰的时间、扫描间隔和接收器上检测碰撞后的前后俯仰值等,当然还可以远程关闭和打开。! `: u* v. W& p 现在我终于可以测试碰撞检测是如何工作的。它有间歇性工作,它会将四轴的高度设定为一个设定值,使其稍微远离障碍物。但是超声波传感器很难正确检测到它。 超声波传感器的位置似乎并不理想,因为可能有些波,会从四轴的底部反弹。 . ? p1 t/ G% o( D 更多的测试$ x5 m9 z- `; f* \ 经过几次飞行后,很明显超声波传感器有问题。+ J) E, B* p9 P& M S* D 它们在地面上工作良好,但是在空中,随着螺旋桨旋转,很难检测到任何东西。这可能是由四轴飞行时产生的噪音和气压引起的。 经过一点研究,我找到了这篇论文" N1 _# q! R. J1 ?* D r+ w * y; [* q$ u- A$ \ q4 p' m1 n 这证实了我的猜测。7 i# O) f6 v2 ]! b- t" I 所以有点失望,我在ebay上买了一个准确的红外距离传感器,希望它不会有同样的问题。2 s- u6 _6 {9 i4 c, h 7 b2 v% ^! m2 ^9 \ 我还刚刚收到了rf24接收器,现在他能从传感器发回数据, 这样明天我就可以更准确地看到问题开始出现的地点和时间。我一直想为四轴增加一个电池监视器。 q: H( B7 c: w$ ] 这样就能看见控制器上的电池状态,这样你就能准确地知道你还剩多少电,而不必依赖这些烦人的电池蜂鸣器。 详细查看超声波传感器 视频演示 3 e: a/ `4 d" {5 J0 | 初步结果 我在我的控制器上增加了一个绘图功能,这样我可以在飞行时看到输出。, ?7 c+ \3 Z; q/ n& g, n 这样做,我发现超声波传感器只能探测地板上0 - 25厘米的距离。草地上更糟。 再往上,螺旋桨的噪音影响就太大了。现在我最多可以在20厘米的高度工作。! }4 y. }# b% _# w" z$ g 当达到指定高度时,四轴通过将油门降低到控制器上的指定值来保持高度。2 l- k6 D* U9 T/ j. Q 这只是一个粗略的比例控制器。一个合适的PID控制会效果更好,但是现在传感器问题必须首先解决。
PPS :每秒发送的数据包,RCV接收的传感器值以厘米为单位5 D9 M" {# a2 X- q; b |
| 很不错。 |
|
666无人机政策出来了" k6 C" O8 I; G3 T |
微信公众号
手机版