赞
踩
目录
图1.1 硬件系统设计
软件编程方面使用STM32CubeMX,STM32CubeMX是一款图形化工具,用于配置STM32微控制器。它可以帮助开发者通过直观的图像界面快速完成STM32微控制器的硬件配置、外设初始化以及中间件设置等工作。
使用CubeMX生成的代码是基于HAL库的,而不是标准库。HAL库是英文Hardware Abstraction Layer的缩写,中文意思是硬件抽象层。HAL库提供了一种硬件和软件的抽象层,使开发者能够更加方便地操作内核,并且让不同内核下的编程不再复杂。
之所以选择STM32CubeMX,是因为通过CubeMX,开发者可以大幅提高开发效率,降低开发难度,尤其是对于刚接触STM32的新手。
图1.2 软件系统设计
根据上图:
图2.1 整体硬件电路图
如图2.1硬件电路图,包括了复位电路模块、电源部分和超声波模块、HC-05蓝牙模块、红外避障模块、DDC滤波器以及3x2的GND线。
STM32F103ZET6芯片内置了HSI时钟,其频率为8M。在STM32中,时钟源的选择和配置通常是通过修改相应的寄存器来完成的。对于STM32F103ZET6,可能需要修改的寄存器包括RCC_CFGR和RCC_CR。
图2.2 高速内部时钟
一般来说,如果使用HSI(High Speed Intrenal,高速内部时钟)作为时钟源,可能需要将RCC_CR寄存器的HSIRDY位设置为1,以使能HSI时钟源。然后,可以在RCC_CFGR寄存器中配置预分频器和倍频系数,以得到所需的系统时钟频率。
复位电路是用于将电路恢复到初始状态的电路。在数字电路中,复位电路通常用于将寄存器或计数器等数字电路组件的输出状态设置为初始值,以确保电路的正确启动和运行。
对于STM32F103ZET6这样的微控制器,复位电路的作用是将微控制器的内部寄存器和状态机等组件的状态恢复到初始状态,以确保微控制器能够正常工作。
图2.3 复位电路
复位电路通常由复位引脚、复位去抖电路、上电复位电路和按键复位电路等部分组成。复位引脚用于接收外部的复位信号,复位去抖电路用于消除由于按键抖动等原因引起的虚假复位信号,上电复位电路用于在电源上电时自动产生复位信号,按键复位电路用于通过按键手动产生复位信号。
在STM32F103ZET6中,复位电路的设计包括低电平复位和上电复位两部分。当复位引脚保持在低电平状态时,微控制器将进行复位操作。此外,在上电时,微控制器会自动检测电源电压是否稳定,如果电源电压稳定,则自动产生复位信号,将微控制器内部组件的状态恢复到初始状态。
STM32F103ZET6的BOOT电路是用于设置微控制器启动方式的电路。BOOT电路通过BOOT0和BOOT1两个引脚来选择不同的启动模式。
图2.4 BOOT电路
在STM32F103ZET6中,可以选择三种不同的启动模式:主闪存存储器启动模式、系统存储器启动模式和内置SRAM启动模式。这些启动模式的选择对应于不同的数据存储和读写擦除方式。
主闪存存储器启动模式是将微控制器从主闪存存储器中启动,这是最常见的启动模式。系统存储器启动模式是将微控制器从系统存储器中启动,这种模式通常用于在厂家进行生产时将启动程序设置好,不允许用户修改。内置SRAM启动模式是将微控制器从内置SRAM中启动,这种模式通常用于调试。
BOOT0 | BOOT1 | 功能 | |
---|---|---|---|
ROM启动模式 | 0 | 1 | 启动的程序功能由厂家设置,从系统存储器启动程序 |
SRAM启动模式 | 1 | 0 | 可以用于调试 |
FLASH启动模式 | 1 | 1 | 正常的工作模式 |
在BOOT电路中,通过将BOOT0和BOOT1引脚设置为不同的状态来选择不同的启动模式。例如,当BOOT0=1、BOOT1=1时,选择主闪存存储器启动模式;当BOOT0=0、BOOT1=1时,选择系统存储器启动模式;当BOOT0=1、BOOT1=0时,选择内置SRAM启动模式。
总之,BOOT电路是STM32F103ZET6中非常重要的组成部分,它能够选择不同的启动模式,从而决定微控制器的启动方式和数据存储方式。
AMS1117是一个正向低压降稳压器,它的输出电压可以从1.2V到13.8V,并且具有低漏失电压和良好的负载调节特性。这个芯片的内部结构包括一个参考电压源、一个误差放大器、一个调整管和一个过热保护电路。本次设计可以通过AMS1117降3压芯片把5V转换为3.3V。
图2.5 AMS1117降压芯片
AMS1117技术参数 | |
---|---|
最大输出电流 | 1A |
输出电压范围 | 1.2V、1.5V、1.8V、2.5V、2.85V、3.3V、5.0V |
初始误差 | ±1.5% |
封装类型 | SOT-223、TO-252、SO-8 |
工作温度 | -40°C~125°C |
存储温度 | -65°C~150°C |
工作模式 | 低压差线性稳压器 |
工作原理 | NPN晶体管的共集电极结构改为PNP的集电极开路结构 |
STM32F103ZET6是一款基于ARM Cortex-M3架构的微控制器,由意法半导体(STMicroelectronics)生产。该芯片具有高性能、低功耗、高集成度等优点,被广泛应用于各种嵌入式系统开发。
stm32f103zet6技术参数 | |
---|---|
芯片型号 | stm32f103zet6 |
封装类型 | LQFP144 |
工作电压 | 2.0V~3.6V |
温度范围 | -40°C~85°C |
存储器 | Flash: 512KB, RAM: 96KB, SRAM: 20KB |
时钟频率范围 | HSI: 8MHz, HSE: 8MHz to 24MHz, LSE: 32.768kHz |
定时器 | TIM1-TIM8为高级定时器,TIM6-TIM7基本定时器,TIM2-TIM5通用定时器 |
ADC分辨率 | 12位 |
外设接口 | SPI, I2C, USART, UART, ADC, DAC, I2S, USB |
工作模式 | 低功耗模式1/2, Stop模式, Standby模式, Power down模式, Shutdown模式 |
超声波传感器HC-SR04是在机器人、无人车等领域得到广泛使用,HC代表超声波传感器,SRO4是该传感器的型号。HC-SR04原理是通过Trig引脚发送超声波(Trig有触发的意思,Trig引脚也被称为触发端),Echo引脚用来接收超声波信号(Echo有回波的意思,不过一般叫做超声波的接收端)利用它们发送和接收的时间在乘以超声波的速度来得到距离。
图2.6 HC-SR04超时波传感器
HC-SR04超声波模块技术参数 | |
---|---|
工作电压 | DC 5V |
工作电流 | 15mA |
工作频率 | 40KHZ |
最远发射距离 | 4m |
最近发射距离 | 2cm |
测量角度 | 15° |
输入触发信号 | 10us 的TTL脉冲 |
输出回响信号 | 输出TTL电平信号,与射程成比例 |
它是由两个压电陶瓷片组成,其中T用来发射超声波,R用来接收反射回来的超声波信号。由于发出和接收的信号都比较弱,所以需要用到信号放大器来提高信号的功率,将反射回来的超声波信号放大。
图2.7 超声波硬件电路原理图
如上图所示,MAX232和TL074都是超声波传感器的信号放大器。
先说发送端,STC11单片机P51和P52口输出波形是TTL,但是为了使HC-SR04模块的测距变宽,MAX232对40KHZ的信号进行电平转换,功率进行放大。
接收端:TL074是一种四运算放大器,具有高电压双极晶体管(简称 三极管)的输入放大特性,它可以作为信号放大器,对接收到的超声波信号进行放大,以增强其幅度和信噪比(信噪比 是指一个电子设备中信号和噪声的比值,其计算单位是dB 也就是分贝数来表示,通俗地讲放大器的输出信号的功率于输出的噪声的比值,一般来讲,信噪比越大,输出的信号里面混着的噪声就越小,信号也就越好,声音的质量也就越好,因此一般信噪比用来衡量一个音频器件的好坏,比如:蓝牙耳机,音响)。
图2.8 超声波没有障碍物
如果这些脉冲没有被反射回来(表示没有障碍物),则回波信号将在38毫秒(38毫秒)后超时并返回低电平。因此38 ms的脉冲表示在传感器范围内没有阻塞。
图2.9 超时波检测到障碍物
当检测到障碍物时,ECHO接收到的回响信号从38US变成500US。
图2.10 超声波工作时序图
触发信号Trig端发出10us的TTL电平信号,模块内部发出8个40KHZ的周期电平信号并用来检测回波。一旦检测到有超声波返回的信号则输出回响信号,回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到的回响信号时间可以计算得到距离。(不过测量周期应为60ms以上,否则发射信号对回响信号产生影响)。
TCRT5000是一种红外循迹模块,通常用于自动驾驶或智能小车等项目中。该模块采用TCRT5000红外反射传感器,能够检测路面上的黑色线条,并通过比较器输出数字信号,指示小车是否偏离了路径。
TCRT5000的优点包括灵敏度高、稳定性好、抗干扰能力强等。该模块还具有调节灵敏度的功能,可以根据不同的环境和使用需求进行调节。使用TCRT5000循迹模块时,需要将其与小车的电机和控制器等设备进行连接,并根据具体的控制算法进行编程和调试。
图2.11 三路循迹模块
图2.12 三路循迹原理图
TCRT5000三路循迹里面内置LM339,LM339(四路差动比较器)是一种常见的集成电路,内部装有四个独立的电压比较器,主要用于高压数字逻辑门电路。它具有失调电压小、电源电压范围宽、对比较信号源的内阻限制较宽、共模范围大、差动输入电压范围大、输出端电位可灵活方便地选用等特点。
LM339内置了四个独立的电压比较器 ,当比较器的同相端电压大于反向端电压时,置1;同相端电压小于反向端电压时,置0。
功能描述 | |
---|---|
工作电压 | 2V~36V |
输入电压 | 负电源电压至正电源电压 |
电源电流最大值 | 0.8mA |
输入电压 | 最小值0V,最大值5V |
输入偏置电压最大值 | 5mV |
响应时间 | 300ns |
低电平输出电流最小值 | 6mA |
红外传感器是一种能够接收和感应红外线信号的电子器件,主要通过变化光强来检测目标物体的存在。由于黑色具有较强的吸光能力,所以红外传感器接收管接收到的红外光比较低。
图2.13 红外传感器工作原理
上图是红外传感器电路原理草图,光敏二极管接收到的光作为右边NPN三极管的基极,由于NPN型半导体的基极有电流流过起到放大作用作为模拟信号经过LM393比较器进行比较最终转换为数字信号。
图2.14 红外传感器的硬件原理图
红外传感器内置贴片式LM393是双电压比较器集成电路,由两个独立的、精确的电压比较器组成。它具有宽工作电源电压范围,既可以在单电源下工作,也可以在双电源下工作,而且其电流大小不受电源电压幅度大小的影响。
2.15 贴片式LM393
图2.16 LM393内部原理图
上图是LM393的内部结构图,由两个比较器组成。 同相端电压大于反向端电压时,置1;同相端电压小于反向端电压时,置0。实物图如图2.17所示。
图2.17红外传感器实物图
HC-05是一款功能强大的经典蓝牙模块,由爱信电子(EGBT)生产。它基于蓝牙2.0标准,支持多种传输协议,包括串口通信(UART)和蓝牙SPP(串口通信)。
图2.18 HC-05正面图
图2.19 HC-05背面图
HC-05模块与CH340模块(串口转USB模块)连接进行串口通信,以下是引脚对应图
CH340 | HC-05 |
---|---|
VCC | VCC |
GND | GND |
TXD | RXD |
RXD | TXD |
HC-05蓝牙串口通讯模块有两种模式:命令响应工作模式和自动连接工作模式。
在自动工作模式,模块分为主(Master)、从(Slave)、回环(Loopback)三种模式。这种模式就是不需要设置什么情况下自动进入。如果想进入这种模式,直接接上电源即可,此时指示灯会快闪
第二种命令响应模式下,我们可以给模块发送AT指令,就像给电脑发送命令一样。我们可以设置模块的各种参数,比如蓝牙的名字、波特率等。如果想进入这种模式,需要长按模块上的黑色小按钮(即PIO11),然后同时接上电源,如果指示灯慢闪,就表示成功进入了AT指令模式。
图2.20 HC-05内部原理图
如图,当SI按键按下时PIO11,PIO8上的LED会闪烁。IC1为电压调节器,里面的LDO是一个电子器件,可以将高电压输入转换为稳定的低电压输出。它是一种线性稳压器,使用在其线性区域内运行的晶体管或FET,从输入电压中减去超额的电压,产生经过调节的输出电压。
由于单片机stm32f103zet6输出的电压和电流较小,需要搭配电机驱动进行电压放大来驱动电机转动。本次设计采用L298N作为电机驱动。
L298N电机驱动芯片是由意大利芯片公司SGS-Thomson Microeletronics(简称ST意法半导体公司)生产的一款电机驱动芯片。
图2.21 L298N实物图
L298N电机驱动芯片是由Multiwatt封装,N是L298的封装标识符。还有另外不同的封装方式:
图2.22 L298N封装方式
L298N电机驱动芯片由两个核心组件构成:
图2.23 L298N的组成
其中7805是一种三端口高性能线性稳压器,具有多种保护功能。有三个端口分别是输入端子、公共端子、输出端子。以TO-220封装。可以把<=35V电压转换为5v电压输出。
78M05稳压模块能否生效完全取决于5V使能跳帽是否启用(拔掉禁用、插入启用,默认是板载连通的),这里分两种情况,接通和未接通。
图2.24 7805内部原理图
如图2.24 7805内部原理图所示,其中LM741是一种常用的运算放大器集成电路,由美国国家半导体公司(National Semiconductor)于1968年推出。它是一种直流耦合的高增益电子电压放大器,可以同时执行数字运算和放大功能。
LM741的特点包括:
L298N电机驱动原理是根据H桥电路驱动电路,H桥 ,全称H-Bridge ,因为形状像字母而得名。H桥又四个三极管组成。Q1、Q2、Q3、Q4的四个开关分别控制电机正转、反转。而D1、D2、D3、D4是四个续流二极管,抵消反电动势的作用,用来保护电路。
图2.25 H桥电路
图2.26 电机正转
图2.27 电机反转
Q1 | Q2 | Q3 | Q4 | |
---|---|---|---|---|
电机正转 | 高 | 低 | 低 | 高 |
电机反转 | 低 | 高 | 高 | 低 |
编程方面使用STM32CubeMX,STM32CubeMX是一款图形化工具,主要用于STM32微控制器的配置。它可以帮助开发者通过直观的图像界面快速完成STM32微控制器的硬件配置,外设初始化以及中间件设置等工作,进而提高开发效率,降低开发难度。在CubeMX中,用户可以选择所需芯片并设置引脚、外设等参数,同时还能进行自动识别引脚冲突、设置时钟树、功耗预测等功能。生成的代码可以选择适配IAR、KEIL以及ST自家的STM32CubeIDE(免费)。
编译环境选择Keil,MDK5是Keil公司开发的一款嵌入式系统开发工具,它是一种集成的开发环境(IDE),支持多种微控制器架构,包括ARM、8051、C16x等。MDK5提供了丰富的库函数和中间件,方便开发者进行嵌入式系统的开发。
总的来说,MDK5是一款功能强大、易于使用的嵌入式系统开发工具,可以帮助开发者快速开发出高性能、低功耗的嵌入式系统。
图3.1 超声波避障程序设计
当超声波传感器测量到障碍物的距离在20-35cm之间时,小车可以前进;当测量距离小于20cm时,小车可以后退;当测量距离大于35cm时,小车可以停止或者结束程序。这样的设计可以有效地避免小车与障碍物发生碰撞。
图3.2 循迹程序设计
循迹程序设计包括以下几个步骤:
图3.3 蓝牙程序设计
蓝牙程序设计通常涉及到一系列的步骤和流程。根据图片信息,以下是对蓝牙程序设计的基本步骤的描述:
剩下的引言和摘要,与总结和结论,任君发挥。觉得好的欢迎打赏
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。