气泡船电路板设计及其所接外设硬件原理
# [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
只需要输出高低电平就能达到目标 综上,分别打开PE9
和PE11
这两个连接在TIM1
上的PWM输出通道分别控制左右两个动力电机的速度,PE10
和PE12
分别控制左右两个动力电机的方向。
2.船方向舵机
方向舵机的控制原理与动力电及类似,且相较于动力电机,它少了一个控制正反转的接口,是因为舵机是靠检测输入的PWM占空比
来转动相应角度的,也就是说,每一个占空比对应一个固定的角度,因此,要控制它的正反转只需要改变占空比的大小即可。 综上,分别打开
PA1
和PA2
这两个连接在TIM2
上的PWM输出通道分别控制左右两个舵机的角度
3.迪文串口屏
选用的为DMT10768T097_19WT的9.7寸工业级串口屏。这个串口屏的通信采用232电平下的UART串口通信,因此在主控板上需要加一个MAX232电平转换芯片,MAX232的原理点击这里,那么控制它就简单了,只需要单片机引出一对UART通信接口,再将通信接口连到MAX232转换一下电平即可,下面是设计的原理图: 其中,
DISPALY TX/RX
接在串口屏上,Screen TX/RX
分别接在PC10
和PC11
4.mpu6050
mpu6050实际上就是两个传感器,一个陀螺仪角度传感器,一个加速度传感器。陀螺仪的原理是,一个旋转物体的旋转轴所指的方向在不受外力影响时不会改变,利用这个特性,可以精确地确定运动物体的方位。而加速度传感器的原理是,传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第二定律获得加速度值。 mpu6050和嵌入式控制器之间的通信方式为I2C通信,其本质是一根数据线,一根时钟线,通过时钟线保持mpu6050与嵌入式控制器时钟信号的同步,然后利用数据线进行数据传输。注意一点,STM32要能随意地读取mpu6050采集到的信息,所以在编写程序的时候mpu6050应该是I2C通信的从机,而STM32应该是主机。但一般mpu6050的驱动程序已经封装好了,各种寄存器和通信方式都已经配置地很成熟,无需再从零开始造轮子。
综上,分别打开
PB10
和PB11
这一组硬件I2C接口,既然STM32这么高级,都有硬件I2C了,为啥还需要大费周章一行一行的写I2C时序代码呢(摊手.jpg
5.气泵
气泵也许是这个项目最简单的被控器件了,可惜并不是
在小组讨论以后,按照指导老师的要求,我们本该寻找一种可以控制开合程度的电磁阀来控制喷气速率的,但是遗憾的是,我们翻遍了整个淘宝都没找到这种高级的电磁阀(仿佛嗅到了商机 因此,我不得不调整一下思路,既然不能在传播过程中控制喷气速率,那就只能在源头上解决了。 所以,对气泵的控制方式显得格外重要。结合模电学过的MOSFET的知识,可以知道,MOS管是个通过改变栅源电压VGS控制漏极电流ID的器件: 利用其转移特性,我们可以通过控制栅源电压有效值来改变输入气泵的电流,以此来改变气泵的功率(气泵输入电压为12V定值),进而达到了控制喷气量的目的。 控制栅源电压的有效值就更简单了,我们只需要让STM32输出一组PWM,改变PWM的占空比即可改变输出电压有效值,为了让控制效果更直观,可以加一个LED显示电流大小。 选型费了不少功夫,我预期的安全电流ID为10A,VGS为10V,找到了AOD4184这一款NMOS
但它的限制功率可能有些低,于是将两个相同的AOD4184并联就行了,再加上限流电阻等等元器件,设计好的具体原理图如下
于是,整个气泵的控制模块就被设计出来了,通过STM32上连接在
TIM3
的PA6
引脚输出可控占空比的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
121.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图 |
![]() |
### 电路板3D效果图 |
![]() |
期待比赛取得好成绩!!
Max_ Speed为位置模式保存的目标转速,通过设置这个参数,可以更精确的控制需要的转速,也不用担心出现超过所设定的速度↩︎
气泡船电路板设计及其所接外设硬件原理