气泡船电路板设计及其所接外设硬件原理

# [2020节能减排]气泡船电路板设计及其所接外设硬件原理

气泡船电路板的前期设计规划

设备 数量 供电 控制方式
动力电机 2 24V供电 120W额定功率 PWM+5V+方向IO+GND
船方向舵机 2 24V供电 约 24W功率 PWM+5V+GND x 2
迪文串口屏 1 5-15V供电 232电平串口通信
mpu6050角度/加速度 1 3.3V供电 I2C通信
气泵 1 12V供电 35W额定功率 PWM占空比控制喷气量
电磁阀 1 12V电压 开关,常闭,继电器/MOS管控制 一个IO口
流量计 1 5V供电 IO口测频率
移动配载平台 1 12V供电 约36W功率 PWM + 5V+方向IO
电流传感器 1 3.3V供电 I2C通信
WiFi通信 1 3.3V供电 TTL串口通信

以上是气泡船预计所要接的全部外设,结合上述统计,分配供电,作出下列框图: 板子设计

接下来对每一个外设硬件进行原理讲述


外设硬件原理描述

1.动力电机

选用的动力电机为时代超群直流无刷伺服电机,这个电机自带编码器和驱动,因此我们不需要考虑丢步的问题,同时,也因为自带了驱动,控制方面也很简单,只需要控制电机的正反转电机的速度即可。 因此,控制动力电机只需要开一个PWM通过调节占空比来进行速度调整,再开一个I/O进行方向控制即可

动力电机控制波形简图 通过给PU的脉冲的占空比来控制转速,占空比转速范围10% ~ 90%代表 0 ~ Max_ Speed1 。PU的频率为1K~ 10K任意值 \[PU占空比 = (目标转速/3000) * 0.8 + 0.1\] 例如,如果我要设置转速为2000,那么占空比应为\[PU2000 = (2000/3000) * 0.8 + 0.1 = 0.633\]

控制方向的I/O只需要输出高低电平就能达到目标 综上,分别打开PE9PE11这两个连接在TIM1上的PWM输出通道分别控制左右两个动力电机的速度,PE10PE12分别控制左右两个动力电机的方向。 动力电机引脚部署

2.船方向舵机

方向舵机的控制原理与动力电及类似,且相较于动力电机,它少了一个控制正反转的接口,是因为舵机是靠检测输入的PWM占空比来转动相应角度的,也就是说,每一个占空比对应一个固定的角度,因此,要控制它的正反转只需要改变占空比的大小即可。 PWM控制舵机原理 综上,分别打开PA1PA2这两个连接在TIM2上的PWM输出通道分别控制左右两个舵机的角度 舵机引脚部署

3.迪文串口屏

选用的为DMT10768T097_19WT的9.7寸工业级串口屏。这个串口屏的通信采用232电平下的UART串口通信,因此在主控板上需要加一个MAX232电平转换芯片,MAX232的原理点击这里,那么控制它就简单了,只需要单片机引出一对UART通信接口,再将通信接口连到MAX232转换一下电平即可,下面是设计的原理图: 1ypnUI.png 其中,DISPALY TX/RX接在串口屏上,Screen TX/RX分别接在PC10PC11

4.mpu6050

mpu6050实际上就是两个传感器,一个陀螺仪角度传感器,一个加速度传感器。陀螺仪的原理是,一个旋转物体的旋转轴所指的方向在不受外力影响时不会改变,利用这个特性,可以精确地确定运动物体的方位。而加速度传感器的原理是,传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第二定律获得加速度值。 mpu6050 mpu6050和嵌入式控制器之间的通信方式为I2C通信,其本质是一根数据线,一根时钟线,通过时钟线保持mpu6050与嵌入式控制器时钟信号的同步,然后利用数据线进行数据传输。注意一点,STM32要能随意地读取mpu6050采集到的信息,所以在编写程序的时候mpu6050应该是I2C通信的从机,而STM32应该是主机。但一般mpu6050的驱动程序已经封装好了,各种寄存器和通信方式都已经配置地很成熟,无需再从零开始造轮子。 I2C通信简易时序图 综上,分别打开PB10PB11这一组硬件I2C接口,既然STM32这么高级,都有硬件I2C了,为啥还需要大费周章一行一行的写I2C时序代码呢(摊手.jpg

5.气泵

气泵也许是这个项目最简单的被控器件了,可惜并不是

在小组讨论以后,按照指导老师的要求,我们本该寻找一种可以控制开合程度的电磁阀来控制喷气速率的,但是遗憾的是,我们翻遍了整个淘宝都没找到这种高级的电磁阀(仿佛嗅到了商机 因此,我不得不调整一下思路,既然不能在传播过程中控制喷气速率,那就只能在源头上解决了。 所以,对气泵的控制方式显得格外重要。结合模电学过的MOSFET的知识,可以知道,MOS管是个通过改变栅源电压VGS控制漏极电流ID的器件: N沟道MOSFET特性曲线 利用其转移特性,我们可以通过控制栅源电压有效值来改变输入气泵的电流,以此来改变气泵的功率(气泵输入电压为12V定值),进而达到了控制喷气量的目的。 控制栅源电压的有效值就更简单了,我们只需要让STM32输出一组PWM,改变PWM的占空比即可改变输出电压有效值,为了让控制效果更直观,可以加一个LED显示电流大小。 选型费了不少功夫,我预期的安全电流ID为10A,VGS为10V,找到了AOD4184这一款NMOS AOD4184 但它的限制功率可能有些低,于是将两个相同的AOD4184并联就行了,再加上限流电阻等等元器件,设计好的具体原理图如下 喷气量控制模块 于是,整个气泵的控制模块就被设计出来了,通过STM32上连接在TIM3PA6引脚输出可控占空比的PWM波,通过一个限流电阻输入到两个并联NMOS的栅极,来控制连接在12V气泵的电流/功率大小,进而控制喷气量。

6.电磁阀

事实证明,电磁阀才是最容易控制的器件

电磁阀的控制只用到了一个I/O口,利用其高低电平的输出来控制电磁阀的通断。

7.流量计

我们选用了这一款流量计,它是利用气流对流量计内部的一个小涡轮冲击使其旋转,旋转的情况被侧边的霍尔传感器感知,然后产生一个方波,我们通过读出输入STM32的方波频率就可以知道气体流量了,具体公式如下 \[f=(5.5*Q)\] \[Q=L/Min\] 注意:这里的设计有问题,在实际组装器件的时候给流量计的供电是3.3V,否则有可能会烧坏STM32

为了读出流量计霍尔元件产生的方波频率,打开了一个外部中断I/O,对应管脚PA3,通过定时器外部中断,每进一次中断AIR_FREQ值+1,0.1s为一个周期,这样就可以测出方波的频率,再对照上述公式就可以算出气体流量

8.移动配载平台

移动配载平台的本质就是一个步进电机,通过步进电机带动丝杆转动来完成平台的移动,这是一个机械原理,不做过多解释移动配载平台 而步进电机的详细控制方法和上面的动力电机相同,不过多赘述。

9.电流传感器

电流传感器采用了TI家的INA226芯片,利用的是“加压求流”的原理,将一个100Ω的电阻串联到电源电路里,然后利用INA226的模数转换测出这个电阻两端的电压,进而就可以得到电源电路的电流。原理图如下 电流传感器 STM32只需要通过I2C通信与INA226连接,接收INA226传入的电流数据即可。

10.WIFI通信

WIFI通信利用的是ESP8266模块,ESP8266操作十分简便,几个AT指令便可以完成设置 STM32与ESP8266模块之间的通信利用TTL电平的UART串口通信即可。 下面列一下几个重要的AT指令:

1
2
3
4
5
6
7
8
9
10
11
12
1.AT+RST            #功能:重启模块
2.AT+CWMODE=<mode> #功能:mode=1 :Station模式(接收模式)mode=2:AP模式(发送模式)mode=3:AP+Station模式
3.AT+CWLIF #功能:查看已接入设备的 IP
4.AT+CIFSR #功能:查看本模块的 IP 地址
5.AT+CWJAP=<ssid>,<pwd> #功能:加入当前无线网络
'''
说明: <ssid>:字符串参数,接入点名称
<pwd>:字符串参数,密码,最长64字节ASCII
响应:正确: OK
错误: ERROR
'''

## 电路板设计
### 原理图
原理图
### PCB图
PCB图
### 电路板3D效果图
16XcIP.png

期待比赛取得好成绩!!


  1. Max_ Speed为位置模式保存的目标转速,通过设置这个参数,可以更精确的控制需要的转速,也不用担心出现超过所设定的速度↩︎

作者

Hank.Gan

发布于

2020-02-06

更新于

2021-08-10

许可协议

评论