sd卡

例程

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sensor
import lcd
import image

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 1000)
print("cam init ok")

img_path = "/sd/image-1.jpg"

print("cam capture")
lcd.clear(lcd.WHITE)
img = sensor.snapshot()
lcd.clear()
img.save(img_path)

print("read image")
img_read = image.Image(img_path)
lcd.display(img_read)
print("exit")

实验准备

  1. 需要准备一张SD卡

  2. SD卡需要格式化成xxx格式

  3. 将SD卡插入到 野火K210 AI视觉相机

  4. 连接到 CanMV IDE 并打开 串口终端

  5. 执行程序

运行结果

1.可以看到 串口终端 上会显示下面的信息

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
>>> cmos cmos_pclk = 23
cmos cmos_xclk = 22
cmos cmos_href = 20
cmos cmos_pwdn = 21
cmos cmos_vsync = 18
cmos reg_width = 8
cmos i2c_num = 2
cmos pin_clk = 25
cmos pin_sda = 24
cmos gpio_clk = 0
cmos gpio_sda = 0
init i2c:2 freq:100000
[CANMV]: find ov2640
[CANMV]: find ov sensor

2.等待一小会,就会看到 串口终端 上打印 cam init okcam capture

野火logo

3.这时可以看到lcd屏幕像闪光灯一样,先亮然后灭

野火logo

4.在 串口终端 上打印 read image

野火logo

5.可以看到屏幕在显示拍到的图片

野火logo

6.在 串口终端 上打印 exit

野火logo

7.程序结束

8.将 野火K210 AI视觉相机 断电 ,把sd卡拔出,并在电脑上用读卡器读出数据,可以看到sd卡中多了一张图片 image-1.jpg

野火logo

注解

如果没插sd卡或者sd卡的格式不对,都会导致第四步没办法正常执行,会显示下图内容

野火logo

程序分析

1
2
3
import sensor
import lcd
import image
  • import sensor : 导入用于控制图像传感器的模块。

  • import lcd : 导入用于控制LCD显示屏的模块。

  • import image : 导入用于处理图像的模块。

1
2
3
4
5
6
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 1000)
print("cam init ok")
  • lcd.init() : 初始化LCD显示屏。

  • sensor.reset() : 重置图像传感器。

  • sensor.set_pixformat(sensor.RGB565) : 设置图像传感器的像素格式为RGB565。

  • sensor.set_framesize(sensor.QVGA) : 设置图像传感器的帧大小为QVGA(320x240像素)。

  • sensor.skip_frames(time = 1000) : 跳过1000毫秒内的帧,等待传感器稳定。

  • print("cam init ok") : 打印消息,表示相机初始化完成。

1
img_path = "/sd/image-1.jpg"
  • img_path = "/sd/image-1.jpg" :设置图片保存的位置和图片保存的名称 /sd/image-1.jpg

1
2
3
4
5
print("cam capture")
lcd.clear(lcd.WHITE)
img = sensor.snapshot()
lcd.clear()
img.save(img_path)
  • print("cam capture") : 打印消息,表示开始捕获图像。

  • lcd.clear(lcd.WHITE) : 清除LCD显示屏,并用白色填充。

  • img = sensor.snapshot() : 从图像传感器捕获一帧图像。

  • lcd.clear() : 清除LCD显示屏。

  • img.save(img_path) : 将捕获的图像保存到指定的路径。

1
2
3
4
print("read image")
img_read = image.Image(img_path)
lcd.display(img_read)
print("exit")
  • print("read image") 打印消息,表示开始读取图像。

  • img_read = image.Image(img_path) : 从SD卡加载图像。

  • lcd.display(img_read) : 将加载的图像显示在LCD上。

  • print("exit") : 打印消息,表示程序结束。