智能车制作

 找回密码
 注册

扫一扫,访问微社区

STM32论坛
查看: 10087|回复: 4
打印 上一主题 下一主题

STM32小车避障程序代码

[复制链接]

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85804

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56900
贡献
17334
兑换币
13112
注册时间
2007-6-8
在线时间
5785 小时
跳转到指定楼层
1#
发表于 2012-3-8 20:51:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. /*
  2. u16 LeftDistance, RightDistance;
  3. ili9320_DisplayStringLine(Line12, " Measure Distance ",Blue,Green);
  4. AODistance = Measure_Start();
  5. if((AODistance > 20) && (car_state == 0 )) //距离障碍大于25cm
  6. {
  7. car_state = 1; //为1表示小车直行
  8. Send_Motor_Data[0] = 0x08; //小车直行
  9. Send_Motor_Data[1] = AO_Speed;
  10. Transmit_Data(0xFB);
  11. }
  12. if(AODistance <= 20 ) //距离障碍小于等于25cm
  13. {
  14. car_state = 0; //为0表示小车即将进入非直线状态
  15. Send_Motor_Data[0] = 0x10; //停车
  16. Transmit_Data(0xFB);
  17. Steer_Corner(90, 0); //舵机左转到90度
  18. Delay_ms(1000);
  19. LeftDistance = Measure_Start(); //测量左方距离
  20. Steer_Corner(90, 1); //舵机右转到90度
  21. Delay_ms(1000);
  22. RightDistance = Measure_Start(); //测量右方距离
  23. Delay_ms(1000);
  24. if(LeftDistance > 40 )
  25. {
  26. Send_Motor_Data[0] = 0x41;
  27. Send_Motor_Data[1] = 0x5A; //左转90度
  28. Transmit_Data(0xFB);
  29. Delay_ms(500);
  30. Delay_ms(1000); //等待小车转好弯
  31. Send_Motor_Data[0] = 0x08; //小车直行
  32. Send_Motor_Data[1] = AO_Speed;
  33. Transmit_Data(0xFB);
  34. while(Measure_Start() < 40)
  35. {
  36. Steer_Corner(0, 1);
  37. Delay_ms(700);
  38. if(Measure_Start() < 20) break;
  39. Steer_Corner(90, 1);
  40. Delay_ms(700);
  41. }
  42. if(Measure_Start() < 20) //没有路可走
  43. {
  44. LeftNoWay = 1; //左方没有路可走
  45. Send_Motor_Data[0] = 0x41; //小车左转180度
  46. Send_Motor_Data[1] = 0xB4;
  47. Transmit_Data(0xFB);
  48. Steer_Corner(90, 0); //舵机左转90度
  49. Delay_ms(1000);
  50. Delay_ms(1000);
  51. }
  52. if(Measure_Start() >= 40) //找到了路可以过去
  53. {
  54. Steer_Corner(0, 1);
  55. Delay_ms(500); //等待一段时间直至间距可容小车通过
  56. Send_Motor_Data[0] = 0x61; //右转90度
  57. Send_Motor_Data[1] = 0x5A;
  58. Transmit_Data(0xFB);
  59. Delay_ms(1000);
  60. Delay_ms(500);
  61. }
  62. }
  63. if(LeftDistance <= 40)
  64. {
  65. LeftNoWay = 1; //小车左方没有路
  66. Send_Motor_Data[0] = 0x61; //小车右转90度
  67. Send_Motor_Data[1] = 0x5A;
  68. Transmit_Data(0xFB);
  69. Steer_Corner(90, 0); //舵机左转90度
  70. Delay_ms(500);
  71. Delay_ms(1000);
  72. }
  73. if((RightDistance > 40) && (LeftNoWay == 1)) //小车向右运动
  74. {
  75. Send_Motor_Data[0] = 0x08; //小车直行
  76. Send_Motor_Data[1] = AO_Speed;
  77. Transmit_Data(0xFB);
  78. while(Measure_Start() < 40)
  79. {
  80. Steer_Corner(0, 1);
  81. Delay_ms(700);
  82. if(Measure_Start() < 20) break;
  83. Steer_Corner(90, 0);
  84. Delay_ms(700);
  85. }
  86. if(Measure_Start() < 20 ) //没有路可走 此时也说明这是一个没有间隙的障碍,不可过去,停车
  87. {
  88. Send_Motor_Data[0] = 0x10; //停车
  89. Transmit_Data(0xFB);
  90. TIM_Cmd(TIM2, DISABLE); //关闭定时器
  91. return; //返回主函数
  92. }
  93. if(Measure_Start() >= 40) //找到了路可以过去
  94. {
  95. Steer_Corner(0, 1); //舵机归位
  96. Delay_ms(500); //等待一段时间直至间距可容小车通过
  97. Send_Motor_Data[0] = 0x41; //左转90度
  98. Send_Motor_Data[1] = 0x5A;
  99. Transmit_Data(0xFB);
  100. Delay_ms(500);
  101. Delay_ms(1000);
  102. }
  103. }
  104. if((RightDistance <= 40) && (LeftNoWay == 1) ) //无路可走
  105. {
  106. Send_Motor_Data[0] = 0x10; //停车
  107. Transmit_Data(0xFB);
  108. TIM_Cmd(TIM2, DISABLE); //关闭定时器
  109. return; //返回主函数
  110. }
  111. } */
复制代码

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
26
威望
24
贡献
2
兑换币
3
注册时间
2014-10-6
在线时间
0 小时
毕业学校
太原
4#
发表于 2014-10-6 18:17:06 | 只看该作者
能不能再完整点
回复 支持 反对

使用道具 举报

1

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
QQ
威望
143
贡献
66
兑换币
36
注册时间
2012-10-23
在线时间
21 小时
3#
发表于 2012-10-28 13:31:59 | 只看该作者
多谢楼主分享!
回复 支持 反对

使用道具 举报

9

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1624
QQ
威望
941
贡献
355
兑换币
8
注册时间
2011-10-25
在线时间
164 小时
2#
发表于 2012-9-9 21:59:31 | 只看该作者
可以用使stm32参加飞思卡尔比赛?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 04:18 , Processed in 0.050595 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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