概述
引 言
在《中国儿童青少年威盛中国芯计算机表演赛》从第十七届活动开始,搭建了一个全新的互联网技术支持平台,实现了网络在线比赛,在全国建立了三十个省级赛区,到2019年第二十八届,每年参赛选手保持在500万人次以上!
“人工智能创作赛”经过几届比赛的规范和完善,已经发展成为一项基于“创造栗”平台,同时支持模拟器编程验证和实物编程演示的核心比赛项目!参赛选手通过整合身边的软硬件资源,融入人工智能等多种元素,创作出一件能够为现实生活带来更大便利或积极影响的作品。
不过随着编程软件与硬件平台的不断更新发展,比赛平台软件和硬件在每届比赛都有所不同,本文所使用的软件平台基于2020年最新软件版本,并结合“创造栗人工智能创作”硬件套装(2019版)编写录制,用于平台熟悉与测试,所有内容仅供参考和内部讨论,请勿外传或用于任何推广和商业目的,在此特别予以声明!
本节内容微课视频(上)
(任务描述分析与硬件连接)
本节内容微课视频(中)
(通讯协议规划与程序流程)
本节内容微课视频(下)
(软件编程与效果演示)
IM5D.6B - 任务要求基于IM5D.6A进阶任务,配合2.4G无线(串口透传)模块,利用创造栗平台人工智能语音识别功能,替代钮子开关远程实现“智能书房”应用中任务一的功能,具体要求为以下3个项目:
1 - 向创造栗系统语音发出“开启智能书房”命令后,小喇叭播报“正在为您打开系统”,同时通过2.4G无线模块向智能书房系统发出系统开启命令。
2 - 当连接在Arduino UNO主控的2.4G无线模块收到来自创造栗系统的开启命令后,解析并执行打开系统操作(详见智能书房任务一)。
3 - 向创造栗系统语音发出“关闭智能书房”命令后,小喇叭播报“正在为您关闭系统”,同时通过2.4G无线模块向智能书房系统发出系统关闭命令。
4 - 当连接在Arduino UNO主控的2.4G无线模块收到来自创造栗系统的关闭命令后,解析并执行关闭系统操作(详见智能书房任务一)。
备注:关于“智能书房”课程相关任务详情,请参考如下课程微课专辑:
《PB3A-创意编程制作之智能书房》
IM5D.6B - 题目分析这道题目的实现功能并不复杂,硬件实现也不算很复杂,但是具体程序编写起来并不简单,需要综合考虑的因素很多,比如:
-- 两个系统通讯用什么样的数据报文格式?
-- 具体命令的报文信息(组成与格式)
-- 命令如何发送、接收和解析
如果仅仅是为了实现“智能书房”的任务一,那程序可以非常简单,不过为了后续任务的实现能够统一规划,就需要花一些精力来做好总体的实现方案(详细定义),这就无形给这节课任务增加了实现的难度,编程上主要要求对字符、数据、字符串的处理编程应用比较熟悉,通过这道题目,将真正实现和掌握双系统及多系统协同工作的编程方法,本节题目涉及到的相关器材和主要编程模块组如下:
-- 安装好主控板及模块的的套装结构(人工智能创作+智能书房)
-- 2.4G无线通讯模块等
-- 字符字符串处理编程模块等
-- 连接线、Micro-USB(编程)数据线等 下面我们来和大家一起完成这部分内容,同时介绍一下使用方法 。 相关器材(硬件电路)介绍 2.4G无线通讯模块:2.4G无线通讯模块是一种非常常用的简单无线收发电路模块,根据应用电路的不同,通常会有不同的供电和接口方式,这里给大家介绍和使用的是采用5V供电方式,利用串口来收发的一种透传模块,如下图所示,为了实现多通道场景应用,模块上提供了4路无线通道拨码开关设置,也就是最多可以支持16个不同无线通道,这样可以满足同一场所内同时可以支持16个不同的信息通道!
备注:2.4G仅仅表明了无线模块所使用的无线频段,并非通讯协议或者标准,所以不同协议类型,甚至同一协议类型,不同厂家(或主芯片)的2.4G无线通讯模块间的通讯是不兼容的,这一点在系统进行配对使用的时候一定要注意!
-- 硬件电路连接关系
硬件电路连接关系:
参考如下精简后的“创造栗人工智能创作”与“智能书房”的连接关系图,我们只需要用两个2.4G无线通讯模块分别与创造栗主控以及Arduino UNO之间连接杜邦线对应的接口相连接,也就是直接与两块主控的“软串口”相连接(含电源)即可。
注:如果由于扩展板接口原因无法兼容使用之前的软串口信号管脚,需要对应修改程序初始化中的软串口定义管脚为新的实际连接的信号管脚。说明:通过2.4G无线通讯模块进行信息互传,两个系统需要独立供电。
-- “通讯协议”的定义
交互信息的分析与拆解:
通过对本节中的任务进行分析,可以得出以下几个关键信息:
1 - 人工智能需要替换的设备(命令源):钮子开关
2 - 被替设备命令类型:输入设备(控制)
3 - 被替设备(控制)状态数量:2 (布尔类型即可标识)
交互信息报文的格式定义:有了对交互信息的分析与拆解,我们就可以按照具体发送信息的类型进行实际发送(解析)信息格式的定义,对于类似本节任务收发频率不是很高的情况,为了直观和方便调试,同时又让具体程序不是特别的复杂,我们采用“字符串格式”+“数字化信息”的方式来具体定义交互报文,具体格式参考如下规则:
1 - 报文字符串总共由5位组成
2 - 首位表示源(或类),比如用‘1’来表示被替代的钮子开关。
3 - 第2位表示命令类型如:(状态)控制、查询等,比如用1表示控制0表示查询。
4 - 第3-5位表示命令参数如:000表示关闭,999表示开启等
按照上述格式定义可以定义出用于替换原有钮子开关状态的两条报文(字符串):
钮子开关关闭(等效)报文:11000
钮子开关打开(等效)报文:11999
特别说明:米思奇Mixly软件对于串口的操作相对全面,所以实现起来程序比较简洁,之后的样例程序我们将全部基于米思奇进行示例和讲解。
-- 软件程序流程
软件程序流程:
本案例依然涉及到了对两个独立控制系统的编程操作,也都是对(软)串口进行操作,但是操作功能不同(都基于米思奇软件来编写),所以软件流程图我们需要分开来规划。
“人工智能”程序流程:本节任务中,创造栗平台需要完成人工智能语音识别的任务,识别关键词后还需要通过连接在(软)串口上的2.4G无线模块,将信息转发出去(给)Arduino UNO平台,与此同时,还需要通过小喇叭通过语音合成的方式,完成当前操作的“反馈”动作。参考程序的基本运行流程图如下图所示。
特别说明:CZL Junior软件对于一些串口的操作支持的还不是很到位,有些编程功能模块还是缺失的,为了统一示例程序风格,我们将使用米思奇软件来实现这部分程序。
Arduino UNO程序流程:本节任务中,Arduino UNO平台需要完成的任务操作比较简单,就是用(软)串口接收到命令来替换之前任务一中钮子开关的控制操作,这里我们可以直接基于“智能书房”任务一的程序流程进行变更。参考程序的基本运行流程图如下图所示。
微课参考:
PB3A.1 - 钮子开关控制 “智能书房”系统的开闭
-- 功能的编程实现
根据前面的软件程序流程图,我们很容易就可以编写完成如下程序来实现本节题目要求的功能!这里我们使用的带有自定义编程库的米思奇进行编程,米思奇标准版并未包含相关编程模块,最新版含自定义库的软件请到QQ群进行下载,完整程序如下图所示。
创造栗端参考程序: 智能书房端参考程序: 补充:智能书房任务一原有程序(对比参考)微课参考:
PB3A.1 - 钮子开关控制 “智能书房”系统的开闭
-- 特别注意事项
特别注意事项:这道题目的实现方法不唯一,可以尝试用不同的方法编程实现并验证。
-- 进阶任务
进阶任务:参照本节任务的实现方式,实现对智能书房系统“PB3A.7 - “智能书房”任务综合(一)”中的功能的人工智能改造(替换任务1中钮子开关(实物),改为语音控制,同时实现任务2)。
其它课程微课专辑
(本专辑建议从图文顶端专辑入口进入选择)
编程普及(单片机类比赛):《PP4A-米思奇电子电路编程初级》
提高与应用(基础与创新类比赛):《PB3A-创意编程制作之智能书房》
进阶与综合(创新类比赛):《IM5D-人工智能创作指南》
特色应用(创客类比赛):《大开眼界机器学习挑战赛参赛指导》
竞技与比赛(机器人类比赛):《无人驾驶综合实践》
如果你也有好的内容与大家分享,或者好的创客培养解决方案需要评估,可以留言或者加入QQ编程交流群(599910807)与大家交流分享!
点击“原文链接”返回“计算机表演赛(29届)”专题首页
最后
以上就是落后哈密瓜为你收集整理的turtle模块编程实现一个小游戏_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...的全部内容,希望文章能够帮你解决turtle模块编程实现一个小游戏_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复