前言

购买了ESP32-CAM,想要搓一个相机玩玩,用python编写程序。

图方便直接买了带烧录座的(如图款,硬件已完成修改,见下文)。

网上查阅了很多教程,但是都用的USB转TTL模块,很少有用烧录座的。

大量参考了这篇:ESP32-CAM应用(Micropython+Thonny)_esp32cam-CSDN博客

不过这篇使用的是USB转TTL模块,本文会大量借鉴这篇文章的步骤,并对烧录座进行补充

教程部分:

1.烧录座准备

第一次进行烧录的时候怎么都成功不了,问了客服才知道:使用Thonny通过烧录座烧录需要先修改硬件电路

具体来说是要敲除两个原件,这个有一点动手能力就行:

 

这两个原件敲掉,保险一点就用烙铁热一下取掉

可以看到座上有两个按键,一会要用到,一个是IO0接地按键,另一个和板载reset功能相同

接下来把板子插上去,准备烧录

2.烧录准备

这里的步骤参考:ESP32-CAM应用(Micropython+Thonny)_esp32cam-CSDN博客

写得很详细,这里准备到这个界面:

(也就是下好固件,准备好烧录)

3.烧录固件

这一步需要一点技巧,首先点击界面红框部分打开详细信息:

按一下烧录座RST键,重置一下

然后保持按住IO0键,使板子IO0接地进入烧录状态(如图)

这一步很重要!!!!!在接下来的过程中请一直按住!!!!!

接下来开始微操:

1.点击屏幕上的Install键,开始

2.出现如图字后赶紧再次按下RST键(这时候IO0键仍然没有松开)

3.稍作等待,会有字提示:

4.然后开始出现百分比,这时候可以松开IO0键:

5.等待烧录完毕,Done:

6.关闭窗口,发现还有报错,按一下RST键

按RST前:

(#第一次试的时候一直报这个,然后问客服才知道有改硬件电路这一步)

按RST后:

(可见已经成功识别)

到此刷写固件完毕

4.测试

插入TF卡

输入以下程序:

import uos
from machine import SDCard,Pin


import camera

lighter=Pin(4,Pin.OUT)
# 初始化摄像头
try:
    camera.init(0, format=camera.JPEG)  # 使用try捕获初始化异常
except Exception as e:
    camera.deinit()  # 如果捕获到异常,则释放。
    camera.init(0, format=camera.JPEG)

try:#挂载TF卡
    uos.mount(SDCard(), "/sd")
except Exception as ret:
    print("挂载失败...", ret)
else:
    print("挂载成功...")
    
lighter.value(1)
# 拍摄一张图片
buf = camera.capture()  # 大小是640x480
print("拍摄完成")
# 保存图片到文件
lighter.value(0)

camera.deinit()  # 在使用摄像头后,调用camera.deinit释放
print("摄像头解除完成")

with open("/sd/number.txt", "a+") as f:
    f.seek(0)
    lasstnum = f.readline()  #读第一行
    f.seek(0)
    f.write(str(int(lasstnum)+1)+"\n")
    print("序号更新成功")

lasstnum = lasstnum.strip('\n')

with open("/sd/photo"+lasstnum+".png", "wb") as f:
    f.write(buf)  # buf中的数据就是图片的数据,所以直接写入到文件就行了
    print("拍照完成")

先把代码保存到板子里:File>>Save copy>>选板子>>取名main.py

运行,闪光灯闪烁,拍摄照片保存

窗口有输出:

左边刷新一下文件列表(这个在View里打开)

sd里面就有照片和编号文件,右键下载

就可以看到照片啦

附:全屏截图

 

后记:

第一次写文章,有问题请指教,测试代码写得不太优雅,凑合着用用

: )

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐