Ameba Arduino: [RTL8195] SDIO – 缩时摄影:使用UVC拍照并存至SD Card里

材料准备

  • Ameba x 1
  • SD card or MicroSD card x 1
  • SD sniffer x 1 (optional)
  • Logitech C170 web cam x 1
  • Micro USB OTG adapter x 1

范例说明

这个范例里结合UVC拍照的功能,定时将照片存至SD Card里,成为缩时摄影的功能。
我们打​​开范例 “File” -> “Examples” -> “AmebaSdFatFs” -> “time_lapse_photography”
范例里一开始会先尝试启动UVC,接着初始化SD Fat FS,在loop()里每隔3秒抓一张图片存至SD Card里,并编号成0001.jpeg, 0002.jpeg, 0003.jpeg, ……
1

要将这些档案转成电影,有一些工具可以用,这边介绍ffmpeg,它的官网: https://ffmpeg.org/
在下载区里有不同OS的版本,下载完之后,如果你是用windows的版本,在缩时摄影的资料夹底下,输入:
ffmpeg -framerate 30 -i %04d.jpeg -vf fps=30 -pix_fmt yuv420p output.mp4
底下对后面带的参数简略说明:
-framrate: 如果使用这个参数,表示忽略input的时间戳记,并且以framrate处理的结果当做时间轴,这里代表每输入30张为1秒
-i: 后面带的是input的档名,我们使用%04d.jpeg,代表它会从0000.jpeg, 0001.jpeg, 0002.jpeg, …开始找
fps: 代表输出的影像的framerate,这里我们使用1秒30张
最后面的档名是输出的档名

底下是我们在傍晚记录约2小时的缩时摄影:

程式码说明

程式码分成两个功能,第一个是UVC的部份,第二个是SD的部份
UVC的部份可以参考使用UVC抓JPEG的范例
当抓完图片之后,将档案写入至SD卡,这部份可以参考在SD Card编辑档案的范例