云天 发表于 2020-7-11 16:26:50

【天天向上】Maixduino AI 开发板试用(三)Micro SD 卡读取不到

本帖最后由 云天 于 2020-7-11 16:37 编辑

Micro SD 卡读取不到1、把 Micro SD 格式化为 FAT 再尝试(不是FAT32)目前硬件只能支持 SPI 协议读取, 尽量购买正规的卡2、格式的原因win7和win8已经淘汰了FAT32格式,默bai认是exFAT(duFAT32的强化模式), 没有FAT32,但是某些设备只认FAT32不认exFAT(比如zhiPSP,XBOX360,某dao些电视,某些没装exFAT补丁的XP机器)如果在win7和win8系统上想把U盘格式化成FAT32,需要用第三方的分区软件,比如diskginus,在分区软件里面有格式化功能,有FAT32的选项。更不要说FAT格式,我手中的64GMicro SD卡试了几次都无法使用,就是格式的原因。3、后来找了一个1G的卡,用读卡器看了一下,就是FAT格式的。

4、FAT,FAT16、FAT32、NTFS格式介绍
FAT(File Allocation Table)是“文件分配表”的意思。对我们来说,它的意义在于对硬盘分区的管理。FAT16、FAT32、NTFS是目前最常见的三种文件系统。
FAT16:我们以前用的DOS、Windows 95都使用FAT16文件系统,现在常用的Windows 98/2000/XP等系统均支持FAT16文件系统。
它最大可以管理大到2GB的分区,但每个分区最多只能有65525个簇(簇是磁盘空间的配置单位)。随着硬盘或分区容量的增大,每个簇所占的空间将越来越大,从而导致硬盘空间的浪费。
FAT32:随着大容量硬盘的出现,从Windows 98开始,FAT32开始流行。
它是FAT16的增强版本,可以支持大到2TB(2048G的分区。FAT32使用的簇比FAT16小,从而有效地节约了硬盘空间。
NTFS:微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。
随着以NT为内核的Windows 2000/XP的普及,很多个人用户开始用到了NTFS。NTFS也是以簇为单位来存储数据文件,但NTFS中簇的大小并不依赖于磁盘或分区的大小。簇尺寸的缩小不但降低了磁盘空间的浪费,还减少了产生磁盘碎片的可能。NTFS支持文件加密管理功能,可为用户提供更高层次的安全保证。
5、拍摄照片代码:import sensor, lcd, image

print("init")
lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames(40)
print("init ok")

path = "/sd/image.jpg"
img = sensor.snapshot()
print("save image")
img.save(path)

print("read image")
img_read = image.Image(path)
lcd.display(img_read)
print("ok")

读卡查看照片

"w":320, "h":240
6、设置帧大小用于设置摄像头输出帧大小,k210最大支持VGA格式,大于VGA将无法获取图像MaixPy开发板配置的屏幕是320*240分辨率,推荐设置为QVGA格式sensor.set_framesize(framesize[, set_regs=True])参数
[*]framesize: 帧大小
[*]set_regs: 允许程序写摄像头寄存器,默认为 True。 如果需要自定义设置帧大小的序列,可以设置为False,然后使用sensor.__write_reg(addr, value) 函数自定义写寄存器序列
返回值
[*]True : 设置成功
[*]False: 设置错误
7、修改sensor.set_framesize
把:sensor.set_framesize(sensor.QVGA)
修改为:sensor.set_framesize(sensor.VGA)
出现如下问题:

内存错误:正常的MicroPython堆内存不足!请降低分辨率
sensor.set_framesize(framesize)设置相机模块的帧大小。
[*]sensor.QQCIF: 88x72
[*]sensor.QCIF: 176x144
[*]sensor.CIF: 352x288
[*]sensor.QQSIF: 88x60
[*]sensor.QSIF: 176x120
[*]sensor.SIF: 352x240
[*]sensor.QQQQVGA: 40x30
[*]sensor.QQQVGA: 80x60
[*]sensor.QQVGA: 160x120
[*]sensor.QVGA: 320x240
[*]sensor.VGA: 640x480
[*]sensor.HQQQVGA: 80x40
[*]sensor.HQQVGA: 160x80
[*]sensor.HQVGA: 240x160
[*]sensor.B64X32: 64x32 (for use with image.find_displacement())
[*]sensor.B64X64: 64x64 (for use with image.find_displacement())
[*]sensor.B128X64: 128x64 (for use with image.find_displacement())
[*]sensor.B128X128: 128x128 (for use with image.find_displacement())
[*]sensor.LCD: 128x160 (for use with the lcd shield)
[*]sensor.QQVGA2: 128x160 (for use with the lcd shield)
[*]sensor.WVGA: 720x480
[*]sensor.WVGA2:752x480
[*]sensor.SVGA: 800x600 (only in JPEG mode for the OV2640 sensor)
[*]sensor.SXGA: 1280x1024 (only in JPEG mode for the OV2640 sensor)
[*]sensor.UXGA: 1600x1200 (only in JPEG mode for the OV2640 sensor)

可在程序中增加:sensor.set_windowing((320, 240))
sensor.set_windowing(roi)将相机的分辨率设置为当前分辨率的子分辨率。例如:将分辨率设置为 sensor.VGA ,然后将windowing设置为(120, 140, 200, 200), 设置 sensor.snapshot() 以捕捉由相机传感器输出的VGA分辨率的200x200中心像素。您可使用窗口来获得定制的分辨率。另外, 当你在更大分辨率下使用窗口时,实际上是进行数字缩放。roi 是矩形区域元组 (x, y, w, h). 然而,你可以只传递 (w,h),而 roi 将会在图像中居中。




汤果 发表于 2020-7-11 16:45:22

所以 64 GB 的内存卡能不能用呢?还是格式对了也可以用?

hnyzcj 发表于 2020-7-11 17:26:33

汤果 发表于 2020-7-11 16:45
所以 64 GB 的内存卡能不能用呢?还是格式对了也可以用?

fat

云天 发表于 2020-7-13 12:32:15

hnyzcj 发表于 2020-7-11 17:26
fat

FAT格式管理不了64G
页: [1]
查看完整版本: 【天天向上】Maixduino AI 开发板试用(三)Micro SD 卡读取不到