ESP_32_CAM使用踩坑总结

最近博主手痒,想用esp32cam来做点小视觉项目,奈何做板子经验太少😭,在搞环境部署的时候磕磕绊绊搞了好几天,心态差点崩了。
先将踩过的坑整理出来(同时也是感觉网上我找到的类似的讲解其实不是很到位:①有很多讲解代码来源没解释,这个博主也找了好久😹②对于型号的解释不够到位③暂时没想起来,先放一边吧)

不听老人言,吃亏在眼前。😭

好吧,之所以会踩到这个坑纯属是我作死🤣在没什么Linux基础以及没什么esp32cam使用经验的时候就想当然地想将环境部署到Linux环境下的VSCode中。纯纯🤡了属于是。简单介绍一下我的踩坑历程:

  • 选择Linux系统作为操作系统(其实失败和linux系统还是有一定关系)
  • 选择VSCode作为ide
  • 在以上两个尝试失败之后,仍然不信邪,在windows系统下企图使用Pycharm作为ide
  • 多次碰壁后,终于选择大家最常用的arduino ide作为烧录C语言的ide,选择thonny作为使用micropython的ide,并且均取得成功🥲

烧录器

强烈推荐使用如下图所示的下载器,方便快捷,并且省去了很多烦恼,我上一次使用esp32s的时候就是使用的杜邦线接use-ttl下载器来烧录的,也是踩了很多很多坑😭
接下来简单介绍一下容易踩坑的地方:

坑-Ⅰ:在使用arduinoide烧录与使用thonny时不能使用同一个下图这样的下载器

ESP32S3Pico 例程_嵌入式硬件


图一

ESP32S3Pico 例程_ide_02

图二

在使用arduino ide时应该使用图一所示下载器,使用thonny时应该使用图二所示的下载器。二者区别仅为如下图标注位置的两个电阻是否存在(正常买来是图一的样子,如果要用thonny通信,应该将这两个电阻强行拆掉)

ESP32S3Pico 例程_ide_03

Linux下(Ubuntu)

下面先介绍一下在Linux中使用VSCode编辑代码,并且烧录进程序的正确操作(我在最终成功后,仔细回顾踩坑历程时梳理出来的)
在 Linux中磕磕绊绊地下载完成VSCode后,需要下载两个插件:
①micropython的插件
②esp-idf插件
同时在你使用esp-idf插件的过程中,你需要先将ESP-IDF Prerequisites for Linux下载进你的虚拟机中,才能顺利使用esp-idf插件
安装好插件等一切就绪之后,需要识别到板子,接下来我们的任务就是在Ubuntu中找到对应的串口号
后续的流程我还没做到,暂且不谈了就😂
过程中踩到的坑:

坑-Ⅱ:下载存放在github上的esp-idf框架困难

建议参考下述几个网页:


https://www.esp32.com/viewtopic.php?t=24100 https://zhuanlan.zhihu.com/p/345308267 值得一提的是

git config --global http.proxy socks5 127.0.0.1:7890

在配置git下载的配置后,想要重置其config的命令:

sudo ln -s /usr/bin/python3 /usr/bin/python

坑-Ⅲ:寻找串口

  • Linux下,查看USB口的命令:
  • lsusb
  • 死活识别不到串口
  • 检查是否被占用
  • 检查是否被断开
  • 思考是否Ubuntu中未含串口驱动
  • 检查vscode中的插件是否版本对不上或者启动不了


通过这篇博客的代码,得出了一段以下的神奇报错

ESP32S3Pico 例程_嵌入式硬件_04

即:本来连上的,如何莫名其妙断开了

直接复制报错信息,在stackflow中找到答案:

ESP32S3Pico 例程_ESP32S3Pico 例程_05

  • ⚠️ 带有内置软件的发行版应该背锅,这个软件会专门通过硬编码来声明 ttyUSB0 并在软件无法识别硬件时断开连接(删掉之后不影响使用)

Why would ch341-uart be disconnected from ttyUSB?

Windows中的Pycharm

因为时间过了好几天了,我在我的日志中也记录的不是很清楚,是以一种意识流的方式来记录踩了的坑,因此这一部分肯定会有较大的缺漏,不够博主写这篇文章的初心只是想记录下我踩坑的流程😂,同时顺便帮助一下和我一样遇到类似问题的同学,毕竟大部分坑都是网上很多前辈遇到过的,我只是以我的视角,在混乱中终于梳理出一个大致的使用流程。
在pycharm中依然是需要我们安装两个插件,但是因为是在Windows主系统中,所以我们在使用git下载时遇到的问题较好解决(因为我的Linux是虚拟机,涉及到比较复杂的网络配置问题。我在配置的时候甚至还重装了一次vmware和系统😭)

坑-Ⅳ:pycharm中下载插件网速极慢问题

  • pycharm中网速慢:
  • 直接猜测是(使用了魔法后,网络被代理到新的端口),因此在pycharm中应该重新设置网络
  • 修改代理,端口号一般为8090(根据自己的代理软件内信息查看)

arduino-ide中的使用

具体使用教程网上已经非常多了,具体流程什么的我也不提了(其实是博主想在回寝之前赶完😋)
直接进入正题

坑-Ⅴ:应该如何上手esp32cam的编程

我的评价是:网上找到的源代码一律忽略

(在arduino中正确安装了esp32的开发板信息之后)直接左上角:文件-示例-ESP32

ESP32S3Pico 例程_python_06


选择ESP32后,进入Camera

ESP32S3Pico 例程_ESP32S3Pico 例程_07


现在你就得到了官方给出的源代码,其中各种引脚定义都能在代码中查看,并且你能通过看代码大致理解整个程序的流程

坑-Ⅵ:配置!!!

注意

接下来是最重要的一步

只要你的板子与我的长得一样:

ESP32S3Pico 例程_嵌入式硬件_08


ESP32S3Pico 例程_串口_09


那么,配置你应该这样选择:


ESP32S3Pico 例程_嵌入式硬件_10


刚打开的程序中,将摄像头定义改为AI_THINKER的

②开发板配置

ESP32S3Pico 例程_ide_11


无脑选择如图所示信息

网上给的很多配置都不是这样的,我估计是因为购买源的原因,建议与网上给出的配置一同使用。多换几个配置就知道自己的板子应该如何设置了(只需要注意开发板这里的配置一定要与代码中修改成一样)

在具体踩坑过程中遇到的报错信息我也保存了很多,但是确实因为时间原因(我快来不及回寝了😂),原来预想的洋洋洒洒的大文章就只能写到这里了,根据具体报错从而解决报错的过程我就暂时不写了,不过在解决报错的时间里,我也趁此机会看了看官方给出的资料,确实很详细,只能说遇到莫名其妙问题的时候,github提问区,stackflow,以及官方文档是十足重要的。