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

文章目录

  • 一、前言
  • 二、仿真图
    • 1.要求
    • 2.思路
    • 3.画图
      • 3.1 电源部分
      • 3.2 超声波测距部分
      • 3.3 电机驱动部分
      • 3.4 按键部分
      • 3.5 蓝牙部分
      • 3.6 显示屏部分
      • 3.7 整体
    • 4.仿真
    • 5.软件
  • 三、总结


一、前言

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.软件

主函数

/* 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仿真(虚拟串口模拟)。感兴趣的可以去试试。

感谢你的观看!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/563039.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

42岁TVB男艺人曾靠刘德华贴钱出道,苦熬10年终上位

张颕康在无线&#xff08;TVB&#xff09;电视打滚多年&#xff0c;近年在《逆天奇案》第一、二辑凭扎实演技为人留下印象。他还是圈中出名的「爱妻号」&#xff0c;日前在访问期间&#xff0c;张颕康三句不离多谢太太。 较年长的观众或会记得&#xff0c;张颕康初出道以「刘德…

kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战

1、上一节课我们学习了MQTT producer 生产者步骤&#xff0c;MQTT consumer消费者步骤。该步骤可以从支持MRQTT协议的中间件获取数据&#xff0c;该步骤和kafka consumer 一样可以处理实时数据交互&#xff0c;如下图所示&#xff1a; 2、双击步骤打开MQTT consumer 配置窗口&a…

Today At Apple Notes

文章目录 2024.04.15 Phone15 入门2024.04.20 ipad 绘画 & 图片管理recreate 软件 绘画图片管理 官网&#xff1a; https://www.apple.com/today/Apple 亚洲第一大商店&#xff1a;Apple 静安零售店现已在上海开幕 2024.04.15 Phone15 入门 听课地点&#xff1a;上海区静…

如何对图片进行压缩和缩放

在手机像素越来越高的时代&#xff0c;照片的体积也在不断地膨胀&#xff0c;大部分情况下我们是不需要这么大的图片的&#xff0c;这个时候我们就需要对图片进行压缩或者缩放了&#xff0c;今天教大家如何缩小图片体积 打开智游剪辑&#xff08;官网: zyjj.cc&#xff09;&…

二维前缀和与差分

前言 延续前面所讲的一维前缀和以及差分&#xff0c;现在来写写二维前缀和与差分 主要这个画图就比前面的一维前缀和与差分复杂一点&#xff0c;不过大体思路是一样的 一维和二维的主要思路在于一维是只针对对一行一列&#xff0c;而二维是针对与一个矩阵的 好吧&#xff0…

OpenStack 常见模块详解

目录 一、OpenStack 架构 二、控制台 Dashboard 三、身份认证服务 Keystone 1&#xff09;用户&#xff08;user&#xff09; 2&#xff09;项目&#xff08;project&#xff09; 3&#xff09;角色&#xff08;role&#xff09; 4&#xff09;服务&#xff08;serv…

JavaCard学习笔记: CAP Component 之 Class Component

文章目录 整体结构tag和size字段signature_pool_length和signature_pooltype_descriptor结构导入类型编码导入项签名示例导入类导入数组导入远程方法 interfaces[]interface_info结构flagsinteface_countsuperinterfacesinterface_name class_info_compact classes[]结构flagsi…

wasm 系列之 WebAssembly 和 emscripten 暴力上手

wasm 是什么&#xff1f; wasm 是 WebAssembly 的缩写。wasm 不是传统意义上的汇编语言&#xff0c;而是一种编译的中间字节码&#xff0c;可以在浏览器和其他 wasm runtime 上运行非 JavaScript 类型的语言&#xff0c;只要能被编译成 wasm&#xff0c;譬如 kotlin/wasm、Rus…

Linux嵌入式驱动开发-阻塞IO与非阻塞IO

文章目录 阻塞与非阻塞访问简介阻塞访问的实现等待队列等待队列头等待队列项从等待队列头添加/移除等待队列项等待唤醒等待事件API 非阻塞访问的实现轮询poll 函数原型可以返回的资源状态 阻塞与非阻塞访问简介 **IO&#xff1a;**Input/Output&#xff0c;也就是输入/输出&am…

2024mac苹果电脑如何清理磁盘空间?用什么软件最好

苹果电脑已成为我们日常生活和工作不可或缺的一部分。随着时间的推移&#xff0c;不论是办公文档、个人照片还是各式各样的应用程序&#xff0c;都会逐渐积累&#xff0c;导致电脑的磁盘空间日益紧张。对于用户来说&#xff0c;苹果电脑如何清理磁盘空间&#xff0c;以保持设备…

iOS 全平台矢量动画库:体积小巧、功能丰富 | 开源日报 No.227

airbnb/lottie-ios Stars: 24k License: NOASSERTION lottie-ios 是一个用于在 iOS 平台上本地渲染 After Effects 矢量动画的库。 该项目主要功能、关键特性、核心优势包括&#xff1a; 跨平台支持&#xff1a;可在 iOS, macOS, tvOS, visionOS, Android 和 Web 上使用实时渲…

07节-51单片机-矩阵键盘

文章目录 1矩阵键盘原理2.扫描的概念3.弱上拉4.实战-实现矩阵键盘对应按钮按下显示对应值4.1配置代码模板 5.键盘锁 1矩阵键盘原理 在键盘中按键数量较多时&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”&#xff0c;就可以读…

前程贷v6.5系统测试报告

1.引言部分 1&#xff0e;1 项目背景 本测试报告的具体编写目的&#xff0c;指出预期的读者范围。(3-4句) 项目描述 &#xff08;项目内容&#xff0c;用户需求&#xff09; 本测试报告为**&#xff08;系统名称&#xff09;**系统测试报告&#xff1b;本报告目的在于总结测试…

【JavaEE初阶系列】——数据链路层以太网以及Mac地址

目录 &#x1f6a9;认识以太网 &#x1f6a9;以太网帧格式 &#x1f6a9;IP地址和Mac地址各自的用途 &#x1f6a9;认识以太网 "以太网"不是一种具体的网络&#xff0c;而是一种技术标准&#xff1b;既包含了数据链路层的内容&#xff0c;也包含了一些物理层的内…

在ios设备上运行Unity Profiler

久违了朋友们。 最近基于Unity 2021.3 和AR Foundation开发了个应用&#xff0c;需要在ipad上实际运行时查看程序的各项指标功耗。 于是乎&#xff0c;我尝试跟随者官方教程来实时调试&#xff0c;现在附上一些心得。 按照官方的三步走&#xff0c;Build and Run理论上会自动…

SSH远程连接服务实战

题目&#xff1a; 一.配置两台主机 主机1、 主机名: server.example.com ip: 192.168.78.129 建立用户timinglee&#xff0c;其密码为timinglee 主机2、 主机名&#xff1a;client.example.com ip: 192.168.78.128 2.安需求完成项目 192.168.78.128 在远程登录192.168.78.129的…

MySQL处理并发访问和高负载的关键技术和策略

大家好&#xff0c;我是咕噜铁蛋。今天&#xff0c;我想和大家聊聊MySQL处理并发访问和高负载的关键技术和策略。在当今这个数据爆炸的时代&#xff0c;数据库作为数据存储和处理的核心&#xff0c;其性能的稳定性和高效性显得尤为重要。MySQL作为广泛使用的关系型数据库管理系…

【语音识别】在Win11使用Docker部署FunASR服务器

文章目录 在 Win11 使用 Docker 部署 FunASR 服务器镜像启动服务端启动监控服务端日志下载测试案例使用测试案例打开基于 HTML 的案例连接ASR服务端 关闭FunASR服务 在 Win11 使用 Docker 部署 FunASR 服务器 该文章因官网文档不详细故写的经验论 官网文章&#xff1a;https:/…

安装多个MySQL版本时如何连接到不同的数据库

当安装多个版本的数据库时&#xff0c;不同版本的端口名不一样&#xff0c;可以使用以下命令进行连接 mysql -uroot -p数据库密码 -h主机名 -P端口号 数据库主机名默认是localhost&#xff0c;端口号默认是3306&#xff0c;当安装多个版本数据库时&#xff0c;需要记住数据库的…

Prompt-to-Prompt Image Editing with Cross Attention Control

Prompt-to-Prompt Image Editing with Cross Attention Control TL; DR&#xff1a;prompt2prompt 提出通过替换 UNet 中的交叉注意力图&#xff0c;在图像编辑过程中根据新的 prompt 语义生图的同时&#xff0c;保持图像整体布局结构不变。从而实现了基于纯文本&#xff08;不…