1535| 3
|
[ESP8266/ESP32] 在CircuitPython中使用FireBeetle 2 ESP32-S3上的摄像头 |
本帖最后由 HonestQiao 于 2023-9-10 11:47 编辑 FireBeetle 2 ESP32-S3套装,带有OV2640的摄像头,官方WiKi还提供了Arduino下面的教程: DFROBOT DFR0975 FireBeetle 2 Board ESP32-S3 产品资料 进阶教程 要使用这个摄像头,除了通用的ov2640驱动外,还需要 AXP313A 支持库,来控制给摄像头上电和断电。 AX0313A的支持库,可以从:cdjq/DFRobot_AXP313A (github.com) 下载。 在上述AX0313A的库中,还提供了micropython下的AX0313A库。 参考该库,经过简单修改,适配到了CircuitPython,以下为其使用方法。 一、直接上手试用 首先接好摄像头,摆好POSE: 然后,直接从: DFRobot_AXP313A/CircuitPython at master · HonestQiao/DFRobot_AXP313A (github.com) 下载下面的文件: 先将AXP313A.py上传到开发板的/lib/目录。 再将开发板上根目录下的 boot.py,参考如下进行修改:【如没有,则直接新建】
注意: 1. 修改后,使得CircuitPython可以写入到内置存储,但将不能再电脑上直接进入U盘修改文件。 2. 在编辑器中,修改上述Flase为True,或者直接注释掉上面的行,就恢复原样。 再将开发板上根目录下的 settings.toml,参考如下进行修改:【如没有,则直接新建】
特别注意: 1. settings.toml 必须修改,否则必然出错 2. boot.py 在存储图片到内置存储时,必须修改为True,否则必然出错;如存储到SD卡,则可以用False 现在务必按RST按键重置,就可以直接使用 dfrobot_firebeetle_2_board_esp32_s3_camera_demo.py 进行测试,运行输出的结果如下: 运行完成后,在开发板的根目录中,会生成test_001.jpg,将该文件拷贝出来,点击查看,即为通过通过摄像头拍摄的照片: 二、AX0313A.py说明 在该文件中,有具体的演示代码:
上述代码把基本功能,演示得非常清楚了,主要就是: * 初始化I2C * 实例化AXP313A对象,并传入i2c * AXP313A.begin():通过I2C寻找摄像头 * AXP313A.enable_camera_power(eOV2640):上电 * AXP313A.disable_power():断电 三、摄像头使用 dfrobot_firebeetle_2_board_esp32_s3_camera_demo.py中的演示,已经很详细了,也步骤清晰明了。 首先是引脚的定义:
然后使用circuitpython为esp32提供的摄像头库espcamera操作即可: * espcamera.Camera():初始化摄像头 * cam.reconfigure():输出设置 * cam.take(1):截取当前一帧 截取到了图像,演示中,再存储到test_001.jpg中。 在实际使用中,还可以将获取的图像,输出到LCD进行显示。 四、常见错误 1. 出错提示:espidf.IDFError: Requested resource not found 问题原因:摄像头没接,或者接的不对 解决方法:参考教程,重新连线,然后断开USB,重新连接 2. 出错提示:MemoryError 问题原因:settings.toml未设置或设置错误,或设置后没有按RST按键重置 解决办法:参考前面的指导设置,设置完成后,务必按RST按键重置,然后继续 3. 出错提示:OSError: [Errno 30] Read-only filesystem 问题原因:使用内置存储时,boot.py未设置或未按要求设置,或设置后没有按RST按键重置 解决办法:参考前面的指导设置,设置完成后,务必按RST按键重置,然后继续 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed