查看: 102|回复: 3

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

[复制链接]
本帖最后由 云天 于 2020-7-11 16:37 编辑

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

IMG_20200711_133407.jpg

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、拍摄照片代码:
[Python] 纯文本查看 复制代码
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")

17.jpg
读卡查看照片
18.jpg
"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)
出现如下问题:
19.jpg

内存错误:正常的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 将会在图像中居中。





汤果  高级技匠

发表于 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


FAT格式管理不了64G
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail