当前位置:   article > 正文

基于stm32的巡线避障智能小车设计_蓝牙智能巡线小车

蓝牙智能巡线小车

一、任务简述

主要介绍了一种采用四轮驱动的智能小车的设计方法,并对其进行了实验研究,各模块将采集到的相关数据传送至STM32控制器,之后利用红外传感器和超声波传感器进行实时检测路面状况,对数据进行分析、处理,可实现路径规划、实时避障等功能。本设计的创新点在于:通过运用红外传感器,实现指定路线的巡线避障。

关键词:STM32;STM32F103C8T6核心板;红外传感器;巡航避障

二、说明书目录

摘要

ABSTRACT

1. 绪论

1.1 智能小车的开发背景和意义:

1.2 国内外研究现状

第2章 硬件设计

2.1智能小车的单片机主控模块

2.2 智能小车的电机驱动模块

2.3蓝牙串口电路设计

2.4复位电路设计

2.5 智能小车的电源电路模块

2.6 智能小车的红外循迹模块

2.7 智能小车的红外避障模块

2.8 舵机的设计

第3章  软件设计

3.1智能小车的循迹模块程序的设计

3.2智能小车的红外避障模块程序的设计

3.3智能小车的蓝牙串口程序如下:

第4章 系统测试与分析

4.1智能小车的实物制作

4.2 智能小车的调试

第5章 总结与展望

5.1 总结

5.2 展望

致谢

参考文献

附录1

附录2

附录3

三、总体设计

四、软件设计 

 

  1. void app_IRAvoid(void)
  2. {
  3. int IRL1 = 1, IRR1 = 1;
  4. bsp_GetIRavoid(&IRL1, &IRR1);//右侧检测到
  5. if( IRL1 == HIGH && IRR1 == LOW)
  6. {
  7. Car_SpinLeft(3000, 3000);
  8. }//左侧检测到
  9. else if ( IRL1 == LOW && IRR1 == HIGH)
  10. {
  11. Car_SpinRight(3000, 3000);
  12. }
  13. //左右均未检测到
  14. else if (IRL1 == HIGH && IRR1 == HIGH)
  15. {
  16. Car_Run(3000);
  17. }
  18. //左右均检测到
  19. else if(IRL1 == LOW && IRR1 == LOW)
  20. {
  21. Car_SpinRight(3000, 3000);
  22. delay_ms(500);
  23. }
  24. }
  25. 附录2
  26. 智能小车巡线功能代码:
  27. void app_LineWalking(void)
  28. {
  29. int LineL1 = 1, LineL2 = 1, LineR1 = 1, LineR2 = 1;
  30. bsp_GetLineWalking(&LineL1, &LineL2, &LineR1, &LineR2); //获取黑线检测状态
  31. if( (LineL1 == LOW || LineL2 == LOW) && LineR2 == LOW) //左大弯
  32. {
  33. Car_SpinLeft(3500, 3500);
  34. delay_ms(80);
  35. }
  36. else if ( LineL1 == LOW && (LineR1 == LOW || LineR2 == LOW)) //右大弯
  37. {
  38. Car_SpinRight(3500, 3500);
  39. delay_ms(80);
  40. }
  41. else if( LineL1 == LOW ) //左最外侧检测
  42. {
  43. Car_SpinLeft(3000, 3000);
  44. delay_ms(10);
  45. }
  46. else if ( LineR2 == LOW) //右最外侧检测
  47. {
  48. Car_SpinRight(3000,3000);
  49. delay_ms(10);
  50. }
  51. else if (LineL2 == LOW && LineR1 == HIGH) //中间黑线上的传感器微调车左转
  52. {
  53. Car_Left(2500);
  54. }
  55. else if (LineL2 == HIGH && LineR1 == LOW) //中间黑线上的传感器微调车右转
  56. {
  57. Car_Right(2500);
  58. }
  59. else if(LineL2 == LOW && LineR1 == LOW) // 都是黑色加速前进
  60. {
  61. Car_Run(3000);
  62. }
  63. }
  64. 附录3
  65. 蓝牙串口的代码如下:
  66. void app_bluetooth_deal(void)
  67. {
  68. if (newLineReceived)
  69. {
  70. Protocol();
  71. } // 切换不同的功能模式,功能模式显示
  72. switch (g_modeSelect)
  73. {
  74. case 1: break; //暂时保留
  75. case 2: app_LineWalking(); break; //巡线模式
  76. case 3: app_iravoid.(); break; //红外避障模式
  77. default:break;
  78. }
  79. //让小车串口平均每秒发送收集的数据给收集手机蓝牙apk
  80. //避免串口打印数据速度过快,造成apk无法正常运行
  81. if (g_modeSelect == 0 && g_Boolfire == 0)
  82. {
  83. if (g_count >= 100000)
  84. {
  85. g_count = 0;
  86. serial_data_postback();
  87. }
  88. }
  89. }

有需要私聊,微信:lwfw123456789

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/837986
推荐阅读
相关标签
  

闽ICP备14008679号