清泛IT社区App Inventor 2 中文社区

搜索

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.72

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通会员送SVIPApp Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 5467|回复: 1
打印 上一主题 下一主题

[AI2教程] App Inventor 2 手机蓝牙及语音控制

  • TA的每日心情
    开心
    昨天 07:45
  • 签到天数: 280 天

    [LV.8]以坛为家I

    523

    主题

    909

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    22289

    AI2中文网VIP弹球达人接水果达人撸猫达人

    跳转到指定楼层
    楼主
    发表于 2023-06-09 13:51:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    来源:http://www.zsqz.com/chuangke/13.htm

    【学习目标】
      1.掌握蓝牙客户端或服务端组件的使用;
      2.学会编写手机蓝牙APP,并向Arduino发送控制指令;
      3.学会编写手机语音控制程序,并能通过语音控制Arduino等设备。

      【项目范例】
      1. 情境
      通过对APPInventor和Arduino的学习,我们对两个平台已经初步有了认识和了解,如何打通两个平台,实现利用手机对Arduino设备进行控制呢?
      蓝牙是一个非常成熟的无限近程控制技术,通过蓝牙,我们可以将两者有机结合,再加上讯飞语音,甚至能够实现语音远程控制。
      2.主题:手机蓝牙及语音控制
      3.问题:
      (1)手机如何与Arduino硬件建立联系?
      (2)如何使用语音识别功能并用此控制其他设备?
      4.规划:
      (1)利用蓝牙,通过APPInventor程序连接Arduino蓝牙模块;
      (2)利用蓝牙客户端组件编写手机蓝牙发送程序,发送动作控制Arduino上的LED灯;
      (3)利用科大讯飞语音+程序,开发语音识别功能,并通过蓝牙对Arduino进行控制。
      5.成果:
      语音控制LED灯运行的截图如图13-1所示。


      图13-1 手机控制“移动机械手”运行

      【学习过程】

      一、蓝牙知识准备
      1. APP相关知识
      列表选择框组件:便于用户从预设的条目中选择,如选择与手机配对的外部蓝牙设备;
      蓝牙客户端组件:用于建立手机蓝牙与外部蓝牙设备的配对连接,并向外部蓝牙设备发送指令。
      

      2. 蓝牙模块HC-05
      蓝牙技术设备在全球通用的频段为2.4GHz,数据速率为1Mb/s,可使相距30米以内的设备互相连接。 一般地,一个蓝牙设备一旦搜寻到另一个蓝牙设备,马上就可以建立联系,而无须用户进行任何设置,而且系统稳定。
      蓝牙模块HC-05是主从一体化模块,默认状态为从模块,若要变成主模块,可以进入AT状态,通过AT指令进行设置。 蓝牙模块HC-05与Arduino开发板的连接如图13-2所示。注意,除了RX、TX的交叉连接外,VCC应接Arduino开发板的3.3V。


      图13-2 HC-05与Arduino开发板的连接

      
      二、蓝牙发送程序
      登陆App Inventor网站,增加屏幕Screen,将屏幕“标题”属性设为“蓝牙控制LED”,并在手机上运行AI伴侣进行测试连接。
      1. 界面设计
      向界面编辑区拖入标签、按钮、列表选择框组件及蓝牙客户端组件,并进行相应的界面设计,如图13-3所示。


      图13-3 手机App程序界面

      2. 逻辑设计
      进入逻辑设计状态后,按如下思路编程:
      (1)利用“列表选择框”让用户选择已与手机配对的外部蓝牙设备;
      (2)当“列表选择框”完成后,让用户知道外部蓝牙设备与手机蓝牙可以通信;
      (3)根据“按钮”的功能(如“开”“关”等)让手机蓝牙向外部蓝牙设备发送指令。
      具体的逻辑设计,如图13-9所示。


      图13-4 手机APP逻辑设计

      三、语音控制
      在APPInventor中使用语音识别功能主要分为以下几步:
      (1)安装TTS引擎:

    语音控制需要用到手机的TTS(文本转语音)功能,很多手机都可能已经内置了此项功能,但实际使用效果较好较方便的如“科大讯飞语音+”,可通过在手机的应用市场中搜索“讯飞语音+”来查找该软件,如图13-5所示


    图13-5讯飞语音+软件下载


      (2)设置手机文本转语音(TTS)功能引擎:

      开启手机TTS引擎中的语音识别接口即可实现将文本转化为语音,也可以实现将语音识别为文本。本例主要是实现将语音识别转为文本的功能,反之亦然。以讯飞语音为例,可进入手机系统的“设置”——“常规管理”——“语言和输入”——“文本转语音”菜单(不同手机,菜单进入顺序可能有所不同),选择讯飞语音+的设置功能,并开启其系统识别接口,如图13-6所示:



    图13-6 讯飞语音+设置界面
      (3)在APPInventor中调用语音识别功能:
      在开启识别接口后,即可在APPInventor中对此功能进行调用,具体步骤为:

      A. 设置蓝牙连接(见本节前述内容);
      B. 设置语音识别按钮和语音识别器组件,点击按钮调用语音识别功能;(如需将文字转换为语音,则此处应用文本语音转换器或语音合成器)
      C. 当语音识别器完成识别后,取出识别结果(文本),对其进行判断,并调用蓝牙发送动作指令;

      具体设计界面及代码如如13-7和13-8所示:


      图13-7 语音识别程序界面


      图13-8 语音识别程序代码

     四、Arduino接收程序
      不管是通过通过按钮控制还是通过语音识别控制,其最终的指令均通过蓝牙进行传输,因此其Arduino端的程序都是一样的,主要过程为:
      (1)利用蓝牙模块HC-05从串口读取手机蓝牙发来的指令并存入变量getstr中;
      (2)如果指令为“k”,则开灯(数字引脚13高电平);
      (3)如果指令为“g”,则关灯(数字引脚13低电平);

      完整的Arduino程序,可参考图13-9编写。


    图13-9 Arduino接收程序



      【课堂任务】

     1、基础任务:根据本课内容,动手实践手机蓝牙和语音控制App的开发和调试运行。
      2、提高任务:自行设计、编写一个实用性较强的语音控制软件。


    App Inventor 2 中文网 - MIT同步更新的中文本土化平台!v2.72 支持Android 14 更新日志
  • TA的每日心情
    开心
    昨天 07:45
  • 签到天数: 280 天

    [LV.8]以坛为家I

    523

    主题

    909

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    22289

    AI2中文网VIP弹球达人接水果达人撸猫达人

    沙发
    发表于 2024-01-30 14:36:13 | 只看该作者
    蓝牙硬件通用教程请看这里:
    https://www.fun123.cn/reference/iot/ble.html
    App Inventor 2 中文网 - MIT同步更新的中文本土化平台!v2.72 支持Android 14 更新日志
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-11-22 06:54 , Processed in 0.017328 second(s), 32 queries .