目录
关于ESP32-SOLO
ESP-32 SOLO快速上手
如何使用PlatformIO开发ESP32
设计Bug与主要坑点
结束语
关于ESP32-SOLO
ESP32-SOLO主要特点是只有一个核心,这也使得使用上有点儿不一样
这一款的话和其他的相比较,它的最大特点就是便宜而且非常便宜只要5块钱,因为我是从那种类似于二手电子垃圾商那边买来的,我一共买了5块。
他们都是装在一个不知道是什么的板子上,我看了一下评论好像是说哪一家的无线遥控的RGB彩灯类似于这样子
开发板电路设计
我为这一个东西设计了电路,可以参考一下,https://oshwhub.com/sinzo/esp32-kuo-zhan-ban
目前来说具有以下特性
引出大量接口
具有SD卡接口
具有充电电路
具有Type-C
能任意下载程序
OLED
在实际测试时候,我发现BOOT和EN应该是可以去除,只是为了防止问题依然保留了下来,可以根据需要进行删减
充电电路选择的是TP4059
需要注意的是这里是自动复位/下载电路,它的电阻R5以及R6要接近10K,我一开始参数写成1K,焊接时候也焊了1K,结果就是直接失效了
设计有一个RGB LED灯,WS2812B,属于机械键盘常用的一款,效果不错
最终打出来的板子是黑色的PCB,我很喜欢。
这一个充电电路在充电时候会有50度左右,没问题,可以正常的运行。
如果要省电,或许可以不安装PWR指示灯
周身配置了m2的螺丝孔,需要的时候可以安装外壳或者亚克力面板
ESP-32 SOLO快速上手
我用Arduino IDE来测试板子好坏以及下载,具体的编程和编译应该还是用PlatformIO(一个基于VSCode平台的插件)因为效率比较高。
在首选项的附加开发板管理中添加这一行
https://dl.espressif.com/dl/package_esp32_index.json
后重新启动,并在开发板管理器中搜索ESP32即可
之后在开发板那边点选ESP32 Dev Module
选了一个例子程序用来测试
可以看到正常的进行下载,似乎毫无问题
但是,在使用ESP-32 SOLO时候,因为这个单核特性有别于几乎所有成品板子,所以说程序是无法直接使用的。直接提示你错误,没法运行。
如何解决?最简单的方法就是使用这一个网友提供的这些文件
https://github.com/lbernstone/arduino-esp32-solo 去替换掉下载的sdk
方法是这样,先把上面这个下载下来后,替换arduino15中的packages目录下的esp32文件夹中的文件,具体的路径看图,版本要和实际的对应。比如我这里是1.05的版本。
这个路径下的tools是不对的,我一开始替换这个文件夹发现依然编译的程序还是不能运行,感觉被骗了。后面发现是目录没搞对。
错误路径
C:\Users\你的用户\AppData\Local\Arduino15\packages\esp32
正确路径
C:\Users\你的用户\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.5\tools
重新加载一个GetChipID例子,测试一下看来是没问题了
现在可以自由的进行开发了。
如何使用PlatformIO开发ESP32
PlatformIO的通用性很高但是因为是比较新的一个玩意,所以资料不多,自然也没有说如何在上面开发ESP32-SOLO,但是我这边解决了这个问题
新建,板子的类型选择Espressif
我写的程序是这样
配置的platformio.ini是这样
可以看到能正常的进行下载。如果说就插一个板子, 那么不需要配置COM口
但这不能运行,一样的问题,就是提示说你的程序是双核的。这就回到和之前ArduinoIDE一样的问题上面了。
先来找一下插件的所在文件夹,PlatformIO在安装好后,是在这样的几个文件内存有我们可能需要的文件:
C:\Users\用户名\.platformio\packages
C:\Users\用户名\.platformio\platforms
最终找到一个文件夹和我们之前折腾的ArduinoIDE的开发板资料文件夹最类似(一模一样),在这个位置
C:\Users\wzx13\.platformio\packages\framework-arduinoespressif32
我们需要下载这位老兄的文件,并且把这个文件夹覆盖掉原本的文件夹
最终就可以使用了。
设计Bug与主要坑点
因为是第1版本,所以在一些地方的设计确实有很多不足,但是还好能用。只是我原本计划用来读取SD卡信息的,这部分最关键反而没完成。
ESP读取SD卡难度有一些并不是那么的顺利(相比你使用其他比如ATMEGA),ESP有两个slot,其中slot0被内部的FLASH占用(比如SOLO就是内置4MB的FLASH)
而这个slot1使用也很不方便,官方是说要接到BOOT0,但是实际上你是要在烧写完成后接一个1K的电阻到BOOT0,非常离谱,很不方便。
然后有个勉强解决的方法是使用SPI,但是SPI速度如果超过25Mhz又会出问题,非常离谱。
当你解决了读取问题后又会发现,本身的文件系统不支持读取FAT32之外的卡,而FAT32只能写最大4GB的文件,而大于等于64GB的卡通常都是格式化为exFAT。但还好,使用一些软件比如DiskGenius可以把64GB以上的SD卡格式化为FAT32但问题是这有什么意义呢。
换句话说ESP32的文件系统,只能读FAT32并且64GB或以下,很落后并且目前不能解决,试过改头文件夹,增加宏定义,都没有一个明显改善。假如说你想要用到SD卡这一块,最好是搞清楚你的卡的容量
结束语
这一个ESP32-SOLO虽然是单核但是用起来确实挺爽的,价格便宜,然后它容量又大,并且看起来货还有非常多,总的来说如果觉得没什么问题的话,可以拿来用一用。
最后,祝玩的愉快。
ps:立创的这个文章编辑实在难用,图片还要一张一张插入,希望以后能和CSDN一样