智能小车项目

简介: 这篇博客主要进行一次笔记汇总,设计制作一辆玩具小车,此小车系统可具有以下功能:超声波测距,避障,电机调速,蓝牙控制等功能,设置了两种模式避障模式与跟随模式,可以再做个循迹模式,但是没有场地不好调试就没有写了,但是原理和前两个模式是类似的,模块也是使用红外模块,可以2路也可以4路,差别不大

模块调试部分


1、超声波测距模块

HC-SR04超声波测距模块的原理介绍与代码实现


2、电机调速模块

pwm电机调速的原理介绍与代码实现


3、电机驱动模块

L298N电机驱动模块的接线使用与代码实现


4、蓝牙控制模块

HC-05蓝牙模块遇到的问题与解决方法及实现和手机通信


5、液晶显示模块

LED1602液晶模组介绍及其编程使用


6、合成语音播报模块

TTS语音播报


模式调试部分


1、跟随模式

//红外跟随模块
void InfraredFollow_Module(void)
{
  //设置小车速度,中档起步
 // Motor_SpeedSet(60000,0.8,0.8);
  while(1){
    //前面有障碍物,向前走
    while(Infrared_StraightMod == 0){  
        Motor_GoForward();
        delay_ms(5);
    }
    //左边有障碍,向左转
    while(Infrared_LeftMod == 0){  
        Motor_TurnLeft();       //左转      
        delay_ms(5);
    }
    //右边有障碍,向右转
    while(Infrared_RightMod == 0){  
        Motor_TurnRight();      //右转
        delay_ms(5);
    }  
    Motor_BeParking();
  }
}


2、避障模式

//红外避障模块
void InfraredAvoidance_Module(void)
{
    //设置小车速度,中档起步
 // Motor_SpeedSet(60000,0.8,0.8);
  while(1){
     Motor_GoForward();
     //左边有障碍
    while(Infrared_LeftMod == 0){  
        Motor_BeParking();      //停车
        delay_ms(1000);
        Motor_TurnRight();      //右转
        delay_ms(1000);
    }
    //右边有障碍
    while(Infrared_RightMod == 0){  
        Motor_BeParking();      //停车
        delay_ms(1000);
        Motor_TurnLeft();       //左转
        delay_ms(1000);
    }    
    //前面有障碍物,思路是先后退一点点,然后右转躲避
    //还可以设置一个标志为,一次右转,一次左转;或者两到三次右转,然后一次左转
    while(Infrared_StraightMod == 0){  
        Motor_BeParking();      //停车
        delay_ms(1000);
        Motor_GetBack();        //后退
        delay_ms(1000);
        Motor_BeParking();      //停车
        delay_ms(1000);
        Motor_TurnRight();      //右转
        delay_ms(1000);
    }
  }
}


实物图


image.png


项目代码


stm8智能跟随避障小车

目录
相关文章
|
小程序 开发者
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到,一招解决
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到,一招解决
4641 0
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到,一招解决
|
12月前
|
存储 编解码 算法
超级好用的C++实用库之Base64编解码
超级好用的C++实用库之Base64编解码
866 2
|
11月前
|
算法 数据处理 Android开发
掌握安卓性能优化的秘诀:电池寿命与运行效率的提升
【10月更文挑战第6天】 本文深入探讨了安卓应用开发中的性能优化技巧,重点分析了影响电池寿命和运行效率的关键因素,并提供了针对性的优化策略。通过代码优化、资源管理、后台任务处理等方法,开发者可以显著提升应用的续航能力和流畅度。同时,结合具体案例,展示了如何在实际开发中应用这些技巧,确保应用在各种场景下都能保持高效运行。本文旨在为安卓开发者提供实用的性能优化指导,助力其打造更优质的应用体验。
287 2
|
网络协议 安全 网络安全
震惊!Python Socket竟能如此玩转网络通信,基础到进阶全攻略!
【9月更文挑战第12天】在网络通信中,Socket编程是连接不同应用与服务的基石。本文通过问答形式,从基础到进阶全面解析Python Socket编程。涵盖Socket的重要性、创建TCP服务器与客户端、处理并发连接及进阶话题如非阻塞Socket、IO多路复用等,帮助读者深入了解并掌握网络通信的核心技术。
365 6
|
传感器 人工智能 自动驾驶
【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)
【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)
579 2
|
Ubuntu 关系型数据库 数据库
|
Linux SoC
Linux设备树(DTS)
Dts:DTS即Device Tree Source,是一个文本形式的文件,用于描述硬件信息。一般都是固定信息,无法变更,无法overlay。 设备树由来 linux内核源码中,之前充斥着大量的平台相关(platform Device)配置,而这些代码大多是杂乱且重复的,这使得ARM体系结构的代码维护者和内核维护者在发布一个新的版本的时候有大量的工作要做,以至于LinusTorvalds 在2011年3月17日的ARM Linux邮件列表中宣称“Gaah.Guys,this whole ARM thing is a f*cking pain in the ass”这使得整个ARM社区不得不
184 0
|
计算机视觉
【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用
【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用
|
机器学习/深度学习 存储 自动驾驶
基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
人工智能 监控 Java
SpringBoot实战(十二):集成 Spring Boot Admin 监控
SpringBoot实战(十二):集成 Spring Boot Admin 监控
374 0