基于STM32的蓝牙小车(虚拟串口模拟)的Proteus仿真

文章目录


一、前言

proteus本身并不支持蓝牙仿真,这里我采用虚拟串口的方式来模拟蓝牙控制。

这里给出链接,有需要的小伙伴可以自行下载。

VSPD虚拟串口软件安装及使用

二、仿真图

1.要求

整部小车采用12V电源供电,由白色开关控制整体供电和断电,电机驱动采用TB6612FNG模块,另外还有控制方式有按键模式和蓝牙模式,蓝牙模块采用HC-05模块,超声波测距采用HC-SR04模块,进行自动避障,还需一个显示屏来显示当前模式和状态以及测距的距离。

2.思路

电源方面可以直接采用DCDC电源芯片或者LDO进行降压。

电机驱动是TB6612FNG模块,直接根据引脚定义进行连线即可。

至于驱动电机正转反转对着真值表写程序即可。

按键模式放置几个按键简单,但是在Proteus仿真中按键要注意接上拉电阻。

蓝牙模式由于仿真里面没有蓝牙,所以这边用虚拟串口代替,然后通过PC端的串口调试助手进行串口指令控制。

超声波测距模块HC-SR04在仿真里面是有,但是好像没办法模拟障碍物,所以只能显示个测距的距离。

至于显示屏当然是选用引脚较少的OLED显示屏。

3.画图

3.1 电源部分

这里电源输入是12V,然后通过SW1开关打到正极,(这里如果SW1打到负极GND,仿真时就会报错,算是模拟开关按下把。)

12V先经过TL783这个LDO进行降压到5V,再通过AMS1117-3.3再次降压到3.3V。

(这里其实直接用AMS1117-3.3一个就可以了,因为AMS1117-3.3输入电压可以达到18V,那时候画了就懒得改了。)

最后,有个红灯来代表电源指示灯,只要仿真开启,3.3V供电正常,这个灯就会常亮,算是代表供电正常。

3.2 超声波测距部分

3.3 电机驱动部分

3.4 按键部分

3.5 蓝牙部分

3.6 显示屏部分

3.7 整体

4.仿真

开始仿真,初始模式为按键模式,小车状态为停止状态。超声波测距模块设置为5.0,显示屏上面显示为50mm,上电串口发送指令Uart Test OK表示串口通讯正常。

按键模式,按下除模式切换和停止以外的按键,这里以右转为例,按下右转按键,小车开始模拟右转运动,左右电机开始按照右转状态进行转动。

按下模式切换按键,切换到蓝牙模式,用串口调试助手来模拟蓝牙发送小车前进串口指令进行控制小车运动。

5.软件

主函数

c 复制代码
/* Includes ------------------------------------------------------------------*/
#include "Drv_UserSystem.h"

/**
  * @brief  main function.
  * @param  none
  * @retval none
  */
int main(void)
{
	UserSystemInit();//用户配置初始化		
	while (1)
	{				
		if (stSysTime.flg._10ms + TEN_MILLISECOND < Time_millis()) //10ms
		{
			stSysTime.flg._10ms = Time_millis();	
            Key_Scan();//按键扫描			
		}
		if (stSysTime.flg._50ms + FIFTY_MILLISECOND < Time_millis()) //50ms
		{
			stSysTime.flg._50ms = Time_millis();					
		}
		if (stSysTime.flg._100ms + BEST_MILLISECOND < Time_millis()) //100ms
		{
			stSysTime.flg._100ms = Time_millis();	
			Receive_data_Handel();//数据接收判断
			IWDG_ReloadCounter();//清开门狗 
		}
		if (stSysTime.flg._1s + THOUSAND_MILLISECOND < Time_millis()) //1s
		{
			stSysTime.flg._1s = Time_millis();	 
			Led_Flicker();//灯光闪烁 	
			Measurement_function();//测距函数				
			OLED_Handel();//OLED显示							
	  }
  }
}

三、总结

今天主要讲了基于STM32的蓝牙小车的Proteus仿真(虚拟串口模拟)。感兴趣的可以去试试。

感谢你的观看!

相关推荐
AI绘画哇哒哒13 分钟前
RAG 系统中文档切分策略:如何选择合适的 chunk size?| 收藏这份实用指南,小白也能轻松上手大模型学习
人工智能·学习·ai·程序员·大模型·产品经理·转行
@codercjw38 分钟前
方案制作(CAD)
学习
python零基础入门小白39 分钟前
从0到1:手把手教你用Coze打造AI Agent,小白也能转行AI!
人工智能·学习·程序员·大模型·agent·产品经理·ai大模型
蓝桉~MLGT1 小时前
中级软考(软件工程师)通关秘籍——核心知识点图表全汇总与扩展解析
学习·软件工程
fengci.1 小时前
CTF+随机困难题目
android·开发语言·前端·学习·php
一尘之中1 小时前
系统架构设计师知识体系综述:从核心概念到职业成长
学习·系统架构·ai写作
你怎么知道我是队长2 小时前
计算机系统基础22---计算机的基本组成---IO控制方式
单片机·嵌入式硬件
Daydream.V2 小时前
Transform学习
学习
風清掦2 小时前
【STM32学习笔记-12】Unix 时间戳、BKP 备份寄存器与 RTC 实时时钟
笔记·stm32·单片机·嵌入式硬件·学习·实时音视频·unix
python零基础入门小白2 小时前
Transformer、Token、RAG全解析,一篇读懂大模型核心机制!
人工智能·深度学习·学习·语言模型·大模型·transformer·产品经理