You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Raspberry Pi Pico+OV7670拍照存txt文件失败问题排查

Raspberry Pi Pico + OV7670 无法生成照片文件的问题排查与修复

核心错误点

  • 未初始化SPI总线:代码直接使用bus变量,但未定义和初始化SPI总线,摄像头无法建立通信。
  • 控制引脚未配置:shutdown和reset引脚未设置为输出并执行唤醒/复位操作,摄像头可能未正常启动。
  • 异常信息缺失:仅打印"error"无法定位具体问题(如路径错误、文件系统只读、硬件连接故障等)。
  • 引脚映射错误:vsync=board.PCC_DEN1和href=board.PCC_DEN2不符合OV7670引脚定义,VSYNC、HREF需连接到对应功能引脚,而非DEN信号引脚。

修正后的代码

import board
import busio
from adafruit_ov7670 import OV7670, OV7670_SIZE_DIV16
import time
import digitalio

# 初始化SPI总线
spi = busio.SPI(clock=board.PCC_CLK, MOSI=board.PCC_D0, MISO=board.PCC_D1)
# 注意:根据实际硬件连接调整MOSI/MISO引脚,确保与摄像头数据引脚对应

# 初始化摄像头控制引脚
shutdown_pin = digitalio.DigitalInOut(board.D39)
shutdown_pin.direction = digitalio.Direction.OUTPUT
shutdown_pin.value = True  # 高电平唤醒摄像头

reset_pin = digitalio.DigitalInOut(board.D38)
reset_pin.direction = digitalio.Direction.OUTPUT
reset_pin.value = True
time.sleep(0.1)
reset_pin.value = False
time.sleep(0.1)
reset_pin.value = True

# 初始化摄像头
cam = OV7670(
    spi,
    data_pins=[board.PCC_D0, board.PCC_D1, board.PCC_D2, board.PCC_D3, board.PCC_D4, board.PCC_D5, board.PCC_D6, board.PCC_D7],
    clock=board.PCC_CLK,
    vsync=board.D28,  # 替换为实际连接的VSYNC引脚
    href=board.D27,   # 替换为实际连接的HREF引脚
    mclk=board.D29,
    shutdown=shutdown_pin,
    reset=reset_pin,
)
cam.size = OV7670_SIZE_DIV16

buf = bytearray(2 * cam.width * cam.height)

try:
    # 使用二进制写入模式,确保路径指向CIRCUITPY根目录
    with open("/photobin.txt", "wb") as photo:
        print("Capturing photo...")
        cam.capture(buf)
        photo.write(buf)
        photo.flush()
        print("Photo saved successfully")
except OSError as e:
    print(f"Error details: {e}")

额外注意事项

  • 核对硬件连线:OV7670的VSYNC、HREF、数据引脚、时钟引脚必须与代码定义完全对应。
  • 确认文件系统可写:Pico的CIRCUITPY盘符需处于可读写状态,避免只读挂载导致无法写入。
  • 调整数据引脚顺序:根据实际硬件连接的摄像头数据引脚排列,修改data_pins列表顺序。

内容的提问来源于stack exchange,提问作者Anton9101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:13:03