文章目录
项目往期文章
单片机开发环境搭建看这里
CSDN高赞项目:工程训练竞赛之垃圾分类垃圾桶
SLAMCraft:自主导航机器人DIY(一)如何设计一个自己的SLAM机器人
一、电路设计环境搭建
本项目由于较为简单,且考虑到小白在PCB方面的基础较为薄弱、甚至有很多粉丝之前根本没有接触过PCB绘制,同时非常感谢国产嘉立创对我的支持,我们本部分中所有的资源与EDA软件都是在嘉立创生态中的。
1.1 EDA软件安装
打开百度搜索嘉立创EDA,进入网站后点击客户端下载,并下载立创EDA标准版,根据自己的电脑环境选择安装合适的版本,我这里选择64位版本。安装方法:下载成功后选择安装的磁盘,一路next即可,然后根据引导进行注册账号登录即可使用。
1.2 立创开源广场
立创开源广场里面有较多的成熟项目分享,主要以硬件为主:包括项目PCB与原理图,各位小伙伴可以在做开源项目之前在这里进行检索,也可以针对某些模块进行检索,例如这里搜索降压模块,即可出现很多朋友的作品,可以供我们广大嵌入式学习者和电子DIY、爱好者们进行学习和交流。
二、原理图设计
一般的硬件设计流程是先根据产品功能进行拆分模块,最先进行原理图设计、再根据原理图中的设计方案进行PCB Layout、最后根据技术要求生成制版文件进行电路板制造。因此,原理图设计环节在硬件设计中是必不可少、重中之重的,较好的原理图设计代表了整个硬件设计成功了一半。
2.1 硬件的系统设计
我们的机器人控制板按照板块可以划分为电源部分(Power)、最小系统(SystemCore)、外设部分(HardWear)。电源部分由于我们采用12V锂电池供电,通过DC电路将12V降压为5V给5V供电的外设供电、也可以通过USB口给树莓派4B供电(这里已经计算过了树莓派4B在搭载激光雷达和相机的情况下,这个5V3A是完全够的)。
最小系统电路部分:这里其实是任何一个单片机嵌入式系统的最小组成部分,包括晶振电路、BOOT与SWD电路、系统复位电路。其中晶振电路是用于提供震荡时钟源,这也是整个嵌入式系统的心跳脉搏。我们使用的是8MHZ的晶振,后续在时钟配置的时候将进行倍频(暂时不做展开,后续在编码部分会详细配置说明)。此外,对于时间日期这些变量在掉电后仍需要进行计数,这里预留一个RTC接口,对应的晶振使用32.768KHZ搭配一个纽扣电池。SWD用于机器人控制板的程序下载和STLINK调试,BOOT则是用于决定系统启动时从flash还是内部sram中读取。
麻雀虽小,五脏俱全。我们的机器人控制板的外设也比较丰富,资源完全足够嵌入式小白借助这个项目学习常见的嵌入式接口。按照接口类型可以划分为:GPIO类型,通过配置STM32的GPIO模式进行按键的读取和LED点亮;串口类型,将会设计两个串口:一个串口用于与树莓派通信,一个串口作为备用串口,例如:可以用作Shell打印、后续也可以加上串口蓝牙模块或者WIFI模块;I2C设备有MPU6050和OLED模块,前者用于机器人IMU采集、后者作为显示屏用于调试;SPI设备为SD模块(这里SD卡建议选择容量4G以下的,容量较大的卡通常为高速卡可能不支持SPI接口);CAN接口目前没有接外设,这里预留出来作为后续开发和学习;PWM模块有两类:第一类是对外输出PWM控制电机转速,第二类是采集电机编码器回传的脉冲用于计算轮子的转速。
2.2 电源部分(Power)
在机器人控制板中,电源部分扮演着至关重要的角色。它不仅为整个系统提供稳定可靠的电力,还通过保护机制、功耗管理、噪声抑制等功能,保障机器人系统的稳定性、安全性和性能表现。因此,在硬件设计中,充分考虑电源部分的设计和选型是至关重要的。今天,我们来探讨一下使用MP2482和AMS1117两款电源模块实现12V到5V以及5V到3.3V的降压方案。
2.2.1 MP2482的降压方案
MP2482作为一款单片降压开关模式转换器,内置了内部功率MOSFET。其特点在于能够在广泛的输入电压范围内提供高达5A的连续输出电流,并具备优秀的负载和线路调节能力。对于我们的12V输入、5V3A输出的供电需求而言,MP2482恰好符合这一要求。进一步查询MP2482的芯片手册后,我们发现在输入电压为12V、输出电流为2A时,整个转换效率也表现出色(如下图