k210项目
照相机
本项目主要是按键应用和拍照的相结合,这些内容可以在前面的实验找到,这里不再重复
外部中断按键实验:请参阅 4.4 外部中断 章节内容;
拍摄照片实验:请参阅 5.9 图片拍摄 章节内容。
拍照后我们应该让图片停留一段时间,让用户观察照片的拍摄情况,然后再进行继续拍摄。代码编写流程如下:
代码如下
1 | import sensor, lcd, utime |
视频播放器
音视频解码是一个复杂的过程,但 K210 底层 MicroPython 库写好后,着重应用来编程就变得非常简单了。和以往一样,我们只需要熟悉模块用法即可。
本实验实验 01Studio 音频模块,基于 PAM8403 的一款 D 类功放 IC,和麦克风一样使用 I2S 接口通信,这里不再重复 I2S 内容。
而视频播放被封装成 video 模块,在前面视频录制章节内容已经介绍过,这里重温一下,模块说明如下
构造函数
1 | import video |
播放或录制视频文件。
【path】文件路径,比如:/sd/badapple.avi;
【record】=True 表示视频录制,=False 表示视频播放;
【interval】录制帧间隔,单位是微妙;FPS=1000000/interval,默认值
是 100000,即 FPS 默认是 10(每秒 10 帧);
【quality】jpeg 压缩质量(%),默认 50;
【width】录制屏幕宽度,默认 320;
【height】录制屏幕高度,默认 240;
【audio】是否录制音频,默认 False;
【sample_rate】录制音频采样率,默认 44100(44.1k);
【channels】录制音频声道数,默认 1,即单声道。
使用方法
1 | v.play() |
播放视频;
1 | v.volume([value]) |
设置音量值。
【value】0-100;
1 | v.revord () |
录制音视频;
1 | v.revord_finish () |
停止录制;
*更多使用说明请阅读官方文档:
https://maixpy.sipeed.com/zh/libs/machine_vision/video.html
1 | ''' |
本实验播放的视频是 badapple.avi,文件在本例程文件夹中,先将该文件拷贝到 sd 卡。然后将 sd 卡插到 pyAI-K210。
接上 01Studio 音频模块,运行本实验程序代码,可以见到串口终端打印了avi 视频信息后,开发板便开始播放视频。
NES 游戏机
MaixPy 集成了 NES 的 MicroPython 模块,用户通过几行代码就可以实现游戏的加载,已经使用键盘或者标准游戏手柄来操控。NES 对象如下:
构造函数
1 | import nes |
导入 nes 模块;
使用方法
1 | nes.init(rc_type=nes.KEYBOARD, cs, mosi, miso, clk, repeat=16,vol=5) |
初始化 nes 游戏模拟器;
【rc_type】遥控类型。nes.KEYBOARD:REPL 中使用键盘;nes.JOYSTICK:PS2 手柄。
【cs,mosi,miso,clk】使用 PS2 手柄时的引脚配置;
【repeat】键盘按键重复率;
【vol】音量
1 | nes.run(xx.nes) |
运行 nes 文件。
*更多使用说明请阅读官方文档:
键盘和手柄的快捷键如下:
键盘(串口)
【移动】:WSAD(上下左右)
【A】:J
【B】:K
【start】:M 或 Enter
【option】:N 或\
【退出】:ESC
【音量-】:-
【音量+】:=
【运行速度-】:R
【运行速度+】:F
PS2 手柄
【移动】:方向键(上下左右)
【A】:口
【B】:X
【start】:START
【option】:SELECT
【退出】:暂无
【音量-】:R2
【音量+】:R1
【运行速度-】:L1
【运行速度+】:L2
从上表 NES 对象看到,只需要简单的初始化和运行语句,即可运行 NES 游戏模拟器,编程思路如下:
1 |
|