2025-1-17 23:29:06 [显示全部楼层]
26浏览
查看: 26|回复: 0

[K10项目分享] 基于行空板K10制作的语音控制照相机

[复制链接]
一、项目简介
        行空板K10是一款优秀的教具。其板载的大屏幕、摄像头、麦克风、多种传感器,再加上支持蓝牙和Wifi,使得它可以胜任很多人工智能和物联网方面的教学任务。
        好的硬件还需要优秀的软件来支撑,Mind+作为一款优秀的国产图形化编程软件,不仅支持丰富的硬件驱动,还提供了丰富的人工智能和物联网方面的服务。使用Mind+对行空板K10进行开发,就变得非常便捷、高效了。
        语音识别技术是在学习人工智能技术过程中必点的一道“菜”。它打破了鼠标键盘长久以来的垄断地位,是一种热门的人机交互方式,它在碳基生命和硅基生命之间架起了一座桥梁。
        在本项目中,基于语音识别技术,使用行空板K10,制作了一款可以用语音控制的照相机。用户可以用语音控制它拍照、查看照片,体验语音控制的乐趣。本项目的作品呈现可以观看以下视频。
https://weixin.qq.com/sph/Ar0XGH5xC

二、知识点
       1、语音识别技术;
       2、语音合成技术;
       3、文件在SD卡中的存储、读写操作;
       4、摄像头的拍照应用;
       5、屏幕显示图片、字符的应用;

三、项目原理
       1、语音播报功能说明
        开机后,使用语音合成技术,播报欢迎词和使用方法,提醒用户使用口令唤醒设备。

       2、语音控制。使用语音识别指令,实现唤醒、发送指令的功能。
       唤醒词为“你好小行”或者“你好小星”。
       当行空板被唤醒后,设置了约6秒的操作时间。如果期间没有发送有效的语音指令,6秒后自动退出语音控制状态;如果期间有发出有效的语音指令,行空板在执行指令后,延时顺延。
       为了控制相机,设置了5条语音指令。语音指令采用拼音命名,每个字的拼音之间需加上空格符,包括”pai zhao"、“zhao pian”、“tui chu”、“xia yi zhang”、“shang yi zhang”,依次代表“拍照”、“照片”、“退出”、“下一张”、“上一张”。
       控制相机的主要流程是先用唤醒词唤醒设备,设备被激活后自动打开摄像头,屏幕显示拍摄画面,进入拍摄待机状态。然后用“拍照”口令,控制设备拍摄一张照片,并且为照片自动编号命名,存入SD卡中。每拍摄一张照片,编号值增加1。
       用户可以说“上一张”或“下一张”口令,查看上一张照片或下一张照片,同时屏幕上显示出照片的文件名(编号)。
       用户可以说“退出”口令,主动结束拍照或查看照片的状态。

       3、拍摄照片与存储照片
       拍照需要使用mind+中行空板库里面的拍照指令,并将拍摄的照片存放到SD卡中。
       为了方便查看照片,所以需要为照片进行编号,同时也是为了避免多张照片同名,存储时相互覆盖。照片的文件名格式为“编号.bmp"。其中,编号就是为照片进行编号的值,从1开始,每拍摄一张递增1。
       为了让照片的编号能够续上,我用了一个存放在sd卡根目录下的”test.txt“文件,里面存放着最后一张照片的编号值。
        开机后,行空板会读取”test.txt“文件中的内容,将里面保存的数值读取出来,作为当前拍摄照片编号的基准值。如果是第一次拍照,可能连”test.txt“文件都没有,那就需要新建一个”test.txt“文件,并且在里面保存编号值”0“(因为我在存储照片前,会先将照片的编号加1,所以初始值为0)。
        通过这个方法,我就可以实现开机后拍摄的照片能够逐一增加编号。
        为了方便交互,在每次拍摄完照片时,行空板会发出一个短暂的声音,作为声音反馈。

        4、查看照片
        使用”照片“口令可以进入查看照片的状态。这个时候屏幕切换为最后一张照片,也就是编号值最大的那张照片。同时,在屏幕的左上角显示照片的编号。
        接着就可以使用”上一张“口令查看上一张照片,照片的编号值减少1,同时屏幕显示对应编号的照片。如果已经是第一张照片,就不再切换。
         如果使用”下一张“口令查看下一张照片,照片的编号值增加1,同时屏幕显示对应编号的照片。如果已经是最后一张照片,就不再切换。

       5、退出查看状态
       使用”退出“口令,可以退出查看状态,切换为拍摄状态。行空板的屏幕显示摄像头拍摄的实时画面。

四、软硬件清单
       1、硬件
            1)行空板K10,1块;
            2)TYPE-C数据线,1根。
       2、软件
            1)Mind+ V1.8.1 RC1.0。
            2)SD卡读写插件(https://gitee.com/hmilycheng/ext-sdcard)

五、流程图
        图形化编程的一大优势就是直观形象。如果采用自定义积木对复杂的程序进行模块化封装,那么整个程序的流程就非常清晰易读。
        所以,通过查看程序,就可以梳理清楚整个程序的流程和逻辑关系。

六、程序截图
       1、程序的主要流程
       2、初始化设置
       3、播报功能提示
       4、检查编号文件
       5、判断状态
       6、拍照
       7、查看照片
       8、退出
       9、下一张照片
       10、上一张照片
七、一点感悟
          初次使用行空板,给我带来了一些新的体验。比如便捷的语音控制、图像显示、拍摄照片等功能,这些都很容易上手。它的AI功能、物联网功能也非常丰富,不仅有mind+官网的控件,也有热心网友提供的插件,给人无限的想象空间。后续也可以试着做更多融合AI、物联网的项目。当然,我主要是做启蒙教育,所以我会把更多的精力用在设计简单、有趣的项目上。
         基于图形化的编程方式,可以尽快摆脱编程技能的限制,用更多的精力放在项目构思上,这是一种愉悦的学习体验。
         在这个项目中,使用行空板K10进入语音唤醒状态时常不成功。经过测试,发现在联接计算机的状态下需要切换到串口调试窗口,这样立马就可以语音唤醒。这个问题我还没有解决,也留着日后去探索。
         设计这个项目的主要目的是学习使用行空板K10的基本功能,所以功能没有做的过于复杂。编排上也尽量模块化,便于学习。
         如果有结构件夹持,比如将行空板固定在云台上,就可以用语音控制云台转动和拍摄照片。当然,关于照片的读写方式也可以应用在其他项目上,这都为创作更多作品积累了经验。

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

本版积分规则

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

硬件清单

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

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

mail