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

2020-07-117794
AI 快速预览详细 收起
本文介绍了Maixduino AI开发板在使用过程中遇到的Micro SD卡无法读取的问题及解决方案。首先,建议将Micro SD卡格式化为FAT格式(而不是FAT32),并尽量购买正规的卡以确保兼容性。此外,还提供了关于不同文件系统(如FAT16、FAT32、NTFS)的介绍,帮助用户更好地理解格式问题。最后,文章还展示了如何通过调整摄像头帧大小来避免内存不足的问题。这些方法能够帮助用户快速排除故障并顺利使用Maixduino AI开发板。


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

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

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、拍摄照片代码:[mw_shl_code=python,false]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")[/mw_shl_code]
【天天向上】Maixduino AI 开发板试用(三)Micro SD 卡读取不到图5
读卡查看照片
【天天向上】Maixduino AI 开发板试用(三)Micro SD 卡读取不到图6
"w":320, "h":240
6、设置帧大小[size=1em]
用于设置摄像头输出帧大小,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)
出现如下问题:
【天天向上】Maixduino AI 开发板试用(三)Micro SD 卡读取不到图7

内存错误:正常的MicroPython堆内存不足!请降低分辨率
sensor.set_framesize(framesize)
设置相机模块的帧大小。

可在程序中增加: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 将会在图像中居中。





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
汤果
汤果
所以 64 GB 的内存卡能不能用呢?还是格式对了也可以用?
云天
云天
作者
回复hnyzcj
FAT格式管理不了64G
hnyzcj
hnyzcj回复汤果
fat
- 没有更多了 -