ESP32-sensorKit 填坑记录

ESP32-sensorKit 填坑记录

ESP32是一系列强大的集成WiFi和BLE的Soc,用它来开发各种与物联网相关的小项目当然是最好不过啦~
继上一次的EndWorld_Kit,我想添加数据上传到远端服务器这一选项,顺便做个漂亮的GUI(在屏幕上做),所以想先用ESP32做个devkit试试水。

硬件设计

以前用习惯了AD,突然想试试朋友推荐的开源CAD软件-KiCad,发现KiCad还是很强大的。。可能刚开始用有些操作和快捷键不习惯(小声bb:用AD的时候也没习惯过),用了一天时间边熟悉边画schematic,算是完成了大部分电路图的绘制~

3Xom3d.png

Schematic

3XIbn0.png

快画完的时候截了个图√
大致分为几个modules:

  • 电源管理
  • USB-UART
  • RGB
  • BMP280(温度+气压)
  • MPU6050(3-axis
    gyroscope, 3-axis accelerometer)

我觉得做这个坑最大的是电源…因为要设计锂电池供电+USB充电,我一直纠结于插上USB时供电来源到底是电池还是USB…看TP5400的框图看不太出来,不过也只能试一试了

3XI4hQ.png

坑1

当我画完了电路图,心满意足地开始PCB Layout时,我发现I2C的SDA wire被设定成了IO0,而IO0在下崽程序的时候要用到。
我怕他会出什么奇怪的bug,于是不得不改原理图把I2C的引脚指派到别的GPIO上去…

坑2

查SPI的文档的时候,我发现ESP32的SPI0和SPI1已经被分配给soc内部的FLASH了…
(那你干嘛还把引脚引出来忽悠我啊呸!)

3XIfAS.png 3XIR78.png 3XI7Xq.png

从上图这个IO MUX Table中我终于找到了SPI引脚的对应GPIO dst…

哭泣.jpg
不说了俺去改schematic了…

PCB

画PCB时,KiCad的操作和AD确实区别很大…我边画边熟悉,最终发现如果全手动布线的话,AD确实操作起来方便一些(因为它支持批量操作等等特性)

KiCad的工作流程(workflow)和AD也有很大的区别,KiCad大致是这样的:

  1. 绘制原理图
  2. 原理图批注
  3. 电气规则检查,初步检测原理图中出现的电气规则错误,可能因为元件模型的问题出现奇奇怪怪的bug(比如我并联2个1117的输出,它会提示error,实际上是没问题的)
  4. 给元件分配封装,如果封装库里没有的要自己画
  5. 生成网表
  6. 编辑符号字段,如果要编辑丝印段的话可以在这里统一编辑
  7. 生成物料清单(BOM)
  8. 运行PcbNew设计PCB

你憋说,害挺好用的。因为这8个操作图标在KiCad的界面上按照顺序排成一排。。
执行完上面一系列操作之后,我们打开了PCB文件
首先给PCB画好边框,40x60mm,大概跟银行卡差不多大小…?

刚刚导入PCBNew时,大致排列了一下元件的样子

3XITcn.png

坑3

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

快要布完的时候…发现某排针放不下了…
最后我的解决方法是-----删了它)

3XIXAU.png

绘制完全的完全体
底面还没有覆铜

感觉好丑是怎么回事(((((

3XoEND.png

光线追踪!

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

未开启光追的渲染图

3XIvh4.png

3XopcR.png

RTX ON!

我并没有RTX(555555)

3XongA.png

3XoujI.png

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

3Xo8US.png 3Xot3j.png

不得不说这个效果就很棒。AD好像都没有光追渲染功能。。
不过也有奇怪的缺点,我发现它使用CPU进行渲染操作…
我的i5-8300H渲染一帧需要 8 秒(我想换台式机了.jpg)

未完待续

挖坑才刚刚开始呢…
疫情原因,在家里啥也没,买啥都买不到(俺家湖北),所以我只能先yy一下。
接下来的工作大概有:

  • ESP32 ToolChain配置(已完成)
  • ESP32 C SDK编程(看API参考看得头大.jpg)
  • 买元件,买个热风枪,俺的锡膏在学校。
  • 焊板子,调试电路(主要是电源)
  • 等我把helloworld烧进ESP32,我就成功了一半了!

To be Continued…