1、前言
这段时间,垃圾分类是个全民的高度关注的问题。在羡(TONG)慕(QING)上海的小伙伴时,惊闻全国42城在2020年都要开展试点 !天了噜~快快写个垃圾分类APP压压惊!
上述是个玩笑,其实想看看用教孩子用APP Inventor能否快速写个垃圾分类,程序不要复杂,但一定要好玩,特别是对孩子有足够的吸引力。为了能解释给孩子听,所以写得会比较详细。
整个项目分为两篇,第一篇是基本功能实现,第二篇是微数据库及彩蛋实现。
2、程序原理
1)把需查询的垃圾与程序中预设好的内容进行对比,找出所属垃圾分类;
2)利用百度的语音合成以语音识别进行交互;
3)垃圾分类存储在网络微数据库中(Wxbit自带),实现远程获取和数据更新;(见二)
4)写一段小彩蛋,增加可玩性!(见二)
3、界面设计
1)主界面
包括:两个图像框,用于机器人表情及垃圾桶样式展示。其中垃圾桶的图像初始化选为不显示。
一个按钮,用于测试,后期删除或隐藏。
百度语音三套件,语音合成、识别、唤醒。
一个网络微数据库。

2) 表情包
下载或自已做一个机器人表情包,切成一个个对应的jpg文件来保存。(下面图片来源于网络,仅用于学习)

然后上传到App inventor素材中备用。
3)垃圾分类标识
同样也把垃圾分类的图片下载并用jpg保存,然后上传到素材中备用。

4)素材上传

四、逻辑设计
1) 变量设计
设计4个全局变量,对应4个垃圾的分类。
为了录入方便,我们在垃圾分类中用","分割,一次性录入多条信息。这样也利于我们用微数据库存放和读取。
同时,我们设计4个全局列表变量(空),用于分割后的垃圾名称。

然后在程序初始化时,把不同垃圾名称,用文本的分割功能,分别装入对应的垃圾列表中。

此外,我们还得设置“语音开关”及“无法识别”两个逻辑变量,其作用将在后文讲述。

2)语音三件套
wxbit已经集成了默认的百度语音三套件的Appid,AppKey以及SecretKey,默认就好了。但需要把在界面设计中,程序包名称改为baidu。

程序 已默认了10个唤醒词,分别是:小宝同学、拍照、播放、暂停、上一首、下一首、增大音量、减小音量、打开电灯、关闭电灯。我们这次只用“小宝同学”做为唤醒词。详细可参考:
https://www.wxbit.com/?p=335
如果想自己订制唤醒词,请看以下链接:
http://ai.baidu.com/tech/speech/wake

 代码块如下,超级简单。不过,马上会有点点小问题,一会解决。


3)识别和处理:
当语音结束时,我们逐项与垃圾列表中的内容进行逐个对比。如果在里面就用语音读出来。



等等,这样的话,不是每次朗读完,都会启动百度语音识别吗?我们需要在读垃圾分类时,不需要再次启动百度语音识别。所以我们还得设置一个语音开关的变量。

用它来打开识别的开关。
程序块变成了:

语音识别后,先关了语音识别的开关符; 对比完成后,再把语音识别符打开。

4)未认识的垃圾处理

OK,快完成了。还有一个问题:如果有不认识的垃圾怎么办?
这里使用一个未知垃圾变量来处理。
当我们辨识出一种分类后,就把这个未知垃圾的变量设成假; 如果一直认不出来,那这个变量就会是直。用这个变量来判断是否是不认识的垃圾。
现在完整的程序模块变成这样了:

五、测试
由于用到唤醒,不能用Ai伴侣。为了进行测试。我们增加以下代码,代替语音唤醒,然后用Ai伴侣进行测试。


好吧,现在调试吧。

下一篇,我们将看看怎么用网络微数据库来实现垃圾库的更新。

App inventor 写的垃圾分类小助手(一)相关推荐

  1. SSM垃圾分类小助手毕业设计-附源码191356

    摘 要 随着现在网络的快速发展,网络的应用在各行各业当中它很快融入到了许多分类管理之中,他们利用网络来做这个垃圾分类小助手,随之就产生了"湖师校园垃圾分类管理",这样就让垃圾分类小 ...

  2. 自己动手写一个番茄小助手

    近期俞感注意力集中的重要性,但奈何自己老是被一些无关紧要的琐事所扰.时不时来一个如流提醒.邮件通知,总想去瞅瞅看看,把好不容易想要静下心来思考的问题中断掉了. 针对此问题,痛定思痛!决心先以外界工具软 ...

  3. CSDN写作文档小助手——表情图标分享

    目录 小黄人表情包 爱心表情包 手势表情包 人物表情包 动物表情包 草木表情包 日常图标 办公图标 服饰表情包 菜肴图标 车子图标 序号图标 其他 小黄人表情包

  4. 基于Android平台的疫情小助手APP

    1.选题背景和意义 新型冠状病毒感染的肺炎疫情给人们的身心和生活带来了不利的影响.面对病魔,全国上下团结一心,同舟共济,共同战"疫".疫情小助手APP可以为大家的生活带来便利.疫情 ...

  5. (附源码)springboot大学新生小助手小程序 毕业设计 060917

    目 录 摘要 1 1 绪论 1 1.1研究意义 1 1.2研究背景 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2大学新生小助手小程序系统分析 3 2.1 可行性分析 3 2.2 ...

  6. Qt实现串口通信(C++实现串口通信小助手)---串口收发及串口数据解码、串口通信模拟器。

    Qt实现串口通信示例 前言:以下串口通信示例,参考了现有网上前辈们的资源,最后结合部分个人的思想,所以下述博客会将实现的原理及代码的案例进行公开. 这里我们先上效果图: 一.串口通信简介 串口通信是上 ...

  7. 基于Android原生开发的理财小助手APP

    一.实验题目 个人理财小助手 二.实验目的 掌握 SQLite 数据库及其使用. 熟练掌握布局及常用控件 Button.ListView.EditText.TextView 等. 三.总体设计 (含背 ...

  8. 订阅号助手APP怎么插入留言板小程序?

    现在很多小伙伴都是都是利用碎片化的时间来编写文章,身边并没有电脑,这个时候就没有办法使用电脑浏览器上的订阅号留言板插件来接入留言功能了,好在我们又开发了手机端在订阅号助手APP上接入留言板小程序的功能 ...

  9. 如何用python写个人专属群聊提醒小助手?

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚生 ...

最新文章

  1. 学Redis这篇就够了!
  2. python logging模块使用
  3. 学习 Spring (十三) AOP 配置
  4. C#、.Net经典面试题目及答案
  5. wxWidgets:wxMemoryDC类用法
  6. 方法引用_通过super引用父类的成员方法
  7. 论文浅尝 - WSDM2020 | QAnswer KG: 基于RDF数据设计一个可移植问答系统
  8. mysql oracle 数据类型转换_Mysql与Oracle之间的数据类型转换
  9. MySQL多表数据记录查询详解
  10. 系统部署时的Could not load file or assembly 'Microsoft.VisualStudio.Enterprise.ASPNetHelper问题...
  11. 刘强东卸任京东集团CEO!接任人是他...
  12. 力扣383.赎金信(JavaScript)
  13. javascript弹出窗口总结
  14. 大整数算法[10] Comba乘法(实现)
  15. Spring Cloud Hystrix Dashboard仪表盘 和 Turbine集群监控 (学习总结)
  16. 安装rational rose软件教程
  17. matlab已知斜率画直线,MATLAB 霍夫变换 连接斜率相同的直线
  18. 锁相环环路滤波器计算公式_锁相环环路滤波器设计
  19. mysql报1114错误_mysql插入数据出现error1114 table is full
  20. 【java基础】IO流是啥?有啥用?(上)

热门文章

  1. 云服务器虚拟ip绑定主机,如何在云平台上给云主机中的Keepalived的虚拟IP绑定弹性IP?...
  2. github nginx实战_GitHub - Lovening/MyNginx: Nginx实战
  3. 期货开户亏损的一点原因
  4. 【Scratch3.0案例教学】手把手教小朋友Scratch3.0制作消灭新冠病毒游戏 scratch案例教学
  5. 文献全文免费下载心得
  6. 腾讯短链接生成api
  7. 餐饮门店每日业务情况数据分析仪表盘(外卖平台)
  8. 本科毕业设计格式规范
  9. 网络流专题班例题和练习
  10. 一瓶OTC,药店被罚10万,原因是...