ESP32-sensorKit 填坑记录
ESP32是一系列强大的集成WiFi和BLE的Soc,用它来开发各种与物联网相关的小项目当然是最好不过啦~
继上一次的EndWorld_Kit,我想添加数据上传到远端服务器这一选项,顺便做个漂亮的GUI(在屏幕上做),所以想先用ESP32做个devkit试试水。
硬件设计
以前用习惯了AD,突然想试试朋友推荐的开源CAD软件-KiCad,发现KiCad还是很强大的。。可能刚开始用有些操作和快捷键不习惯(小声bb:用AD的时候也没习惯过),用了一天时间边熟悉边画schematic,算是完成了大部分电路图的绘制~

Schematic

快画完的时候截了个图√
大致分为几个modules:
- 电源管理
- USB-UART
- RGB
- BMP280(温度+气压)
- MPU6050(3-axis
gyroscope, 3-axis accelerometer)

坑1
当我画完了电路图,心满意足地开始PCB Layout时,我发现I2C的SDA wire被设定成了IO0,而IO0在下崽程序的时候要用到。
我怕他会出什么奇怪的bug,于是不得不改原理图把I2C的引脚指派到别的GPIO上去....
坑2
查SPI的文档的时候,我发现ESP32的SPI0和SPI1已经被分配给soc内部的FLASH了...
(那你干嘛还把引脚引出来忽悠我啊呸!)



从上图这个IO MUX Table中我终于找到了SPI引脚的对应GPIO dst...
哭泣.jpg
不说了俺去改schematic了...
PCB
画PCB时,KiCad的操作和AD确实区别很大...我边画边熟悉,最终发现如果全手动布线的话,AD确实操作起来方便一些(因为它支持批量操作等等特性)
KiCad的工作流程(workflow)和AD也有很大的区别,KiCad大致是这样的:
- 绘制原理图
- 原理图批注
- 电气规则检查,初步检测原理图中出现的电气规则错误,可能因为元件模型的问题出现奇奇怪怪的bug(比如我并联2个1117的输出,它会提示error,实际上是没问题的)
- 给元件分配封装,如果封装库里没有的要自己画
- 生成网表
- 编辑符号字段,如果要编辑丝印段的话可以在这里统一编辑
- 生成物料清单(BOM)
- 运行PcbNew设计PCB
你憋说,害挺好用的。因为这8个操作图标在KiCad的界面上按照顺序排成一排。。
执行完上面一系列操作之后,我们打开了PCB文件
首先给PCB画好边框,40x60mm,大概跟银行卡差不多大小...?
刚刚导入PCBNew时,大致排列了一下元件的样子

坑3
其实不是坑,是我太菜了不会合理规划板子布局(orz),画到最后发现我想预留的一排8pin拓展接口(以后接DLC用的)画不下了...
一是板子没空间了,二是我觉得现在的走线密度有点过高了...就算我用尽各种奇淫技巧挤出了放排针的空间,我觉得也布不成线...
快要布完的时候...发现某排针放不下了...
最后我的解决方法是-----删了它)

绘制完全的完全体
底面还没有覆铜
感觉好丑是怎么回事(((((

光线追踪!
KiCad有个有趣的功能,在查看3维PCB时可以使用光线追踪渲染PCB~
我试了一下,感觉还不错...(要是我会画3D封装就好了orz(我好菜啊.jpg))
未开启光追的渲染图

RTX ON!
我并没有RTX(555555)

这是KiCad自带的导出功能导出的PNG

不得不说这个效果就很棒。AD好像都没有光追渲染功能。。
不过也有奇怪的缺点,我发现它使用CPU进行渲染操作...
我的i5-8300H渲染一帧需要 8 秒(我想换台式机了.jpg)
未完待续
挖坑才刚刚开始呢...
疫情原因,在家里啥也没,买啥都买不到(俺家湖北),所以我只能先yy一下。
接下来的工作大概有:
- ESP32 ToolChain配置(已完成)
- ESP32 C SDK编程(看API参考看得头大.jpg)
- 买元件,买个热风枪,俺的锡膏在学校。
- 焊板子,调试电路(主要是电源)
- 等我把helloworld烧进ESP32,我就成功了一半了!