做辆电赛小车,电路代码全开源!
我用立创·梁山派开发板做了辆电赛小车,采用全国产化设计。
本文主要分享小车的“电路原理”与“PCB设计技巧”。
PS:软件部分已开源,有需要可在“开源资料下载”章节查看。
全文导航
工程电路描述、引脚分配、元器件选型+电路原理、PCB设计、开源资料下载、视频教程。
一、工程电路描述
我做了一辆智能送药小车,基于立创·梁山派开发板设计。

这是小车里最主要的板子。
它板载国产姿态传感器和磁力计,拥有驱动电机,舵机,蜂鸣器,摄像头、屏幕、CAN电路等模块。

详情电路图设计请前往立创开源平台查看:
https://oshwhub.com/li-chuang-kai-fa-ban/21-dian-sai-f-ti-zhi-neng-song-yao-xiao-che

二、引脚分配
电路设计中,最开始,最重要的,就是引脚分配。
引脚分配不好可能会造成资源丰富的MCU没接口可用,或布线异常麻烦,从而降低设计效率!
由于送药小车是基于立创·梁山派开发板设计的,因此我们可以通过【梁山派原理图】和【GD32F470的Datasheet中的2.6.2中的硬件定义】获得下面的引脚分配表。





如上图所述,我是按照图片排列顺序进行引脚资源分配的——UART,SPI,正交编码器接口,PWM,IIC(优先硬件,软件的也可以),CAN,ADC,LED,KEY,灰度传感器接口。
三、元器件选型及原理图设计
本章节将讲解【小车拓展板原理图】中的9个电路模块。
01电源路径的选型及设计
这里选用SGM6132,3A,28.5V,1.4MHz Step-Down Converter进行设计。

并参考官方的典型应用来设计原理图。

这是上述芯片各个参数的推荐选型数值。

由于我需要的是5V的输出,因此可以直接参考官方数值。
注意!如果需要自己算阻值,电阻阻值不要超过他它的最大值。比如这个芯片的R2最大值是100kΩ,那阻值超过100kΩ它就不能工作了。
最简单可靠的还是用官方推荐的图来设计。
其他的XT30接口,自恢复保险丝,波动开关电路,TVS过压保护等选型就比较简单了。这里简单讲一下。
XT30公头可以随便选。

考虑到两个直流减速电机在启动时,瞬时电流会很大,所以这里选择的是最大5A的自恢复保险丝。

这里选择的拨动开关,最大可以过6A的电流,妥妥的足够用了。

当工作在正常电压下时,TVS保护电路的电阻很大,不会对电路产生影响;
在瞬态电压出现时,TVS保护电路的电阻会迅速变小,将电压限制在设定的安全范围内,从而保护电子设备不受损坏。

不过锂电池的电压是非常稳定的,这个保护主要通过调试开关电源供电时,防止电压超标。
02电机驱动电路选型及设计
一个AT8870可以驱动一个直流电机正反转,我们要驱动两个直流电机,所以这里要用两个驱动芯片。

这里重点要看的参数是——主供电要求,逻辑供电要求,逻辑输入要求,连续输出电流,峰值输出电流,最大PWM频率等。
了解上面以上参数后我们就可以选电机了。
我选的是轮趣科技的MG513P20_12V,这个电机减速比是20,工作电压是12V,额定电流是0.36A,堵转电流是3.2A。
可以确保“电机的工作电流电压”在“电机驱动芯片”的工作范围以下。
但是注意了!
由于AT8870峰值输出电流是3.6A,很有可能在长时间堵转的情况下烧毁!
于是我后续找到了一个更好的,就是AT8236。
它的最大峰值驱动输出可达6A,连续输出驱动可达4A,还是PINtoPIN的,实际焊接的时候直接替换就好了。
03姿态传感器选型及设计
姿态传感器可以通过测量物体的“加速度”,“角速度”等参数计算出物体的姿态信息。

我选择的六轴姿态传感器是QMI8658A。
它的封装和国外大厂的部分型号PINtoPIN的,后续可以替换测试其他厂家的imu。
参考QMI8658A的datasheet中第八页(可以在立创商城下直接预览),他给出了三线SPI,四线SPI,IIC的应用图。
查看手册中的表15,可以了解这款芯片SPI最高时钟支持15Mhz,IIC时钟最高支持400Khz。
为了在单位时间内获得更多的数据,就选用SPI协议了。
04磁力计传感器选型及设计
姿态传感器分为6轴和9轴,9轴的就是带磁力计的。
在姿态解算中,磁力计可以提供重要的地磁信息,能更准确的定位设备的方向和位置。
此外,磁力计还可以帮助校正陀螺仪的漂移误差,提高姿态解算的精度。
这里我使用的是国产磁力计QMC5883P。
参考其datasheet可以了解到,它最高支持400Khz的IIC速率,不支持SPI,结合第七页的建议外部连接可以设计出以下原理图。

05蜂鸣器选型及设计
蜂鸣器可以将电信号转化为声音信号,提供各种声音反馈或警报信号。
蜂鸣器从构造类型分为——电磁式和压电式两种。
从驱动方式分为——无源(由外部方波驱动)和有源(由内部驱动,外部给电就行)两种。
按封装分为——插针式和贴片式。
我选择的是无源电磁式贴片蜂鸣器,工作电压2-4v,频率4000Hz,这里的频率是指他在这个频率下最响的声音。

D2的主要作用是保护驱动的MOS管。
蜂鸣器和电机一样,是感性元件,它的电流是不能瞬变的。必须有一个“续流二极管”提供续流。
如果没有这个续流二极管,停止给蜂鸣器供电的时候,在蜂鸣器两端会有反向感应电动势,产生高达几十伏的尖峰电压,会损坏驱动电路。
R26是限流电阻,防止电流太大损坏芯片的PWM输出引脚。
R4是一个简单的下拉电阻。
06按键及药物检测开关设计
通常,按键内部使用的是机械弹性开关。
当它按下弹起的时候,机械触点会因为弹性作用,在闭合和断开的瞬间,产生一连串的抖动。这种抖动会导致输入信号在高低电位之间弹跳,有不正确的输入。
因此,要在芯片内部设置一个下拉。

这里面电阻的作用是限流(害怕初学者不小心给设置成推挽输出了)。电容的作用是硬件去抖。当然,软件消抖也是必须的,硬件去抖只能改善不能消除。

这里的按键改为了碰撞开关。我准备设计一个3D打印结构,当药物放下的时候,会碰撞开关,检测到药物是否安装成功。
碰撞开关的商品编号:C87120。
07ADC电压采集电路设计
左边第一路ADC是采集电池过来的12V电压是否正常。
其他三路给用户使用。

这里电阻的选择是简单的电阻串联分压。
比如,12V从上面过来,那到单片机IO的电压就是这样计算的:
12V*(R15/(R11+R15))=1.09V
ADC引脚进来的电压最大不能超过3.3V,所以这里我用了一个D3-双向TVS管。
大于3.3V这个D3-双向TVS管就会保护单片机引脚。
08CAN芯片选型及设计
控制器局域网总线(CAN,Controller Area Network)是一种串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。
这里我选择的是 SIT(芯力特)的SIT65HVD230DR,3.3V供电,速率最高1Mbps。

Rs是模式选择引脚,强下拉至GND=高速模式;
强上拉至VCC=低功耗模式;
通过10kΩ至100kΩ电阻下拉至GND=斜率控制模式。
其他连线参考手册就可以知道。
但是注意!
这里的TXD、RXD、串口的标注方式有点不一样——RX接R,TX接D。
在CAN总线的两端必须连接120Ω的终端电阻才可以正常工作。电阻的作用是为了匹配总线阻抗,提高数据通信的可靠性。
09S-BUS电路设计
SBUS是一种串行通讯协议,常用于遥控端。可以通过单个信道传输多个通道的数据。
可以把它理解为串口协议,采用100k波特率,数据八位,两位停止位,偶校验。
因为它采用的是反向电平输出,所以必须要硬件取反,除非你的芯片串口外设自带硬件取反。

搞定了原理图部分,就要开始进行PCB设计了!
四、PCB设计
本章节主要讲解——PCB布局教程、DC-DC降压电路的布局技巧、电机驱动电路的布线技巧、其他说明。
01PCB布局
我想让PCB和梁山派的大小保持一致。
因此,要先把梁山派的板框和定位孔坐标复制过来。

①确定一下两个40P排母座子的坐标。
因为想在背面放置GH1.25带锁扣卧式连接座,所以这里的排母需要选贴片的。

②把尺寸面积比较大的元件先摆好。
这里连接件比较大的有——XT30电源接口,大电流拨动开关,两个电机连接座,两路舵机接口。
③姿态传感器和磁力计
为了姿态传感器更能反应板子的姿态,所以把它放在底板的正中心,磁力计就放到姿态传感器旁边。

红圈中,左边是姿态传感器,右边是磁力计。
上下的两条开槽主要有两个作用:一个是降低板材变形对姿态传感器的应力影响;一个是降低DCDC降压和电机驱动芯片工作时产生的干扰。
④各种连接座子和按键的布局
到背面了。
GH1.25连接座子、侧按按键要靠近板边。
为了防止侧按按键被误触,我将其设计为了只有用指甲才能按下。

⑤其他元件的布局
这里采用就近原则。


02DC-DC降压电路
电源可以说是一个电路的心脏,一个不稳定的电源会让系统没法正常工作。
在布局的时候一般要注意以下几点:

当然有些要求可能没法完美满足,尽量达到就行,例如:
①SW回路越小越好

②反馈电阻距离越靠近芯片引脚越好。

03电机驱动电路
电机是大功率用电器,堵转的时候能达到2,3A的电流。
有时芯片都还没烧坏呢,电路板的铜皮直接被烧断了。
因此,需要注意一下这些布线技巧:


04其他


五、开源资料下载
智能送药小车是一道电赛题(21年F题),本项目的电路代码资料已全部开源!
如果你需要【软件部分】的开源资料用于参考学习,请戳文章评论区置顶的链接获取。
六、视频教程
智能送药小车精简版视频教程一共3节,点击即可查看。
PS:后续还会有相关精品课程更新,旨在手把手教会你做一辆小车!可以期待一下~
就算是小白,也可以趁着暑假做一辆这样的小车,增长项目经验!