功能确定好后,接下来就是方案和器件选型,先把前面确定的功能列一下
序号 | 功能 | 集成/外购COTS |
1 | 避障 | 集成 |
2 | 循迹 | 集成 |
5 | 电机驱动 | 集成 |
6 | 测速 | 集成 |
7 | 方位计 | 集成 |
13 | 光强检测 | 集成 |
17 | 电源管理 | 集成 |
9 | 通信 | 集成 |
10 | 车身指示 | 集成 |
3 | 测距 | COTS |
4 | 舵机 | COTS |
8 | 本地显示 | COTS |
11 | 碰撞 | COTS |
12 | 颜色识别 | COTS |
14 | 语音控制 | COTS |
15 | 视频回传 | COTS |
16 | 定位 | COTS |
17 | 电机 | COTS |
针对我这辆集成小车,选型和设计依据的原则:
1)板载集成功能,确定硬件器件型号,并且考虑COTS的兼容性。硬件和软件功能大体实现方案需要确定
2)COTS模块,提前考虑,在PCB板上留好接口和安装位置
3)供电能力
4)尽量选择贴片器件
5)性能、价格、体积、安装等综合考虑
接下来就是展开介绍如何考虑功能实现和器件选型,前面章节已经提到这里就不会赘述了。
-
可以提前确定器件的功能
方位计-MPU6050、测距- HC-SR04、舵机-MG90S、光强检测-光敏电阻5528、本地显示-OLED、车身指示灯-3528共阳七彩灯珠、行驶指示灯-5mm发光二极管、碰撞-KY-031
-
红外管选择
市面小车上常用的红外管,外观形态有2种,前者是普通圆头的管子,后者型号PT928-6C如下图所示,发射和接收成对使用。
普通圆头的红外管有2种尺寸规格,5mm和3mm,选用的是5mm。
红外管用的有850nm和950nm,选用的是950nm。原因是他们在某宝上卖家多:)
普通圆头红外我用作车头和车尾的避障红外和跟随红外。
PT928-6C和IR928-6C是收发对管,它的红外反射后接收距离比普通圆头红外管检测的短,收发直射,检测距离还可以,做避障不够,用作码盘测速检测可以,而且引脚不用折弯。某宝上码盘测速的成品好像用的就是这种管子。
循迹功能我默认采用的是TCRT5000。但是后期调试后我统一成普通圆头的红外管了。
这里补充说一点:
普通圆头红外管受日光线的干扰比较大,障碍检测距离做到10cm算不错了,如果加大发射端电流能调远些,但是在日光较强的环境里基本不可用。我在这里看了一些强抗干扰的红外检测的成品和方案,供大家参考
1)利用类似红外遥控的原理,通过给红外编码以增加抗干扰,而不是简单的有/无
2)E18-D80NK,这个传感器属于工业级的,蛮好用,就是有点贵,供电电压是5V
这是给自己准备的B计划,万一板载传感器不行,我就换成它们。实际测试还好。
这里请允许我先卖个关子,我找到了一种简单的增加日光线干扰的方法:)(我前面放出的图里其实能看出来)
-
电机选型
型号 | 标称转速RPM | 空载电流(mA) | 额定电流(mA) | 堵转电流(mA) | 测试结果 |
TT-130@6V | ~200 | ~200 |
| 450 | OK |
N20@6V | 500 |
| ~160 |
| OK |
N20@6V | 1000 |
| ~160 |
| NOK,扭矩太小,加减速反应很慢 |
370@6V | 170 | ≤100 | ≤450 | 1800 | POK,车速偏低 |
370@6V | 620 | ≤100 | ≤450 | 1800 | OK,全速时可以甩尾 |
电机的选型很重要,这是小车最大功耗部分,直接影响电源方案,上述3种类型电机是我主要备选对象,其中370@620转电机速度性能最好,N20电机灵活性最好,TT电机介于两者之间。
设计阶段就考虑了要兼容这三种电机的安装方式,因为现成的370电机安装支架与TT/N20安装孔有些重叠,所以实际小车,TT电机和N20电机的轴距是一样的,370电机轴距略小,无法配套现成的PC外壳。
PCB结构的很多调整都是围绕电机位置和电机外围尺寸进行的,有些地方没有实际安装还真的容易忽视。通过禁布区的设置,可以把走线区域限制在电机外部。
-
电机驱动芯片
电驱芯片的选择前后换过几次,第一版我采用的是L298N,但是这款芯片太贵了,后来改版就换成了DRV8833P,2路电机驱动支持1.5A电流,部署2片,实际贴片的时候DRV8833又缺料,又换成了pin-to-pin兼容的HR8833,芯片具体参数大家自己找吧,这里就不凑字数了:)
-
供电方案
供电方案时我纠结最久的地方,其实就2种选择:升压或者降压方案。
前面考虑的电机虽说标称是6V电机,但是电压低点或者高点都可以工作,电压越高,小车跑得越快。对电池的输出功率要求越大,6V是一个合适的电压。因为我做过370电机在10V电压下的极限测试,结果把电源芯片烧了。
降压方案是电池串联直接给电机供电,数字部分电源用降压芯片。业界用的比较多,优势是电机供电方案简单,只要电池放电特性满足电机工作要求,小车跑起来不会有问题,我个人觉得有风险的地方是电机堵转的时候,容易造成电池输出电压跌落,导致MCU的数字供电部分异常,小车就会重启。规避方法可以在电驱处做OCP过流保护,选用的电池放电倍率大点。
升压方案是电池并联,电机供电和数字部分都通过升压方式。市面上常用的升压电源输出电流在2A左右,用一路升压电源给电机供电就不够,需要2路。这样做无疑增加了电源部分复杂度。另外一个问题是电机的2路升压输出电压不会完全一致,这点我自动忽略了。
影响电源选型的另外一个因素是充电。降压方案中对2节串联电池充电,需要先升压。升压方案就简单多了,直接用单路锂电池充电芯片就可以。
第三个考虑因素需要检测电池电压,通过OLED实时显示当前电池容量。我实现的比较粗糙,直接用电压的相对百分比来显示容量。并联方案只需要一路ADC通道就可以完成检测,因为前面循迹、避障、光敏就用了11个ADC通道,对于ADC通道多的MCU来讲,这个不是问题,先暂且不表。串联方案要检测2节电池的电压就不能直接进ADC了。
第四个考虑的因素是充放电保护。毕竟电池这玩意属于危险品,不能充爆了也不能过放漏液,在充放电主回路上必须加上MOS管保护,简单考察了下,并联方案有成熟芯片直接实现,串联方案有点啰嗦,我没去细研究,感兴趣的自行找资料。
综上所述,电源网络如下:
-
通信
前面已经提到过了,首选ESP-07 WIFI传输作为通信通道,那么蓝牙和NRF24L01是否也兼容下呢?蓝牙我玩的比较少,市面很多蓝牙出UART接口,一合计,留一个商用蓝牙模块的接口即可,跟ESP-07共用,ESP-07不用的时候软件复位掉即可。NRF24L01为啥想留着呢?因为ESP-07只能做单播,小车之间的通信如果通过ESP-07直接相互连接,就会出现数据多链路并发,ESP-07需要工作在HYBRID模式,ESP-07在此模式下使用起来就有些麻烦,数据吞吐率也不够(后面设计实现时分享)。NRF24L01网友讲可以在0实现通道广播,有人做出来,那就留着吧,SPI口本身肯定要预留一个的,优先兼容商用的NRF24L01模块好了。
-
语音控制和视频回传
我现在都没去弄,下一步的事情,给语音模块留个SPI口和UART口就行,用到再弄。
-
定位
我现在没有用到,下一步的事情,设计时留个UART口就行。
-
人体接近红外
这个模块没太多选择,我也没当成重点选,选的是HC-SR501
到此位置,各项模块的器件选型就这么都确定了。接下来的事情就要选MCU和确定资源了。
这里汇总一下前面各项功能需要的MCU资源。
序号 | 功能 | 集成/外购COTS | 器件型号 | 扩展说明 | 数量 | 工作方式 | 需要引脚数量 |
1 | 避障 | 集成 | 940nm红外收发管 | COTS做备选 | 6 | ADC | 6 |
2 | 循迹 | 集成 | TCRT5000 | COTS做备选 | 4 | ADC | 6 |
5 | 电机驱动 | 集成 | DRV8833P |
| 2 | TIM-PWM | 8 |
6 | 测速 | 集成 | 940nm红外收发管 |
| 2 | TIM-CAP | 2 |
7 | 方位计 | 集成 | MPU6050 |
| 1 | I2C | 2 |
13 | 光强检测 | 集成 | 光敏电阻5528 | KY-301 | 1 | ADC | 1 |
17 | 电源管理 | 集成 | TP4056(充电) | 接口单独拉出,可直接接串联电池组 | 1 | ADC | 1 |
9 | 通信 | 集成 | ESP-07 | HC-06共用串口,出SPI接口NRF24L01 | 1 | USART | 2 |
SPI | 4 | ||||||
10 | 车身指示 | 集成 | 3528 RGB+LED |
| 1 | IO(无PWM) | 7 |
3 | 测距 | COTS | HC-SR04 | 激光测距VL53L0X备选 | 1 | TIM-CNT+GPIO | 2 |
I2C | 2 | ||||||
4 | 舵机 | COTS | MG90S |
| 2 | TIM-PWM | 2 |
8 | 本地显示 | COTS | OLED |
| 1 | I2C | 0 |
11 | 碰撞 | COTS | KY-031 |
| 1 | GPIO | 1 |
12 | 颜色识别 | COTS | TCS34725 | 可与激光测距I2C复用 | 1 | I2C | 0 |
14 | 语音控制 | COTS | 可编程语音控制模块,没玩 |
| 1 | I2C | 2 |
15 | 视频回传 | COTS | 没玩 |
| 1 | WIFI | 0 |
16 | 定位 | COTS | GPS模块,没玩 | 可与串行舵机复用 | 1 | UART | 2 |
17 | 电机 | COTS | TT-130/N20/310/370 |
| 4 |
| 0 |
18 | 人体接近 | COTS | HC-SR501 |
| 1 | GPIO | 1 |
19 | 预留 |
|
|
| 1 | SPI | 5 |
20 | 预留 | 1 | USART | 2 | |||
GPIO合计 | 58 | ||||||
定时器资源合集 | 另计 |
|
引用文献:
因为增加链接会导致“广告”嫌疑,感兴趣的同学请自行搜索
侵权声明:文中部分图片来自互联网,如您发现引用您的资源而又没有声明出处或者您不愿意被我引用,请留言,我会第一时间修改。谢谢