• 物联网毕设 -- ESP32-CAN加摄像头传输图像,STM32驱动小车自动避障图像采集并显示到Android端


    前言

    小车分为两种模式,自动模式以及手动模式,有小车下位机通过按键可以进行模式的切换,自动模式有三个超声波避障,手动模式可以通过APP连接到小车WIFI进行手动控制,并且会有一个ESP32的图像采集回传给小车

    一、视频效果演示

    物联网毕设 -- ESP32-CAN+STM32


    资源包

     


     

    二、底层硬件端

    2.1 使用硬件清单

    STM32F103RCT6开发板(可以替换为STM32其他系列)

    三个超声波测距模块(使用time时钟进行距离的计算)

    两个电机驱动板(L2980)---- 使用PWM控制小车的速度

    ESP32-CAN模块               ---- 使用串口与STM32经行连接

     2.2原理图


     

     2.3 主函数代码

    main.h

    1. #include "stm32f10x.h"
    2. #include "bsp_usart.h"
    3. #include "bsp_SysTick.h"
    4. #include "stm32f10x_it.h"
    5. #include "hc_sr04.h"
    6. #include "./dwt_delay/core_delay.h"
    7. #include "./pwm/user_timer_pwm.h"
    8. #include "L298N.h"
    9. #include "car.h"
    10. #include "timer.h"
    11. #include "usart_openmv.h"
    12. #include "timer.h"
    13. #include "HC_SR04.h"
    14. #include "car.h"
    15. #include "key.h"
    16. //全局变量
    17. //flage=0 状态手动
    18. //flage=1 状态自动
    19. extern int flag;
    20. 局部变量
    21. //float Distance1 = 0; //距离
    22. //float Distance2 = 0; //距离
    23. //float Distance3 = 0; //距离
    24. //定义函数
    25. void Car_run ( void );
    26. void Hc_rs04 ( void );
    27. /**
    28. * @brief 主函数
    29. * @param 无
    30. * @retval 无
    31. */
    32. extern int flage;
    33. //小车初始状态
    34. u8 dir=1;
    35. u16 led0pwmval=0;
    36. int main ( void )
    37. {
    38. /* 初始化 */
    39. /* 配置SysTick 为1us中断一次 */
    40. SysTick_Init();
    41. CPU_TS_TmrInit(); //初始化DWT计数器,用于延时函数
    42. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    43. USART_Config (); //初始化串口1
    44. OpenMV_USART_Config();
    45. EXTI_Key_Config();
    46. MTR_GPIOInit();
    47. TIM3_PWM_Init(899,0); //不分频,PWM频率=72000000/900=80Khz
    48. //超声波定时器
    49. HC_SR04_IO1_Init(); //超声波模块GPIO初始化
    50. TIM2_Init(7199,0); //以10KHz计数,定时100us
    51. HC_SR04_IO2_Init(); //超声波模块GPIO初始化
    52. TIM4_Init(7199,0); //以10KHz计数,定时100us
    53. HC_SR04_IO3_Init(); //超声波模块GPIO初始化
    54. TIM5_Init(7199,0); //以10KHz计数,定时100us
    55. Delay_ms(500); /* 延时500个tick */
    56. printf("初始化成功\n");
    57. while ( 1 )
    58. {
    59. //Car_run ();
    60. if(flag==1){
    61. Avoid_Car();
    62. }else MTR_CarBrakeAll();
    63. }
    64. }
    65. /**
    66. * @brief 小车测试
    67. * @param 无
    68. * @retval 无
    69. */
    70. /** 小车状态码:
    71. * 1 小车处于正常行驶
    72. * 2 小车处于减速一(距离200)
    73. * 3 小车处于减速二(距离100)
    74. * 4 小车处于低速状态(距离50)
    75. *
    76. * 1 小车处于避障状态
    77. * 1 小车处于避障状态
    78. */
    79. void Car_run ( void )
    80. {
    81. car_speed(1);
    82. MTR_CarForward();
    83. }
    84. /**
    85. * @brief 小车超声波测试
    86. * @param 无
    87. * @retval 无
    88. */
    89. /** 小车状态码:
    90. */
    91. void Hc_rs04 ( void )
    92. {
    93. // Distance1 = (Get_SR04_Distance1() * 331) * 1.0/1000;
    94. // Delay_ms(5);
    95. // Distance2 = (Get_SR04_Distance2() * 331) * 1.0/1000;
    96. // Delay_ms(5);
    97. // Distance3 = (Get_SR04_Distance3() * 331) * 1.0/1000;
    98. // Delay_ms(5); //Get_SR04_Distance()返回单程声波传输时间 us,转换为秒=时间*10^(-6);331m/s等于331000mm/s,
    99. // //最终换算为Distance =Get_SR04_Distance()*10^(-6)*331000=(Get_SR04_Distance() * 331) * 1.0/1000;
    100. // //if(Distance1<1000&&Distance2<1000&&Distance3<1000)
    101. // printf("%.1f %.1f %.1f\n",Distance1,Distance2,Distance3);
    102. }
    103. /*********************************************END OF FILE**********************/

     


    三、APP端

    编译平台

    APP使用Android studio平台编译


     

    四、资源下载

    全部资源

    APP+STM32程序+ESP32CAN程序icon-default.png?t=M5H6https://download.csdn.net/download/herui_2/85840555

    STM32程序+ESP32CAN程序

    STM32程序+ESP32CAN程序icon-default.png?t=M5H6https://download.csdn.net/download/herui_2/85840511

    APP程序

    APP程序icon-default.png?t=M5H6https://download.csdn.net/download/herui_2/85840603

  • 相关阅读:
    Qt中的数据库使用
    Centos7使用Nginx配置HTTPS正向代理
    Linux下实现程序开机自启(rc.local 和 systemctl)
    Linux·内核编译错误
    spring-data Page/Sort类型 jackson序列化模块
    用户运营中,培养种子用户的三种模式
    electron-updater
    [计算机入门] 应用软件介绍(娱乐类)
    最佳联盟营销软件解决方案:简化你的联盟管理
    计算机网络(第一弹) --- 一篇关于协议的博客
  • 原文地址:https://blog.csdn.net/herui_2/article/details/125548448